This project aims to plan a path for a duckiebot while taking into account various sources of uncertainty. Upon successful completion of the demo, you should expect a simulation implementing both collision-free path planning and velocity profiling algorithms, as in the figure below:
Those following prerequisites ensure that the simulation will run properly:
Check: Desktop-Full installation of ros-kinetic
Check: duckietown-world (and all its requirements)
Check: Ubuntu16.04 with python2.7
Check: Docker installation for docker instructions
First, pull the docker image:
$ docker pull aroumie1997/uplan:v1
Next, run:
$ docker run -it \
--env="DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
aroumie1997/uplan:v1
Note: In order to see the rviz simulation, the host OS should have a desktop-full installation of ros with rviz. You may need to run the following line before running the container:
$ xhost +local:root
After running the container, do not forget to run the following, as this compromises access control to X server on your host:
$ xhost -local:root
ASSUMPTION: YOU ARE ABLE TO IMPORT duckietown_world
SUCCESSFULLY
Step 0: Make sure you sourced ros
$ source /opt/ros/kinetic/setup.bash (Use setup.zsh If you are using zsh shell)
Step 1: Create a catkin workspace in your home directory
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
Step 2: Clone the following repo duckietown-uplan
$ git clone https://github.com/duckietown/duckietown-uplan
Step 3: Installation of dependencies (NOTE: make sure that pip installation belongs to python2.7)
$ cd duckietown-uplan/lib-uplan
$ pip install -r requirements.txt --user (Might require --user)
$ sudo python setup.py develop --no-deps
Step 4: Go back to catkin_ws main directory and run catkin_make
$ cd ../../..
$ catkin_make
Ensure all three packages build correctly and custom messages are built, now two more steps left:
$ source devel/setup.bash (Or zsh)
$ roslaunch uplan_visualization planningUncertainty.launch