Skip to main content

Docker Images for SLAM & navigation

In this section you will find useful information about Docker images used to run autonomous functionalities for Husarion robots. Below is a table presenting in a compact form Docker images enabling quick launch of a given functionalities. Below the tables, you will also find a chapter Minimal Setup showing the minimum configuration of the container that is needed for proper startup (e.g. in the case of a camera, specify the device port).

If you are not sure how to launch images you can learn it form Examples section.

Available images​

Here's the list of Docker images hosted on Husarion's Docker Hub profile:

NameImageDescriptionTagsArchitectures
Husarion UGV Autonomy
husarion/husarion-ugv-autonomyStatus Badge
Docker image for https://github.com/husarion/husarion_ugv_autonomy_ros ROS 2 Package
jazzy
amd64 arm64
humble
amd64 arm64
ROSbot 3 / XL Autonomy
husarion/rosbot-autonomyStatus Badge
Docker image for https://github.com/husarion/rosbot_autonomy_ros ROS 2 package
jazzy
amd64 arm64
humble
amd64 arm64

Minimal setup​

In this section you can find the minimum configuration to run specific functionality.

Husarion UGV Autonomy​

compose.yaml
x-common-config:
&common-config
network_mode: host
ipc: host
env_file: .env

services:

docking:
# image: husarion/husarion-ugv-autonomy:jazzy-jazzy-devel
build:
context: ..
dockerfile: docker/Dockerfile
container_name: docking
<<: *common-config
volumes:
- ./config:/config
- ../husarion_ugv_docking:/ros2_ws/src/husarion_ugv_autonomy_ros/husarion_ugv_docking
command: >
ros2 launch husarion_ugv_docking docking.launch.py
namespace:=${ROBOT_NAMESPACE:-panther}
use_wibotic_info:=${USE_WIBOTIC_INFO:-True}
camera_image_topic:=${CAMERA_IMAGE_TOPIC:-/panther/camera/color/image_raw}
camera_info_topic:=${CAMERA_INFO_TOPIC:-/panther/camera/color/camera_info}
apriltag_output_dir:=/config/apriltags
apriltag_size:=0.08
use_sim:=False

navigation:
# image: husarion/husarion-ugv-autonomy:jazzy-jazzy-devel
build:
context: ..
dockerfile: docker/Dockerfile
container_name: navigation
<<: *common-config
volumes:
- ./config:/config
- ../maps:/maps
- ../husarion_ugv_navigation:/ros2_ws/src/husarion_ugv_autonomy_ros/husarion_ugv_navigation
command: >
ros2 launch husarion_ugv_navigation bringup_launch.py
namespace:=${ROBOT_NAMESPACE:-panther}
observation_topic:=${OBSERVATION_TOPIC:-err}
observation_topic_type:=${OBSERVATION_TOPIC_TYPE:-err}
slam:=${SLAM:-True}
use_sim_time:=False
robot_model:=${ROBOT_MODEL:-panther}

ROSbot 3 / XL Autonomy​

compose.yaml
services:

rosbot_navigation:
build:
context: ..
dockerfile: docker/Dockerfile
network_mode: host
ipc: host
env_file:
- .env
volumes:
- ./dds-config-udp.xml:/udp_profile.xml:ro
- ../rosbot_navigation:/ros2_ws/src/rosbot_autonomy_ros/rosbot_navigation
- ../maps:/maps
command: >
ros2 launch rosbot_navigation bringup.launch.py
controller:=${CONTROLLER:-mppi}
map:=/maps/map.yaml
map_save_path:=/maps/map
robot_model:=${ROBOT_MODEL:?err}
slam:=${SLAM:-True}
use_sim_time:=False