I have been trying to update the rosbot docker container to the latest version of the humble tag (rosbot:humble-0.14.0-20250131) and have been receiving the “failed switching to “root”: operation not permitted” as ROSbot 2 PRO: Rplidar doesn't work `root operation not permitted` - #7 by das.lab. As far as the dockers I’ve tested, every humble rosbot container released after rosbot:humble-0.10.5-20231207 gives this error for me.
Hello @das.lab,
Please temporarily use the previous version 0.13.1
. You can find an example here.
Previous version 0.13.1 (Both humble-0.13.1-20240201 and humble-0.13.1-20240207) does not work for me either. Same error with root. The latest version that I have tested that works is 0.10.5.
Hello @das.lab,
I assume that the problem is due to the lack of a USER environment variable set in compose.yaml.
I also see that you are constantly using rosbot and microros, which is incorrect because microros became part of the rosbot driver from version 0.11.0 initially as a separate launch (combined.launch.py) and from version 0.14.0 it starts automatically in bringup.launch.py.
I made a correction in docker image. This is the latest supported compose. Subsequent versions of the code will be installed locally or built locally.
x-common-config:
&common-config
network_mode: host
ipc: host
restart: unless-stopped
environment:
- USER
- ROBOT_NAMESPACE
services:
rosbot:
image: husarion/rosbot:humble-0.14.0-20250319
container_name: rosbot
<<: *common-config
devices:
- ${SERIAL_PORT:-/dev/ttyUSB0}
- /dev/bus/usb/ # FTDI
command: >
ros2 launch rosbot_bringup bringup.launch.py
mecanum:=${MECANUM:-False}
serial_port:=${SERIAL_PORT:-/dev/ttyUSB0}
astra:
image: husarion/astra:humble
container_name: astra
<<: *common-config
devices:
- /dev/bus/usb/
command: >
ros2 launch /husarion_utils/astra.launch.py
device_namespace:=camera
rplidar:
image: husarion/rplidar:humble
container_name: rplidar
<<: *common-config
devices:
- /dev/ttyRPLIDAR:/dev/ttyUSB0
command: >
ros2 launch /husarion_utils/rplidar.launch.py
serial_baudrate:=${LIDAR_BAUDRATE:-115200}
serial_port:=/dev/ttyUSB0
Please confirm if it works now.
Additionally, it informs us that we are abandoning dockers and from the next versions we will mainly use snaps, which are more convenient for the user in many ways. And snap itself is usually faster and more reliable.
snap install rosbot
sudo /var/snap/rosbot/common/post_install.sh
Additionally, it informs us that we are abandoning dockers and from the next versions we will mainly use snaps, which are more convenient for the user in many ways. And snap itself is usually faster and more reliable.
Also, familiarize yourself with snaps:
- husarion-rplidar
- husarion-depthai
- husarion-webui
Hello, sorry for the delayed reply.
The new compose.yaml file does not appear to work. It gives me "parsing /home/husarion/compose.yaml: yaml: line 5: could not find expected ‘:’ ".
I have updated the compose file to use the code that was sent:
Additionally, when reflashing the firmware, it tries to use rosbot:humble-0.6.1-20230712.
Changing the docker image to any other version within the flash_firmware.sh file gives errors:
[3/3]
Flashing the firmware...
usage: flash-firmware.py [-h] [-f [FILE]]
flash-firmware.py: error: unrecognized arguments: /root/firmware.bin
Compose
I fixed the compos formatting in previous message, that’s why you had an error related to docker compose up
.
Flashing
- Fixing the script would require adding the -f flag to the last lines of the script.
flash_firmware.sh:
50 docker run --rm -it --privileged \
51 $DOCKER_IMAGE \
52 /flash-firmware.py -f /root/firmware.bin # There is need to add -f flag
- Or you can type:
docker run --rm -it --privileged husarion/rosbot:humble-0.14.0-20250319 ros2 run rosbot_utils flash_firmware
I found a bug with IMU when ROBOT_NAMESPACE
is set. I fix this i husarion/rosbot:humble-0.14.0-20250319
image.
I have updated the flash file with the “-f” flag that you recommended. The file now works without issue.
I have updated the compose.yaml. Everything works as intended. Thank you.
Both the rosbot and rplidar docker containers are able to be launched without issue.
I had hoped that updating to the latest version of the rosbot docker would fix an issue I was encountering with the way rosbots respond to namespaces, but it appears that said issue still persists. I will make a new forum topic regarding this issue.