ROSbot XL Docker setup on RPi5

Hello,

I’m trying to use a Raspberry Pi 5 as the SBC for my ROSbot XL. I’m running the stock Raspberry Pi OS (Raspbian) on the RPi5 and wanted to control the robot using the dockerized approach provided by Husarion.

I configured the Ethernet interface on the Raspberry Pi to the expected static address:

192.168.77.2/24

and connected the RPi directly to the ROSbot XL controller via Ethernet and the micro USB port.

I then tried to start the system following the docker-based workflow. Initially I used two separate terminals:

Terminal 1 – micro-ROS agent

docker run -it --rm --network host \
  husarion/micro-xrce-agent:v2.4.1 \
  MicroXRCEAgent udp4 --port 8888

Terminal 2 – ROSbot bringup

docker run -it --rm --network host --privileged \
  husarion/rosbot-xl:humble

Inside the container:

source /opt/ros/humble/setup.bash
source /ros2_ws/install/setup.bash
ros2 launch rosbot_xl_bringup bringup.launch.py

With this setup the system partially works:

  • /battery_state topic is published correctly

  • /cmd_vel can be published

However:

  • the robot does not move

  • /joint_states and /rosbot_xl_base_controller/odom remain empty

  • controller logs show warnings like:

Feedback message from motors wasn't received yet

I also tried flashing the STM32 firmware from the docker container using:

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

The flash completed successfully, however nothing changed.

Can anyone help? I know that I’m not using the Husarion OS, but I thought that using Docker images is enogh.

Thanks, Mateusz

Hi @Mateusz_Norek,

Snap
For over a year, the primary distribution source for our software for ROSbot 3 and XL has been snap: https://snapcraft.io/rosbot

For both humble and jazzy:

# Instalation
sudo snap install rosbot --channel humble/jazzy

# Configuration
sudo /var/snap/rosbot/common/post_install.sh
sudo snap set rosbot driver.robot-model=rosbot/rosbot-xl

# Flashing
sudo rosbot.flash

# Running
sudo rosbot

and this is the recommended software version.

Docker

If you prefer to use Docker, that’s also an option. However, the latest images for ROSbot XL are located in the husarion/rosbot repository, not husarion/rosbot_xl.

Example:

husarion/rosbot:jazzy-0.18.8-20260316

compose.yaml can be found in rosbot_ros repository.

*microros is part of husarion/rosbot image no need to run it separately.