Is there a new Docker Image for ROSBOT 2R Humble

I purchased six Rosbot 2Rs from Husarion last year. I purposefully tried to by a pre-made robot so I would not have to worry about driver issues. I and a student have spent almost a year now trying to work on getting the packaged rosbot 2r to work with astra.

The docker image that came was updated to the latest version and micro-ros, rosbot and lidar work fine. The astra camera does not. It will run, but it will not publish anything.

I downloaded a new docker version for astra, but the robot cannot see the topics. The closest I have been able to get is using a different docker file where remote participants can see the camera, but the robot cannot. I have tried to compile the driver for astra, but they are using password protection on one of the repositories. Note: this is being invoked by the source package I already downloaded during build.

So… Is there a docker image for ROS 2 - that will run all four components and get the camera to work?
I need to be able to bring up the robot, and then in another terminal use ros2 topic list and see all the topics from the robot itself.

Any help would be greatly appreciated.

Hello @Brad_Towle,

The compose you are using should work the way you expect by default. If you encounter any problems with the camera, first try to analyze the camera logs. To do this:

  1. Disable all containers:
    docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)

  2. Run only the astra container
    docker compose up astra

As a result, you should get (last 3 lines):

hussarion-astra-1 | [astra_camera_node-1] [INFO] [1715591054.208311604] [camera.camera]: depth is started
hussarion-astra-1 | [astra_camera_node-1] [INFO] [1715591054.587110859] [camera.camera]: color is started
hussarion-astra-1 | [astra_camera_node-1] [INFO] [1715591054.632109758] [camera.camera]: device started.

If the last lines of the logs are different from those above, please send them.

If the logs look the same you can use rviz to show camera image:
camera

Simplified compose
Additionally, it informs that since the release of the Husarion OS image, compose has been significantly simplified and I am currently using this version myself.

x-common-config:
  &common-config
  environment:
   - ROBOT_NAMESPACE
  network_mode: host
  ipc: host
  restart: unless-stopped

services:

  rosbot:
    image: husarion/rosbot:humble-0.13.1-20240201
    <<: *common-config
    devices:
      - ${SERIAL_PORT:?err}
    command: >
      ros2 launch rosbot_bringup combined.launch.py
        mecanum:=${MECANUM:-False}
        serial_port:=$SERIAL_PORT
        serial_baudrate:=576000

  astra:
    image: husarion/astra:humble
    <<: *common-config
    devices:
      - /dev/bus/usb/
    command: ros2 launch /husarion_utils/astra.launch.py


  rplidar:
    image: husarion/rplidar:humble
    <<: *common-config
    devices:
      - /dev/ttyRPLIDAR:/dev/ttyUSB0
    command: >
        ros2 launch sllidar_ros2 sllidar_launch.py
        serial_baudrate:=${RPLIDAR_BAUDRATE:-256000}

Flash firmware
After changing the image version, it is recommended to upload the firmware compatible with the image version (Note in compose and flash command we use the same rosbot:humble-0.13.1 version).

docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
docker run --rm -it --privileged husarion/rosbot:humble-0.13.1-20240201 flash-firmware.py -f /root/firmware.bin

Pull latest image
And pull the latest images for the sensor

docker compose pull

Detached mode
If you want run containers in the background, just add -d flag e.g. docker compose -f <file_name>.yaml up -d

Thank you.
I thought I pulled the latest image after the flash, I guess I did not.

I’m glad you solved the problem! :grinning: