ros2 rover with autonamus capability and vision based navigation using ros2 with onboard compuer and arduino. Based on microservice arciture and usage of docker, this repo contains docker-compose file to split various parts of autonamus stack as sperate containers. For docker image size reduction, all components are placed in same docker image and with different startup commands. X11 is used for visualization.
Two Dockerfile provided, for using with or without GPU. Built docker images can be found in This DockerHub repositoriy.
All required launchfiles and configs are placed in launchfile folder.
This compose files are ment to launch whole project with various configurations.
# To start
xhost +local:
docker compose -f <file name> up -d
# To stop
docker compose -f <file name> down
Health Checks are added to make user able to monitor fuctionality of each container. It's functionality can be expanded by using ELK or monitoring stacks. It is recommended to have health check for confirming each tool to make sure it is running correctly.
Driver to use ROS2 for SLAMTEC LIDAR. all instructions needed are writen in the very link. It's worth to mention that you need to publish tf yourself. It can be used in slams like gmapping, slam_toolbox and Cartographer. To run Rtabmap change :
mkdir -p ws_rover/src && cd ws_rover/
git clone https://github.com/Slamtec/sllidar_ros2 ./src
source /opt/ros/$ROS_DISTRO/setup.bash && colcon buld --symlink-install
source ./install/setup.bash
ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 base_link laser
ros2 launch sllidar_ros2 view_sllidar_c1_launch.py # remove "view" for starting without rviz
use fallowing commands for now:
/opt/ros/$ROS_DISTRO/share/rtabmap_demos/launch/turtlebot3/turtlebot3_scan.launch.py
'frame_id':'base_link'
localization', default_value='true'
ros2 run rtabmap_odom icp_odometry
ros2 launch rtabmap_demos turtlebot3_scan.launch.py
# or use launchfile in this repo
ros2 launch /home/rover/ws_rover/volume/launchFiles/rtabmap_icp_lidar.launch.py