[Clearpath Husky] Update Husky (ORIN AGX) to ROS2, no MCU Connection

Hello,
I have tried to update our Husky A200 (ORIN AGX, Jetpack version unknown) to Ros2 using the online manual (Robot Installation | Clearpath Robotics Documentation).
Now I have the problem that I seem to have no connection to the installed microcontroller, I only see the following ROS Topics:

administrator@ubuntu:~$ ros2 topic list
/a200_0000/cmd_vel
/a200_0000/diagnostics
/a200_0000/joy_teleop/cmd_vel
/a200_0000/joy_teleop/joy
/a200_0000/joy_teleop/joy/set_feedback
/a200_0000/platform/cmd_vel_unstamped
/a200_0000/platform/emergency_stop
/a200_0000/platform/joint_states
/a200_0000/platform/odom
/a200_0000/platform/odom/filtered
/a200_0000/platform/wifi_connected
/a200_0000/platform/wifi_status
/a200_0000/robot_description
/a200_0000/sensors/lidar2d_0/diagnostics
/a200_0000/sensors/lidar2d_0/laser_status
/a200_0000/sensors/lidar2d_0/scan
/a200_0000/sensors/lidar3d_0/diagnostics
/a200_0000/sensors/lidar3d_0/scan
/a200_0000/sensors/lidar3d_0/velodyne_packets
/a200_0000/sensors/lidar3d_0/velodyne_points
/a200_0000/set_pose
/a200_0000/tf
/a200_0000/tf_static
/a200_0000/twist_marker_server/cmd_vel
/a200_0000/twist_marker_server/feedback
/a200_0000/twist_marker_server/update
/parameter_events
/rosout
administrator@ubuntu:~$ ros2 node list
/a200_0000/ekf_node
/a200_0000/joy_node
/a200_0000/namespaced_base_link_static_tf
/a200_0000/namespaced_odom_static_tf
/a200_0000/robot_state_publisher
/a200_0000/sensors/camera_0/camera
/a200_0000/sensors/lidar2d_0/urg_node
/a200_0000/sensors/lidar3d_0/velodyne_driver_node
/a200_0000/sensors/lidar3d_0/velodyne_laserscan_node
/a200_0000/sensors/lidar3d_0/velodyne_transform_node
/a200_0000/teleop_twist_joy_node
/a200_0000/transform_listener_impl_aaaadb488550
/a200_0000/twist_mux
/a200_0000/twist_server_node
/a200_0000/wireless_watcher

According to the online API (ROS 2 MCU API | Clearpath Robotics Documentation), MCU and Motor Topics should also appear here.
Since we have upgraded another PC, the installation of the update did not work as described in the manual because the following command does not work (sudo apt install ros-humble-clearpath-robot). My guess is that this package is not yet available for arm64. So I installed ROS2 itself and compiled the package myself.
Unfortunately I don’t know how to connect to the MCU. Do you have a manual or can you help me?

Edit:
unfortunately i can’t tell which Jetpack version we have or if it is installed at all, on “sudo apt-cache show nvidia-jetpack” i only get “no packages found”.

Update:
if i run “ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0 -v6” i only get a init and a set_verbose_level and no create_client:
[1698311799.798886] info | TermiosAgentLinux.cpp | init | running…
| fd: 3
[1698311799.799341] info | Root.cpp | set_verbose_level | logger setup
| verbose_level: 6

Dear @Felix1,

According to the online API (ROS 2 MCU API | Clearpath Robotics Documentation), MCU and Motor

This manual is for the Jackal and is not applicable to the Husky. Instructions for upgrade are docs. To my knowledge there is no microros running for the Husky, and it should work directly once the packages are installed and the udev rules as well.

1 Like

Hello @Sohail ,

i don’t see where it says it just for the Jackal but the linked Instructions from you workt.
Thanks very much :slight_smile:

1 Like

Hello @Sohail ,
i’ve just noticed i don’t have a topic that shows me the current battery voltage (im pretty sure i could see this in ros1 under a topic called power or something like this) and also the /e_stop topic is always empty even if i push the e-stop button.
The topics and nodes i have are:
administrator@ubuntu:~ros2 topic list
/cmd_vel
/diagnostics
/dynamic_joint_states
/e_stop
/husky_velocity_controller/cmd_vel_unstamped
/husky_velocity_controller/odom
/husky_velocity_controller/transition_event
/imu/data
/joint_state_broadcaster/transition_event
/joint_states
/joy_teleop/cmd_vel
/joy_teleop/joy
/joy_teleop/joy/set_feedback
/odom
/odometry/filtered
/parameter_events
/robot_description
/rosout
/set_pose
/tf
/tf_static
/twist_marker_server/cmd_vel
/twist_server/feedback
/twist_server/update
administrator@ubuntu:~$ ros2 node list
/controller_manager
/ekf_node
/husky_velocity_controller
/joint_state_broadcaster
/joy_teleop/joy_node
/joy_teleop/teleop_twist_joy_node
/robot_state_publisher
/rqt_gui_py_node_3683
/transform_listener_impl_aaaad9cc9740
/twist_mux
/twist_server_node

I don’t know if I’m missing even more.
Do you have any idea what could be the Problem? Or do you know how the communication beween ros and the MCU is handled?

The battery voltage should be coming in the diagnostics. As for the e_stop, it might be that there is some issue in the Clearpaths port to Humble. If you can verify the issue, it would be worth submitting a bug report to their driver repository.

I’ve outputed around 1000 messages via ros2 topic echo /diagnostics >file.txt and i only have twist_mux and ekf_node messages.
So i don’t have any battery messages.
Have you seen any Topics or Nodes missing in the list?

You are correct, I have tested myself and it does not show, I have added a ticket to their github repo.

Hello @Sohail,
i have seen your ticket and the answer of tonybaltovski on Github.
Sadly i dont have a clue how to install the GitHub - clearpathrobotics/clearpath_common package he mentions. It dosn’t have a “husky_bringup install” like in the

you have given me or a install file in general.
The documentation he links explains how to install “sudo apt install ros-humble-clearpath-robot”. This is the Package i tried first and had the Problem that led to me making this thread and i’ve tried it again with the same result.

Hi @Felix1,

The clearpath guys have shifted their entire design process for ROS2. In addition to installing clearpath common you have to install clearpath robot and follow this docs.

Hello @Sohail,
the docs

you’ve linked me are the same as i had in the begining.
I’ve testet it once again by installing the skript (https://raw.githubusercontent.com/clearpathrobotics/clearpath_computer_installer/main/install.sh). Because i have an arm based Computer it couldn’t install “ros-humble-clearpath-robot”. So i’ve donwloaded it from git and compiled it myself. All the other Packages from the script could be installed without problems.

After the installation i’ve rebooted but i still had no connection to the MCU.
The “COMM” Led at the back of the Husky is red and nothing gets published in the Topics like /emergency_stop.
I had these Topics and nodes but most Topics are empthy:
administrator@ubuntu:~$ ros2 topic list
/a200_0000/cmd_vel
/a200_0000/diagnostics
/a200_0000/joy_teleop/cmd_vel
/a200_0000/joy_teleop/joy
/a200_0000/joy_teleop/joy/set_feedback
/a200_0000/platform/cmd_vel_unstamped
/a200_0000/platform/emergency_stop
/a200_0000/platform/joint_states
/a200_0000/platform/odom
/a200_0000/platform/odom/filtered
/a200_0000/platform/wifi_connected
/a200_0000/platform/wifi_status
/a200_0000/robot_description
/a200_0000/set_pose
/a200_0000/tf
/a200_0000/tf_static
/a200_0000/twist_marker_server/cmd_vel
/a200_0000/twist_marker_server/feedback
/a200_0000/twist_marker_server/update
/parameter_events
/rosout
administrator@ubuntu:~$ ros2 node list
/a200_0000/ekf_node
/a200_0000/joy_node
/a200_0000/namespaced_base_link_static_tf
/a200_0000/namespaced_odom_static_tf
/a200_0000/robot_state_publisher
/a200_0000/teleop_twist_joy_node
/a200_0000/transform_listener_impl_aaaadb93aa30
/a200_0000/twist_mux
/a200_0000/twist_server_node
/a200_0000/wireless_watcher

I also downloaded and compiled the GitHub - clearpathrobotics/clearpath_common package because it was mentioned in the github issue you’ve created but it doesn’t change anything.

Dear @Felix1,

Could you message me your email, I will contact Clearpath with you in CC.

1 Like

@Sohail
Now that Jetpack6 i available i’ve tried again.
The ros-humble-clearpath-robot package is till not available for arm so i’ve compiled it manually with this Instructions (Robot Installation | Clearpath Robotics Documentation).
But i still don’t have a connection to the MCU (the indication light is red and there no ros topics with data from the MCU).
Now on the Jetson AGX (with Jetpack6.0) all USB devices have really weird connection messages and paths.
If i connect the MCU i get in dmesg only:
[ 122.242044] usb 1-4.3: new full-speed USB device number 6 using tegra-xusb

If i connect the logitech F710 Controller i get in dmesg:
[ 265.088108] usb 1-4.4: new full-speed USB device number 9 using tegra-xusb
[ 265.205925] input: Logitech Logitech Cordless RumblePad 2 as /devices/platform/bus@0/3610000.usb/usb1/1-4/1-4.4/1-4.4:1.0/0003:046D:C219.0006/input/input11
[ 265.206045] logitech 0003:046D:C219.0006: input: USB HID v1.11 Gamepad [Logitech Logitech Cordless RumblePad 2] on usb-3610000.usb-4.4/input0
[ 265.232198] logitech: probe of 0003:046D:C219.0006 failed with error -1

via lsusb the devices are detected:
Bus 002 Device 002: ID 0bda:0420 Realtek Semiconductor Corp. 4-Port USB 3.0 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 009: ID 046d:c219 Logitech, Inc. F710 Gamepad [DirectInput Mode]
Bus 001 Device 010: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port / Mobile Action MA-8910P
Bus 001 Device 003: ID 0bda:5420 Realtek Semiconductor Corp. 4-Port USB 2.0 Hub
Bus 001 Device 002: ID 13d3:3549 IMC Networks Bluetooth Radio
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I’m not sure where the problem is coming from or if it is even a problem.
So to see if the MCU is working i’ve also tried to connect it to another PC. I’ve installed micro-ros-agent and tried to get an connection with this command:
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 -v6 --baudrate=115200

but the only output is this:
[1702462255.382607] info | TermiosAgentLinux.cpp | init | running… | fd: 3
[1702462255.382739] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 6

until i disconnect the MCU then an error is shown:
[1702462363.059135] info | TermiosAgentLinux.cpp | fini | server stopped | fd: 3
[1702462363.069229] info | TermiosAgentLinux.cpp | init | Serial port not found. | device: /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0, error 2, waiting for connection…

Shouldn’t i get a “create_client” message? Also there are also no ros topics created by the agent (don’t know if i’m doing something wrong here)
Can you help me find the Problem? and maybe a solution?

Dear @Felix1,

I’ve talked to clearpath again and they have repeated it saying that it won’t be able to work in the arm architecture as it has not been tested or recommended. Microros works with Jackal and not Husky, Husky has its own PC that directly communicates with ROS2. I would advise using a normal amd architecture to use with ROS humble.

1 Like

Hello @Sohail ,

thaks very much for you help and efforts. I’ll have to talk to my Professor to evaluate our next steps.