SDK通信协议

Viobot2内部集成了一个HTTP服务器,可以通过http协议进行参数读写及流数据获取,也可以通过ros主从机通信来控制以及获取数据和设备状态。

HTTP接口协议规范

协议说明 默认端口8000

(1)网络参数

URL http://< ip >:< port >/System/network
METHOD GET/PUT
Response BODY {
"ipaddr":"192.168.1.100",
"submask":"192.168.0.1.0",
"gateway":"192.168.1.1",
"macaddr":"FF:FF:FF:FF:FF:FF",
"commandPort":8000,
"heartbeatPort":6789,
"udpPort":10000
}

Response BODY参数定义:

ipaddr IP地址
submask 子网掩码
gateway 网关地址
macaddr MAC地址
commandPort 指令端口
heartbeatPort 心跳端口
udpPort UDP端口

(2)相机内外参

URL http://< ip >:< port >/System/param
METHOD GET

Response Body参数定义:(float)

alpha fx fy cx cy xi double spere 相机模型畸变参数
cam_extrinsi 右目到左目的坐标变换
CL2I_extrinsic 左目到imu的坐标变换

(4)重定位

URL http://< ip >:< port >/Smart/relocation
METHOD PUT
BODY [0,0,0,0,0,0,0,0,0,0,0,0]

BODY参数定义:一个3行4列的位姿变换矩阵,由12个浮点数组成的数组,每4个值表示矩阵的一行

(5)Vio算法控制

1)Vio算法启用

URL http://< ip >:< port >/Algorithm/enable/"algo_type_num"
METHOD PUT
BODY
注: "algo_tyep_num":
4:stereo3

2)Vio算法禁用

URL http://< ip >:< port >/Algorithm/disable/"algo_tyep_num"
METHOD PUT
BODY
注: "algo_tyep_num":
4:stereo3

3)Vio算法重启

URL http://< ip >:< port >/Algorithm/reboot/"algo_tyep_num"
METHOD PUT
BODY
注: "algo_tyep_num":
4:stereo3

4)Vio算法重置

URL http://< ip >:< port >/Algorithm/reset/"algo_tyep_num"
METHOD PUT
BODY
注: "algo_tyep_num":
4:stereo3

(6)回环添加关键帧

URL http://< ip >:< port >/Smart/addKeyFrame
METHOD PUT
BODY

(7)回环保存关键帧

URL http://< ip >:< port >/Smart/saveKeyFrame
METHOD PUT
BODY

(8)获取数据流

URL http://< ip >:< port >/Stream?Channel=< chan >
chan:数据流通道号
通道1:imu + stereo1位姿 + stereo2位姿 + 速度 + 补光灯实时状态 + TOF实时状态 + 系统状态
通道2:左目可见光灰度图
通道3:深度图 + 幅度图
通道4:算法输出点云
通道5:tof点云
通道6:右目可见光灰度图
通道7:全局一致点云
通道8:RDF点云+位姿
METHOD GET
BODY
注: 单目版本可见光图为通道2:左目可见光,位姿为stereo1位姿

数据包=帧头+帧数据;

帧头=0x33cccc33+帧类型(uint)+时间戳(uint)+序列号(uint)+宽(uint)+高(uint)+长度(uint);

服务端收到数据流请求后开始发送连续数据包。

当服务端收到Bye,则停止发送数据流,并断开连接。

帧类型编号 帧类型
1 IMU
2 左目可见光灰度图
10 右目可见光灰度图
3 深度图
4 幅度图
9 tof点云
16 TOF实时状态
17 补光灯实时状态
7 stereo2算法点云
15 RDF点云
14 RDF位姿
11 全局一致位姿
12 全局一致点云
13 设备速度
5 算法位姿
6 回环位姿
8 系统状态