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
robot_model:=${ROBOT_MODEL:?err}
slam:=${SLAM:-True}
use_sim_time:=False