查询批量数据2
请求
- 编号: 1101 (0x044D)
- 名称: robot_status_all2_req
- 描述: 查询批量数据2
- JSON 数据区: 见下表
all2 是为了通过一个请求批量获取更新比较频繁或比较实时的数据(如位置, 速度等), 包括 1004
, 1005
, 1006
, 1009
, 1010,
1011
, 1012
, 1013
, 1014
, 1016,
1017,
1020``, 1050
字段名 | 类型 | 描述 | 可缺省 |
---|---|---|---|
return_laser | boolean | 是否返回激光数据(即1009的数据),true = 返回,false = 不返回,缺省则为返回 | 是 |
请求示例
// 返回全部数据
5A 01 00 01 00 00 00 00 04 4D 00 00 00 00 00 00
1
2
2
json
{"return_laser":false}
5A 01 00 01 00 00 00 16 04 4D 00 00 00 00 00 00
7B 22 72 65 74 75 72 6E 5F 6C 61 73 65 72 22 3A
66 61 6C 73 65 7D
1
2
3
4
5
2
3
4
5
响应
- 编号: 11101 (0x2B5D)
- 名称: robot_status_all2_res
- 描述: 查询批量数据2的响应
- JSON 数据区: 见下表
如果响应数据区的 JSON Object 中有 API 中未提到的 key-value 键值对,可以直接忽略,无须关注其含义,下文不再赘述
字段名 | 类型 | 描述 | 可缺省 |
---|---|---|---|
mode | number | 机器人运行模式,手动模式=0,自动模式=1 | 是 |
x | number | 机器人的 x 坐标, 单位 m | 是 |
y | number | 机器人的 y 坐标, 单位 m | 是 |
angle | number | 机器人的 angle 坐标, 单位 rad | 是 |
confidence | number | 机器人的定位置信度, 范围 [0, 1] | 是 |
current_station | string | 机器人当前所在站点的 id(该判断比较严格,机器人必须很靠近某一个站点(<30cm, 这个距离可以通过参数配置中的CurrentPointDist 修改),否则为空字符,即不处于任何站点) | 是 |
last_station | string | 机器人上一个所在站点的 id | 是 |
vx | number | 机器人在机器人坐标系的 x 方向实际的速度, 单位 m/s | 是 |
vy | number | 机器人在机器人坐标系的 y 方向实际的速度, 单位 m/s | 是 |
w | number | 机器人在机器人坐标系的实际的角速度(即顺时针转为负, 逆时针转为正), 单位 rad/s | 是 |
steer | number | 单舵轮机器人当前的舵轮角度, 单位 rad | 是 |
spin | number | 机器人的托盘(如果存在)角度, 单位 rad | 是 |
r_vx | number | 机器人在机器人坐标系的 x 方向接收到的速度, 单位 m/s | 是 |
r_vy | number | 机器人在机器人坐标系的 y 方向收到的速度, 单位 m/s | 是 |
r_w | number | 机器人在机器人坐标系的收到的角速度(即顺时针转为负, 逆时针转为正), 单位 rad/s | 是 |
r_steer | number | 单舵轮机器人收到的舵轮角度, 单位 rad | 是 |
r_spin | number | 托盘机器人的收到托盘(如果存在)转动速度, 单位 rad/s | 是 |
steer_angles | array[number] | 多舵轮机器人当前的舵角角度, 双舵轮或多舵轮角度顺序按照模型文件中的顺序排序, 单位 rad | 是 |
r_steer_angles | array[number] | 多舵轮机器人收到的舵角角度, 双舵轮=[前舵轮角度,后舵轮角度], 单位 rad | 是 |
is_stop | boolean | 机器人底盘是否静止(行走电机) | 是 |
blocked | boolean | 机器人是否被阻挡 | 是 |
block_reason | number | 被阻挡的原因, 0 = Ultrasonic (超声), 1 = Laser (激光), 2 = Fallingdown (防跌落传感器), 3 = Collision (碰撞传感器), 4 = Infrared (红外传感器), 5 = Lock(锁车开关),6 = 动态障碍物, 7 = 虚拟激光点,8 = 3D 相机 | 是 |
block_x | number | 最近障碍物位置的 x 坐标, 单位 m | 是 |
block_y | number | 最近障碍物位置的 y 坐标, 单位 m | 是 |
block_ultrasonic_id | number | 发生阻挡的超声 id 号, 仅当 block_reason = 0 时有意义 | 是 |
block_di | number | 发生阻挡的 DI 的 id 号, 仅当 block_reason = 2、3、4 时有意义 | 是 |
slowed | boolean | 机器人是否减速 | 是 |
slow_reason | number | 减速的原因, 0 = Ultrasonic (超声), 1 = Laser (激光), 2 = Fallingdown (防跌落传感器), 3 = Collision (碰撞传感器), 4 = Infrared (红外传感器), 5 = Lock(锁车开关),6 = 动态障碍物, 7 = 虚拟激光点,8 = 3D 相机 | 是 |
slow_x | number | 最近的导致减速的障碍物位置的 x 坐标, 单位 m | 是 |
slow_y | number | 最近的导致减速的障碍物位置的 y 坐标, 单位 m | 是 |
slow_ultrasonic_id | number | 发生减速的超声 id 号, 仅当 slow_reason = 0 时有意义 | 是 |
slow_di | number | 发生减速的 DI 的 id 号, 仅当 slow_reason = 2、3、4 时有意义 | 是 |
lasers | array | 激光点云数据 | 是 |
path | array[array[number]], array 中每个元素也是 array, 其包含两个 number, 分别为 x, y 代表路径点在世界坐标系中的坐标 | 按顺序的路径点数据, 依次连接就是机器人规划的路径 | 是 |
area_ids | array[string] | 机器人所在区域 id 的数组(由于地图上的区域是可以重叠的, 所以机器人可能同时在多个区域),数组可能为空 | 是 |
emergency | boolean | true 表示急停按钮处于激活状态(按下), false 表示急停按钮处于非激活状态(拔起) | 是 |
driver_emc | boolean | true 表示电机驱动器发生急停, false 表示电机驱动器发生未急停 | 是 |
DI | array[Object] | id: 对应的 id 号 source: 来源 normal = 普通 DI virtual = 虚拟 DI modbus = modbus DI status: 表示高低电平 true = 高电平 false = 低电平 valid: 对应 DI 是否启用 true = 启用 false = 禁用 | 是 |
DO | array[Object] | id: 对应的 id 号 source: 来源 normal = 普通 DO modbus = modbus DO status: 表示高低电平 true = 高电平 false = 低电平 | 是 |
yaw | number | 偏航角,单位:rad | 是 |
roll | number | 滚转角,单位:rad | 是 |
pitch | number | 俯仰角,单位:rad | 是 |
ultrasonic_nodes | array[object] | 超声节点数据 | 是 |
pgvs | array[object] | 二维码识别数据 | 是 |
task_status | number | 0 = NONE, 1 = WAITING(目前不可能出现该状态), 2 = RUNNING, 3 = SUSPENDED, 4 = COMPLETED, 5 = FAILED, 6 = CANCELED | 是 |
task_type | number | 导航类型, 0 = 没有导航, 1 = 自由导航到任意点, 2 = 自由导航到站点, 3 = 路径导航到站点, 7 = 平动转动, 100 = 其他 | 是 |
target_id | string | 当前导航要去的站点, 仅当 task_type 为 2 或 3 时该字段有效, task_status 为 RUNNING 时说明正在去这个站点, task_status 为 COMPLETED 时说明已经到达这个站点, task_status 为 FAILED 时说明去这个站点失败, task_status 为 SUSPENDED 则说明去这个站点的导航暂停 | 是 |
target_point | array[number] | 当前导航要去的坐标点, 为一个包含三个元素的数组, 分别为在世界坐标系中的 x, y, r 坐标, 仅当 task_type 为 1 时该字段有效, task_status 为 RUNNING 时说明正在去这个坐标点, task_status 为 COMPLETED 时说明已经到达这个坐标点, task_status 为 FAILED 时说明去这个坐标点失败, task_status 为 SUSPENDED 则说明去这个坐标点的导航暂停 | 是 |
finished_path | array[string] | 当前导航路径上已经经过的站点, 为站点的数组, 仅当 task_type 为 3 或 4 时该字段有效点。这里会列出所有已经经过的中间点 | 是 |
unfinished_path | array[string] | 当前导航路径上尚未经过的站点, 为站点的数组, 仅当 task_type 为 3 或 4 时该字段有效。这里会列出所有尚未经过的中间点 | 是 |
fatals | array[object] | 报警码 Fatal 的数组, 所有出现的 Fatal 报警都会出现在数据中 | 是 |
errors | array[object] | 报警码 Error 的数组, 所有出现的 Error 报警都会出现在数据中 | 是 |
warnings | array[object] | 报警码 Warning 的数组, 所有出现的 Warning 报警都会出现在数据中 | 是 |
notices | array[object] | Notice 的数组, 所有出现的 Notice 报警都会出现在数据中 | 是 |
ret_code | number | API 错误码 | 是 |
create_on | string | API 上传时间戳 | 是 |
err_msg | string | 错误信息 | 是 |
响应示例
json
{
"DI": [
{
"id": 0,
"source": "normal",
"status": true,
"valid": true
},
{
"id": 1,
"source": "normal",
"status": true,
"valid": true
},
{
"id": 2,
"source": "normal",
"status": true,
"valid": true
},
{
"id": 3,
"source": "normal",
"status": true,
"valid": true
},
{
"id": 4,
"source": "normal",
"status": true,
"valid": true
},
{
"id": 5,
"source": "normal",
"status": true,
"valid": true
},
{
"id": 6,
"source": "normal",
"status": true,
"valid": true
},
{
"id": 7,
"source": "normal",
"status": true,
"valid": true
},
{
"id": 8,
"source": "normal",
"status": true,
"valid": true
}
],
"DO": [
{
"id": 0,
"source": "normal",
"status": true
},
{
"id": 1,
"source": "normal",
"status": false
},
{
"id": 2,
"source": "normal",
"status": false
},
{
"id": 3,
"source": "normal",
"status": false
},
{
"id": 4,
"source": "normal",
"status": false
},
{
"id": 5,
"source": "normal",
"status": true
},
{
"id": 6,
"source": "normal",
"status": true
},
{
"id": 7,
"source": "normal",
"status": true
},
{
"id": 8,
"source": "normal",
"status": true
}
],
"angle": 3.0178,
"area_ids": [],
"block_x": 1.1998,
"block_y": -1.4924,
"blocked": false,
"brake": false,
"confidence": 0.9039,
"current_station": "",
"di_max_node": 24,
"do_max_node": 16,
"driver_emc": false,
"electric": false,
"emergency": false,
"errors": [],
"fatals": [],
"finished_path": [],
"last_station": "LM3",
"mode": 1,
"notices": [],
"path": [],
"pgvs": [],
"pitch": 0.12391837522712172,
"r_spin": 0,
"r_steer": 0,
"r_vx": 1,
"r_vy": 0,
"r_w": 0.0041,
"ret_code": 0,
"roll": 0.12391837522712172,
"running_status": 1,
"slowed": false,
"soft_emc": false,
"spin": 0,
"steer": 0,
"target_dist": 0,
"target_id": "1",
"task_status": 2,
"task_type": 3,
"ultrasonic_nodes": [],
"unfinished_path": [
"LM1"
],
"vx": 1.0303,
"vy": 0,
"w": 0.1801,
"warnings": [],
"x": 1.7051,
"y": -0.174,
"yaw": -1.6249016401331637
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
最近更新 2023/06/30
有帮助
没帮助