4.2 底层电机控制接口
4.2.1 底层控制指令
用户通过订阅话题 rt/lowcmd 来发送电机控制指令,具体发送的数据结构如下:
std_msgs/Header header
float32[4] q_des_abad //期望的Abduction关节角度(目标位置)
float32[4] q_des_hip //期望的髋关节角度
float32[4] q_des_knee //期望的膝关节角度
float32[4] qd_des_abad //期望的Abduction关节角速度(目标速度)
float32[4] qd_des_hip //期望的髋关节角速度
float32[4] qd_des_knee //期望的膝关节角速度
float32[4] kp_abad //Abduction关节的位置控制增益(PD控制中的P)
float32[4] kp_hip //髋关节的P增益
float32[4] kp_knee //膝关节的P增益
float32[4] kd_abad //Abduction关节的速度控制增益(PD控制中的D)
float32[4] kd_hip //髋关节的D增益
float32[4] kd_knee //膝关节的D增益
float32[4] tau_abad_ff //Abduction关节的前馈力矩
float32[4] tau_hip_ff //髋关节的前馈力矩
float32[4] tau_knee_ff //膝关节的前馈力矩
int32[4] flags //每条腿的控制模式标志
4.2.2 底层数据接收
用户通过订阅rt/lowstate话题获取电机、IMU数据,数据结构如下所示:
1、IMU状态信息:
float32[3] imu_angular_velocity //roll rate(滚转角速度,绕 X 轴)
// pitch rate(俯仰角速度,绕 Y 轴)
// yaw rate(偏航角速度,绕 Z 轴)
float32[3] imu_linear_acceleration // x轴加速度
// y轴加速度
// z轴加速度
float32[4] imu_orientation // 四元数表示的姿态
bool imu_is_valid
uint16 imu_packet_id
2、电机状态信息:
float32[4] q_abad //Abduction/内收关节角度(单位:弧度)
float32[4] q_hip //髋关节角度
float32[4] q_knee //膝关节角度
float32[4] qd_abad //Abduction关节角速度(单位:rad/s)
float32[4] qd_hip //髋关节角速度
float32[4] qd_knee //膝关节角速度
float32[4] tau_abad //Abduction关节力矩(单位:N*m)
float32[4] tau_hip //髋关节力矩
float32[4] tau_knee //膝关节力矩
int32[4] flags //关节状态标志位
int32 spi_driver_status //spi驱动状态
int32 abnormal_warning_level_motor //电机异常警告等级
int32 abnormal_warning_level_soc //电池电量警告等级