Skip to content

Driver Interface

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:

R1Pro_arm_motor_cn

  • p_des is the target control position, and v_des limits the maximum absolute velocity during motion.
  • kp and kd are the proportional terms for position gain and velocity gain; t_ff is the feedforward torque.

Note:

  • The following are the recommended kp and kd values 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)