This is my repo for the Robot Autonomy course of DTU.
- A docker image to be able to run ROS using docker but without using VNC (it's too laggy).
- An implementation of an ICP to compute the Odometry of the robot using the lidar.
You can start it using the launch file
ros2 launch robot_autonomy_seb icp_standalone.launch.py
. - An implementation of a mapping solution. It uses a gaussian sensor model for the lidar, bresenham algorithm and bayes
law to account for the previous measurements. You can start it using the launch
file
ros2 launch robot_autonomy_seb map_standalone.launch.py
. - An implementation of the Next Best View algorithm. You can start it using the launch
file
ros2 launch robot_autonomy_seb nbv_standalone.launch.py
.
To make it easier to test the implemented algorithms I sometimes used unit tests. They can be run using:
colcon test --packages-select robot_autonomy_seb --event-handlers console_direct+
This will not work on Windows, and probably not either of macOS. This is because it requires X11 forwarding to be able to display the apps directly on the host (see Good to know). This was only tested on Ubuntu 22.04.
# Clone this repo
git clone [email protected]:Seb-sti1/robot_autonomy.git --recursive
# Start the docker compose file
docker compose up -d
At this point you should have a konsole that popup. If you don't see anything,
try running xhost +local:
and retry. If you do that, please run xhost -local:
when you
are not working on the docker: this is for security reason.
If after this, it still doesn't work please consider opening an issue.
The image use was build locally (maybe one day I will do the GitHub Action) using the Dockerfile
in this repo
and is accessible on Docker Hub.
To allow you to open GUI like rviz2
, gazebo
and so on the docker compose adds all the
parameters to forward the X11 session. This requires the xhost
on the host to authorise
the connexion, and this should work just fine if the ros2 user (from the docker) has the same user id
as the user from your linux (run id -u
on the host to know what is the id of your
user, the id of the ros2 user is 1000
). There could be a thousand reason why the id of
your user wouldn't be the same, so you can use xhost +local:
to allow any local connexion.
As said earlier this is not the most robust configuration and I highly recommend to
run xhost -local:
at the end of your coding session.
If you want to test the package without using my docker image, you just need to make sure that
the colcon_workspace
folder of this repo is inside the src
(or is the src
) of your colcon
workspace of ROS2.
Any feedback & contribution are welcome.
The software is provided "as is", without warranty of any kind.
See the LICENSE file.