Driver Interface¶
- Arm Driver Interface: Used for arm control and state feedback.
- Torso Driver Interface: Used for torso control and state feedback.
- Chassis Driver Interface: Used for chassis state feedback.
- Camera Driver Interface: Used for camera state feedback.
- LiDAR Driver Interface: Used for LiDAR state feedback.
- IMU Interface: Used for IMU state feedback.
- BMS Interface: Used for BMS battery state feedback.
- Remote Controller Interface: Used for torso and chassis remote controller state feedback.
Arm Driver Interface¶
This interface is a ROS package for arm control and state feedback. It defines multiple topics for publishing and subscribing to arm states, control commands, and related error codes. The interface information is shown below:
| Topic Name | I/O | Description | Message Type |
|---|---|---|---|
| /hdas/feedback_arm_left | Output | Left arm joint feedback | sensor_msgs::msg::JointState |
| /hdas/feedback_arm_right | Output | Right arm joint feedback | sensor_msgs::msg::JointState |
| /hdas/feedback_gripper_left | Output | Left gripper travel | sensor_msgs::msg::JointState |
| /hdas/feedback_gripper_right | Output | Right gripper travel | sensor_msgs::msg::JointState |
| /hdas/feedback_status_arm_left | Output | Left arm state feedback* | hdas_msg::msg::FeedbackStatus |
| /hdas/feedback_status_arm_right | Output | Right arm state feedback* | hdas_msg::msg::FeedbackStatus |
| /hdas/feedback_status_gripper_left | Output | Left gripper state feedback | hdas_msg::msg::FeedbackStatus |
| /hdas/feedback_status_gripper_right | Output | Right gripper state feedback | hdas_msg::msg::FeedbackStatus |
| /motion_control/control_arm_left | Input | Left arm motor control | hdas_msg::msg::MotorControl |
| /motion_control/control_arm_right | Input | Right arm motor control | hdas_msg::msg::MotorControl |
| /motion_control/control_gripper_left | Input | Left gripper motor control | hdas_msg::msg::MotorControl |
| /motion_control/control_gripper_right | Input | Right gripper motor control | hdas_msg::msg::MotorControl |
The specific fields of the topics above and their detailed descriptions are shown in the table below:
| Topic Name | Field | Description |
|---|---|---|
| /hdas/feedback_arm_left | header | Standard message header |
| position | [Joint 1 position, Joint 2 position, Joint 3 position, Joint 4 position, Joint 5 position, Joint 6 position, Joint 7 position] | |
| velocity | [Joint 1 velocity, Joint 2 velocity, Joint 3 velocity, Joint 4 velocity, Joint 5 velocity, Joint 6 velocity, Joint 7 velocity] | |
| effort | [Joint 1 torque, Joint 2 torque, Joint 3 torque, Joint 4 torque, Joint 5 torque, Joint 6 torque, Joint 7 torque] | |
| /hdas/feedback_arm_right | header | Standard message header |
| position | [Joint 1 position, Joint 2 position, Joint 3 position, Joint 4 position, Joint 5 position, Joint 6 position, Joint 7 position] | |
| velocity | [Joint 1 velocity, Joint 2 velocity, Joint 3 velocity, Joint 4 velocity, Joint 5 velocity, Joint 6 velocity, Joint 7 velocity] | |
| effort | [Joint 1 torque, Joint 2 torque, Joint 3 torque, Joint 4 torque, Joint 5 torque, Joint 6 torque, Joint 7 torque] | |
| /hdas/feedback_gripper_left | header | Standard message header |
| position | Gripper travel (0-100mm) | |
| velocity | Not used for now | |
| effort | Not used for now | |
| /hdas/feedback_gripper_right | header | Standard message header |
| position | Gripper travel (0-100mm) | |
| velocity | Not used for now | |
| effort | Not used for now | |
| /hdas/feedback_status_arm_left | header | Standard message header |
| name_id | Joint names | |
| errors | Contains error codes and their corresponding error descriptions | |
| /hdas/feedback_status_arm_right | header | Standard message header |
| name_id | Joint names | |
| errors | Contains error codes and their corresponding error descriptions | |
| /motion_control/control_arm_left (servo mode) |
header | Standard message header |
| name | - | |
| p_des | [Joint 1 position, Joint 2 position, Joint 3 position, Joint 4 position, Joint 5 position, Joint 6 position, Joint 7 position] | |
| v_des | [Joint 1 max velocity limit, Joint 2 max velocity limit, Joint 3 max velocity limit, Joint 4 max velocity limit, Joint 5 max velocity limit, Joint 6 max velocity limit, Joint 7 max velocity limit] | |
| t_ff | [Joint 1 max torque limit, Joint 2 max torque limit, Joint 3 max torque limit, Joint 4 max torque limit, Joint 5 max torque limit, Joint 6 max torque limit, Joint 7 max torque limit] | |
| kp | Arm motor kp | |
| kd | Arm motor kd | |
| mode | - | |
| /motion_control/control_arm_right (servo mode) |
header | Standard message header |
| name | - | |
| p_des | [Joint 1 position, Joint 2 position, Joint 3 position, Joint 4 position, Joint 5 position, Joint 6 position, Joint 7 position] | |
| v_des | [Joint 1 max velocity limit, Joint 2 max velocity limit, Joint 3 max velocity limit, Joint 4 max velocity limit, Joint 5 max velocity limit, Joint 6 max velocity limit, Joint 7 max velocity limit] | |
| t_ff | [Joint 1 max torque limit, Joint 2 max torque limit, Joint 3 max torque limit, Joint 4 max torque limit, Joint 5 max torque limit, Joint 6 max torque limit, Joint 7 max torque limit] | |
| kp | Arm motor kp | |
| kd | Arm motor kd | |
| mode | - | |
| /motion_control/control_gripper_left | header | Standard message header |
| name | - | |
| p_des | Gripper motor position | |
| v_des | Gripper motor velocity | |
| kp | Gripper motor kp | |
| kd | Gripper motor kd | |
| t_ff | Gripper torque | |
| mode | - | |
| /motion_control/control_gripper_right | header | Standard message header |
| name | - | |
| p_des | Gripper motor position | |
| v_des | Gripper motor velocity | |
| kp | Gripper motor kp | |
| kd | Gripper motor kd | |
| t_ff | Gripper torque | |
| mode | - |
Arm Joint Motor Control Interface¶
/motion_control/control_arm_left/motion_control/control_arm_right
The figure below shows the servo mode architecture:

p_desis the target control position, andv_deslimits the maximum absolute velocity during motion.kpandkdare the proportional terms for position gain and velocity gain;t_ffis the feedforward torque.
Note:
- The following are the recommended
kpandkdvalues for the A2 arm motors. Adjust them with caution.
R1_Pro_A2_left_kp = [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0]
R1_Pro_A2_left_kd = [25.0, 25.0, 25.0, 25.0, 25.0, 25.0, 25.0]
R1_Pro_A2_right_kp = [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0]
R1_Pro_A2_right_kd = [25.0, 25.0, 25.0, 25.0, 25.0, 25.0, 25.0]
Torso Driver Interface¶
This interface is a ROS package for torso control and state feedback. It defines multiple topics for publishing and subscribing to torso motor states and control commands. The interface information is shown below:
| Topic Name | I/O | Description | Message Type |
|---|---|---|---|
| /hdas/feedback_torso | Output | Torso joint feedback | sensor_msgs::msg::JointState |
| /hdas/feedback_status_torso | Output | Torso state feedback | hdas_msg::msg::FeedbackStatus |
| /motion_control/control_torso | Input | Torso motor control (this interface cannot actively publish messages) | hdas_msg::msg::MotorControl |
The specific fields of the topics above and their detailed descriptions are shown in the table below:
| Topic Name | Field | Description |
|---|---|---|
| /hdas/feedback_torso | header | Standard message header |
| position | [Joint 1 position, Joint 2 position, Joint 3 position, Joint 4 position] | |
| velocity | [Joint 1 velocity, Joint 2 velocity, Joint 3 velocity, Joint 4 velocity] | |
| effort | Not used for now | |
| /hdas/feedback_status_torso | header | Standard message header |
| name_id | Joint names | |
| errors | Contains error codes and their corresponding error descriptions | |
| /motion_control/control_torso | header | Standard message header (this interface cannot actively publish messages) |
| name | - | |
| p_des | [Joint 1 position, Joint 2 position, Joint 3 position, Joint 4 position] | |
| v_des | [Joint 1 velocity, Joint 2 velocity, Joint 3 velocity, Joint 4 velocity] | |
| kp | [Joint 1 kp, Joint 2 kp, Joint 3 kp, Joint 4 kp] | |
| kd | [Joint 1 kd, Joint 2 kd, Joint 3 kd, Joint 4 kd] | |
| t_ff | [Joint 1 torque, Joint 2 torque, Joint 3 torque, Joint 4 torque] | |
| mode | - |
Chassis Driver Interface¶
This interface is a ROS package for chassis state feedback. It defines multiple topics that report the state of the chassis motors. Each topic and its associated message type is described in detail below:
| Topic Name | I/O | Description | Message Type |
|---|---|---|---|
| /hdas/feedback_chassis | Output | Chassis hub and steering motor feedback | sensor_msgs::msg::JointState |
| /hdas/feedback_status_chassis | Output | Chassis state feedback | hdas_msg::msg::FeedbackStatus |
| /motion_control/control_chassis | Input | Chassis hub and steering motor control | hdas_msg::msg::MotorControl |
The specific fields of the topics above and their detailed descriptions are shown in the table below:
| Topic Name | Field | Description |
|---|---|---|
| /hdas/feedback_chassis | header | Standard message header |
| position | [Front-left wheel angle, Front-right wheel angle, Rear wheel angle] | |
| velocity | [Front-left wheel linear velocity, Front-right wheel linear velocity, Rear wheel linear velocity] [Front-left wheel angular velocity, Front-right wheel angular velocity, Rear wheel angular velocity] |
|
| effort | [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] | |
| /hdas/feedback_status_chassis | header | Standard message header |
| name_id | Joint names | |
| errors | Contains error codes and their corresponding error descriptions | |
| /motion_control/control_chassis | header | Standard message header |
| name | - | |
| p_des | [Front-left wheel angle, Front-right wheel angle, Rear wheel angle] | |
| v_des | [Front-left wheel linear velocity, Front-right wheel linear velocity, Rear wheel linear velocity] | |
| kp | - | |
| kd | - | |
| t_ff | - | |
| mode | - |
Camera Driver Interface¶
The interface information is shown below:
| Topic Name | I/O | Description | Message Type |
|---|---|---|---|
| /hdas/camera_chassis_front_left/rgb/compressed | Output | Chassis front-left camera RGB compressed image | sensor_msgs::msg::CompressedImage |
| /hdas/camera_chassis_front_right/rgb/compressed | Output | Chassis front-right camera RGB compressed image | sensor_msgs::msg::CompressedImage |
| /hdas/camera_chassis_left/rgb/compressed | Output | Chassis left camera RGB compressed image | sensor_msgs::msg::CompressedImage |
| /hdas/camera_chassis_right/rgb/compressed | Output | Chassis right camera RGB compressed image | sensor_msgs::msg::CompressedImage |
| /hdas/camera_chassis_rear/rgb/compressed | Output | Chassis rear camera RGB compressed image | sensor_msgs::msg::CompressedImage |
| /hdas/camera_wrist_left/color/image_raw/compressed | Output | Right wrist camera RGB compressed image (if available) | sensor_msgs::msg::CompressedImage |
| /hdas/camera_wrist_right/color/image_raw/compressed | Output | Left wrist camera RGB compressed image (if available) | sensor_msgs::msg::CompressedImage |
| /hdas/camera_head/left_raw/image_raw_color/compressed | Output | Head camera RGB compressed image (if available) | sensor_msgs::msg::CompressedImage |
| /hdas/camera_wrist_left/aligned_depth_to_color/image_raw | Output | Left wrist camera depth image (if available) | sensor_msgs::msg::Image |
| /hdas/camera_wrist_right/aligned_depth_to_color/image_raw | Output | Right wrist camera depth image (if available) | sensor_msgs::msg::Image |
| /hdas/camera_head/depth/depth_registered | Output | Head camera depth image (if available) | sensor_msgs::msg::Image |
The specific fields of the topics above and their detailed descriptions are shown in the table below:
| Topic Name | Field | Description |
|---|---|---|
| /hdas/camera_chassis_front_left/rgb/compressed | header | Standard message header |
| format | JPEG | |
| data | Image data | |
| /hdas/camera_chassis_front_right/rgb/compressed | header | Standard message header |
| format | JPEG | |
| data | Image data | |
| /hdas/camera_chassis_left/rgb/compressed | header | Standard message header |
| format | JPEG | |
| data | Image data | |
| /hdas/camera_chassis_right/rgb/compressed | header | Standard message header |
| format | JPEG | |
| data | Image data | |
| /hdas/camera_chassis_rear/rgb/compressed | header | Standard message header |
| format | JPEG | |
| data | Image data | |
| /hdas/camera_wrist_left/color/image_raw/compressed | header | Standard message header |
| format | JPEG | |
| data | Image data | |
| /hdas/camera_wrist_right/color/image_raw/compressed | header | Standard message header |
| format | JPEG | |
| data | Image data | |
| /hdas/camera_head/left_raw/image_raw_color/compressed | header | Standard message header |
| format | JPEG | |
| data | Image data | |
| /hdas/camera_wrist_left/aligned_depth_to_color/image_raw | header | Standard message header |
| height | Depends on settings | |
| width | Depends on settings | |
| encoding | 16UC1 | |
| is_bigendian | 0 | |
| step | Determined by configuration | |
| data | Image data | |
| /hdas/camera_wrist_right/aligned_depth_to_color/image_raw | header | Standard message header |
| height | Depends on settings | |
| width | Depends on settings | |
| encoding | 16UC1 | |
| is_bigendian | 0 | |
| step | Determined by configuration | |
| data | Image data | |
| /hdas/camera_head/depth/depth_registered | header | Standard message header |
| height | Depends on settings | |
| width | Depends on settings | |
| encoding | 32FC1 | |
| is_bigendian | 0 | |
| step | Depends on settings | |
| data | Image data |
LiDAR Driver Interface¶
The interface information is shown below:
| Topic Name | I/O | Description | Message Type |
|---|---|---|---|
| /hdas/lidar_chassis_left | Output | LiDAR point cloud | sensor_msgs::msg::PointCloud2 |
The specific fields of the topics above and their detailed descriptions are shown in the table below:
| Topic Name | Field | Description |
|---|---|---|
| /hdas/lidar_chassis_left | header | Standard message header |
| fields | LiDAR data |
IMU Interface¶
The interface information is shown below:
| Topic Name | I/O | Description | Message Type |
|---|---|---|---|
| /hdas/imu_chassis | Output | Chassis IMU feedback | sensor_msgs::msg::Imu |
| /hdas/imu_torso | Output | Torso IMU feedback | sensor_msgs::msg::Imu |
The specific fields of the topics above and their detailed descriptions are shown in the table below:
| Topic Name | Field | Description |
|---|---|---|
| /hdas/imu_chassis | header | Standard message header |
| orientation.x | Quaternion x | |
| orientation.y | Quaternion y | |
| orientation.z | Quaternion z | |
| orientation.w | Quaternion w | |
| angular_velocity.x | Gyroscope angular velocity x | |
| angular_velocity.y | Gyroscope angular velocity y | |
| angular_velocity.z | Gyroscope angular velocity z | |
| linear_acceleration.x | Linear acceleration x | |
| linear_acceleration.y | Linear acceleration y | |
| linear_acceleration.z | Linear acceleration z | |
| /hdas/imu_torso | header | Standard message header |
| orientation.x | Quaternion x | |
| orientation.y | Quaternion y | |
| orientation.z | Quaternion z | |
| orientation.w | Quaternion w | |
| angular_velocity.x | Gyroscope angular velocity x | |
| angular_velocity.y | Gyroscope angular velocity y | |
| angular_velocity.z | Gyroscope angular velocity z | |
| linear_acceleration.x | Linear acceleration x | |
| linear_acceleration.y | Linear acceleration y | |
| linear_acceleration.z | Linear acceleration z |
BMS Interface¶
The interface information is shown below:
| Topic Name | I/O | Description | Message Type |
|---|---|---|---|
| /hdas/bms | Output | Battery BMS message | hdas_msg::msg::Bms |
The specific fields of the topics above and their detailed descriptions are shown in the table below:
| Topic Name | Field | Description |
|---|---|---|
| /hdas/bms | header | Standard message header |
| voltage | Voltage (V) | |
| current | Current (I) | |
| capital | Remaining charge (%) |
Remote Controller Interface¶
The interface information is shown below:
| Topic Name | I/O | Description | Message Type |
|---|---|---|---|
| /controller | Output | Remote controller signal | hdas_msg::msg::ControllerSignalStamped |
The specific fields of the topics above and their detailed descriptions are shown in the table below:
| Topic Name | Field | Description |
|---|---|---|
| /controller | header | Standard message header |
| data.left_x_axis | Left joystick X axis | |
| data.left_y_axis | Left joystick Y axis | |
| data.right_x_axis | Right joystick X axis | |
| data.right_y_axis | Right joystick Y axis | |
| mode | 2: Remote controller control (chassis) 5: Host computer control (chassis) |