AGVC SDK  0.8.0
type.h
浏览该文件的文档.
1#ifndef AGVC_INTERFACE_TYPE_H
2#define AGVC_INTERFACE_TYPE_H
3
4#include <string>
5#include <vector>
6#include <cstdint>
7
8namespace agvc_interface {
9/// 接口函数返回值定义
10///
11/// +数为警告,负数为错误,0为没有错误也没有警告
12#define ENUM_AgvcErrorCodes_DECLARES \
13 ENUM_ITEM(AGVC_OK, 0, "成功") \
14 ENUM_ITEM(AGVC_BAD_STATE, 1, "状态错误") \
15 ENUM_ITEM(AGVC_QUEUE_FULL, 2, "规划队列满") \
16 ENUM_ITEM(AGVC_BUSY, 3, "上一条指令正在执行中") \
17 ENUM_ITEM(AGVC_TIMEOUT, 4, "超时") \
18 ENUM_ITEM(AGVC_INVL_ARGUMENT, 5, "参数无效") \
19 ENUM_ITEM(AGVC_NOT_IMPLETEMENT, 6, "接口未实现") \
20 ENUM_ITEM(AGVC_NO_ACCESS, 7, "无法访问") \
21 ENUM_ITEM(AGVC_CONN_REFUSED, 8, "连接被拒绝") \
22 ENUM_ITEM(AGVC_CONN_RESET, 9, "连接被重置") \
23 ENUM_ITEM(AGVC_INPROGRESS, 10, "正在执行中") \
24 ENUM_ITEM(AGVC_EIO, 11, "input/output error") \
25 ENUM_ITEM(AGVC_NOBUFFS, 12, "") \
26 ENUM_ITEM(AGVC_REQUEST_IGNORE, 13, "本次请求被忽略") \
27 ENUM_ITEM(AGVC_ALGORITHM_PLAN_FAILED, 14, "运动规划算法错误") \
28 ENUM_ITEM(AGVC_VERSION_INCOMPAT, 15, "接口版本不匹配") \
29 ENUM_ITEM(AGVC_DIMENSION_ERR, 16, "输入参数维数不对") \
30 ENUM_ITEM(AGVC_SINGULAR_ERR, 17, "输入的配置可能会奇异") \
31 ENUM_ITEM(AGVC_POS_BOUND_ERR, 18, "输入的位置边界超过极限范围") \
32 ENUM_ITEM(AGVC_INIT_POS_ERR, 19, "初始位置输入不合理") \
33 ENUM_ITEM(AGVC_ELP_SETTING_ERR, 20, "包络体设置错误") \
34 ENUM_ITEM(AGVC_TRAJ_GEN_FAIL, 21, "轨迹生成失败") \
35 ENUM_ITEM(AGVC_TRAJ_SELF_COLLISION, 22, "轨迹自碰撞") \
36 ENUM_ITEM(AGVC_IK_NO_CONVERGE, 23, "逆解计算不收敛,计算出错") \
37 ENUM_ITEM(AGVC_IK_OUT_OF_RANGE, 24, "逆解计算超出机器人最大限制") \
38 ENUM_ITEM(AGVC_IK_CONFIG_DISMATCH, 25, "逆解输入配置存在错误") \
39 ENUM_ITEM(AGVC_IK_JACOBIAN_FAILED, 26, "逆解雅可比矩阵计算失败") \
40 ENUM_ITEM(AGVC_IK_NO_SOLU, 27, "目标点存在解析解,但均不满足选解条件") \
41 ENUM_ITEM(AGVC_IK_UNKOWN_ERROR, 28, "逆解返回未知类型错误") \
42 ENUM_ITEM(AGVC_ERR_UNKOWN, 99999, "Unkown error occurred.") \
43 ENUM_ITEM(STATION_SRV_OK, 100, "站点操作成功") \
44 ENUM_ITEM(STATION_SRV_NOT_FOUND, -101, "站点服务器未响应") \
45 ENUM_ITEM(STATION_CREAT_FAILED, -102, "站点创建失败") \
46 ENUM_ITEM(STATION_DELETE_FAILED, -103, "站点删除失败") \
47 ENUM_ITEM(PATH_SRV_OK, 200, "路径操作成功") \
48 ENUM_ITEM(PATH_SRV_NOT_FOUND, -201, "路径服务器未响应") \
49 ENUM_ITEM(PATH_CREAT_FAILED, -202, "路径创建失败") \
50 ENUM_ITEM(PATH_DELETE_FAILED, -203, "路径删除失败") \
51 ENUM_ITEM(MAP_SRV_OK, 300, "地图操作成功") \
52 ENUM_ITEM(MAP_SRV_NOT_FOUND, -301, "地图服务器未响应") \
53 ENUM_ITEM(MAP_HEADER_LIST_FAILED, -302, "获取地图header list 失败") \
54 ENUM_ITEM(MAP_HEADER_FAILED, -303, "获取地图header失败") \
55 ENUM_ITEM(MAP_SET_FAILED, -304, "地图设置失败") \
56 ENUM_ITEM(MAP_SAVE_FAILED, -305, "地图保存失败") \
57 ENUM_ITEM(MAP_SWITCH_FAILED, -306, "地图切换失败") \
58 ENUM_ITEM(MAP_DELETE_FAILED, -307, "地图删除失败") \
59 ENUM_ITEM(MAP_VIRTUAL_SRV_OK, 301, "虚拟区操作成功") \
60 ENUM_ITEM(MAP_VIRTUAL_SRV_NOT_FOUND, -308, "虚拟区服务器未响应") \
61 ENUM_ITEM(MAP_VIRTUAL_SET_PARAM_WRONG, -309, "虚拟区设置参数错误") \
62 ENUM_ITEM(MAP_VIRTUAL_ADD_FAILED, -310, "添加虚拟区失败") \
63 ENUM_ITEM(MAP_VIRTUAL_DELETE_FAILED, -311, "删除虚拟区失败") \
64 ENUM_ITEM(IP_SRV_OK, 400, "IP操作成功") \
65 ENUM_ITEM(IP_SRV_NOT_FOUND, -401, "ip设置服务器未响应") \
66 ENUM_ITEM(IP_NETWORK_NULL, -402, "ip地址网卡名称为空") \
67 ENUM_ITEM(IP_ADDRESS_NULL, -403, "ip地址为空") \
68 ENUM_ITEM(IP_SET_FAILED, -404, "ip设置失败")
69
70#define ENUM_ITEM(c, n, ...) c = n,
75
76/**
77 * agv 运行模式
78 */
79enum class RunningMode
80{
81 NONE = 0,
82 START = 1, ///< 开始模式
83 MAPPING = 2, ///< 建图模式
84 NAVIGATE = 3, ///< 导航模式
85 CHARGING = 4, ///< 自动充电模式
86 MAINTAIN = 5, ///< 维护模式
87 STOP = 6, ///< 停止模式
88};
89
90/**
91 * 路径的形状
92 */
93enum class PathShape
94{
95 NONE = 0,
96 LINE = 1, ///< 直线
97 ARC = 2, ///< 圆弧
98 BEZIER = 3, ///< 贝塞尔曲线
99 ///< B_SPLINE = 4 // B样条曲线
100};
101
102/**
103 * 地图格式
104 */
105enum class MapFormat
106{
107 NONE = 0,
108 OCCUPANCY_GRID = 1, ///< 占用栅格地图
109 BASE64_PNG = 2, ///< base64编码的png地图
110};
111
112/**
113 * 地图中虚拟区域的类型
114 */
116{
117 NONE = 0,
118 OBSTACLE = 1, ///< 虚拟墙
119 SLOW_DOWN = 2, ///< 减速区
120 INFLATE = 3, ///< 膨胀区
121};
122
123/**
124 * 地图中虚拟区域的形状
125 */
127{
128 NONE = 0,
129 LINE = 1, ///< 直线
130 ARC = 2, ///< 圆弧
131 CIRCLE = 3, ///< 圆形
132 POLYGON = 4, ///< 多边形
133};
134
135/**
136 * agv 导航类型
137 */
138enum class NavType
139{
140 NONE = 0, ///< 空
141 FREE_TO_POSE = 1, ///< 自由导航到任意点
142 FREE_TO_STATION = 2, ///< 自由导航到站点
143 PATH_TO_STATION = 3, ///< 路径导航到站点
144};
145
146/**
147 * @brief 自动充电类型
148 * @since 0.7.0
149 * @note 高电量阈值与低电量阈值在对外配置参数中进行修改
150 */
152{
153 NONE = 0, ///< 空
154 LOW_POWER_TO_BOARD = 1, ///< 低电量自动上桩; 如果当前电量低于低电量阈值,开始上桩;否则,不执行上桩;
155 HIGH_POWER_LEAVE_BOARD = 2, ///< 高电量自动下桩; 如果当前电量高于高电量阈值,开始下桩;否则,不执行下桩;
156 FORCE_TO_BOARD = 3, ///< 强制自动上桩; 无视当前电量
157 FORCE_LEAVE_BOARD = 4, ///< 强制自动下桩; 无视当前电量
158};
159
160/**
161 * 一个操作执行后反馈的状态
162 */
164{
165 NONE = 0, ///< 空
166 FINISHED = 1, ///< 成功
167 FAILED = 2, ///< 失败
168 RUNNING = 3, ///< 正在运行
169 PAUSED = 4, ///< 暂停
170 CANCELED = 5, ///< 取消
171};
172
173/**
174 * 模块固件更新配置
175 */
177{
178 NONE = 0, ///< 空 默认不更新固件
179 UPDATE = 1, ///< 更新固件
180 FORCED_UPDATE = 2, ///< 强制更新固件
181 NOT_UPDATE = 3, ///< 不更新固件
182};
183
184// 脚本状态
186{
187 RUNNING = 0, // 正在运行中
188 PAUSED = 1, // 暂停
189 STOPPED = 2, // 已停止
190 ABORTING = 3, // 中止
191};
192
193/**
194 * 标定类型
195 */
197{
198 NONE = 0, ///< 空
199 LASER_ODOM = 1, ///< 激光-码盘里程计标定
200};
201
202/**
203 * @brief agv 导航状态
204 * @details
205 * NONE = 0, // 空\n
206 * FINISHED = 1, // 向站点导航完成\n
207 * FAILED = 2, // 向站点导航失败\n
208 * RUNNING = 3, // 正在向站点导航\n
209 * PAUSED = 4, // 向站点导航暂停\n
210 * CANCELED = 5, // 向站点导航取消
211 */
213
214/**
215 * @brief 保存地图异步接口状态,调用接口 saveMap 后的状态
216 * @details
217 * NONE = 0, // 保存地图接口未执行\n
218 * FINISHED = 1, // 保存地图接口执行完毕\n
219 * FAILED = 2, // 无效值\n
220 * RUNNING = 3, // 保存地图中\n
221 * PAUSED = 4, // 无效值\n
222 * CANCELED = 5, // 无效值
223 */
225
226/**
227 * @brief 切换地图异步接口状态,调用接口 switchMap 后的状态
228 * @details
229 * NONE = 0, // 切换地图接口未执行\n
230 * FINISHED = 1, // 切换地图接口执行完毕\n
231 * FAILED = 2, // 无效值\n
232 * RUNNING = 3, // 切换地图中\n
233 * PAUSED = 4, // 无效值\n
234 * CANCELED = 5, // 无效值
235 */
237
238/**
239 * @brief 切换运行模式异步接口状态,调用接口 changeRunningMode 后的状态
240 * @details
241 * NONE = 0, // 切换运行模式接口未执行\n
242 * FINISHED = 1, // 切换运行模式接口执行完毕\n
243 * FAILED = 2, // 无效值\n
244 * RUNNING = 3, // 切换运行模式中\n
245 * PAUSED = 4, // 无效值\n
246 * CANCELED = 5, // 无效值
247 */
249
250/**
251 * @brief 重定位状态,调用接口 relocation 后的状态
252 * @details
253 * NONE = 0, // 重定位接口未执行\n
254 * FINISHED = 1, // 重定位接口执行完毕\n
255 * FAILED = 2, // 无效值\n
256 * RUNNING = 3, // 重定位中\n
257 * PAUSED = 4, // 无效值\n
258 * CANCELED = 5, // 无效值
259 */
261
262/**
263 * @brief 上传Png地图全部信息接口状态,调用接口 setPngMapAllInfo 后的状态
264 * @details
265 * NONE = 0, // 设置地图信息接口未执行\n
266 * FINISHED = 1, // 设置地图信息接口执行完毕\n
267 * FAILED = 2, // 无效值\n
268 * RUNNING = 3, // 地图信息上传中\n
269 * PAUSED = 4, // 无效值\n
270 * CANCELED = 5, // 无效值
271 */
273
274/**
275 * @brief 获取Png地图全部信息接口状态,调用接口 getPngMapAllInfo 后的状态
276 * @details
277 * NONE = 0, // 获取地图信息接口未执行\n
278 * FINISHED = 1, // 获取地图信息接口执行完毕\n
279 * FAILED = 2, // 无效值\n
280 * RUNNING = 3, // 地图信息获取中\n
281 * PAUSED = 4, // 无效值\n
282 * CANCELED = 5, // 无效值
283 */
285
286/**
287 * @brief 获取栅格地图接口状态,调用接口 getGridMapFromAgv 后的状态
288 * @details
289 * NONE = 0, // 获取栅格地图接口未执行\n
290 * FINISHED = 1, // 获取栅格地图接口执行完毕\n
291 * FAILED = 2, // 无效值\n
292 * RUNNING = 3, // 栅格地图获取中\n
293 * PAUSED = 4, // 无效值\n
294 * CANCELED = 5, // 无效值
295 */
297
298/**
299 * @brief 发送栅格地图接口状态,调用接口 sendGridMapToAgv 后的状态
300 * @details
301 * NONE = 0, // 发送栅格地图接口未执行\n
302 * FINISHED = 1, // 发送栅格地图接口执行完毕\n
303 * FAILED = 2, // 无效值\n
304 * RUNNING = 3, // 发送栅格地图中\n
305 * PAUSED = 4, // 无效值\n
306 * CANCELED = 5, // 无效值
307 */
309
310/**
311 * @brief 获取png地图接口状态,调用接口 getBase64PngMapFromAgv 后的状态
312 * @details
313 * NONE = 0, // 获取png地图接口未执行\n
314 * FINISHED = 1, // 获取png地图接口执行完毕\n
315 * FAILED = 2, // 无效值\n
316 * RUNNING = 3, // 获取png地图中\n
317 * PAUSED = 4, // 无效值\n
318 * CANCELED = 5, // 无效值
319 */
321
322/**
323 * @brief 发送png地图接口状态,调用接口 sendBase64PngMapToAgv 后的状态
324 * @details
325 * NONE = 0, // 发送png地图接口未执行\n
326 * FINISHED = 1, // 发送png地图接口执行完毕\n
327 * FAILED = 2, // 无效值\n
328 * RUNNING = 3, // png地图发送中\n
329 * PAUSED = 4, // 无效值\n
330 * CANCELED = 5, // 无效值
331 */
333
334/**
335 * @brief 设置栅格地图全部信息接口状态,调用接口 setGridMapAllInfo 后的状态
336 * @details
337 * NONE = 0, // 发送栅格地图全部信息接口未执行\n
338 * FINISHED = 1, // 发送栅格地图全部信息接口执行完毕\n
339 * FAILED = 2, // 无效值\n
340 * RUNNING = 3, // 栅格地图发送中\n
341 * PAUSED = 4, // 无效值\n
342 * CANCELED = 5, // 无效值
343 */
345
346/**
347 * @brief 获取栅格地图全部信息接口状态,调用接口 getGridMapAllInfo 后的状态
348 * @details
349 * NONE = 0, // 获取栅格地图全部信息接口未执行\n
350 * FINISHED = 1, // 获取栅格地图全部信息接口执行完毕\n
351 * FAILED = 2, // 无效值\n
352 * RUNNING = 3, // 栅格地图全部信息获取中\n
353 * PAUSED = 4, // 无效值\n
354 * CANCELED = 5, // 无效值
355 */
357
358/**
359 * @brief 获取栅格地图全部信息接口状态,调用接口 previewPngMapFromAgv 后的状态
360 * @details
361 * NONE = 0, // 预览地图接口未执行\n
362 * FINISHED = 1, // 预览地图接口执行完毕\n
363 * FAILED = 2, // 无效值\n
364 * RUNNING = 3, // 预览地图接口获取中\n
365 * PAUSED = 4, // 无效值\n
366 * CANCELED = 5, // 无效值
367 */
369
370/**
371 * @brief 获取自动上轨接口状态,调用接口 autoAlignRailway 后的状态
372 * @details
373 * NONE = 0, // 自动上轨接口未执行\n
374 * FINISHED = 1, // 自动上轨接口执行完毕\n
375 * FAILED = 2, // 无效值\n
376 * RUNNING = 3, // 自动上轨接口执行中\n
377 * PAUSED = 4, // 无效值\n
378 * CANCELED = 5, // 无效值
379 */
381
382/**
383 * @brief 标定状态
384 * @details
385 * NONE = 0, // 空\n
386 * FINISHED = 1, // 标定完成\n
387 * FAILED = 2, // 标定失败\n
388 * RUNNING = 3, // 正在采集数据\n
389 * PAUSED = 4, // 无效值\n
390 * CANCELED = 5, // 取消标定
391 */
393
394/**
395 * 二维点
396 */
398{
399 float x; ///< 单位 m
400 float y; ///< 单位 m
401};
402
403/**
404 * 二维位姿
405 */
406struct Pose2d
407{
408 double x; ///< 单位 m
409 double y; ///< 单位 m
410 double yaw; ///< 单位 rad
411};
412
413/**
414 * 速度
415 */
416struct Speed
417{
418 double v; ///< 单位 m/s
419 double w; ///< 单位 rad/s
420};
421
422/**
423 * 头部信息
424 */
425struct Header
426{
427 std::string id; ///< uuid
428 std::string name; ///< 名称
429 int64_t stamp; ///< 时间戳,UTC时间(1970年01月01日00时00分00秒~至今),单位:纳秒
430 std::string map_id; ///< 当前地图的id,形式为uuid:例如a5e7c6de-4463-443e-8b25-ccbfd6a27aee,
431 ///< 与地图文件名字相同
432 int error_code = -1; ///< 错误码
433};
434
435/**
436 * agv 信息
437 */
439{
440 std::string name; ///< agv的名称
441 std::string version; ///< 当前控制程序的版本号
442 std::string MFD; ///< 生产日期
443 std::string SN; ///< S/N 码
444 int communication_version; ///< bridge 版本信息
445 int battery_version; ///< 电池版本信息
446 int loop_times; ///< 电池循环次数
447 float surplus_capacity; ///< 电池剩余容量
448 int left_motor_firmware_version; ///< 左电机固件版本
449 int right_motor_firmware_version; ///< 右电机固件版本
450 int master_board_firmware_version; ///< 接口板固件版本信息
451 int hardware_abstraction_version; ///< 硬件抽象层版本信息
452 int error_code_version; ///< 错误码版本
453 float max_speed; ///< agv允许运行的最大线速度
454 float max_angular; ///< agv允许运行的最大角速度
455};
456
457/**
458 * agv 运行信息
459 */
461{
462 Header header; ///< agv的SN码,agv的名称,当前时间,地图的id
463 RunningMode running_mode; ///< agv当前运行模式
464 Speed current_speed; ///< 当前行驶速度 {v w},单位{m/s rad/s}
465 int8_t location_score; ///< 当前定位评分,[0-100]
466 double total_dist; ///< 累计行驶里程,单位 m
467 double current_dist; ///< 本次累计行驶里程,单位 m
468 double total_running_time; ///< 累计运行时间,单位 s
469 double current_running_time; ///< 本次运行时间,单位 s
470 double battery_voltage; ///< 电池电压,单位 V
471 double battery_current; ///< 电池电流,单位 A
472 int8_t remaining_voltage; ///< 剩余电量,百分比 % [0-100]
473 int8_t battery_status; ///< 电池状态,0-无,1-放电,2-充电,3-充满,4-急需充电
474 int8_t safety_edge_status; ///< 安全触边状态,0-无,1-左前侧碰撞,2-右前碰撞,3-左后碰撞,4-右后碰撞
475 bool low_battery; ///< 是否电量低
476 bool pause; ///< 是否处于暂停状态
477 bool emergency_stop; ///< 是否处于急停状态
478 bool blocked; ///< 是否被障碍物遮挡
479 bool localization_loss; ///< 是否定位丢失
480 bool fault_alarm; ///< 故障报警(电机故障、传感器故障、电池故障),具体故障信息可在日志中查看
481 bool break_release_flag; ///< 是否释放刹车,true 代表释放,false 代表未释放
482};
483
484/**
485 * 接口saveMap的工作状态
486 */
488{
489 Header header; ///< header.id 代表下发的saveMap指令id
490 SaveMapStatus status; ///< 接口SaveMap的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
491};
492
493/**
494 * 接口switchMap的工作状态
495 */
497{
498 Header header; ///< header.id 代表下发的switchMap指令id
499 SwitchMapStatus status; ///< 接口switchMap的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
500};
501
502/**
503 * 接口changeRunningMode的工作状态
504 */
506{
507 Header header; ///< header.id 代表下发的changeRunningMode指令id
508 ChangeRunningModeStatus status; ///< 接口changeRunningMode的运行状态
509 ///< NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
510};
511
512/**
513 * 接口Relocation的工作状态
514 */
516{
517 Header header; ///< header.id 代表下发的Relocation指令id
518 RelocationStatus status; ///< 接口Relocation的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
519};
520
521/**
522 * 接口setPngMapAllInfo的工作状态
523 */
525{
526 Header header; ///< header.id 代表下发的setPngMapAllInfo指令id
527 SetPngMapAllInfoStatus status; ///< 接口setPngMapAllInfo的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
528};
529
530/**
531 * 接口getPngMapAllInfo的工作状态
532 */
534{
535 Header header; ///< header.id 代表下发的getPngMapAllInfo指令id
536 GetPngMapAllInfoStatus status; ///< 接口getPngMapAllInfo的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
537};
538
539/**
540 * 接口getGridMapFromAgv的工作状态
541 */
543{
544 Header header; ///< header.id 代表下发的getGridMapFromAgv指令id
545 GetGridMapStatus status; ///< 接口getGridMapFromAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
546};
547
548/**
549 * 接口sendGridMapToAgv的工作状态
550 */
552{
553 Header header; ///< header.id 代表下发的sendGridMapToAgv指令id
554 SendGridMapStatus status; ///< 接口sendGridMapToAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
555};
556
558{
559 Header header; ///< header.id 代表下发的getBase64PngMapFromAgv指令id
560 GetPngMapStatus status; ///< 接口getBase64PngMapFromAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
561};
562
563/**
564 * 接口sendBase64PngMapToAgv的工作状态
565 */
567{
568 Header header; ///< header.id 代表下发的sendBase64PngMapToAgv指令id
569 SendPngMapStatus status; ///< 接口sendBase64PngMapToAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
570};
571
572/**
573 * 接口setGridMapAllInfo的工作状态
574 */
576{
577 Header header; ///< header.id 代表下发的setGridMapAllInfo指令id
578 SetGridMapAllInfoStatus status; ///< 接口setGridMapAllInfo的运行状态
579 ///< NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
580};
581
582/**
583 * 接口getGridMapAllInfo的工作状态
584 */
586{
587 Header header; ///< header.id 代表下发的getGridMapAllInfo指令id
588 GetGridMapAllInfoStatus status; ///< 接口getGridMapAllInfo的运行状态
589 ///< NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
590};
591
592/**
593 * 接口previewPngMapFromAgv的工作状态
594 */
596{
597 Header header; ///< header.id 代表下发的previewPngMapFromAgv指令id
598 PreviewPngMapStatus status; ///< 接口previewPngMapFromAgv的运行状态
599 ///< NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
600};
601
602/**
603 * 接口autoAlignRailway的工作状态
604 */
606{
607 Header header; ///< header.id 代表下发的autoAlignRailway指令id
608 AutoAlignRailwayStatus status; ///< 接口autoAlignRailway的运行状态
609 ///< NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
610};
611
612/**
613 * 异步接口运行状态
614 * 暂时存在14个异步接口:saveMap, switchMap, changeRunningMode, relocation, sendBase64PngMapToAgv
615 * getGridMapAllInfo, setGridMapAllInfo, sendGridMapToAgv, getGridMapFromAgv
616 * getPngMapAllInfo, setPngMapAllInfo, getBase64PngMapFromAgv, previewPngMapFromAgv, autoAlignRailway
617 */
619{
620 Header header; ///< agv的SN码,agv的名称,当前时间,地图的id
621 SaveMapWorkingStatus save_map_status; ///< 保存地图(saveMap)接口的执行状态
622 SwitchMapWorkingStatus switch_map_status; ///< 切换地图(switchMap)接口的执行状态
623 ChangeModeWorkingStatus change_running_mode_status; ///< 切换运行模式(changeRunningMode)接口的执行状态
624 RelocationWorkingStatus relocation_status; ///< 重定位(relocation)接口的执行状态
625 GetGridMapWorkingStatus get_grid_map_status; ///< 获取栅格地图(getGridMapFromAgv)接口的执行状态
626 SendGridMapWorkingStatus send_grid_map_status; ///< 发送栅格地图(sendGridMapToAgv)接口的执行状态
627 GetPngMapWorkingStatus get_png_map_status; ///< 获取png地图(getBase64PngMapFromAgv)接口的执行状态
628 SendPngMapWorkingStatus send_png_map_status; ///< 发送png地图(sendBase64PngMapToAgv)接口的执行状态
629 SetPngMapAllInfoWorkingStatus set_png_all_status; ///< 设置png地图全部信息(setPngMapAllInfo)接口的执行状态
630 GetPngMapAllInfoWorkingStatus get_png_all_status; ///< 获取png地图全部信息(getPngMapAllInfo)接口的执行状态
631 SetGridMapAllInfoWorkingStatus set_grid_all_status; ///< 设置栅格地图全部信息(setGridMapAllInfo)接口的执行状态
632 GetGridMapAllInfoWorkingStatus get_grid_all_status; ///< 获取栅格地图全部信息(getGridMapAllInfo)接口的执行状态
633 PreviewPngMapWorkingStatus preview_png_map_status; ///< 预览png地图(previewPngMapFromAgv)接口的执行状态
634 AutoAlignRailwayWorkingStatus align_railway_status; ///< 自动上轨(autoAlignRailway)接口的执行状态
635};
636
637/**
638 * 站点
639 */
641{
642 Header header; ///< 站点id,站点名称,当前时间,站点所在地图的id
643 std::string type; ///< 普通站点是"ST",充电站点“CP”
644 Pose2d pose; ///< 站点位姿,{x(m) y(m) theta(rad)}
645};
646
647/**
648 * 通过站点表示路径
649 */
651{
652 Header header; ///< 路径id,路径名称,当前时间,路径所在地图的id
653 PathShape shape; ///< 路径的形状
654 bool use_direction; ///< 生成站点时是否使用站点方向
655 double max_speed; ///< agv经过该路径时的最大速度
656 std::string start_station_id; ///< 路径起点站点id
657 std::string end_station_id; ///< 路径终点站点id
658 std::vector<Point2d> control_points; ///< 路径的控制点,{{x,y},{}, ...}
659};
660
661/**
662 * 地图信息
663 */
665{
666 Header header; ///< 地图id,地图名称,当前时间,map_id为地图的唯一id
667 double resolution; ///< 分辨率,每个正方形栅格/像素的宽度,单位 m
668 uint32_t width; ///< 地图宽度,多少个栅格/像素宽度
669 uint32_t height; ///< 地图高度,多少个栅格/像素高度
670 Pose2d origin; ///< {x(m) y(m) theta(rad)}
671 ///< 地图原点在真实地图下的坐标,指地图原点对应的实际位置坐标。
672 ///< 一张地图中,左下角为地图原点;
673 MapFormat format; ///< 地图格式
674 std::vector<int8_t> data; ///< 地图数据信息
675};
676
677/**
678 * @brief 栅格地图
679 * @details
680 * Header header; // 地图id,地图名称,当前时间,map_id为地图的唯一id\n
681 * double resolution; // 分辨率,每个正方形栅格的宽度,单位 m\n
682 * uint32_t width; // 地图宽度,多少个栅格宽度\n
683 * uint32_t height; // 地图高度,多少个栅格高度\n
684 * Pose2d origin; // {x(m) y(m) theta(rad)}
685 * // 栅格地图原点在真实地图下的坐标,指栅格原点对应的实际位置坐标。
686 * // 一张栅格地图中,左下角为栅格地图原点;\n
687 * MapFormat format; // 地图格式,=MapFormat::OCCUPANCY_GRID\n
688 * std::vector<int8_t> data; // 地图数据信息;0 表示可通行,100 表示被占用,-1 表示未知
689 */
691
692/**
693 * @brief Base64编码的png地图图片
694 * @details
695 * Header header; // 地图id,地图名称,当前时间,map_id为地图的唯一id\n
696 * double resolution; // 分辨率,每个正方形像素表示的宽度,单位 m\n
697 * uint32_t width; // 地图宽度,多少个像素宽度\n
698 * uint32_t height; // 地图高度,多少个像素高度\n
699 * Pose2d origin; // {x(m) y(m) theta(rad)}
700 * // 地图原点在真实地图下的坐标,指地图原点对应的实际位置坐标。
701 * // 一张地图中,左下角为地图原点;\n
702 * MapFormat format; // 地图格式,=MapFormat::BASE64_PNG\n
703 * std::vector<int8_t> data; // 地图数据信息;Base64编码的png地图图片,可以将data类型转换为string类型使用
704 */
706
707/**
708 * 地图中的虚拟区域
709 */
711{
712 Header header; ///< 虚拟区域的id,虚拟区域的名称,当前时间,虚拟区域所在地图的id
713 MapVirtualAreaType type; ///< 虚拟区域的类型
714 MapVirtualAreaShape shape; ///< 虚拟区域形状
715 double width_speed; ///< 虚拟墙的宽度/膨胀半径/减速区域的最大速度
716 std::vector<Point2d> vertex; ///< 虚拟区域的顶点 {{x(m) y(m)},{}, ...}
717 ///< 直线、多边形:按照顺时针顺序把顶点加入到 vertex 中
718 ///< 圆弧:圆弧起点、圆弧上一点、圆弧终点
719 ///< 圆形:圆上按顺序排序的任意不共线三个以上的点(包含3个)
720};
721
722/**
723 * 包含当前地图、当前地图上的站点、当前地图上的路径、当前地图上的虚拟区域信息
724 */
726{
727 MapInfo map; ///< 当前地图信息
728 std::vector<StationMark> stations; ///< 当前地图上的站点信息
729 std::vector<PathStation> paths; ///< 当前地图上的路径信息
730 std::vector<MapVirtualArea> virtual_areas; ///< 当前地图上的虚拟区域信息
731};
732
733/**
734 * IP地址
735 */
737{
738 std::string name; ///< 连接名称
739 std::string type; ///< 类型
740 std::string device; ///< 网卡名称
741 std::string ipv4_ip; ///< IPv4地址及CIDR码,为空时无效
742 std::string ipv4_gateway; ///< 网关
743 std::string ipv4_method; ///< 自动分配或者手动连接,对应字段 auto, manual
744 std::string ipv4_dns; ///< 第一个DNS
745 std::string ipv6_ip; ///< IPv6地址及CIDR码,为空时无效
746 std::string ipv6_gateway;
747};
748/**
749 * agv 到点后二次调整位置参数设置
750 */
752{
753 bool enable; ///< 是否要二次调整agv位置,true-调整;false不调整
754 bool forward_flag; ///< agv 调整方向,true,向车头方向调整,false,向车尾方向调整
755 double max_distance; ///< agv 单次调整的最远距离
756 double max_angle; ///< agv 单次调整的最大角度
757};
758/**
759 * 使 agv 导航到目标位置(控制信息)
760 */
762{
763 Header header; ///< 任务id,任务名称,当前时间,地图id
764 NavType type; ///< 导航类型
765 Pose2d target_pose; ///< 目标位姿 {x(m) y(m) theta(rad)}
766 ///< 导航类型为自由导航到任意点时有效,其他无效
767 std::vector<std::string> stations_id; ///< 导航经过的站点id,最后一个站点为导航目标位置
768 ///< 导航类型为自由导航到站点时,或路径导航到站点时有效,其他无效
769 bool forward_flag; ///< agv 正向行驶或倒车行驶
770 bool goal_end_rotate; ///< 到达目标点后是否根据站点方向旋转,true:旋转
771 ///< false:不旋转
772 AdjustParam secondary_adjustment; ///< 到达目标点后是否进行二次调整,贴合目标点位置, true:到点调整
773 ///< false:到点不调整
774 Speed max_vel; ///< 最大速度v,w
775};
776
777/**
778 * @brief 导航状态信息 / 自动充电状态信息
779 * @details
780 * 导航模式时,获取导航状态信息\n
781 * 自动充电模式时,获取自动充电状态信息,type与current_trajectory无效
782 * */
784{
785 Header header; ///< 任务id,任务名称,当前时间,地图id
786 NavStatus status; ///< 导航状态
787 [[deprecated("Since 0.7.0: use nav_type instead.")]]
788 NavType type; ///< 导航类型
789 NavType nav_type; ///< 导航类型
790 AutoChargingType auto_charging_type; ///< 自动充电类型
791 StationMark goal_station; ///< agv行驶路径目标站点
792 std::vector<Point2d> current_trajectory; ///< 还没经过的路径点 {{x(m) y(m)},{}, ...}
793};
794
795/**
796 * @brief 自动充电信息
797 * @since 0.7.0
798 */
800{
801 Header header; ///< 任务id,任务名称,当前时间,地图id
802 AutoChargingType auto_charging_type; ///< 自动充电类型
803 std::string cp_station_id; ///< 站点id,上桩任务中,表示去往哪个充电站点进行充电;为空时前往最近充电站点
804 std::string leave_to_station_id; ///< 站点id,下桩任务中,表示下桩导航到哪个站点; 为空时导航到充电站点
805 Speed max_speed; ///< 充电过程中的最大行驶速度
806};
807
808/**
809 * 配置要更新固件的模块及固件路径
810 */
812{
813 FirmwareUpdateMode left_motor; ///< 左电机固件更新信息配置
814 FirmwareUpdateMode right_motor; ///< 右电机固件更新信息配置
815 FirmwareUpdateMode master_board; ///< 接口板固件更新信息配置
816 std::string firmware_file_path; ///< 代表固件包的路径 例如 "/root/update.firm"
817};
818
819/**
820 * 固件更新过程信息
821 */
823{
824 std::string update_info; ///< 当前固件更新的步骤信息,failed 为升级失败,
825 ///< none 为无固件更新任务
826 double update_progress; ///< 固件更新进度信息,1.0 代表升级成功
827};
828
830{
831 Header header; ///< 任务id,任务名称,当前时间,地图id
832 CalibrationType type; ///< 标定类型
833 CalibrationStatus status; ///< 标定状态
834 uint32_t collected_data_count; ///< 采集到多少组数据
835};
836
837/**
838 * RTDE菜单
839 */
841{
842 bool to_server; ///< 输入/输出
843 int chanel; ///< 通道
844 double frequency; ///< 更新频率
845 int trigger; ///< 触发方式(该功能暂未实现): 0 - 周期; 1 - 变化
846 std::vector<std::string> segments; ///< 字段列表
847};
848
850{
851 parse_error = -32700, ///< 解析错误
852 invalid_request = -32600, ///< 无效请求
853 method_not_found = -32601, ///< 方法未找到
854 invalid_params = -32602, ///< 无效参数
855 internal_error = -32603, ///< 内部错误
856 server_error, ///< 服务器错误
857 invalid ///< 无效
858};
859
861{
862 EC_DISCONNECTED = -1, ///< 断开连接
863 EC_NOT_LOGINED = -2, ///< 未登录
864 EC_INVAL_SOCKET = -3, ///< 无效套接字
865 EC_REQUEST_BUSY = -4, ///< 请求繁忙
866 EC_SEND_FAILED = -5, ///< 发送失败
867 EC_RECV_TIMEOUT = -6, ///< 接收超时
868 EC_RECV_ERROR = -7, ///< 接收错误
869 EC_PARSE_ERROR = -8, ///< 解析错误
870 EC_INVALID_REQUEST = -9, ///< 无效请求
871 EC_METHOD_NOT_FOUND = -10, ///< 方法未找到
872 EC_INVALID_PARAMS = -11, ///< 无效参数
873 EC_INTERNAL_ERROR = -12, ///< 内部错误
874 EC_SERVER_ERROR = -13, ///< 服务器错误
875 EC_INVALID = -14 ///< 无效
876};
877
878class AgvcException : public std::exception
879{
880public:
881 AgvcException(int code, const std::string &prefix, const std::string &message) noexcept
882 : code_(code), message_(prefix + "-" + message)
883 {
884 }
885
886 AgvcException(int code, const std::string &message) noexcept : code_(code), message_(message) {}
887
889 {
890 if (code_ >= -32603 && code_ <= -32600) {
891 return static_cast<error_type>(code_);
892 } else if (code_ >= -32099 && code_ <= -32000) {
893 return server_error;
894 } else if (code_ == -32700) {
895 return parse_error;
896 }
897 return invalid;
898 }
899
900 int code() const { return code_; }
901 const char *what() const noexcept override { return message_.c_str(); }
902
903private:
904 int code_;
905 std::string message_;
906};
907
908inline const char *returnValue2Str(int retval)
909{
910 static const char *retval_str[] = {
911#define ENUM_ITEM(n, v, s) s,
913#undef ENUM_ITEM
914 };
915
916 enum agvc_index
917 {
918#define ENUM_ITEM(n, v, s) n##_INDEX,
920#undef ENUM_ITEM
921 };
922
923 int index = -1;
924
925#define ENUM_ITEM(n, v, s) \
926 if (retval == v) \
927 index = n##_INDEX;
929#undef ENUM_ITEM
930
931 if (index == -1)
932 {
933 index = AGVC_ERR_UNKOWN;
934 }
935
936 return retval_str[(unsigned)index];
937}
938
939} // namespace agvc_interface
940
941#if defined ENABLE_JSON_TYPES
942#include "bindings/jsonrpc/json_types.h"
943#endif
944
945#endif
AgvcException(int code, const std::string &prefix, const std::string &message) noexcept
定义 type.h:881
const char * what() const noexcept override
定义 type.h:901
AgvcException(int code, const std::string &message) noexcept
定义 type.h:886
error_type type() const
定义 type.h:888
@ invalid_request
无效请求
定义 type.h:852
@ invalid_params
无效参数
定义 type.h:854
@ server_error
服务器错误
定义 type.h:856
@ invalid
无效
定义 type.h:857
@ internal_error
内部错误
定义 type.h:855
@ parse_error
解析错误
定义 type.h:851
@ method_not_found
方法未找到
定义 type.h:853
FeedbackStatus
一个操作执行后反馈的状态
定义 type.h:164
FeedbackStatus SwitchMapStatus
切换地图异步接口状态,调用接口 switchMap 后的状态
定义 type.h:236
RunningMode
agv 运行模式
定义 type.h:80
@ CHARGING
自动充电模式
定义 type.h:85
FeedbackStatus RelocationStatus
重定位状态,调用接口 relocation 后的状态
定义 type.h:260
MapInfo OccupancyGridMap
栅格地图
定义 type.h:690
FeedbackStatus SetGridMapAllInfoStatus
设置栅格地图全部信息接口状态,调用接口 setGridMapAllInfo 后的状态
定义 type.h:344
MapVirtualAreaType
地图中虚拟区域的类型
定义 type.h:116
MapInfo Base64PngMap
Base64编码的png地图图片
定义 type.h:705
FeedbackStatus GetPngMapStatus
获取png地图接口状态,调用接口 getBase64PngMapFromAgv 后的状态
定义 type.h:320
FeedbackStatus AutoAlignRailwayStatus
获取自动上轨接口状态,调用接口 autoAlignRailway 后的状态
定义 type.h:380
FeedbackStatus SendPngMapStatus
发送png地图接口状态,调用接口 sendBase64PngMapToAgv 后的状态
定义 type.h:332
FeedbackStatus NavStatus
agv 导航状态
定义 type.h:212
FeedbackStatus SendGridMapStatus
发送栅格地图接口状态,调用接口 sendGridMapToAgv 后的状态
定义 type.h:308
const char * returnValue2Str(int retval)
定义 type.h:908
FeedbackStatus SaveMapStatus
保存地图异步接口状态,调用接口 saveMap 后的状态
定义 type.h:224
FeedbackStatus PreviewPngMapStatus
获取栅格地图全部信息接口状态,调用接口 previewPngMapFromAgv 后的状态
定义 type.h:368
@ ENUM_AgvcErrorCodes_DECLARES
定义 type.h:73
@ EC_INVALID_PARAMS
无效参数
定义 type.h:872
@ EC_DISCONNECTED
断开连接
定义 type.h:862
@ EC_PARSE_ERROR
解析错误
定义 type.h:869
@ EC_REQUEST_BUSY
请求繁忙
定义 type.h:865
@ EC_SEND_FAILED
发送失败
定义 type.h:866
@ EC_INTERNAL_ERROR
内部错误
定义 type.h:873
@ EC_NOT_LOGINED
未登录
定义 type.h:863
@ EC_INVALID
无效
定义 type.h:875
@ EC_RECV_TIMEOUT
接收超时
定义 type.h:867
@ EC_INVALID_REQUEST
无效请求
定义 type.h:870
@ EC_SERVER_ERROR
服务器错误
定义 type.h:874
@ EC_INVAL_SOCKET
无效套接字
定义 type.h:864
@ EC_METHOD_NOT_FOUND
方法未找到
定义 type.h:871
@ EC_RECV_ERROR
接收错误
定义 type.h:868
FeedbackStatus CalibrationStatus
标定状态
定义 type.h:392
MapFormat
地图格式
定义 type.h:106
@ BASE64_PNG
base64编码的png地图
定义 type.h:109
@ OCCUPANCY_GRID
占用栅格地图
定义 type.h:108
MapVirtualAreaShape
地图中虚拟区域的形状
定义 type.h:127
FeedbackStatus ChangeRunningModeStatus
切换运行模式异步接口状态,调用接口 changeRunningMode 后的状态
定义 type.h:248
FeedbackStatus GetGridMapStatus
获取栅格地图接口状态,调用接口 getGridMapFromAgv 后的状态
定义 type.h:296
FeedbackStatus SetPngMapAllInfoStatus
上传Png地图全部信息接口状态,调用接口 setPngMapAllInfo 后的状态
定义 type.h:272
CalibrationType
标定类型
定义 type.h:197
@ LASER_ODOM
激光-码盘里程计标定
定义 type.h:199
FeedbackStatus GetPngMapAllInfoStatus
获取Png地图全部信息接口状态,调用接口 getPngMapAllInfo 后的状态
定义 type.h:284
NavType
agv 导航类型
定义 type.h:139
@ FREE_TO_POSE
自由导航到任意点
定义 type.h:141
@ FREE_TO_STATION
自由导航到站点
定义 type.h:142
@ PATH_TO_STATION
路径导航到站点
定义 type.h:143
PathShape
路径的形状
定义 type.h:94
@ BEZIER
贝塞尔曲线 B_SPLINE = 4 // B样条曲线
定义 type.h:98
FirmwareUpdateMode
模块固件更新配置
定义 type.h:177
@ FORCED_UPDATE
强制更新固件
定义 type.h:180
FeedbackStatus GetGridMapAllInfoStatus
获取栅格地图全部信息接口状态,调用接口 getGridMapAllInfo 后的状态
定义 type.h:356
AutoChargingType
自动充电类型
定义 type.h:152
@ FORCE_LEAVE_BOARD
强制自动下桩; 无视当前电量
定义 type.h:157
@ FORCE_TO_BOARD
强制自动上桩; 无视当前电量
定义 type.h:156
@ LOW_POWER_TO_BOARD
低电量自动上桩; 如果当前电量低于低电量阈值,开始上桩;否则,不执行上桩;
定义 type.h:154
@ HIGH_POWER_LEAVE_BOARD
高电量自动下桩; 如果当前电量高于高电量阈值,开始下桩;否则,不执行下桩;
定义 type.h:155
agv 到点后二次调整位置参数设置
定义 type.h:752
double max_distance
agv 单次调整的最远距离
定义 type.h:755
bool enable
是否要二次调整agv位置,true-调整;false不调整
定义 type.h:753
bool forward_flag
agv 调整方向,true,向车头方向调整,false,向车尾方向调整
定义 type.h:754
double max_angle
agv 单次调整的最大角度
定义 type.h:756
int communication_version
bridge 版本信息
定义 type.h:444
float max_angular
agv允许运行的最大角速度
定义 type.h:454
int battery_version
电池版本信息
定义 type.h:445
int hardware_abstraction_version
硬件抽象层版本信息
定义 type.h:451
int left_motor_firmware_version
左电机固件版本
定义 type.h:448
float max_speed
agv允许运行的最大线速度
定义 type.h:453
int right_motor_firmware_version
右电机固件版本
定义 type.h:449
int master_board_firmware_version
接口板固件版本信息
定义 type.h:450
std::string SN
S/N 码
定义 type.h:443
std::string name
agv的名称
定义 type.h:440
float surplus_capacity
电池剩余容量
定义 type.h:447
int error_code_version
错误码版本
定义 type.h:452
int loop_times
电池循环次数
定义 type.h:446
std::string version
当前控制程序的版本号
定义 type.h:441
std::string MFD
生产日期
定义 type.h:442
异步接口运行状态 暂时存在14个异步接口:saveMap, switchMap, changeRunningMode, relocation, sendBase64PngMapToAgv getGrid...
定义 type.h:619
SendGridMapWorkingStatus send_grid_map_status
发送栅格地图(sendGridMapToAgv)接口的执行状态
定义 type.h:626
Header header
agv的SN码,agv的名称,当前时间,地图的id
定义 type.h:620
GetPngMapAllInfoWorkingStatus get_png_all_status
获取png地图全部信息(getPngMapAllInfo)接口的执行状态
定义 type.h:630
PreviewPngMapWorkingStatus preview_png_map_status
预览png地图(previewPngMapFromAgv)接口的执行状态
定义 type.h:633
RelocationWorkingStatus relocation_status
重定位(relocation)接口的执行状态
定义 type.h:624
AutoAlignRailwayWorkingStatus align_railway_status
自动上轨(autoAlignRailway)接口的执行状态
定义 type.h:634
SetGridMapAllInfoWorkingStatus set_grid_all_status
设置栅格地图全部信息(setGridMapAllInfo)接口的执行状态
定义 type.h:631
SetPngMapAllInfoWorkingStatus set_png_all_status
设置png地图全部信息(setPngMapAllInfo)接口的执行状态
定义 type.h:629
SaveMapWorkingStatus save_map_status
保存地图(saveMap)接口的执行状态
定义 type.h:621
GetGridMapAllInfoWorkingStatus get_grid_all_status
获取栅格地图全部信息(getGridMapAllInfo)接口的执行状态
定义 type.h:632
GetGridMapWorkingStatus get_grid_map_status
获取栅格地图(getGridMapFromAgv)接口的执行状态
定义 type.h:625
GetPngMapWorkingStatus get_png_map_status
获取png地图(getBase64PngMapFromAgv)接口的执行状态
定义 type.h:627
ChangeModeWorkingStatus change_running_mode_status
切换运行模式(changeRunningMode)接口的执行状态
定义 type.h:623
SwitchMapWorkingStatus switch_map_status
切换地图(switchMap)接口的执行状态
定义 type.h:622
SendPngMapWorkingStatus send_png_map_status
发送png地图(sendBase64PngMapToAgv)接口的执行状态
定义 type.h:628
接口autoAlignRailway的工作状态
定义 type.h:606
Header header
header.id 代表下发的autoAlignRailway指令id
定义 type.h:607
AutoAlignRailwayStatus status
接口autoAlignRailway的运行状态 NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:608
Speed max_speed
充电过程中的最大行驶速度
定义 type.h:805
std::string cp_station_id
站点id,上桩任务中,表示去往哪个充电站点进行充电;为空时前往最近充电站点
定义 type.h:803
Header header
任务id,任务名称,当前时间,地图id
定义 type.h:801
std::string leave_to_station_id
站点id,下桩任务中,表示下桩导航到哪个站点; 为空时导航到充电站点
定义 type.h:804
AutoChargingType auto_charging_type
自动充电类型
定义 type.h:802
Header header
任务id,任务名称,当前时间,地图id
定义 type.h:831
CalibrationType type
标定类型
定义 type.h:832
CalibrationStatus status
标定状态
定义 type.h:833
uint32_t collected_data_count
采集到多少组数据
定义 type.h:834
接口changeRunningMode的工作状态
定义 type.h:506
ChangeRunningModeStatus status
接口changeRunningMode的运行状态 NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:508
Header header
header.id 代表下发的changeRunningMode指令id
定义 type.h:507
配置要更新固件的模块及固件路径
定义 type.h:812
FirmwareUpdateMode right_motor
右电机固件更新信息配置
定义 type.h:814
FirmwareUpdateMode left_motor
左电机固件更新信息配置
定义 type.h:813
FirmwareUpdateMode master_board
接口板固件更新信息配置
定义 type.h:815
std::string firmware_file_path
代表固件包的路径 例如 "/root/update.firm"
定义 type.h:816
std::string update_info
当前固件更新的步骤信息,failed 为升级失败, none 为无固件更新任务
定义 type.h:824
double update_progress
固件更新进度信息,1.0 代表升级成功
定义 type.h:826
接口getGridMapAllInfo的工作状态
定义 type.h:586
GetGridMapAllInfoStatus status
接口getGridMapAllInfo的运行状态 NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:588
Header header
header.id 代表下发的getGridMapAllInfo指令id
定义 type.h:587
接口getGridMapFromAgv的工作状态
定义 type.h:543
Header header
header.id 代表下发的getGridMapFromAgv指令id
定义 type.h:544
GetGridMapStatus status
接口getGridMapFromAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:545
接口getPngMapAllInfo的工作状态
定义 type.h:534
Header header
header.id 代表下发的getPngMapAllInfo指令id
定义 type.h:535
GetPngMapAllInfoStatus status
接口getPngMapAllInfo的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:536
GetPngMapStatus status
接口getBase64PngMapFromAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:560
Header header
header.id 代表下发的getBase64PngMapFromAgv指令id
定义 type.h:559
int64_t stamp
时间戳,UTC时间(1970年01月01日00时00分00秒~至今),单位:纳秒
定义 type.h:429
std::string name
名称
定义 type.h:428
std::string map_id
当前地图的id,形式为uuid:例如a5e7c6de-4463-443e-8b25-ccbfd6a27aee, 与地图文件名字相同
定义 type.h:430
std::string id
uuid
定义 type.h:427
int error_code
错误码
定义 type.h:432
std::string ipv4_method
自动分配或者手动连接,对应字段 auto, manual
定义 type.h:743
std::string device
网卡名称
定义 type.h:740
std::string ipv4_ip
IPv4地址及CIDR码,为空时无效
定义 type.h:741
std::string ipv6_ip
IPv6地址及CIDR码,为空时无效
定义 type.h:745
std::string ipv4_dns
第一个DNS
定义 type.h:744
std::string name
连接名称
定义 type.h:738
std::string ipv4_gateway
网关
定义 type.h:742
包含当前地图、当前地图上的站点、当前地图上的路径、当前地图上的虚拟区域信息
定义 type.h:726
MapInfo map
当前地图信息
定义 type.h:727
std::vector< MapVirtualArea > virtual_areas
当前地图上的虚拟区域信息
定义 type.h:730
std::vector< PathStation > paths
当前地图上的路径信息
定义 type.h:729
std::vector< StationMark > stations
当前地图上的站点信息
定义 type.h:728
uint32_t width
地图宽度,多少个栅格/像素宽度
定义 type.h:668
Pose2d origin
{x(m) y(m) theta(rad)} 地图原点在真实地图下的坐标,指地图原点对应的实际位置坐标。 一张地图中,左下角为地图原点;
定义 type.h:670
std::vector< int8_t > data
地图数据信息
定义 type.h:674
uint32_t height
地图高度,多少个栅格/像素高度
定义 type.h:669
MapFormat format
地图格式
定义 type.h:673
Header header
地图id,地图名称,当前时间,map_id为地图的唯一id
定义 type.h:666
double resolution
分辨率,每个正方形栅格/像素的宽度,单位 m
定义 type.h:667
地图中的虚拟区域
定义 type.h:711
MapVirtualAreaShape shape
虚拟区域形状
定义 type.h:714
std::vector< Point2d > vertex
虚拟区域的顶点 {{x(m) y(m)},{}, ...} 直线、多边形:按照顺时针顺序把顶点加入到 vertex 中 圆弧:圆弧起点、圆弧上一点、圆弧终点 圆形:圆上按顺序排序的任意不共线三个以上的点...
定义 type.h:716
MapVirtualAreaType type
虚拟区域的类型
定义 type.h:713
Header header
虚拟区域的id,虚拟区域的名称,当前时间,虚拟区域所在地图的id
定义 type.h:712
double width_speed
虚拟墙的宽度/膨胀半径/减速区域的最大速度
定义 type.h:715
使 agv 导航到目标位置(控制信息)
定义 type.h:762
bool forward_flag
agv 正向行驶或倒车行驶
定义 type.h:769
std::vector< std::string > stations_id
导航经过的站点id,最后一个站点为导航目标位置 导航类型为自由导航到站点时,或路径导航到站点时有效,其他无效
定义 type.h:767
bool goal_end_rotate
到达目标点后是否根据站点方向旋转,true:旋转 false:不旋转
定义 type.h:770
AdjustParam secondary_adjustment
到达目标点后是否进行二次调整,贴合目标点位置, true:到点调整 false:到点不调整
定义 type.h:772
Pose2d target_pose
目标位姿 {x(m) y(m) theta(rad)} 导航类型为自由导航到任意点时有效,其他无效
定义 type.h:765
NavType type
导航类型
定义 type.h:764
Speed max_vel
最大速度v,w
定义 type.h:774
Header header
任务id,任务名称,当前时间,地图id
定义 type.h:763
导航状态信息 / 自动充电状态信息
定义 type.h:784
NavStatus status
导航状态
定义 type.h:786
Header header
任务id,任务名称,当前时间,地图id
定义 type.h:785
AutoChargingType auto_charging_type
自动充电类型
定义 type.h:790
NavType type
导航类型
定义 type.h:788
std::vector< Point2d > current_trajectory
还没经过的路径点 {{x(m) y(m)},{}, ...}
定义 type.h:792
StationMark goal_station
agv行驶路径目标站点
定义 type.h:791
NavType nav_type
导航类型
定义 type.h:789
通过站点表示路径
定义 type.h:651
double max_speed
agv经过该路径时的最大速度
定义 type.h:655
PathShape shape
路径的形状
定义 type.h:653
Header header
路径id,路径名称,当前时间,路径所在地图的id
定义 type.h:652
std::vector< Point2d > control_points
路径的控制点,{{x,y},{}, ...}
定义 type.h:658
bool use_direction
生成站点时是否使用站点方向
定义 type.h:654
std::string end_station_id
路径终点站点id
定义 type.h:657
std::string start_station_id
路径起点站点id
定义 type.h:656
double yaw
单位 rad
定义 type.h:410
接口previewPngMapFromAgv的工作状态
定义 type.h:596
Header header
header.id 代表下发的previewPngMapFromAgv指令id
定义 type.h:597
PreviewPngMapStatus status
接口previewPngMapFromAgv的运行状态 NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:598
接口Relocation的工作状态
定义 type.h:516
RelocationStatus status
接口Relocation的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:518
Header header
header.id 代表下发的Relocation指令id
定义 type.h:517
bool to_server
输入/输出
定义 type.h:842
std::vector< std::string > segments
字段列表
定义 type.h:846
int trigger
触发方式(该功能暂未实现): 0 - 周期; 1 - 变化
定义 type.h:845
double frequency
更新频率
定义 type.h:844
bool break_release_flag
是否释放刹车,true 代表释放,false 代表未释放
定义 type.h:481
RunningMode running_mode
agv当前运行模式
定义 type.h:463
bool pause
是否处于暂停状态
定义 type.h:476
double total_dist
累计行驶里程,单位 m
定义 type.h:466
double current_dist
本次累计行驶里程,单位 m
定义 type.h:467
double total_running_time
累计运行时间,单位 s
定义 type.h:468
bool low_battery
是否电量低
定义 type.h:475
double battery_current
电池电流,单位 A
定义 type.h:471
Speed current_speed
当前行驶速度 {v w},单位{m/s rad/s}
定义 type.h:464
double current_running_time
本次运行时间,单位 s
定义 type.h:469
int8_t location_score
当前定位评分,[0-100]
定义 type.h:465
int8_t safety_edge_status
安全触边状态,0-无,1-左前侧碰撞,2-右前碰撞,3-左后碰撞,4-右后碰撞
定义 type.h:474
Header header
agv的SN码,agv的名称,当前时间,地图的id
定义 type.h:462
bool fault_alarm
故障报警(电机故障、传感器故障、电池故障),具体故障信息可在日志中查看
定义 type.h:480
bool blocked
是否被障碍物遮挡
定义 type.h:478
bool emergency_stop
是否处于急停状态
定义 type.h:477
double battery_voltage
电池电压,单位 V
定义 type.h:470
int8_t remaining_voltage
剩余电量,百分比 % [0-100]
定义 type.h:472
bool localization_loss
是否定位丢失
定义 type.h:479
int8_t battery_status
电池状态,0-无,1-放电,2-充电,3-充满,4-急需充电
定义 type.h:473
接口saveMap的工作状态
定义 type.h:488
Header header
header.id 代表下发的saveMap指令id
定义 type.h:489
SaveMapStatus status
接口SaveMap的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:490
接口sendGridMapToAgv的工作状态
定义 type.h:552
SendGridMapStatus status
接口sendGridMapToAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:554
Header header
header.id 代表下发的sendGridMapToAgv指令id
定义 type.h:553
接口sendBase64PngMapToAgv的工作状态
定义 type.h:567
SendPngMapStatus status
接口sendBase64PngMapToAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:569
Header header
header.id 代表下发的sendBase64PngMapToAgv指令id
定义 type.h:568
接口setGridMapAllInfo的工作状态
定义 type.h:576
Header header
header.id 代表下发的setGridMapAllInfo指令id
定义 type.h:577
SetGridMapAllInfoStatus status
接口setGridMapAllInfo的运行状态 NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:578
接口setPngMapAllInfo的工作状态
定义 type.h:525
SetPngMapAllInfoStatus status
接口setPngMapAllInfo的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:527
Header header
header.id 代表下发的setPngMapAllInfo指令id
定义 type.h:526
double w
单位 rad/s
定义 type.h:419
double v
单位 m/s
定义 type.h:418
std::string type
普通站点是"ST",充电站点“CP”
定义 type.h:643
Pose2d pose
站点位姿,{x(m) y(m) theta(rad)}
定义 type.h:644
Header header
站点id,站点名称,当前时间,站点所在地图的id
定义 type.h:642
接口switchMap的工作状态
定义 type.h:497
Header header
header.id 代表下发的switchMap指令id
定义 type.h:498
SwitchMapStatus status
接口switchMap的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:499