Skip to main content

Docker Images for Husarion robots

Welcome. In this section you will find useful information about Docker images for our company's robots. Below is a table presenting in a compact form Docker images enabling quick launch of a given robot. 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.

Hardware

Here's the list of Docker images hosted on Husarion's Docker Hub to be run on the real robots:

NameImageDescriptionTagsArchitectures
Panther
husarion/pantherStatus Badge
Docker image with a Panther ROS package
noetic
arm64
ROSbot XL
husarion/rosbot-xlStatus Badge
ROSbot XL image to run on the real hardware and in simulation (under separate tags)
humble
amd64 arm64
ROSbot 2R/PRO
husarion/rosbotStatus Badge
Docker images for ROSbot 2, ROSbot 2R and ROSbot 2 PRO robots.
humble
amd64 arm64

Simulation

Here's the list of Docker images hosted on Husarion's Docker Hub with robot simulations to be run on your computer:

NameImageDescriptionTagsArchitectures
Gazebo: Panther
husarion/panther-gazeboStatus Badge
Image for simulation of Panther in Gazebo
noetic
amd64
Gazebo: ROSbot XL
husarion/rosbot-xl-gazeboStatus Badge
Gazebo simulation of ROSbot XL
humble
amd64
Gazebo: ROSbot 2R / 2 PRO
husarion/rosbot-gazeboStatus Badge
Gazebo simulation of ROSbot 2R / 2 PRO
humble
amd64
Webots: ROSbot 2R / XL
husarion/webotsStatus Badge
Dockerized Webots simulations for Husarion robots
humble
amd64
galactic
amd64
O3DE: ROSbot XL
husarion/o3deStatus Badge
O3DE simulation with Husarion robots
1.2.0
amd64
1.1.1
amd64

Minimal setup

In this section you can find minimal setup for running the container on a specific robot.

Panther

danger

This Docker image is intended to be run on the Built-in Computer. DO NOT run it on the User Computer (the one located in the User Shelf).

Also note that in the production setup in Panther, the ROS node is already launched!

compose.yaml
# Launching:
# docker compose up

x-common-config:
&common-config
network_mode: host
restart: always
ipc: host
tty: true
environment:
- ROS_IP=10.15.20.2
- ROS_MASTER_URI=http://10.15.20.2:11311

services:

ros_master:
image: ros:noetic-ros-core
<<: *common-config
command: roscore

panther_ros:
image: husarion/panther:noetic-1.0.0-20230324-stable
<<: *common-config
privileged: true
env_file: /tmp/panther_config.conf
volumes:
- ~/.ssh/id_rsa:/root/.ssh/id_rsa
- /tmp/panther_config.yaml:/tmp/panther_config.yaml
command: >
roslaunch --wait
panther_bringup bringup.launch

ROSbot XL

compose.yaml
# Launching:
# docker compose up

services:

rosbot-xl:
image: husarion/rosbot-xl:humble-0.8.2-20230712
command: ros2 launch rosbot_xl_bringup bringup.launch.py mecanum:=${MECANUM:-True}

micro-ros:
image: husarion/micro-xrce-agent:v2.4.1
ports:
- 8888:8888/udp
command: MicroXRCEAgent udp4 --port 8888
info

Before running this compose.yaml, make sure you have the proper version of the firmware installed on the microcontroller. To do so:

docker run --rm -it --privileged \
--mount type=bind,source=/dev/ttyUSBDB,target=/dev/ttyUSBDB \
husarion/rosbot-xl:humble-0.8.2-20230712 \
flash-firmware.py -p /dev/ttyUSBDB

ROSbot 2R/ 2 PRO

compose.yaml
# Launching:
# docker compose up

services:

rosbot:
image: husarion/rosbot:humble-0.6.1-20230712
command: ros2 launch rosbot_bringup bringup.launch.py mecanum:=${MECANUM:-False}

micro-ros:
image: husarion/micro-xrce-agent:v2.4.1
devices:
- ${SERIAL_PORT:?err}
environment:
- SERIAL_PORT
command: MicroXRCEAgent serial -D $SERIAL_PORT serial -b 576000
info

Before running this compose.yaml, make sure you have the proper version of the firmware installed on the microcontroller. To do so:

docker run --rm -it --privileged \
husarion/rosbot:humble-0.6.1-20230712 \
/flash-firmware.py /root/firmware.bin