通用通讯接口

DaoAI Vision Pilot 通讯接口能够使机器人通讯更容易操作。更统一的沟通接口,帮助用户能更快的连接机器人并用于抓取、放置等各种应用。

协议/Protocol

DaoAI Vision Pilot 和机器人之间的指令和回应消息都是固定长度的。因为消息协议的长度是固定的,即使机器人短的编程功能有限,也会比较容易实现。

备注

请求和回应消息具有固定长度,并且没有开始和/或结束字符。虽然TCP/IP协议可防止数据丢失,但机器人客户端实现负责通过计算发送/接收的字节数并与预期的消息大小进行比较来跟踪消息之间的边界。

请求和回应消息由多个字段组成,每个字段为一个 int32 (4 bytes)。 浮点数据(如距离和角度)将乘以一个恒定系数 MULT = 10000 , 再作为int32发送。 然后,接收端通过将接收的值除以该系数来解码此字段。 负数使用二进制补码进行编码。关于信息中的每个字段,可参考下方连接的详细注解:


连接详细信息

类型/Type

TCP/IP socket

端口/Port

6969 (默认TCP连接端口)

字节顺序/Byte order

Network order (big endian)

一旦DaoAI Vision Pilot启动,它就会侦听TCP端口 6969 并等待,直到机器人发起连接。这是在机器人端通过打开对DaoAI Vision Pilot的IP地址和给定端口的TCP套接字来完成的。

可以在DaoAI Vision Pilot的网络设置中找到并更改DaoAI Vision Pilot系统的IP地址。


Global Variables/全局变量

所有的接口函数都会使用以下所以的全局变量:

mult=10000
DAOAI_ROBOT_TYPE = X #based on robot brand
DAOAI_META_VERSION = 1

#Pose Object
daoai_tcp_pose = p[0,0,0,0,0,0]
daoai_payload_1 = 0
daoai_payload_2 = 0
daoai_payload_3 = 0
daoai_payload_4 = 0
daoai_payload_5 = 0
daoai_payload_6 = 0
daoai_plane = Base

#meta info
daoai_socket_name = "daoai"
daoai_socket
daoai_status = 0
daoai_r_command = 0
daoai_task_id = 0
daoai_num_remaining_objects = 0

备注

变量机器人品牌类型代码 DAOAI_ROBOT_TYPE 是用于告知 DaoAI Vision Pilot 系统当前通讯的机器人品牌,您可以查询 机器人品牌以及对应的类型代码 表格中列出了所有当前的机器人品牌和类型代码。

Functions/函数

所有在 DaoAI Vision Pilot 需要使用的功能,都可以通过使用下方的函数进行应用,包括抓取、放置和校准等等。