Panther ros2_control_node error CAN frame: Network is down

I just migrated Panther from ROS1 to ROS2 following the Operating System Reinstallation | Husarion

I am using ROS2 humble. Using the web gui the robot starts driving, and i can see the CAN network being created but then during the drive the robot stops i get this error from husarion_ugv_ros:

[component_container-8] [INFO] [1759423392.375172994] [panther.lights_controller]: Initialized successfully.
[lights_manager_node-9] [INFO] [1759423392.388429373] [BehaviorTreeManager]: Groot2 publisher started on port 5555
[lights_manager_node-9] [INFO] [1759423392.410702465] [panther.lights_manager]: Initialized successfully.
[safety_manager_node-10] [INFO] [1759423392.428714874] [panther.safety_manager]: Waiting for required system messages to arrive.
[lights_manager_node-9] [INFO] [1759423392.511408746] [panther.lights_manager]: Waiting for required system messages to arrive.
[battery_driver_node-7] [INFO] [1759423393.759595621] [panther.battery_driver]: Initialized battery driver using ADC data.
[ros2_control_node-1] [WARN] [1759423610.289900843] [UGVSystem]: PDO motor state data timeout.
[ros2_control_node-1] [WARN] [1759423610.339992941] [UGVSystem]: PDO driver state timeout.
[ros2_control_node-1] NMT: heartbeat time out occurred for node 1
[ros2_control_node-1] NMT: error indicated for optional slave 1
[ros2_control_node-1] [ERROR] [1759423610.500003329] [UGVSystem]: An exception occurred while updating motors states: Motor controller heartbeat timeout.
[ros2_control_node-1] [ERROR] [1759423610.500370956] [UGVSystem]: An exception occurred while updating drivers states: Motor controller heartbeat timeout.
[ros2_control_node-1] NMT: heartbeat time out occurred for node 2
[ros2_control_node-1] NMT: error indicated for optional slave 2
[ros2_control_node-1] [WARN] [1759423612.397217363] [UGVSystem]: An exception occurred while handling the request: Failed to turn off E-stop on rear driver: Error when trying to turn off E-stop: Error msg: SDO protocol timed out
[ros2_control_node-1] [ERROR] [1759423615.509928994] [UGVSystem]: An exception occurred while updating motors states: Motor controller heartbeat timeout.
[ros2_control_node-1] [ERROR] [1759423615.520025087] [UGVSystem]: An exception occurred while updating drivers states: Motor controller heartbeat timeout.
[ros2_control_node-1] warning: error writing CAN frame: Operation canceled
[ros2_control_node-1] warning: error reading CAN frame: Network is down
[ros2_control_node-1] warning: error reading CAN frame: No such device
[ros2_control_node-1] warning: error writing CAN frame: No such device or address
[ros2_control_node-1] [WARN] [1759423618.442414162] [UGVSystem]: An exception occurred while handling the request: Failed to turn off E-stop on rear driver: Error when trying to turn off E-stop: Error msg: SDO protocol timed out
[ros2_control_node-1] [ERROR] [1759423620.509922009] [UGVSystem]: An exception occurred while updating motors states: Motor controller heartbeat timeout.
[ros2_control_node-1] [ERROR] [1759423620.520029528] [UGVSystem]: An exception occurred while updating drivers states: Motor controller heartbeat timeout.
[ros2_control_node-1] [ERROR] [1759423625.509925043] [UGVSystem]: An exception occurred while updating motors states: Motor controller heartbeat timeout.
[ros2_control_node-1] [ERROR] [1759423625.520046265] [UGVSystem]: An exception occurred while updating drivers states: Motor controller heartbeat timeout.
[ros2_control_node-1] [ERROR] [1759423630.509935520] [UGVSystem]: An exception occurred while updating motors states: Motor controller heartbeat timeout.
[ros2_control_node-1] [ERROR] [1759423630.560072858] [UGVSystem]: An exception occurred while updating drivers states: Motor controller heartbeat timeout.
[ros2_control_node-1] [ERROR] [1759423635.509941813] [UGVSystem]: An exception occurred while updating motors states: Motor controller heartbeat timeout.
[ros2_control_node-1] [ERROR] [1759423635.560099558] [UGVSystem]: An exception occurred while updating drivers states: Motor controller heartbeat timeout.
[ros2_control_node-1] [ERROR] [1759423640.509924087] [UGVSystem]: An exception occurred while updating motors states: Motor controller heartbeat timeout.

More logs from sudo dmesg | grep can:
[ 9.530337] can: controller area network core
[ 9.536662] can: raw protocol
[ 9.593466] slcan: serial line CAN interface driver
[ 20.666279] can0: slcan on ttyACM0.
[ 20.666615] robot_can: renamed from can0
[ 20.718261] robot_can (unregistered): slcan off ttyACM0.
[ 25.756715] can0: slcan on ttyACM0.
[ 25.756905] robot_can: renamed from can0
[ 1082.924679] robot_can: failed to send close command ‘C\r’
[ 1082.942158] robot_can (unregistered): slcan off ttyACM0.
[ 1084.053635] can0: slcan on ttyACM0.
[ 1084.055119] robot_can: renamed from can0
[ 1084.107021] robot_can (unregistered): slcan off ttyACM0.
[ 1089.127402] can0: slcan on ttyACM0.
[ 1089.127568] robot_can: renamed from can0
[ 3812.617501] robot_can: failed to send close command ‘C\r’
[ 3812.641737] robot_can (unregistered): slcan off ttyACM0.

Please provide serial number and hw version

Hi @RafalGorecki

The robot serial number is: 953e

The robot hardware version is: 1.2

Thanks a lot for the help

Thanks @Milan_Groshev for the information,
Please try flashing the firmware to UCCB. Instructions for doing so are available in another community thread: Panther build-in computer does not see CAN network after system reinstall - #4 by RafalGorecki .

If that doesn’t help, make sure you’ve got the right motor driver configuration for Panther v1.23:

Thanks for the tips. I will try flashing the firmware to UCCB.

Regarding the motor drivers configuration, when i followed the tutorial i donwnloaded and installd the Panther v0.1-v1.23 files:
v21a-051923 firmware
v2.1-SBL2360T config drivers and the script_20240819.hex.

I followed the installation instructions and they were installed correctly to both controllers.

I can repeat the same procedure just in case

I followed the instructions from the post , disconected the white cable and run sudo hw_uccb_update, but now i get:

Error. Serial port /dev/ttyAMA1 does not exist!

and in /dev i can see that i have ttyAMA0 and ttyAMA5 but i don’t have ttyAMA1

Should i use sudo hw_uccb_update -s /dev/ttyAMA5 ?

Please try sudo hw_uccb_update -s /dev/ttyAMA5
and please let me know if the script worked correctly

Thanks for the confirmation. It looks like the script worked correctly:

husarion@husarion:~$ sudo hw_uccb_update -s /dev/ttyAMA5
Bringing down CAN interface…
Enetring microcontroller into bootloader…
Bootloader entered
Disabling flash write-protection
Disabling flash read-protection
Flashing the firmware…
Restarting microcontroller
Flashed successfully!
Starting CAN interface back again…
CAN is up again!

And i can confirm that now the robot drivers are working correctly with ROS2. I used the web gui to drive the robot arround and it didn’t brake. Thasnk a lot @RafalGorecki

On the docker logs the only thing i can see that is not [INFO] is:

[ekf_node-11] Failed to meet update rate! Took 0.020349490000000001327seconds. Try decreasing the rate, limiting sensor output frequency, or limiting the number of sensors.
[ros2_control_node-1] [WARN] [1759929523.912117096] [UGVSystem]: PDO motor state data timeout.

Is this something that i need to be Worried about ?

@Milan_Groshev
I’m glad you managed to solve the problem.
Don’t worry about the logs you mentioned. They’re common, don’t cause problems, and difficult to get rid of.

1 Like