AGVC SDK API  0.7.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 标定状态
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 * 二维点
384 */
386{
387 float x; ///< 单位 m
388 float y; ///< 单位 m
389};
390
391/**
392 * 二维位姿
393 */
394struct Pose2d
395{
396 double x; ///< 单位 m
397 double y; ///< 单位 m
398 double yaw; ///< 单位 rad
399};
400
401/**
402 * 速度
403 */
404struct Speed
405{
406 double v; ///< 单位 m/s
407 double w; ///< 单位 rad/s
408};
409
410/**
411 * 头部信息
412 */
413struct Header
414{
415 std::string id; ///< uuid
416 std::string name; ///< 名称
417 int64_t stamp; ///< 时间戳,UTC时间(1970年01月01日00时00分00秒~至今),单位:纳秒
418 std::string map_id; ///< 当前地图的id,形式为uuid:例如a5e7c6de-4463-443e-8b25-ccbfd6a27aee,
419 ///< 与地图文件名字相同
420 int error_code = -1; ///< 错误码
421};
422
423/**
424 * agv 信息
425 */
427{
428 std::string name; ///< agv的名称
429 std::string version; ///< 当前控制程序的版本号
430 std::string MFD; ///< 生产日期
431 std::string SN; ///< S/N 码
432 int communication_version; ///< bridge 版本信息
433 int battery_version; ///< 电池版本信息
434 int loop_times; ///< 电池循环次数
435 float surplus_capacity; ///< 电池剩余容量
436 int left_motor_firmware_version; ///< 左电机固件版本
437 int right_motor_firmware_version; ///< 右电机固件版本
438 int master_board_firmware_version; ///< 接口板固件版本信息
439 int hardware_abstraction_version; ///< 硬件抽象层版本信息
440 int error_code_version; ///< 错误码版本
441 float max_speed; ///< agv允许运行的最大线速度
442 float max_angular; ///< agv允许运行的最大角速度
443};
444
445/**
446 * agv 运行信息
447 */
449{
450 Header header; ///< agv的SN码,agv的名称,当前时间,地图的id
451 RunningMode running_mode; ///< agv当前运行模式
452 Speed current_speed; ///< 当前行驶速度 {v w},单位{m/s rad/s}
453 int8_t location_score; ///< 当前定位评分,[0-100]
454 double total_dist; ///< 累计行驶里程,单位 m
455 double current_dist; ///< 本次累计行驶里程,单位 m
456 double total_running_time; ///< 累计运行时间,单位 s
457 double current_running_time; ///< 本次运行时间,单位 s
458 double battery_voltage; ///< 电池电压,单位 V
459 double battery_current; ///< 电池电流,单位 A
460 int8_t remaining_voltage; ///< 剩余电量,百分比 % [0-100]
461 int8_t battery_status; ///< 电池状态,0-无,1-放电,2-充电,3-充满,4-急需充电
462 int8_t safety_edge_status; ///< 安全触边状态,0-无,1-左前侧碰撞,2-右前碰撞,3-左后碰撞,4-右后碰撞
463 bool low_battery; ///< 是否电量低
464 bool pause; ///< 是否处于暂停状态
465 bool emergency_stop; ///< 是否处于急停状态
466 bool blocked; ///< 是否被障碍物遮挡
467 bool localization_loss; ///< 是否定位丢失
468 bool fault_alarm; ///< 故障报警(电机故障、传感器故障、电池故障),具体故障信息可在日志中查看
469 bool break_release_flag; ///< 是否释放刹车,true 代表释放,false 代表未释放
470};
471
472/**
473 * 接口saveMap的工作状态
474 */
476{
477 Header header; ///< header.id 代表下发的saveMap指令id
478 SaveMapStatus status; ///< 接口SaveMap的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
479};
480
481/**
482 * 接口switchMap的工作状态
483 */
485{
486 Header header; ///< header.id 代表下发的switchMap指令id
487 SwitchMapStatus status; ///< 接口switchMap的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
488};
489
490/**
491 * 接口changeRunningMode的工作状态
492 */
494{
495 Header header; ///< header.id 代表下发的changeRunningMode指令id
496 ChangeRunningModeStatus status; ///< 接口changeRunningMode的运行状态
497 ///< NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
498};
499
500/**
501 * 接口Relocation的工作状态
502 */
504{
505 Header header; ///< header.id 代表下发的Relocation指令id
506 RelocationStatus status; ///< 接口Relocation的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
507};
508
509/**
510 * 接口setPngMapAllInfo的工作状态
511 */
513{
514 Header header; ///< header.id 代表下发的setPngMapAllInfo指令id
515 SetPngMapAllInfoStatus status; ///< 接口setPngMapAllInfo的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
516};
517
518/**
519 * 接口getPngMapAllInfo的工作状态
520 */
522{
523 Header header; ///< header.id 代表下发的getPngMapAllInfo指令id
524 GetPngMapAllInfoStatus status; ///< 接口getPngMapAllInfo的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
525};
526
527/**
528 * 接口getGridMapFromAgv的工作状态
529 */
531{
532 Header header; ///< header.id 代表下发的getGridMapFromAgv指令id
533 GetGridMapStatus status; ///< 接口getGridMapFromAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
534};
535
536/**
537 * 接口sendGridMapToAgv的工作状态
538 */
540{
541 Header header; ///< header.id 代表下发的sendGridMapToAgv指令id
542 SendGridMapStatus status; ///< 接口sendGridMapToAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
543};
544
546{
547 Header header; ///< header.id 代表下发的getBase64PngMapFromAgv指令id
548 GetPngMapStatus status; ///< 接口getBase64PngMapFromAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
549};
550
551/**
552 * 接口sendBase64PngMapToAgv的工作状态
553 */
555{
556 Header header; ///< header.id 代表下发的sendBase64PngMapToAgv指令id
557 SendPngMapStatus status; ///< 接口sendBase64PngMapToAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
558};
559
560/**
561 * 接口setGridMapAllInfo的工作状态
562 */
564{
565 Header header; ///< header.id 代表下发的setGridMapAllInfo指令id
566 SetGridMapAllInfoStatus status; ///< 接口setGridMapAllInfo的运行状态
567 ///< NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
568};
569
570/**
571 * 接口getGridMapAllInfo的工作状态
572 */
574{
575 Header header; ///< header.id 代表下发的getGridMapAllInfo指令id
576 GetGridMapAllInfoStatus status; ///< 接口getGridMapAllInfo的运行状态
577 ///< NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
578};
579
580/**
581 * 接口previewPngMapFromAgv的工作状态
582 */
584{
585 Header header; ///< header.id 代表下发的previewPngMapFromAgv指令id
586 PreviewPngMapStatus status; ///< 接口previewPngMapFromAgv的运行状态
587 ///< NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
588};
589
590/**
591 * 异步接口运行状态
592 * 暂时存在12个异步接口:saveMap, switchMap, changeRunningMode, relocation, sendBase64PngMapToAgv
593 * getGridMapAllInfo, setGridMapAllInfo, sendGridMapToAgv, getGridMapFromAgv
594 * getPngMapAllInfo, setPngMapAllInfo, getBase64PngMapFromAgv
595 */
597{
598 Header header; ///< agv的SN码,agv的名称,当前时间,地图的id
599 SaveMapWorkingStatus save_map_status; ///< 保存地图(saveMap)接口的执行状态
600 SwitchMapWorkingStatus switch_map_status; ///< 切换地图(switchMap)接口的执行状态
601 ChangeModeWorkingStatus change_running_mode_status; ///< 切换运行模式(changeRunningMode)接口的执行状态
602 RelocationWorkingStatus relocation_status; ///< 重定位(relocation)接口的执行状态
603 GetGridMapWorkingStatus get_grid_map_status; ///< 获取栅格地图(getGridMapFromAgv)接口的执行状态
604 SendGridMapWorkingStatus send_grid_map_status; ///< 发送栅格地图(sendGridMapToAgv)接口的执行状态
605 GetPngMapWorkingStatus get_png_map_status; ///< 获取png地图(getBase64PngMapFromAgv)接口的执行状态
606 SendPngMapWorkingStatus send_png_map_status; ///< 发送png地图(sendBase64PngMapToAgv)接口的执行状态
607 SetPngMapAllInfoWorkingStatus set_png_all_status; ///< 设置png地图全部信息(setPngMapAllInfo)接口的执行状态
608 GetPngMapAllInfoWorkingStatus get_png_all_status; ///< 获取png地图全部信息(getPngMapAllInfo)接口的执行状态
609 SetGridMapAllInfoWorkingStatus set_grid_all_status; ///< 设置栅格地图全部信息(setGridMapAllInfo)接口的执行状态
610 GetGridMapAllInfoWorkingStatus get_grid_all_status; ///< 获取栅格地图全部信息(getGridMapAllInfo)接口的执行状态
611 PreviewPngMapWorkingStatus preview_png_map_status; ///< 预览png地图(previewPngMapFromAgv)接口的执行状态
612};
613
614/**
615 * 站点
616 */
618{
619 Header header; ///< 站点id,站点名称,当前时间,站点所在地图的id
620 std::string type; ///< 普通站点是"ST",充电站点“CP”
621 Pose2d pose; ///< 站点位姿,{x(m) y(m) theta(rad)}
622};
623
624/**
625 * 通过站点表示路径
626 */
628{
629 Header header; ///< 路径id,路径名称,当前时间,路径所在地图的id
630 PathShape shape; ///< 路径的形状
631 bool use_direction; ///< 生成站点时是否使用站点方向
632 double max_speed; ///< agv经过该路径时的最大速度
633 std::string start_station_id; ///< 路径起点站点id
634 std::string end_station_id; ///< 路径终点站点id
635 std::vector<Point2d> control_points; ///< 路径的控制点,{{x,y},{}, ...}
636};
637
638/**
639 * 地图信息
640 */
642{
643 Header header; ///< 地图id,地图名称,当前时间,map_id为地图的唯一id
644 double resolution; ///< 分辨率,每个正方形栅格/像素的宽度,单位 m
645 uint32_t width; ///< 地图宽度,多少个栅格/像素宽度
646 uint32_t height; ///< 地图高度,多少个栅格/像素高度
647 Pose2d origin; ///< {x(m) y(m) theta(rad)}
648 ///< 地图原点在真实地图下的坐标,指地图原点对应的实际位置坐标。
649 ///< 一张地图中,左下角为地图原点;
650 MapFormat format; ///< 地图格式
651 std::vector<int8_t> data; ///< 地图数据信息
652};
653
654/**
655 * @brief 栅格地图
656 * @details
657 * Header header; // 地图id,地图名称,当前时间,map_id为地图的唯一id\n
658 * double resolution; // 分辨率,每个正方形栅格的宽度,单位 m\n
659 * uint32_t width; // 地图宽度,多少个栅格宽度\n
660 * uint32_t height; // 地图高度,多少个栅格高度\n
661 * Pose2d origin; // {x(m) y(m) theta(rad)}
662 * // 栅格地图原点在真实地图下的坐标,指栅格原点对应的实际位置坐标。
663 * // 一张栅格地图中,左下角为栅格地图原点;\n
664 * MapFormat format; // 地图格式,=MapFormat::OCCUPANCY_GRID\n
665 * std::vector<int8_t> data; // 地图数据信息;0 表示可通行,100 表示被占用,-1 表示未知
666 */
668
669/**
670 * @brief Base64编码的png地图图片
671 * @details
672 * Header header; // 地图id,地图名称,当前时间,map_id为地图的唯一id\n
673 * double resolution; // 分辨率,每个正方形像素表示的宽度,单位 m\n
674 * uint32_t width; // 地图宽度,多少个像素宽度\n
675 * uint32_t height; // 地图高度,多少个像素高度\n
676 * Pose2d origin; // {x(m) y(m) theta(rad)}
677 * // 地图原点在真实地图下的坐标,指地图原点对应的实际位置坐标。
678 * // 一张地图中,左下角为地图原点;\n
679 * MapFormat format; // 地图格式,=MapFormat::BASE64_PNG\n
680 * std::vector<int8_t> data; // 地图数据信息;Base64编码的png地图图片,可以将data类型转换为string类型使用
681 */
683
684/**
685 * 地图中的虚拟区域
686 */
688{
689 Header header; ///< 虚拟区域的id,虚拟区域的名称,当前时间,虚拟区域所在地图的id
690 MapVirtualAreaType type; ///< 虚拟区域的类型
691 MapVirtualAreaShape shape; ///< 虚拟区域形状
692 double width_speed; ///< 虚拟墙的宽度/膨胀半径/减速区域的最大速度
693 std::vector<Point2d> vertex; ///< 虚拟区域的顶点 {{x(m) y(m)},{}, ...}
694 ///< 直线、多边形:按照顺时针顺序把顶点加入到 vertex 中
695 ///< 圆弧:圆弧起点、圆弧上一点、圆弧终点
696 ///< 圆形:圆上按顺序排序的任意不共线三个以上的点(包含3个)
697};
698
699/**
700 * 包含当前地图、当前地图上的站点、当前地图上的路径、当前地图上的虚拟区域信息
701 */
703{
704 MapInfo map; ///< 当前地图信息
705 std::vector<StationMark> stations; ///< 当前地图上的站点信息
706 std::vector<PathStation> paths; ///< 当前地图上的路径信息
707 std::vector<MapVirtualArea> virtual_areas; ///< 当前地图上的虚拟区域信息
708};
709
710/**
711 * IP地址
712 */
714{
715 std::string name; ///< 连接名称
716 std::string type; ///< 类型
717 std::string device; ///< 网卡名称
718 std::string ipv4_ip; ///< IPv4地址及CIDR码,为空时无效
719 std::string ipv4_gateway; ///< 网关
720 std::string ipv4_method; ///< 自动分配或者手动连接,对应字段 auto, manual
721 std::string ipv4_dns; ///< 第一个DNS
722 std::string ipv6_ip; ///< IPv6地址及CIDR码,为空时无效
723 std::string ipv6_gateway;
724};
725/**
726 * agv 到点后二次调整位置参数设置
727 */
729{
730 bool enable; ///< 是否要二次调整agv位置,true-调整;false不调整
731 bool forward_flag; ///< agv 调整方向,true,向车头方向调整,false,向车尾方向调整
732 double max_distance; ///< agv 单次调整的最远距离
733 double max_angle; ///< agv 单次调整的最大角度
734};
735/**
736 * 使 agv 导航到目标位置(控制信息)
737 */
739{
740 Header header; ///< 任务id,任务名称,当前时间,地图id
741 NavType type; ///< 导航类型
742 Pose2d target_pose; ///< 目标位姿 {x(m) y(m) theta(rad)}
743 ///< 导航类型为自由导航到任意点时有效,其他无效
744 std::vector<std::string> stations_id; ///< 导航经过的站点id,最后一个站点为导航目标位置
745 ///< 导航类型为自由导航到站点时,或路径导航到站点时有效,其他无效
746 bool forward_flag; ///< agv 正向行驶或倒车行驶
747 bool goal_end_rotate; ///< 到达目标点后是否根据站点方向旋转,true:旋转
748 ///< false:不旋转
749 AdjustParam secondary_adjustment; ///< 到达目标点后是否进行二次调整,贴合目标点位置, true:到点调整
750 ///< false:到点不调整
751 Speed max_vel; ///< 最大速度v,w
752};
753
754/**
755 * @brief 导航状态信息 / 自动充电状态信息
756 * @details
757 * 导航模式时,获取导航状态信息\n
758 * 自动充电模式时,获取自动充电状态信息,type与current_trajectory无效
759 * */
761{
762 Header header; ///< 任务id,任务名称,当前时间,地图id
763 NavStatus status; ///< 导航状态
764 [[deprecated("Since 0.7.0: use nav_type instead.")]]
765 NavType type; ///< 导航类型
766 NavType nav_type; ///< 导航类型
767 AutoChargingType auto_charging_type; ///< 自动充电类型
768 StationMark goal_station; ///< agv行驶路径目标站点
769 std::vector<Point2d> current_trajectory; ///< 还没经过的路径点 {{x(m) y(m)},{}, ...}
770};
771
772/**
773 * @brief 自动充电信息
774 * @since 0.7.0
775 */
777{
778 Header header; ///< 任务id,任务名称,当前时间,地图id
779 AutoChargingType auto_charging_type; ///< 自动充电类型
780 std::string cp_station_id; ///< 站点id,上桩任务中,表示去往哪个充电站点进行充电;为空时前往最近充电站点
781 std::string leave_to_station_id; ///< 站点id,下桩任务中,表示下桩导航到哪个站点; 为空时导航到充电站点
782 Speed max_speed; ///< 充电过程中的最大行驶速度
783};
784
785/**
786 * 配置要更新固件的模块及固件路径
787 */
789{
790 FirmwareUpdateMode left_motor; ///< 左电机固件更新信息配置
791 FirmwareUpdateMode right_motor; ///< 右电机固件更新信息配置
792 FirmwareUpdateMode master_board; ///< 接口板固件更新信息配置
793 std::string firmware_file_path; ///< 代表固件包的路径 例如 "/root/update.firm"
794};
795
796/**
797 * 固件更新过程信息
798 */
800{
801 std::string update_info; ///< 当前固件更新的步骤信息,failed 为升级失败,
802 ///< none 为无固件更新任务
803 double update_progress; ///< 固件更新进度信息,1.0 代表升级成功
804};
805
807{
808 Header header; ///< 任务id,任务名称,当前时间,地图id
809 CalibrationType type; ///< 标定类型
810 CalibrationStatus status; ///< 标定状态
811 uint32_t collected_data_count; ///< 采集到多少组数据
812};
813
814/**
815 * RTDE菜单
816 */
818{
819 bool to_server; ///< 输入/输出
820 int chanel; ///< 通道
821 double frequency; ///< 更新频率
822 int trigger; ///< 触发方式(该功能暂未实现): 0 - 周期; 1 - 变化
823 std::vector<std::string> segments; ///< 字段列表
824};
825
827{
828 parse_error = -32700, ///< 解析错误
829 invalid_request = -32600, ///< 无效请求
830 method_not_found = -32601, ///< 方法未找到
831 invalid_params = -32602, ///< 无效参数
832 internal_error = -32603, ///< 内部错误
833 server_error, ///< 服务器错误
834 invalid ///< 无效
835};
836
838{
839 EC_DISCONNECTED = -1, ///< 断开连接
840 EC_NOT_LOGINED = -2, ///< 未登录
841 EC_INVAL_SOCKET = -3, ///< 无效套接字
842 EC_REQUEST_BUSY = -4, ///< 请求繁忙
843 EC_SEND_FAILED = -5, ///< 发送失败
844 EC_RECV_TIMEOUT = -6, ///< 接收超时
845 EC_RECV_ERROR = -7, ///< 接收错误
846 EC_PARSE_ERROR = -8, ///< 解析错误
847 EC_INVALID_REQUEST = -9, ///< 无效请求
848 EC_METHOD_NOT_FOUND = -10, ///< 方法未找到
849 EC_INVALID_PARAMS = -11, ///< 无效参数
850 EC_INTERNAL_ERROR = -12, ///< 内部错误
851 EC_SERVER_ERROR = -13, ///< 服务器错误
852 EC_INVALID = -14 ///< 无效
853};
854
855class AgvcException : public std::exception
856{
857public:
858 AgvcException(int code, const std::string &prefix, const std::string &message) noexcept
859 : code_(code), message_(prefix + "-" + message)
860 {
861 }
862
863 AgvcException(int code, const std::string &message) noexcept : code_(code), message_(message) {}
864
866 {
867 if (code_ >= -32603 && code_ <= -32600) {
868 return static_cast<error_type>(code_);
869 } else if (code_ >= -32099 && code_ <= -32000) {
870 return server_error;
871 } else if (code_ == -32700) {
872 return parse_error;
873 }
874 return invalid;
875 }
876
877 int code() const { return code_; }
878 const char *what() const noexcept override { return message_.c_str(); }
879
880private:
881 int code_;
882 std::string message_;
883};
884
885inline const char *returnValue2Str(int retval)
886{
887 static const char *retval_str[] = {
888#define ENUM_ITEM(n, v, s) s,
890#undef ENUM_ITEM
891 };
892
893 enum agvc_index
894 {
895#define ENUM_ITEM(n, v, s) n##_INDEX,
897#undef ENUM_ITEM
898 };
899
900 int index = -1;
901
902#define ENUM_ITEM(n, v, s) \
903 if (retval == v) \
904 index = n##_INDEX;
906#undef ENUM_ITEM
907
908 if (index == -1)
909 {
910 index = AGVC_ERR_UNKOWN;
911 }
912
913 return retval_str[(unsigned)index];
914}
915
916} // namespace agvc_interface
917
918#if defined ENABLE_JSON_TYPES
919#include "bindings/jsonrpc/json_types.h"
920#endif
921
922#endif
AgvcException(int code, const std::string &prefix, const std::string &message) noexcept
定义 type.h:858
const char * what() const noexcept override
定义 type.h:878
AgvcException(int code, const std::string &message) noexcept
定义 type.h:863
error_type type() const
定义 type.h:865
@ invalid_request
无效请求
定义 type.h:829
@ invalid_params
无效参数
定义 type.h:831
@ server_error
服务器错误
定义 type.h:833
@ invalid
无效
定义 type.h:834
@ internal_error
内部错误
定义 type.h:832
@ parse_error
解析错误
定义 type.h:828
@ method_not_found
方法未找到
定义 type.h:830
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:667
FeedbackStatus SetGridMapAllInfoStatus
设置栅格地图全部信息接口状态,调用接口 setGridMapAllInfo 后的状态
定义 type.h:344
MapVirtualAreaType
地图中虚拟区域的类型
定义 type.h:116
MapInfo Base64PngMap
Base64编码的png地图图片
定义 type.h:682
FeedbackStatus GetPngMapStatus
获取png地图接口状态,调用接口 getBase64PngMapFromAgv 后的状态
定义 type.h:320
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:885
FeedbackStatus SaveMapStatus
保存地图异步接口状态,调用接口 saveMap 后的状态
定义 type.h:224
FeedbackStatus PreviewPngMapStatus
获取栅格地图全部信息接口状态,调用接口 previewPngMapFromAgv 后的状态
定义 type.h:368
@ ENUM_AgvcErrorCodes_DECLARES
定义 type.h:73
@ EC_INVALID_PARAMS
无效参数
定义 type.h:849
@ EC_DISCONNECTED
断开连接
定义 type.h:839
@ EC_PARSE_ERROR
解析错误
定义 type.h:846
@ EC_REQUEST_BUSY
请求繁忙
定义 type.h:842
@ EC_SEND_FAILED
发送失败
定义 type.h:843
@ EC_INTERNAL_ERROR
内部错误
定义 type.h:850
@ EC_NOT_LOGINED
未登录
定义 type.h:840
@ EC_INVALID
无效
定义 type.h:852
@ EC_RECV_TIMEOUT
接收超时
定义 type.h:844
@ EC_INVALID_REQUEST
无效请求
定义 type.h:847
@ EC_SERVER_ERROR
服务器错误
定义 type.h:851
@ EC_INVAL_SOCKET
无效套接字
定义 type.h:841
@ EC_METHOD_NOT_FOUND
方法未找到
定义 type.h:848
@ EC_RECV_ERROR
接收错误
定义 type.h:845
FeedbackStatus CalibrationStatus
标定状态
定义 type.h:380
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:729
double max_distance
agv 单次调整的最远距离
定义 type.h:732
bool enable
是否要二次调整agv位置,true-调整;false不调整
定义 type.h:730
bool forward_flag
agv 调整方向,true,向车头方向调整,false,向车尾方向调整
定义 type.h:731
double max_angle
agv 单次调整的最大角度
定义 type.h:733
int communication_version
bridge 版本信息
定义 type.h:432
float max_angular
agv允许运行的最大角速度
定义 type.h:442
int battery_version
电池版本信息
定义 type.h:433
int hardware_abstraction_version
硬件抽象层版本信息
定义 type.h:439
int left_motor_firmware_version
左电机固件版本
定义 type.h:436
float max_speed
agv允许运行的最大线速度
定义 type.h:441
int right_motor_firmware_version
右电机固件版本
定义 type.h:437
int master_board_firmware_version
接口板固件版本信息
定义 type.h:438
std::string SN
S/N 码
定义 type.h:431
std::string name
agv的名称
定义 type.h:428
float surplus_capacity
电池剩余容量
定义 type.h:435
int error_code_version
错误码版本
定义 type.h:440
int loop_times
电池循环次数
定义 type.h:434
std::string version
当前控制程序的版本号
定义 type.h:429
std::string MFD
生产日期
定义 type.h:430
异步接口运行状态 暂时存在12个异步接口:saveMap, switchMap, changeRunningMode, relocation, sendBase64PngMapToAgv getGrid...
定义 type.h:597
SendGridMapWorkingStatus send_grid_map_status
发送栅格地图(sendGridMapToAgv)接口的执行状态
定义 type.h:604
Header header
agv的SN码,agv的名称,当前时间,地图的id
定义 type.h:598
GetPngMapAllInfoWorkingStatus get_png_all_status
获取png地图全部信息(getPngMapAllInfo)接口的执行状态
定义 type.h:608
PreviewPngMapWorkingStatus preview_png_map_status
预览png地图(previewPngMapFromAgv)接口的执行状态
定义 type.h:611
RelocationWorkingStatus relocation_status
重定位(relocation)接口的执行状态
定义 type.h:602
SetGridMapAllInfoWorkingStatus set_grid_all_status
设置栅格地图全部信息(setGridMapAllInfo)接口的执行状态
定义 type.h:609
SetPngMapAllInfoWorkingStatus set_png_all_status
设置png地图全部信息(setPngMapAllInfo)接口的执行状态
定义 type.h:607
SaveMapWorkingStatus save_map_status
保存地图(saveMap)接口的执行状态
定义 type.h:599
GetGridMapAllInfoWorkingStatus get_grid_all_status
获取栅格地图全部信息(getGridMapAllInfo)接口的执行状态
定义 type.h:610
GetGridMapWorkingStatus get_grid_map_status
获取栅格地图(getGridMapFromAgv)接口的执行状态
定义 type.h:603
GetPngMapWorkingStatus get_png_map_status
获取png地图(getBase64PngMapFromAgv)接口的执行状态
定义 type.h:605
ChangeModeWorkingStatus change_running_mode_status
切换运行模式(changeRunningMode)接口的执行状态
定义 type.h:601
SwitchMapWorkingStatus switch_map_status
切换地图(switchMap)接口的执行状态
定义 type.h:600
SendPngMapWorkingStatus send_png_map_status
发送png地图(sendBase64PngMapToAgv)接口的执行状态
定义 type.h:606
Speed max_speed
充电过程中的最大行驶速度
定义 type.h:782
std::string cp_station_id
站点id,上桩任务中,表示去往哪个充电站点进行充电;为空时前往最近充电站点
定义 type.h:780
Header header
任务id,任务名称,当前时间,地图id
定义 type.h:778
std::string leave_to_station_id
站点id,下桩任务中,表示下桩导航到哪个站点; 为空时导航到充电站点
定义 type.h:781
AutoChargingType auto_charging_type
自动充电类型
定义 type.h:779
Header header
任务id,任务名称,当前时间,地图id
定义 type.h:808
CalibrationType type
标定类型
定义 type.h:809
CalibrationStatus status
标定状态
定义 type.h:810
uint32_t collected_data_count
采集到多少组数据
定义 type.h:811
接口changeRunningMode的工作状态
定义 type.h:494
ChangeRunningModeStatus status
接口changeRunningMode的运行状态 NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:496
Header header
header.id 代表下发的changeRunningMode指令id
定义 type.h:495
配置要更新固件的模块及固件路径
定义 type.h:789
FirmwareUpdateMode right_motor
右电机固件更新信息配置
定义 type.h:791
FirmwareUpdateMode left_motor
左电机固件更新信息配置
定义 type.h:790
FirmwareUpdateMode master_board
接口板固件更新信息配置
定义 type.h:792
std::string firmware_file_path
代表固件包的路径 例如 "/root/update.firm"
定义 type.h:793
std::string update_info
当前固件更新的步骤信息,failed 为升级失败, none 为无固件更新任务
定义 type.h:801
double update_progress
固件更新进度信息,1.0 代表升级成功
定义 type.h:803
接口getGridMapAllInfo的工作状态
定义 type.h:574
GetGridMapAllInfoStatus status
接口getGridMapAllInfo的运行状态 NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:576
Header header
header.id 代表下发的getGridMapAllInfo指令id
定义 type.h:575
接口getGridMapFromAgv的工作状态
定义 type.h:531
Header header
header.id 代表下发的getGridMapFromAgv指令id
定义 type.h:532
GetGridMapStatus status
接口getGridMapFromAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:533
接口getPngMapAllInfo的工作状态
定义 type.h:522
Header header
header.id 代表下发的getPngMapAllInfo指令id
定义 type.h:523
GetPngMapAllInfoStatus status
接口getPngMapAllInfo的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:524
GetPngMapStatus status
接口getBase64PngMapFromAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:548
Header header
header.id 代表下发的getBase64PngMapFromAgv指令id
定义 type.h:547
int64_t stamp
时间戳,UTC时间(1970年01月01日00时00分00秒~至今),单位:纳秒
定义 type.h:417
std::string name
名称
定义 type.h:416
std::string map_id
当前地图的id,形式为uuid:例如a5e7c6de-4463-443e-8b25-ccbfd6a27aee, 与地图文件名字相同
定义 type.h:418
std::string id
uuid
定义 type.h:415
int error_code
错误码
定义 type.h:420
std::string ipv4_method
自动分配或者手动连接,对应字段 auto, manual
定义 type.h:720
std::string device
网卡名称
定义 type.h:717
std::string ipv4_ip
IPv4地址及CIDR码,为空时无效
定义 type.h:718
std::string ipv6_ip
IPv6地址及CIDR码,为空时无效
定义 type.h:722
std::string ipv4_dns
第一个DNS
定义 type.h:721
std::string name
连接名称
定义 type.h:715
std::string ipv4_gateway
网关
定义 type.h:719
包含当前地图、当前地图上的站点、当前地图上的路径、当前地图上的虚拟区域信息
定义 type.h:703
MapInfo map
当前地图信息
定义 type.h:704
std::vector< MapVirtualArea > virtual_areas
当前地图上的虚拟区域信息
定义 type.h:707
std::vector< PathStation > paths
当前地图上的路径信息
定义 type.h:706
std::vector< StationMark > stations
当前地图上的站点信息
定义 type.h:705
uint32_t width
地图宽度,多少个栅格/像素宽度
定义 type.h:645
Pose2d origin
{x(m) y(m) theta(rad)} 地图原点在真实地图下的坐标,指地图原点对应的实际位置坐标。 一张地图中,左下角为地图原点;
定义 type.h:647
std::vector< int8_t > data
地图数据信息
定义 type.h:651
uint32_t height
地图高度,多少个栅格/像素高度
定义 type.h:646
MapFormat format
地图格式
定义 type.h:650
Header header
地图id,地图名称,当前时间,map_id为地图的唯一id
定义 type.h:643
double resolution
分辨率,每个正方形栅格/像素的宽度,单位 m
定义 type.h:644
地图中的虚拟区域
定义 type.h:688
MapVirtualAreaShape shape
虚拟区域形状
定义 type.h:691
std::vector< Point2d > vertex
虚拟区域的顶点 {{x(m) y(m)},{}, ...} 直线、多边形:按照顺时针顺序把顶点加入到 vertex 中 圆弧:圆弧起点、圆弧上一点、圆弧终点 圆形:圆上按顺序排序的任意不共线三个以上的点...
定义 type.h:693
MapVirtualAreaType type
虚拟区域的类型
定义 type.h:690
Header header
虚拟区域的id,虚拟区域的名称,当前时间,虚拟区域所在地图的id
定义 type.h:689
double width_speed
虚拟墙的宽度/膨胀半径/减速区域的最大速度
定义 type.h:692
使 agv 导航到目标位置(控制信息)
定义 type.h:739
bool forward_flag
agv 正向行驶或倒车行驶
定义 type.h:746
std::vector< std::string > stations_id
导航经过的站点id,最后一个站点为导航目标位置 导航类型为自由导航到站点时,或路径导航到站点时有效,其他无效
定义 type.h:744
bool goal_end_rotate
到达目标点后是否根据站点方向旋转,true:旋转 false:不旋转
定义 type.h:747
AdjustParam secondary_adjustment
到达目标点后是否进行二次调整,贴合目标点位置, true:到点调整 false:到点不调整
定义 type.h:749
Pose2d target_pose
目标位姿 {x(m) y(m) theta(rad)} 导航类型为自由导航到任意点时有效,其他无效
定义 type.h:742
NavType type
导航类型
定义 type.h:741
Speed max_vel
最大速度v,w
定义 type.h:751
Header header
任务id,任务名称,当前时间,地图id
定义 type.h:740
导航状态信息 / 自动充电状态信息
定义 type.h:761
NavStatus status
导航状态
定义 type.h:763
Header header
任务id,任务名称,当前时间,地图id
定义 type.h:762
AutoChargingType auto_charging_type
自动充电类型
定义 type.h:767
NavType type
导航类型
定义 type.h:765
std::vector< Point2d > current_trajectory
还没经过的路径点 {{x(m) y(m)},{}, ...}
定义 type.h:769
StationMark goal_station
agv行驶路径目标站点
定义 type.h:768
NavType nav_type
导航类型
定义 type.h:766
通过站点表示路径
定义 type.h:628
double max_speed
agv经过该路径时的最大速度
定义 type.h:632
PathShape shape
路径的形状
定义 type.h:630
Header header
路径id,路径名称,当前时间,路径所在地图的id
定义 type.h:629
std::vector< Point2d > control_points
路径的控制点,{{x,y},{}, ...}
定义 type.h:635
bool use_direction
生成站点时是否使用站点方向
定义 type.h:631
std::string end_station_id
路径终点站点id
定义 type.h:634
std::string start_station_id
路径起点站点id
定义 type.h:633
double yaw
单位 rad
定义 type.h:398
接口previewPngMapFromAgv的工作状态
定义 type.h:584
Header header
header.id 代表下发的previewPngMapFromAgv指令id
定义 type.h:585
PreviewPngMapStatus status
接口previewPngMapFromAgv的运行状态 NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:586
接口Relocation的工作状态
定义 type.h:504
RelocationStatus status
接口Relocation的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:506
Header header
header.id 代表下发的Relocation指令id
定义 type.h:505
bool to_server
输入/输出
定义 type.h:819
std::vector< std::string > segments
字段列表
定义 type.h:823
int trigger
触发方式(该功能暂未实现): 0 - 周期; 1 - 变化
定义 type.h:822
double frequency
更新频率
定义 type.h:821
bool break_release_flag
是否释放刹车,true 代表释放,false 代表未释放
定义 type.h:469
RunningMode running_mode
agv当前运行模式
定义 type.h:451
bool pause
是否处于暂停状态
定义 type.h:464
double total_dist
累计行驶里程,单位 m
定义 type.h:454
double current_dist
本次累计行驶里程,单位 m
定义 type.h:455
double total_running_time
累计运行时间,单位 s
定义 type.h:456
bool low_battery
是否电量低
定义 type.h:463
double battery_current
电池电流,单位 A
定义 type.h:459
Speed current_speed
当前行驶速度 {v w},单位{m/s rad/s}
定义 type.h:452
double current_running_time
本次运行时间,单位 s
定义 type.h:457
int8_t location_score
当前定位评分,[0-100]
定义 type.h:453
int8_t safety_edge_status
安全触边状态,0-无,1-左前侧碰撞,2-右前碰撞,3-左后碰撞,4-右后碰撞
定义 type.h:462
Header header
agv的SN码,agv的名称,当前时间,地图的id
定义 type.h:450
bool fault_alarm
故障报警(电机故障、传感器故障、电池故障),具体故障信息可在日志中查看
定义 type.h:468
bool blocked
是否被障碍物遮挡
定义 type.h:466
bool emergency_stop
是否处于急停状态
定义 type.h:465
double battery_voltage
电池电压,单位 V
定义 type.h:458
int8_t remaining_voltage
剩余电量,百分比 % [0-100]
定义 type.h:460
bool localization_loss
是否定位丢失
定义 type.h:467
int8_t battery_status
电池状态,0-无,1-放电,2-充电,3-充满,4-急需充电
定义 type.h:461
接口saveMap的工作状态
定义 type.h:476
Header header
header.id 代表下发的saveMap指令id
定义 type.h:477
SaveMapStatus status
接口SaveMap的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:478
接口sendGridMapToAgv的工作状态
定义 type.h:540
SendGridMapStatus status
接口sendGridMapToAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:542
Header header
header.id 代表下发的sendGridMapToAgv指令id
定义 type.h:541
接口sendBase64PngMapToAgv的工作状态
定义 type.h:555
SendPngMapStatus status
接口sendBase64PngMapToAgv的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:557
Header header
header.id 代表下发的sendBase64PngMapToAgv指令id
定义 type.h:556
接口setGridMapAllInfo的工作状态
定义 type.h:564
Header header
header.id 代表下发的setGridMapAllInfo指令id
定义 type.h:565
SetGridMapAllInfoStatus status
接口setGridMapAllInfo的运行状态 NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:566
接口setPngMapAllInfo的工作状态
定义 type.h:513
SetPngMapAllInfoStatus status
接口setPngMapAllInfo的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:515
Header header
header.id 代表下发的setPngMapAllInfo指令id
定义 type.h:514
double w
单位 rad/s
定义 type.h:407
double v
单位 m/s
定义 type.h:406
std::string type
普通站点是"ST",充电站点“CP”
定义 type.h:620
Pose2d pose
站点位姿,{x(m) y(m) theta(rad)}
定义 type.h:621
Header header
站点id,站点名称,当前时间,站点所在地图的id
定义 type.h:619
接口switchMap的工作状态
定义 type.h:485
Header header
header.id 代表下发的switchMap指令id
定义 type.h:486
SwitchMapStatus status
接口switchMap的运行状态,NONE -接口未执行 RUNNING-执行中,FINISH-执行结束
定义 type.h:487