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.
Clone the repo, install dependencies
git clone https://github.com/ethz-asl/amr_visualisations.git
cd amr_visualisations
pip install -r requirements.txt
These are some basic examples of generating configuration spaces and illustrating them.
First, enter the directory cd config_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
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
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.
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).
python potential_field.py
cd poincare_example
python poincare_1d.py
Comments, feedback and PRs for changes are welcome (nicholas.lawrance AT mavt.ethz.ch).