机器人的肢体运动交互
文件列表
- 文件列表
usart_hub.py
- 类列表:
USART_DEV硬件底层类,USART_HUB封装驱动类
模块使用
- 使用
USART_HUB类,该类包含如下函数:
__init__,初始化函数,需要输入串口号
ReadJointVal传入关节ID,返回Flag(False表示读取失败),关节舵机的弧度角度(无旋转返回0)
SetJointVal,传入舵机ID,角度(弧度)以及时间(秒),无返回值。
ReleaseJoint, 传入舵机ID,无返回值
底层交互
- 机器人的肢体运动交互采用以
头部控制器请求—>关节舵机应答的形式实现。 - 每一帧数据都封装为一个包含
5 Byte头部+N Byte数据体的数据包。具体形式如下:

数据包头部
| header[0] | [1] | [2] | [3] | [4] |
|---|---|---|---|---|
0x55 |
0x55 |
目标ID |
数据长度+2 |
指令编号 |
0x55为固定值,不能修改
数据长度数值为整个数据体长度(包含数据体内的校验值)+2
数据体
| 0~(N-1) | N |
|---|---|
| N字节数据体 | 校验 |
- 校验数值计算的代码如下:
def ChechSum(self,buf): # 计算校验 sum = 0x00 for b in buf: # 求和 sum += b # 累加 sum = sum - 0x55 - 0x55 # 去掉命令开头的两个 0x55 sum = ~sum # 取反 return sum & 0xff # 取最低的一个字节
一些关键的指令
| 指令编号 | 作用 | 指令内容 | 返回值 |
|---|---|---|---|
| 1 | 指定时间内运动到指定位置 | 角度低8位 角度高8位 时间低8位 时间高8位 校验值 |
无 |
| 12 | 停止运动 | 校验值 |
无 |
| 26 | 温度读取 | 校验值 |
无 |
| 28 | 角度位置读取 | 校验值 |
角度低8位 角度高8位 校验值 |
| 31 | 关节电机使能控制 | 0关 1开 校验值 |
无 |
作者:admin 创建时间:2024-03-20 09:06
最后编辑:admin 更新时间:2024-04-22 09:38
最后编辑:admin 更新时间:2024-04-22 09:38