/2DoFs_manipulation_env

2DoFs manipulation environment

Primary LanguagePythonMIT LicenseMIT

AMR Visualisations

Simple python animated examples for the planning and dynamics segments of the Autonomous Mobile Robots lecture slides. Primarily for students of the course but open to anyone interested.

Basic installation and requirements

Clone the repo, install dependencies

git clone https://github.com/ethz-asl/amr_visualisations.git
cd amr_visualisations
pip install -r requirements.txt

Configuration space examples

These are some basic examples of generating configuration spaces and illustrating them.

First, enter the directory cd config_space

3D (x,y,θ) robot configuration space

This simple script uses a basic polygon collision checking library and sampling to show the configuration space for a 2D robot. Obstacles are generated by sampling random points and creating a convex hull.

A basic example can be generated with:

python config_space_plot.py

config_space_slices

Help for the flags etc. are available with:

python config_space_plot.py -h

Some things you might like to change include:

  • The robot footprint is defined with a csv file (example) and set with the --robot-footprint flag
  • You can change the sampling density with the -nx flag
  • Generate the 3D rotation animation with the --animation flag

config_space_rotation

Robot arm configuration space

This script shows the configuration space for a basic multi-jointed robot arm. A basic example can be generated with:

python arm_config_space.py

Again, basic help can be found with

python arm_config_space.py -h

The robot parameters and workspace obstacles are defined with a basic yaml file. The default configuration can be found in the config/block_world.yaml file. To set a new workspace, create a copy of the block_world.yaml file, edit the robot and/or obstacles, and use the -w flag to specify your new world file:

python arm_config_space.py -w config/my_new_world.yaml

Currently, only a basic jointed robot arm and polygonal obstacles are implemented.

arm_config_space_video

Rapidly-exploring Random Tree (RRT)

Basic example of an RRT search showing the Voronoi regions to demonstrate how an RRT demonstrates a 'space-filling' effect. A basic example can be generated with:

python rrt_simple.py

The workspace definition can be changed to another file using the --world argument, number of iterations with -i and other options (try python rrt_simple.py -h for more help).

rrt_video

Potential field example

python potential_field.py

rotating_potentialfieldobs

Poincaré example

cd poincare_example
python poincare_1d.py

poincare_example_ffm

Feedback

Comments, feedback and PRs for changes are welcome (nicholas.lawrance AT mavt.ethz.ch).