跳转到内容

底层通信示例

/* 原始数据 总长度108 个字节
* 0209 0000 6000 0000 0100 0000 2efd 3ccf
* 47e4 e1bf f130 4992 f49e e7bf c3d7 eefe
* 8567 f13f 9ae4 b66d 6583 f1bf 24d8 f33c
* 3d00 f13f 8c16 222a 0b1f 0140 e8ba aaaa
* 3803 ef3f d009 0000 60bd d2bf db04 3353
* 1150 e73f 7d0b 0000 72f0 e53f 0a3d 0cc3
* f071 e73f c3d7 eefe 7b52 f93f
*/
/// 内容解析
// 0209 0000 // xxxx 命令字为0x0902
// 6000 0000 // yyyy 正文数据长度为0x60 即长度为96 个字节
// 0100 0000 // zzzz 为1,表示复杂指令,后方有正文数据
/*
* bbbbbbbbbb...................
* 以下为数据正文内容,共计96 个字节,数据为长度为12 的double 类型的数组
* 2efd 3ccf 47e4 e1bf f130 4992 f49e e7bf
* c3d7 eefe 8567 f13f 9ae4 b66d 6583 f1bf
* 24d8 f33c 3d00 f13f 8c16 222a 0b1f 0140
* e8ba aaaa 3803 ef3f d009 0000 60bd d2bf
* db04 3353 1150 e73f 7d0b 0000 72f0 e53f
* 0a3d 0cc3 f071 e73f c3d7 eefe 7b52 f93f
*/
// 即对应机器人关节角度
double joint_angle[12] = {
-0.5591162726995316, -0.7381537301203293, 1.0877742727584383,
-1.0945791516990426, 1.0625584011991203, 2.1401580135014395,
0.9691432317102597, -0.2928085327149832, 0.7285238862024487,
0.6856012344363617, 0.7326587495353192, 1.5826377828902742
};

(robot_basic_state, robot_gait_state, robot_motion_state) 的值对应的状态如下表所示:

值状态
(1, 0, 0)趴下状态
(1, 0, 11)正在执行向前跳
(4, 0, 0)准备起立状态
(5, 0, 0)正在起立状态
(6, 0, 0)力控状态(静止站立)且步态为平地低速步态
(6, 0, 1)正在以平地低速步态踏步或正在根据轴指令扭动身体
(6, 0, 2)正在执行扭身体
(6, 0, 4)正在执行扭身跳
(6, 2, 0)力控状态(静止站立)且步态为通用越障步态
(6, 2, 1)正在以通用越障步态踏步
(6, 4, 0)力控状态(静止站立)且步态为平地中速步态
(6, 4, 1)正在以平地中速步态踏步
(6, 5, 0)力控状态(静止站立)且步态为平地高速步态
(6, 5, 1)正在以平地高速步态踏步
(6, 6, 0)力控状态(静止站立)且步态为抓地越障步态
(6, 6, 1)正在以抓地越障步态踏步
(6, 12, 1)正在执行太空步
(6, 13, 0)力控状态(静止站立)且步态为高踏步越障步态
(6, 13, 1)正在以高踏步越障步态踏步
(7, 0, 0)正在趴下状态
(8, 0, 0)失控保护状态
(9, 0, 0)姿态调整状态
(11, 0, 0)正在执行翻身
(17, 0, 0)回零状态
(18, 0, 0)正在执行后空翻
(20, 0, 0)正在执行打招呼