WoodenJin / amr_visualisations

Simple python animated examples for the planning segment of the Autonomous Mobile Robots lecture slides

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

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).

About

Simple python animated examples for the planning segment of the Autonomous Mobile Robots lecture slides

License:MIT License


Languages

Language:Python 100.0%