机器人的肢体运动交互

文件列表

  • 文件列表

    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