串口通信

通信与报文命令

注意:使用通信协议直接通信,需要在basic中烧录transponder,在atom中烧录最新版的atomMain

1.USB通信设置Communication Settings


请确保您的通信设置如下

  • 总线接口: USB Type-C连接
  • 波特率: 115200
  • 数据位: 8
  • 奇偶校验:无
  • 停止位: 1

2.命令帧说明及单一指令解析

主机Basic向从机发送数据,从机接收到数据后进行解析,如包含返回值的指令,从机会在500ms内返回给主机。

3.命令帧发送与接收格式

所有命令为十六进制,发送与接收格式一致。

每个通信命令必须包含以下5个部分,其中3、4可为空。

  • 1 命令针头: 0xFE 0xFE
    • 固定
    • 必含
  • 2 有效命令长度: 0x02 ~ 0x10
    • 以下所有命令的长度
    • 必含
  • 3 命令序号: 00 ~ 8F
    • 现已开发了多种命令
    • 可为空
  • 4 命令内容: 若干
    • 可为空
  • 5 命令结束: 0XFA
    • 固定
    • 必含

4.指令解析

主机Basic向从机发送数据,从机接收到数据后进行解析,如包含返回值的指令,从机会在500ms内返回给主机。

类型 数据描述 数据长度 说明
命令帧 头字节0 1 帧头识别,0XFE
头字节1 1 帧头识别,0XFE
数据长度字节 1 不同指令对应不同长度数据
命令字节 1 视不同命令而定
数据帧 数据 0-16 命令附带数据,视不同命令而定
结束帧 结束字节 1 停止位,0XFA

5.单一指令解析

1、Atom打开通讯

数据域 说明 数据
Data[0] 识别帧 0XFE
Data[1] 识别帧 0XFE
Data[2] 数据长度帧 0X02
Data[3] 指令帧 0X10
Data[4] 结束帧 0XFA

串口发送示例:FE FE 02 10 FA

无返回值


2、Atom关闭通讯

数据域 说明 数据
Data[0] 识别帧 0XFE
Data[1] 识别帧 0XFE
Data[2] 数据长度帧 0X02
Data[3] 指令帧 0X11
Data[4] 结束帧 0XFA

串口发送示例:FE FE 02 11 FA

无返回值


3、发送单独角度(以六轴机械臂为例)

数据域 说明 数据
Data[0] 识别帧 0XFE
Data[1] 识别帧 0XFE
Data[2] 数据长度帧 0X06
Data[3] 指令帧 0X21
Data[4] 舵机序号 joint_no
Data[5] 角度值高位 angle_high
Data[6] 角度值低位 angle_low
Data[7] 指定速度 sp
Data[8] 结束帧 0XFA

使1号舵机以20%速度移动到零位

串口发送示例:FE FE 06 21 01 00 00 14 FA

joint_no取值范围: 0~6

angle_high:数据类型byte

计算方式:角度值乘以100 先转换成int形式 再取十六进制的高字节

angle_low:数据类型byte

计算方式:角度值乘以100 先转换成int形式 再取十六进制的低字节

无返回值


附录:

在ATOM库和运动学库中添加了相应的坐标变换程序,具体实现方式如下所述:

  1. 改变末端坐标系

  2. 通过setEndType和getEndType函数可以设置末端坐标系,EndType::FLANGE为将末端设置为法兰,EndType::TOOL为将末端设置为工具末端。

  3. 通过setToolReference和getToolReference函数可以设置读取工具的坐标信息。设置时是以法兰坐标系为相对坐标系,工具末端信息是相对于法兰坐标系的。

  4. 将EndType设置为FLANGE后,GetCoords和WriteCoords方法均以法兰位置计算。

  5. 将EndType设置为TOOL后,GetCoords和WriteCoords方法均以工具末端位置计算。

  6. 改变基坐标系

  7. 通过setReferenceFrame函数可以设置基坐标系,RFType::BASE为将机器人基座作为基坐标,RFType::WORLD为将世界坐标系作为基坐标。getReferenceFrame函数为读取当前基坐标系种类。

  8. 通过setWorldReference和getWorldReference函数可以设置读取基坐标系信息。设置时是以世界坐标系为相对坐标系,输入机器人的基座相对于世界坐标系的位置信息。

  9. 当基坐标系为基座时,GetCoords和WriteCoords方法均以基座为参考坐标系。

  10. 当基坐标系为世界坐标系时,GetCoords和WriteCoords方法均以世界坐标系作为参考坐标系。

通信相关更改(暂时)

现增加末端坐标系的设置与读取,世界坐标系的设置与读取,当前参考坐标系的设置与读取,末端类型的设置与读取,移动方式的设置与读取,机械臂信息的发送接收。

这些通信暂时设置为0x80至0x8A

在ParameterList.h文件中新增roboticMessages空间用于添加机械臂通信信息,现只暂时增加“没有逆解”的提示,后续可陆续增加。

MOVEL功能简单设计思想如下:

求出初始点位和目标点位之间的欧式距离,以欧式距离为基准,每隔10mm插入一个插值点,如果插值点没有逆解,搜索位置不变三个方向姿态正负PI/30的临近空间内是否有逆解,主要是避免奇异值以及一些恰好不能求出解的特殊位置。

MOVEL和JOG的点位发送间隔时间改为动态时间,根据两点之间最大关节移动距离计算移动时间,再讲该移动时间减去特定时长作为时间间隔。

results matching ""

    No results matching ""