Hello,
after following the build-in computer system reinstall guide Operating System Reinstallation | Husarion (including motor drivers firmware update required when moving from ROS to ROS 2) the build-in computer does not seem to detect its CAN interface (in case of both ROS2 Humble and ROS2 Jazzy images).
The docker container husarion_ugv_ros keeps restarting because of that – a relevant log entries seem to be:
[INFO] [ros2_control_node-1]: process started with pid [99]
[INFO] [spawner-3]: process started with pid [103]
[INFO] [system_monitor_node-4]: process started with pid [105]
[INFO] [robot_state_publisher-2]: process started with pid [101]
[system_monitor_node-4] [INFO] [1753709086.391840506] [panther.system_monitor]: Initializing.
[system_monitor_node-4] [INFO] [1753709086.399895844] [panther.system_monitor]: Initialized successfully.
[ros2_control_node-1] [WARN] [1753709086.437595967] [panther.controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use '~/robot_description' topic from 'robot_state_publisher' instead.
[ros2_control_node-1] [INFO] [1753709086.438716222] [resource_manager]: Loading hardware 'panther/panther_system'
[ros2_control_node-1] [INFO] [1753709086.488309093] [resource_manager]: Initialize hardware 'panther/panther_system'
[ros2_control_node-1] [INFO] [1753709086.488672813] [resource_manager]: Successful initialization of hardware 'panther/panther_system'
[ros2_control_node-1] [INFO] [1753709086.488847535] [resource_manager]: Loading hardware 'panther/imu'
[ros2_control_node-1] [INFO] [1753709086.490378455] [resource_manager]: Initialize hardware 'panther/imu'
[ros2_control_node-1] [INFO] [1753709086.490625083] [resource_manager]: Successful initialization of hardware 'panther/imu'
[ros2_control_node-1] [INFO] [1753709086.490878453] [resource_manager]: 'configure' hardware 'panther/imu'
[ros2_control_node-1] [INFO] [1753709086.491180136] [resource_manager]: Successful 'configure' of hardware 'panther/imu'
[ros2_control_node-1] [INFO] [1753709086.491267877] [resource_manager]: 'activate' hardware 'panther/imu'
[ros2_control_node-1] [INFO] [1753709086.525613033] [PhidgetImuSensor]: Calibrating IMU sensor please ensure the robot remains stationary for 2 seconds.
[ros2_control_node-1] [INFO] [1753709086.730655471] [PhidgetImuSensor]: IMU sensor calibration completed.
[ros2_control_node-1] [INFO] [1753709086.730994784] [PhidgetImuSensor]: Compass correction parameters not found. Skipping compass configuration.
[ros2_control_node-1] [INFO] [1753709086.731092302] [PhidgetImuSensor]: Heating configuration parameter not found. Skipping heating setup.
[ros2_control_node-1] [INFO] [1753709086.731171691] [resource_manager]: Successful 'activate' of hardware 'panther/imu'
[ros2_control_node-1] [INFO] [1753709086.731231894] [resource_manager]: 'configure' hardware 'panther/panther_system'
[ros2_control_node-1] [INFO] [1753709086.737089648] [UGVSystem]: Successfully configured GPIO controller.
[ros2_control_node-1] An exception occurred while initializing CAN: CanController: No such device
[ros2_control_node-1] An exception occurred while handling operation() function, attempt 1 of 5: Failed to initialize robot driver: CANopenManager not initialized.
[ros2_control_node-1] An exception occurred while initializing CAN: CanController: No such device
[ros2_control_node-1] An exception occurred while handling operation() function, attempt 2 of 5: Failed to initialize robot driver: CANopenManager not initialized.
[ros2_control_node-1] An exception occurred while initializing CAN: CanController: No such device
[ros2_control_node-1] An exception occurred while handling operation() function, attempt 3 of 5: Failed to initialize robot driver: CANopenManager not initialized.
[ros2_control_node-1] An exception occurred while initializing CAN: CanController: No such device
[ros2_control_node-1] An exception occurred while handling operation() function, attempt 4 of 5: Failed to initialize robot driver: CANopenManager not initialized.
[ros2_control_node-1] An exception occurred while initializing CAN: CanController: No such device
[ros2_control_node-1] An exception occurred while handling operation() function, attempt 5 of 5: Failed to initialize robot driver: CANopenManager not initialized.
[ros2_control_node-1] [ERROR] [1753709086.740514579] [UGVSystem]: Failed to initialize GPIO, Motors, or E-Stop controllers. Error: Roboteq drivers initialization failed.
Looking in /usr/local/sbin/robot_can_setup.sh, it seems that an expected CAN device should be /dev/overlay in my case – the system provides no such device.
I would be grateful if you could provide some help with this issue,
Krzysztof Gierlowski
Hello @Krzysztof_Gierlowski,
Please provide the robot’s serial number. Also, please let me know if the Roboteq installation was successful, including firmware, configuration, and script updates.
Regards
Hello,
the serial is 0938, hardware version 1.22.
Firmware/config/script update finished without errors and Roborun+ reports firmware to be v2.1a SBL2XXX 05/19/2023. As for config, it also seems ok, as e.g. CAN ID are different (ID 2 for rear and ID 1 for forward) between the controllers.
I have also verified that all of the images for in-build computer available on the website (Noetic, Humble, Jazzy) cause similar problem in my case. In Jazzy image, I can see serial devices ttyAMA0 and ttyAMA5. In Humble ttyAMA0 and ttyAMA1. In our original installation, where CAN seems to be working (“[/panther/driver_node] Connected to the CAN bus.”, but later “[/panther/driver_node] Failed to read front controller TPDO configuration.” probably due to updated firmware) slcan_attach uses /dev/ttyAMA1.
Best regards,
KG
I suggest try flash UCCB
- Turn off the robot and the rotary switch. It is recommended to also remove the battery, but if you are confident that no screws will fall into the rear service compartment, you may skip disconnecting the battery at your own risk. The battery does not need to be secured with screws until the final step.
- Remove the rear service space.
- Disconnect the following cable:
- Plug in the battery again and power on the robot.
- Run the following command in the terminal: sudo hw_uccb_update. Please note that this script will flash the new firmware to the Overlay board. The firmware is already included in the Built-In OS image. This operation is required for all robots with Overlay version >=1.30. You can verify your version by using the command: echo $ROBOT_SBC_OVERLAY_VERSION.
- Turn off the robot again.
- Reconnect the white plug.
- Turn on the robot and verify that the issue has been resolved by checking the output of the
ifconfig command. It should list robot_can, and your container configuration should run correctly.
- Close the cover (disconnecting the battery is recommended) and secure the battery with screws, if applicable.
If this doesn’t help, please send me som logs:
sudo systemctl status robot_can_setup.service or sudo systemctl status panther_can_setup.service
sudo journalctl -u panther_can_setup.service
sudo dmesg | grep can
There are some differences in hardware layout (see photo) - most importantly there is no cable with the white plug. Additionally, hw_uccb_update attempts to use /dev/ttyAMA1 while there are only ttyAMA0 and ttyAMA5 present. Should I do the procedure with hw_uccb_update -s /dev/ttyAMA5 (which I expect to be CAN-related)?
The logs you requested are included below.
husarion@husarion:~$ sudo systemctl status robot_can_setup.service
× robot_can_setup.service - Enable CAN port for Husarion UGV
Loaded: loaded (/etc/systemd/system/robot_can_setup.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Fri 2025-08-01 11:48:14 UTC; 48s ago
Duration: 10.221s
Process: 920 ExecStart=/usr/local/sbin/robot_can_setup.sh (code=exited, status=255/EXCEPTION)
Main PID: 920 (code=exited, status=255/EXCEPTION)
CPU: 110ms
Aug 01 11:48:04 husarion robot_can_setup.sh[920]: slcan_attach...
Aug 01 11:48:04 husarion robot_can_setup.sh[939]: /dev/overlay: No such file or directory
Aug 01 11:48:09 husarion robot_can_setup.sh[920]: slcand...
Aug 01 11:48:09 husarion slcand[1123]: starting on TTY device /dev/overlay
Aug 01 11:48:09 husarion slcand[1123]: failed to open TTY device /dev/overlay
Aug 01 11:48:09 husarion robot_can_setup.sh[1123]: /dev/overlay: No such file or directory
Aug 01 11:48:09 husarion robot_can_setup.sh[920]: ifconfig...
Aug 01 11:48:14 husarion robot_can_setup.sh[1419]: robot_can: ERROR while getting interface flags: No such device
Aug 01 11:48:14 husarion systemd[1]: robot_can_setup.service: Main process exited, code=exited, status=255/EXCEPTION
Aug 01 11:48:14 husarion systemd[1]: robot_can_setup.service: Failed with result 'exit-code'.
husarion@husarion:~$ sudo journalctl -u robot_can_setup.service
-- Boot da8df0eadba1487aa565cb563b9faa36 --
Aug 01 11:48:04 husarion systemd[1]: Started robot_can_setup.service - Enable CAN port for Husarion UGV.
Aug 01 11:48:04 husarion robot_can_setup.sh[920]: SBC Overlay version: 1.3
Aug 01 11:48:04 husarion robot_can_setup.sh[920]: Setting up CAN for Husarion UGV. Serial port: /dev/overlay
Aug 01 11:48:04 husarion robot_can_setup.sh[920]: slcan_attach...
Aug 01 11:48:04 husarion robot_can_setup.sh[939]: /dev/overlay: No such file or directory
Aug 01 11:48:09 husarion robot_can_setup.sh[920]: slcand...
Aug 01 11:48:09 husarion slcand[1123]: starting on TTY device /dev/overlay
Aug 01 11:48:09 husarion slcand[1123]: failed to open TTY device /dev/overlay
Aug 01 11:48:09 husarion robot_can_setup.sh[1123]: /dev/overlay: No such file or directory
Aug 01 11:48:09 husarion robot_can_setup.sh[920]: ifconfig...
Aug 01 11:48:14 husarion robot_can_setup.sh[1419]: robot_can: ERROR while getting interface flags: No such device
Aug 01 11:48:14 husarion systemd[1]: robot_can_setup.service: Main process exited, code=exited, status=255/EXCEPTION
Aug 01 11:48:14 husarion systemd[1]: robot_can_setup.service: Failed with result 'exit-code'.
husarion@husarion:~$ sudo dmesg | grep can
[ 0.124761] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[ 0.124778] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[ 0.124793] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[ 0.124807] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[ 9.595756] can: controller area network core
[ 9.602700] can: raw protocol
[ 9.668995] slcan: serial line CAN interface driver
Hello @Krzysztof_Gierlowski,
From what I’ve gathered, you have a model that communicates with the CAN bus via UART, not USB like the rest. This cable was most likely included, but I can’t confirm this, as it’s been a while since it was shipped. Please check it, and if you can’t find it, please contact us at support@husarion.com. We’ll try to provide the missing component.
Alternatively, you could try patching the operating system, but since this is an isolated incident, it’s easier to bring the hardware up to standard.
Yes, our original software image confirms it. Thank you for the information and suggestions - I will contact the support by email.