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