We built a simulation enviroment using ROS and Gazebo to test the performances of various planning algorithms. The test scenario consists in a collaborative planning between ground and aerial robots for planetary exploration. The ground robot uses the aerial map generated by the flying robot to efficiently plan its path. The flying robot is responsible for exploring the environment and generating a map of the obstacles the rover could encounter on its path.
To run the code you need to have ROS Noetic installed on your machine. You can find the installation instructions here. If you cannot install ROS, you can use our Docker image (see below for instructions on how to run the code using Docker).
To try out our code use the following command:
mkdir -p ariadne_ws/src
cd ariadne_ws/src
git clone git@github.com:viciopoli01/The-Ariadne-s-Thread.git
Then build the workspace with:
cd ..
catkin build curiosity_mars_rover_description ariadne
To run the code use the following command:
source install/setup.bash
roslaunch ariadne ariadne_rover.launch
Make sure you have a Docker installed on your machine. You can find the installation instructions here. Run the following commands to build and run the Docker image:
docker build -t ariadne:amd64 .
xhost +local:root
docker run --net=host --rm --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --name ARIADNE -it ariadne:amd64
In the log a link to open the juptyer notebook will be displayed. Open the link in your browser and open the planner_notebook.ipynb
file.
Write the code in the notebook and run the cells to see the results.
The report of our project can be found here.
To reproduce the results of the report, switch to the results
branch and make sure to build and source the ROS enviroment, after that run the following commands:
rosrun ariadne compare_planners.py
- The rover simulation enviroment is the one provided by NASA JPL at ROSjects. We modify the gazebo files to run with ROS Noetic.
- Our A* algorithm is based on the code stack of AtsushiSakai/PythonRobotics.