PDF
AGVC SDK  0.8.0
agvc_interface.h
浏览该文件的文档.
1#ifndef AGVC_INTERFACE_H
2#define AGVC_INTERFACE_H
3
4#include <memory>
6
7#define INTERFACE_VERSION_MAJOR 0
8#define INTERFACE_VERSION_MINOR 4
9#define INTERFACE_VERSION_PATCH 0
10#define INTERFACE_VERSION (INTERFACE_VERSION_MAJOR * 1000000 + INTERFACE_VERSION_MINOR * 1000 + INTERFACE_VERSION_PATCH)
11
12/**
13 * \chinese
14 * @defgroup Map Map (地图模块)
15 * \endchinese
16 * \english
17 * @defgroup Map Map
18 * \endenglish
19 * @brief
20 * @zh AGVC自定义地图的创建、切换、删除、数据读写等核心功能
21 * @en Core functions for creating, switching, deleting, reading, and writing AGVC custom maps.
22 */
23
24/**
25 * \chinese
26 * @defgroup Station Station (站点模块)
27 * \endchinese
28 * \english
29 * @defgroup Station Station
30 * \endenglish
31 * @brief
32 * @zh AGVC地图站点的增删改查、充电站点自动识别等功能
33 * @en Functions for adding, deleting, modifying, querying AGVC map stations, and auto-detecting charging stations.
34 */
35
36/**
37 * \chinese
38 * @defgroup Path Path (路径模块)
39 * \endchinese
40 * \english
41 * @defgroup Path Path
42 * \endenglish
43 * @brief
44 * @zh AGVC地图路径的生成、修改、删除、查询等功能
45 * @en Functions for generating, modifying, deleting, and querying AGVC map paths.
46 */
47
48/**
49 * \chinese
50 * @defgroup Navigation Navigation (导航模块)
51 * \endchinese
52 * \english
53 * @defgroup Navigation Navigation
54 * \endenglish
55 * @brief
56 * @zh AGVC运动控制、导航任务下发、重定位、模式切换等功能
57 * @en Functions for AGVC motion control, navigation goals, relocation, and mode switching.
58 */
59
60/**
61 * \chinese
62 * @defgroup Charging Charging (充电模块)
63 * \endchinese
64 * \english
65 * @defgroup Charging Charging
66 * \endenglish
67 * @brief
68 * @zh AGVC自动充电、强制上下桩、电量检测等充电相关功能
69 * @en AGVC charging functions, including auto charging, forced docking or undocking, and battery checks.
70 */
71
72/**
73 * \chinese
74 * @defgroup AgvInfo AgvInfo (AGV信息模块)
75 * \endchinese
76 * \english
77 * @defgroup AgvInfo AgvInfo
78 * \endenglish
79 * @brief
80 * @zh AGVC状态、位姿、日志、错误码等信息查询功能
81 * @en Query functions for AGVC status, pose, logs, error codes, and related information.
82 */
83
84/**
85 * \chinese
86 * @defgroup System System (系统模块)
87 * \endchinese
88 * \english
89 * @defgroup System System
90 * \endenglish
91 * @brief
92 * @zh AGVC系统配置、控制权、软件升级、固件更新等系统级功能
93 * @en System-level functions for AGVC configuration, control priority, software upgrades, and firmware updates.
94 */
95
96namespace agvc_interface {
97
99{
100public:
102 virtual ~AgvcInterface();
103
104 /**
105 * @ingroup System
106 * @brief
107 * @zh 设置AGV系统时间。
108 * @en Sets the AGV system time.
109 * @param[in] stamp
110 * @zh 时间戳,格式为YYYY-MM-DDTHH:mm:ss.ssZ,例如“2017-04-15T11:40:03.12Z”。
111 * @en Timestamp in YYYY-MM-DDTHH:mm:ss.ssZ format, for example “2017-04-15T11:40:03.12Z”.
112 */
113 int setSystemClock(const std::string &stamp);
114
115 /**
116 * @ingroup AgvInfo
117 * @attention
118 * @zh RTDE推送。
119 * @en RTDE pushed data.
120 * @brief
121 * @zh 查询当前AGV信息。
122 * @en Queries current AGV information.
123 * @return
124 * @zh AGV详细信息。
125 * @en Detailed AGV information.
126 */
128
129 /**
130 * @ingroup AgvInfo
131 * @attention
132 * @zh RTDE推送。
133 * @en RTDE pushed data.
134 * @brief
135 * @zh 查询当前AGV运行信息。
136 * @en Queries current AGV running information.
137 * @return
138 * @zh AGV运行信息。
139 * @en AGV running information.
140 */
142
143 /**
144 * @ingroup AgvInfo
145 * @attention
146 * @zh RTDE推送。
147 * @en RTDE pushed data.
148 * @brief
149 * @zh 查询AGV当前位姿。
150 * @en Queries the current AGV pose.
151 * @return
152 * @zh 当前位姿。
153 * @en Current pose.
154 */
156
157 /**
158 * @ingroup AgvInfo
159 * @attention
160 * @zh RTDE推送。
161 * @en RTDE pushed data.
162 * @brief
163 * @zh 查询当前激光点云数据。
164 * @en Queries the current laser point cloud data.
165 * @return
166 * @zh 二维激光点坐标。
167 * @en 2D laser point coordinates.
168 */
169 std::vector<Point2d> getLaserPointCloud();
170
171 /**
172 * @ingroup System
173 * @brief
174 * @zh 查询异步接口的运行情况,不代表异步接口本身的运行结果。
175 * @en Queries the running status of asynchronous APIs; this does not represent each API's own execution result.
176 * @note
177 * @zh 异步接口:saveMap, switchMap, changeRunningMode, relocation, sendBase64PngMapToAgv。
178 * @en Asynchronous APIs: saveMap, switchMap, changeRunningMode, relocation, sendBase64PngMapToAgv.
179 * @note
180 * @zh 异步接口:getGridMapAllInfo, setGridMapAllInfo, sendGridMapToAgv, getGridMapFromAgv。
181 * @en Asynchronous APIs: getGridMapAllInfo, setGridMapAllInfo, sendGridMapToAgv, getGridMapFromAgv.
182 * @note
183 * @zh 异步接口:getPngMapAllInfo, setPngMapAllInfo, getBase64PngMapFromAgv, previewPngMapFromAgv。
184 * @en Asynchronous APIs: getPngMapAllInfo, setPngMapAllInfo, getBase64PngMapFromAgv, previewPngMapFromAgv.
185 * @note
186 * @zh 异步接口:autoAlignRailway。
187 * @en Asynchronous API: autoAlignRailway.
188 * @note
189 * @zh 客户端与AGV断联后,可调用该接口获取异步接口运行情况。
190 * @en After the client disconnects from the AGV, call this API to obtain asynchronous API status.
191 * @note
192 * @zh 返回值的每个字段中均有header,其中header.id表示下发异步任务时的id号。
193 * @en Each field in the return value contains a header, where header.id is the ID used when issuing the asynchronous task.
194 * @return
195 * @zh NONE:异步接口未运行;RUNNING:异步接口运行中;FINISH:异步接口运行结束。
196 * @en NONE: asynchronous API is not running; RUNNING: asynchronous API is running; FINISH: asynchronous API has finished.
197 */
199
200 /**
201 * @ingroup Station
202 * @brief
203 * @zh 查询当前地图的所有站点信息。
204 * @en Queries all station information on the current map.
205 * @return
206 * @zh 当前地图的所有站点信息。
207 * @en All station information on the current map.
208 */
209 std::vector<StationMark> getAllStations();
210
211 /**
212 * @ingroup Station
213 * @brief
214 * @zh 查询指定地图的所有站点信息。
215 * @en Queries all station information on the specified map.
216 * @param[in] map_header
217 * @zh 指定地图header(命令id,名称,时间,地图id)。
218 * @en Header of the specified map (command ID, name, time, map ID).
219 * @return
220 * @zh 指定地图的所有站点信息。
221 * @en All station information on the specified map.
222 */
223 std::vector<StationMark> getAllStationsOfTargetMap(const Header &map_header);
224
225 /**
226 * @ingroup Station
227 * @brief
228 * @zh 添加或修改一个站点。
229 * @en Adds or modifies one station.
230 * @param[in] station
231 * @zh 待添加或修改的站点信息。
232 * @en Station information to add or modify.
233 * @return
234 * @zh 10100000:添加或修改站点成功;else:添加或修改站点失败。
235 * @en 10100000: station added or modified successfully; else: failed to add or modify the station.
236 */
237 int addStation(const StationMark &station);
238
239 /**
240 * @ingroup Station
241 * @brief
242 * @zh 添加或修改多个站点。
243 * @en Adds or modifies multiple stations.
244 * @param[in] stations
245 * @zh 待添加或修改的站点信息。
246 * @en Station information to add or modify.
247 * @return
248 * @zh 10100000:添加或修改站点成功;else:添加或修改站点失败。
249 * @en 10100000: stations added or modified successfully; else: failed to add or modify stations.
250 */
251 int addStations(const std::vector<StationMark> &stations);
252
253 /**
254 * @ingroup Station
255 * @brief
256 * @zh 通过自动识别充电桩位姿来添加充电站点。
257 * @en Adds a charging station by automatically recognizing the charging board pose.
258 * @since 0.7.0
259 * @param[in] station_header
260 * @zh 待添加或修改的充电站点信息(站点id,名称,时间,地图id)。
261 * @en Charging station information to add or modify (station ID, name, time, map ID).
262 * @param[in] dis_station_board
263 * @zh 充电站点与充电桩之间的距离(充电站点位于AGV中心),单位:m,范围[1.0~2.0]。
264 * @en Distance between the charging station and charging board. The charging station is at the AGV center. Unit: m; range: [1.0, 2.0].
265 * @return
266 * @zh 10100000:添加充电站点成功;else:添加充电站点失败。
267 * @en 10100000: charging station added successfully; else: failed to add the charging station.
268 */
269 int addCPStationUseChargingBoard(const Header &station_header, const double &dis_station_board = 1.5);
270
271 /**
272 * @ingroup Station
273 * @brief
274 * @zh 删除指定站点,会删除与该站点相关的路径。
275 * @en Deletes the specified station and its related paths.
276 * @param[in] station_header
277 * @zh 待删除站点信息(站点id,名称,时间,地图id)。
278 * @en Station information to delete (station ID, name, time, map ID).
279 * @return
280 * @zh 10100000:删除站点成功;else:删除站点失败。
281 * @en 10100000: station deleted successfully; else: failed to delete the station.
282 */
283 int deleteStation(const Header &station_header);
284
285 /**
286 * @ingroup Station
287 * @brief
288 * @zh 删除多个站点,会删除与站点相关的路径。
289 * @en Deletes multiple stations and their related paths.
290 * @param[in] stations_header
291 * @zh 待删除站点信息(站点id,名称,时间,地图id)。
292 * @en Station information to delete (station ID, name, time, map ID).
293 * @return
294 * @zh 10100000:删除站点成功;else:删除站点失败。
295 * @en 10100000: stations deleted successfully; else: failed to delete stations.
296 */
297 int deleteStations(const std::vector<Header> &stations_header);
298
299 /**
300 * @ingroup Path
301 * @brief
302 * @zh 查询当前地图的所有路径信息。
303 * @en Queries all path information on the current map.
304 * @return
305 * @zh 当前地图的所有路径信息。
306 * @en All path information on the current map.
307 */
308 std::vector<PathStation> getAllPaths();
309
310 /**
311 * @ingroup Path
312 * @brief
313 * @zh 查询指定地图的所有路径信息。
314 * @en Queries all path information on the specified map.
315 * @param[in] map_header
316 * @zh 指定地图header(命令id,名称,时间,地图id)。
317 * @en Header of the specified map (command ID, name, time, map ID).
318 * @return
319 * @zh 指定地图的所有路径信息。
320 * @en All path information on the specified map.
321 */
322 std::vector<PathStation> getAllPathsOfTargetMap(const Header &map_header);
323
324 /**
325 * @ingroup Path
326 * @brief
327 * @zh 查询AGV当前正在跟踪的路径信息。
328 * @en Queries the path currently being tracked by the AGV.
329 * @return
330 * @zh 当前正在跟踪的路径信息。
331 * @en Information about the path currently being tracked.
332 */
334
335 /**
336 * @ingroup Path
337 * @brief
338 * @zh 生成或修改一条路径。
339 * @en Generates or modifies one path.
340 * @param[in] path_station
341 * @zh 待生成或修改的路径信息。
342 * @en Path information to generate or modify.
343 * @return
344 * @zh 10100000:修改或生成路径成功;else:修改或生成路径失败。
345 * @en 10100000: path modified or generated successfully; else: failed to modify or generate the path.
346 */
347 int generatePath(const PathStation &path_station);
348
349 /**
350 * @ingroup Path
351 * @brief
352 * @zh 生成或修改多条路径。
353 * @en Generates or modifies multiple paths.
354 * @param[in] paths_station
355 * @zh 待生成或修改的路径信息。
356 * @en Path information to generate or modify.
357 * @return
358 * @zh 10100000:修改或生成路径成功;else:修改或生成路径失败。
359 * @en 10100000: paths modified or generated successfully; else: failed to modify or generate paths.
360 */
361 int generatePaths(const std::vector<PathStation> &paths_station);
362
363 /**
364 * @ingroup Path
365 * @brief
366 * @zh 删除一条路径。
367 * @en Deletes one path.
368 * @param[in] path_header
369 * @zh 待删除路径信息(路径id,名称,时间,地图id)。
370 * @en Path information to delete (path ID, name, time, map ID).
371 * @return
372 * @zh 10100000:删除路径成功;else:删除路径失败。
373 * @en 10100000: path deleted successfully; else: failed to delete the path.
374 */
375 int deletePath(const Header &path_header);
376
377 /**
378 * @ingroup Path
379 * @brief
380 * @zh 删除多条路径。
381 * @en Deletes multiple paths.
382 * @param[in] paths_header
383 * @zh 待删除路径信息(路径id,名称,时间,地图id)。
384 * @en Path information to delete (path ID, name, time, map ID).
385 * @return
386 * @zh 10100000:删除路径成功;else:删除路径失败。
387 * @en 10100000: paths deleted successfully; else: failed to delete paths.
388 */
389 int deletePaths(const std::vector<Header> &paths_header);
390
391 /**
392 * @ingroup Map
393 * @brief
394 * @zh 获取AGV所有地图的信息头。
395 * @en Gets the headers of all maps on the AGV.
396 * @return
397 * @zh 所有地图的信息头(命令id,名称,时间,地图id)。
398 * @en Headers of all maps (command ID, name, time, map ID).
399 */
400 std::vector<Header> getMapList();
401
402 /**
403 * @ingroup Map
404 * @brief
405 * @zh 查询当前AGV地图的信息头。
406 * @en Queries the header of the current AGV map.
407 * @return
408 * @zh 当前地图的信息头(命令id,名称,时间,地图id)。
409 * @en Header of the current map (command ID, name, time, map ID).
410 */
412
413 /**
414 * @ingroup Map
415 * @brief
416 * @zh 获取指定栅格地图信息。
417 * @en Gets the specified occupancy grid map information.
418 * @param[in] map_header
419 * @zh 指定地图的信息头(本次异步命令id,名称,时间,地图id)。
420 * @en Header of the specified map (this asynchronous command ID, name, time, map ID).
421 * @note
422 * @zh map_id为"current_map"时,可特指为当前地图。
423 * @en When map_id is "current_map", it refers to the current map.
424 * @return
425 * @zh 指定栅格地图信息。
426 * @en Specified occupancy grid map information.
427 */
429
430 /**
431 * @ingroup Map
432 * @attention
433 * @zh 1.异步接口。
434 * @en 1. Asynchronous API.
435 * @brief
436 * @zh 获取Base64编码的PNG地图信息。
437 * @en Gets Base64-encoded PNG map information.
438 * @param[in] map_header
439 * @zh 指定地图的信息头(本次异步命令id,名称,时间,地图id)。
440 * @en Header of the specified map (this asynchronous command ID, name, time, map ID).
441 * @note
442 * @zh map_id为"current_map"时,可特指为当前地图。
443 * @en When map_id is "current_map", it refers to the current map.
444 * @return
445 * @zh Base64编码的PNG地图信息。
446 * @en Base64-encoded PNG map information.
447 */
449
450 /**
451 * @ingroup Map
452 * @attention
453 * @zh 1.异步接口。
454 * @en 1. Asynchronous API.
455 * @brief
456 * @zh 获取预览图,可指定预览图的长和宽。
457 * @en Gets a preview image with optional width and height.
458 * @param[in] map_header
459 * @zh 指定地图的信息头(本次异步命令id,名称,时间,地图id)。
460 * @en Header of the specified map (this asynchronous command ID, name, time, map ID).
461 * @param[in] image_width_px
462 * @zh 地图宽度(像素),默认值为0时返回缩略图数据为空。
463 * @en Map width in pixels. If the default value 0 is used, returned thumbnail data is empty.
464 * @param[in] image_height_px
465 * @zh 地图高度(像素),默认值为0时返回缩略图数据为空。
466 * @en Map height in pixels. If the default value 0 is used, returned thumbnail data is empty.
467 * @note
468 * @zh map_id为"current_map"时,可特指为当前地图。
469 * @en When map_id is "current_map", it refers to the current map.
470 * @return
471 * @zh Base64编码的PNG缩略图。
472 * @en Base64-encoded PNG thumbnail.
473 */
474 Base64PngMap previewPngMapFromAgv(const Header &map_header, const int &image_width_px = 0, const int &image_height_px = 0);
475
476 /**
477 * @ingroup Map
478 * @attention
479 * @zh 1.异步接口。
480 * @en 1. Asynchronous API.
481 * @brief
482 * @zh 将栅格地图信息发送给AGV。
483 * @en Sends occupancy grid map information to the AGV.
484 * @param[in] map
485 * @zh 栅格地图信息。
486 * @en Occupancy grid map information.
487 * @return
488 * @zh 10100000:发送地图成功;10100201:发送地图中;else:发送地图失败。
489 * @en 10100000: map sent successfully; 10100201: map is being sent; else: failed to send the map.
490 */
492
493 /**
494 * @ingroup Map
495 * @attention
496 * @zh 1.异步接口。
497 * @en 1. Asynchronous API.
498 * @brief
499 * @zh 将Base64编码的PNG地图发送给AGV。
500 * @en Sends a Base64-encoded PNG map to the AGV.
501 * @param[in] map
502 * @zh Base64编码的PNG地图。
503 * @en Base64-encoded PNG map.
504 * @return
505 * @zh 10100000:发送地图成功;10100201:发送地图中;else:发送地图失败。
506 * @en 10100000: map sent successfully; 10100201: map is being sent; else: failed to send the map.
507 */
509
510 /**
511 * @ingroup Map
512 * @attention
513 * @zh 1.异步接口;2.控制权限制。
514 * @en 1. Asynchronous API; 2. Requires control priority.
515 * @brief
516 * @zh 建图完成后调用该接口保存地图。
517 * @en Saves the map after mapping is complete.
518 * @param[in] map_header
519 * @zh 地图信息头(本次异步命令id,名称,时间,地图id)。
520 * @en Map header (this asynchronous command ID, name, time, map ID).
521 * @return
522 * @zh 10100000:保存地图成功;10100201:异步接口运行中;10120202:无控制权;else:保存地图失败。
523 * @en 10100000: map saved successfully; 10100201: asynchronous API is running; 10120202: no control priority; else: failed to save the map.
524 */
525 int saveMap(const Header &map_header);
526
527 /**
528 * @ingroup Map
529 * @attention
530 * @zh 1.异步接口;2.控制权限制。
531 * @en 1. Asynchronous API; 2. Requires control priority.
532 * @brief
533 * @zh 切换指定地图。
534 * @en Switches to the specified map.
535 * @param[in] map_header
536 * @zh 指定地图的信息头(本次异步命令id,名称,时间,地图id)。
537 * @en Header of the specified map (this asynchronous command ID, name, time, map ID).
538 * @return
539 * @zh 10100000:切换地图成功;10100201:异步接口运行中;10120202:无控制权;else:切换地图失败。
540 * @en 10100000: map switched successfully; 10100201: asynchronous API is running; 10120202: no control priority; else: failed to switch the map.
541 */
542 int switchMap(const Header &map_header);
543
544 /**
545 * @ingroup Map
546 * @brief
547 * @zh 删除一张指定地图。
548 * @en Deletes one specified map.
549 * @param[in] map_header
550 * @zh 指定地图的信息头(命令id,名称,时间,地图id)。
551 * @en Header of the specified map (command ID, name, time, map ID).
552 * @return
553 * @zh 10100000:删除地图成功;else:删除地图失败。
554 * @en 10100000: map deleted successfully; else: failed to delete the map.
555 */
556 int deleteMap(const Header &map_header);
557
558 /**
559 * @ingroup Map
560 * @brief
561 * @zh 删除多张指定地图。
562 * @en Deletes multiple specified maps.
563 * @param[in] map_headers
564 * @zh 多个指定地图的信息头(命令id,名称,时间,地图id)。
565 * @en Headers of the specified maps (command ID, name, time, map ID).
566 * @return
567 * @zh 10100000:删除地图成功;else:删除地图失败。
568 * @en 10100000: maps deleted successfully; else: failed to delete maps.
569 */
570 int deleteMaps(const std::vector<Header> &map_headers);
571
572 /**
573 * @ingroup Map
574 * @brief
575 * @zh 查询当前地图的虚拟区域。
576 * @en Queries virtual areas on the current map.
577 * @return
578 * @zh 当前地图的虚拟区域信息。
579 * @en Virtual area information on the current map.
580 */
581 std::vector<MapVirtualArea> getAllMapVirtualArea();
582
583 /**
584 * @ingroup Map
585 * @brief
586 * @zh 查询目标地图的虚拟区域。
587 * @en Queries virtual areas on the target map.
588 * @param[in] map_header
589 * @zh 指定地图header(命令id,名称,时间,地图id)。
590 * @en Header of the specified map (command ID, name, time, map ID).
591 * @return
592 * @zh 指定地图的所有虚拟区域。
593 * @en All virtual areas on the specified map.
594 */
595 std::vector<MapVirtualArea> getAllMapVirtualAreaOfTargetMap(const Header &map_header);
596
597 /**
598 * @ingroup Map
599 * @brief
600 * @zh 添加或修改一个虚拟区域。
601 * @en Adds or modifies one virtual area.
602 * @param[in] map_virtual_area
603 * @zh 待添加或修改的虚拟区域信息。
604 * @en Virtual area information to add or modify.
605 * @return
606 * @zh 10100000:添加或修改虚拟区域成功;else:添加或修改虚拟区域失败。
607 * @en 10100000: virtual area added or modified successfully; else: failed to add or modify the virtual area.
608 */
609 int addMapVirtualArea(const MapVirtualArea &map_virtual_area);
610
611 /**
612 * @ingroup Map
613 * @brief
614 * @zh 添加或修改多个虚拟区域。
615 * @en Adds or modifies multiple virtual areas.
616 * @param[in] map_virtual_areas
617 * @zh 待添加或修改的虚拟区域信息。
618 * @en Virtual area information to add or modify.
619 * @return
620 * @zh 10100000:添加或修改虚拟区域成功;else:添加或修改虚拟区域失败。
621 * @en 10100000: virtual areas added or modified successfully; else: failed to add or modify virtual areas.
622 */
623 int addMapVirtualAreas(const std::vector<MapVirtualArea> &map_virtual_areas);
624
625 /**
626 * @ingroup Map
627 * @brief
628 * @zh 删除指定虚拟区域。
629 * @en Deletes the specified virtual area.
630 * @param[in] virtual_area_header
631 * @zh 指定虚拟区域信息头(命令id,虚拟区域名称,时间,所在地图id)。
632 * @en Header of the specified virtual area (command ID, virtual area name, time, map ID).
633 * @return
634 * @zh 10100000:删除虚拟区域成功;else:删除虚拟区域失败。
635 * @en 10100000: virtual area deleted successfully; else: failed to delete the virtual area.
636 */
637 int deleteMapVirtualArea(const Header &virtual_area_header);
638
639 /**
640 * @ingroup Map
641 * @brief
642 * @zh 删除多个指定虚拟区域。
643 * @en Deletes multiple specified virtual areas.
644 * @param[in] virtual_areas_header
645 * @zh 指定虚拟区域信息头(命令id,虚拟区域名称,时间,所在地图id)。
646 * @en Headers of the specified virtual areas (command ID, virtual area name, time, map ID).
647 * @return
648 * @zh 10100000:删除虚拟区域成功;else:删除虚拟区域失败。
649 * @en 10100000: virtual areas deleted successfully; else: failed to delete virtual areas.
650 */
651 int deleteMapVirtualAreas(const std::vector<Header> &virtual_areas_header);
652
653 /**
654 * @ingroup Map
655 * @attention
656 * @zh 1.异步接口。
657 * @en 1. Asynchronous API.
658 * @brief
659 * @zh 获取指定地图的栅格地图数据、路径、站点、虚拟区信息。
660 * @en Gets occupancy grid map data, paths, stations, and virtual areas for the specified map.
661 * @param[in] map_header
662 * @zh 指定地图信息头(本次异步命令id,地图名称,时间,地图id)。
663 * @en Header of the specified map (this asynchronous command ID, map name, time, map ID).
664 * @note
665 * @zh map_id为"current_map"时,可特指为当前地图。
666 * @en When map_id is "current_map", it refers to the current map.
667 * @return
668 * @zh 栅格地图上的全部信息。
669 * @en All information on the occupancy grid map.
670 */
672
673 /**
674 * @ingroup Map
675 * @attention
676 * @zh 1.异步接口。
677 * @en 1. Asynchronous API.
678 * @brief
679 * @zh 获取指定地图的Base64地图数据、路径、站点、虚拟区信息。
680 * @en Gets Base64 map data, paths, stations, and virtual areas for the specified map.
681 * @param[in] map_header
682 * @zh 指定地图信息头(本次异步命令id,地图名称,时间,地图id)。
683 * @en Header of the specified map (this asynchronous command ID, map name, time, map ID).
684 * @note
685 * @zh map_id为"current_map"时,可特指为当前地图。
686 * @en When map_id is "current_map", it refers to the current map.
687 * @return
688 * @zh Base64地图上的全部信息。
689 * @en All information on the Base64 map.
690 */
692
693 /**
694 * @ingroup Map
695 * @attention
696 * @zh 1.异步接口;2.控制权限制。
697 * @en 1. Asynchronous API; 2. Requires control priority.
698 * @brief
699 * @zh 设置栅格地图、路径、站点、虚拟区信息。
700 * @en Sets occupancy grid map, path, station, and virtual area information.
701 * @param[in] map_all_info
702 * @zh 栅格地图上的全部信息。
703 * @en All information on the occupancy grid map.
704 * @param[in] command_header
705 * @zh id字段代表下发本次命令的id;其他字段无特殊含义。
706 * @en The id field is the ID of this command; other fields have no special meaning.
707 * @note
708 * @zh 请保证数据下发的可行性,AGV不会对数据进行校验。
709 * @en Ensure that the data can be applied; the AGV does not validate the data.
710 * @return
711 * @zh 10100000:上传全部地图信息成功;10100201:异步接口运行中;10120202:无控制权;else:上传全部地图信息失败。
712 * @en 10100000: all map information uploaded successfully; 10100201: asynchronous API is running; 10120202: no control priority; else: failed to upload all map information.
713 */
714 int setGridMapAllInfo(const MapAllInfo &map_all_info,
715 const Header &command_header = { "99999", "99999", 1, "99999" });
716
717 /**
718 * @ingroup Map
719 * @attention
720 * @zh 1.异步接口;2.控制权限制。
721 * @en 1. Asynchronous API; 2. Requires control priority.
722 * @brief
723 * @zh 设置Base64格式地图、路径、站点、虚拟区信息。
724 * @en Sets Base64 map, path, station, and virtual area information.
725 * @param[in] map_all_info
726 * @zh Base64格式地图上的全部信息。
727 * @en All information on the Base64 map.
728 * @param[in] command_header
729 * @zh id字段代表下发本次命令的id;其他字段无特殊含义。
730 * @en The id field is the ID of this command; other fields have no special meaning.
731 * @note
732 * @zh 请保证数据下发的可行性,AGV不会对数据进行校验。
733 * @en Ensure that the data can be applied; the AGV does not validate the data.
734 * @return
735 * @zh 10100000:上传全部地图信息成功;10100201:异步接口运行中;10120202:无控制权;else:上传全部地图信息失败。
736 * @en 10100000: all map information uploaded successfully; 10100201: asynchronous API is running; 10120202: no control priority; else: failed to upload all map information.
737 */
738 int setPngMapAllInfo(const MapAllInfo &map_all_info,
739 const Header &command_header = { "99999", "99999", 1, "99999" });
740
741 /**
742 * @ingroup Map
743 * @brief
744 * @zh 删除指定地图的全部信息,包括地图数据、站点、路径、虚拟区信息。
745 * @en Deletes all information of the specified map, including map data, stations, paths, and virtual areas.
746 * @param[in] map_header
747 * @zh 指定地图信息头(命令id,地图名称,时间,地图id)。
748 * @en Header of the specified map (command ID, map name, time, map ID).
749 * @return
750 * @zh 10100000:删除成功;else:删除失败。
751 * @en 10100000: deleted successfully; else: deletion failed.
752 */
753 int deleteMapAllInfo(const Header &map_header);
754
755 /**
756 * @ingroup System
757 * @attention
758 * @zh 异步接口。
759 * @en Asynchronous API.
760 * @brief
761 * @zh 获取当前扫描到的WiFi列表。
762 * @en Gets the currently scanned WiFi list.
763 * @return
764 * @zh {RUNNING}:异步接口运行中;{}:为空,未扫描到WIFI;{SSID}:不为空,扫描到的WIFI名称列表。
765 * @en {RUNNING}: asynchronous API is running; {}: empty, no WiFi found; {SSID}: non-empty list of scanned WiFi SSIDs.
766 */
767 std::vector<std::string> getWifiList();
768
769 /**
770 * @ingroup System
771 * @brief
772 * @zh 连接到指定WiFi,自动切换到WiFi模式。
773 * @en Connects to the specified WiFi and automatically switches to WiFi mode.
774 * @note
775 * @zh 必须在有线连接时调用,且执行时间较长。
776 * @en Must be called over a wired connection and may take a long time.
777 * @param[in] ssid
778 * @zh WiFi名称。
779 * @en WiFi SSID.
780 * @param[in] password
781 * @zh WiFi密码。
782 * @en WiFi password.
783 * @return
784 * @zh 10100000:连接WiFi成功;else:连接WiFi失败。
785 * @en 10100000: connected to WiFi successfully; else: failed to connect to WiFi.
786 */
787 int connectWifi(const std::string &ssid, const std::string &password);
788
789 /**
790 * @ingroup System
791 * @brief
792 * @zh 开启热点,自动切换到热点模式。
793 * @en Enables hotspot mode and automatically switches to hotspot mode.
794 * @note
795 * @zh 必须在有线连接时调用,且执行时间较长。
796 * @en Must be called over a wired connection and may take a long time.
797 * @param[in] password
798 * @zh 热点密码;如果为空使用"administrator"为默认密码,SSID默认为SN码。
799 * @en Hotspot password. If empty, "administrator" is used as the default password, and the SSID defaults to the SN.
800 * @return
801 * @zh 10100000:启用热点成功;else:启用热点失败。
802 * @en 10100000: hotspot enabled successfully; else: failed to enable hotspot.
803 */
804 int enableHotspot(const std::string &password);
805
806 /**
807 * @ingroup System
808 * @brief
809 * @zh 获取本机所有IP地址。
810 * @en Gets all local IP addresses.
811 * @return
812 * @zh 本机所有IP地址。
813 * @en All local IP addresses.
814 */
815 std::vector<IpAddressInfo> getIpAddressList();
816
817 /**
818 * @ingroup Navigation
819 * @attention
820 * @zh 1.异步接口;2.控制权限制。
821 * @en 1. Asynchronous API; 2. Requires control priority.
822 * @brief
823 * @zh 切换AGV模式。
824 * @en Switches the AGV running mode.
825 * @param[in] running_mode
826 * @zh 打算切换的模式,如导航模式、建图模式。
827 * @en Target mode to switch to, such as navigation mode or mapping mode.
828 * @param[in] command_header
829 * @zh id字段代表下发本次命令的id;其他字段无特殊含义。
830 * @en The id field is the ID of this command; other fields have no special meaning.
831 * @return
832 * @zh 10100000:切换模式成功;10100201:异步接口运行中;10120202:无控制权;else:切换模式失败。
833 * @en 10100000: mode switched successfully; 10100201: asynchronous API is running; 10120202: no control priority; else: failed to switch mode.
834 */
835 int changeRunningMode(const RunningMode &running_mode,
836 const Header &command_header = { "99999", "99999", 1, "99999" });
837
838 /**
839 * @ingroup Navigation
840 * @attention
841 * @zh 控制权限制。
842 * @en Requires control priority.
843 * @brief
844 * @zh 控制AGV运动。
845 * @en Controls AGV motion.
846 * @param[in] speed
847 * @zh 速度信息。
848 * @en Speed information.
849 * @return
850 * @zh 10100000:向AGV下发速度成功;10120202:没有控制权;else:向AGV下发速度失败。
851 * @en 10100000: speed command sent to the AGV successfully; 10120202: no control priority; else: failed to send the speed command.
852 */
853 int setControlSpeed(const Speed &speed);
854
855 /**
856 * @ingroup Navigation
857 * @attention
858 * @zh 控制权限制。
859 * @en Requires control priority.
860 * @brief
861 * @zh 向AGV发送导航任务。
862 * @en Sends a navigation goal to the AGV.
863 * @param[in] target
864 * @zh 目标位置信息与导航参数信息。
865 * @en Target pose information and navigation parameters.
866 * @return
867 * @zh 10100000:设置导航任务成功;10120202:没有控制权;else:设置导航任务失败。
868 * @en 10100000: navigation goal set successfully; 10120202: no control priority; else: failed to set the navigation goal.
869 */
870 int setNavGoal(const NavGoalType &target);
871
872 /**
873 * @ingroup AgvInfo
874 * @attention
875 * @zh RTDE推送。
876 * @en RTDE pushed data.
877 * @brief
878 * @zh 获取当前导航信息。
879 * @en Gets current navigation information.
880 * @return
881 * @zh 当前导航信息。
882 * @en Current navigation information.
883 */
885
886 /**
887 * @ingroup Navigation
888 * @attention
889 * @zh 控制权限制。
890 * @en Requires control priority.
891 * @brief
892 * @zh 暂停AGV速度。
893 * @en Pauses AGV speed.
894 * @return
895 * @zh 10100000:暂停成功;10120202:没有控制权;else:暂停失败。
896 * @en 10100000: paused successfully; 10120202: no control priority; else: pause failed.
897 */
899
900 /**
901 * @ingroup Navigation
902 * @attention
903 * @zh 控制权限制。
904 * @en Requires control priority.
905 * @brief
906 * @zh 暂停后恢复AGV速度。
907 * @en Resumes AGV speed after a pause.
908 * @return
909 * @zh 10100000:恢复成功;10120202:没有控制权;else:恢复失败。
910 * @en 10100000: resumed successfully; 10120202: no control priority; else: resume failed.
911 */
913
914 /**
915 * @ingroup Navigation
916 * @attention
917 * @zh 控制权限制。
918 * @en Requires control priority.
919 * @brief
920 * @zh 取消导航任务。
921 * @en Cancels the navigation task.
922 * @return
923 * @zh 10100000:取消导航任务成功;10120202:没有控制权;else:取消导航任务失败。
924 * @en 10100000: navigation task canceled successfully; 10120202: no control priority; else: failed to cancel the navigation task.
925 */
927
928 /**
929 * @ingroup Navigation
930 * @attention
931 * @zh 1.异步接口;2.控制权限制。
932 * @en 1. Asynchronous API; 2. Requires control priority.
933 * @brief
934 * @zh AGV重定位。
935 * @en Relocates the AGV.
936 * @param[in] init_pose
937 * @zh AGV当前参考位姿。
938 * @en Current reference pose of the AGV.
939 * @param[in] command_header
940 * @zh id字段代表下发本次命令的id;其他字段无特殊含义。
941 * @en The id field is the ID of this command; other fields have no special meaning.
942 * @return
943 * @zh 10100000:重定位成功;10100201:异步接口运行中;10120202:无控制权;else:重定位失败。
944 * @en 10100000: relocation succeeded; 10100201: asynchronous API is running; 10120202: no control priority; else: relocation failed.
945 */
946 int relocation(const Pose2d &init_pose, const Header &command_header = { "99999", "99999", 1, "99999" });
947
948 /**
949 * @ingroup System
950 * @brief
951 * @zh 获取AGV控制器的参数文件。
952 * @en Gets the AGV controller parameter file.
953 * @return
954 * @zh 当前AGV控制器中的参数信息。
955 * @en Parameter information in the current AGV controller.
956 */
958
959 /**
960 * @ingroup System
961 * @attention
962 * @zh 控制权限制。
963 * @en Requires control priority.
964 * @brief
965 * @zh 设置AGV控制器的参数文件。
966 * @en Sets the AGV controller parameter file.
967 * @note
968 * @zh 不要高频调用,调用频率低于1Hz;此接口会默认执行刷新参数功能。
969 * @en Do not call frequently. Keep the call rate below 1 Hz. This API refreshes parameters by default.
970 * @param[in] agv_parameters
971 * @zh AGV控制器的参数信息。
972 * @en Parameter information for the AGV controller.
973 * @return
974 * @zh 10100000:设置参数成功;else:设置参数失败。
975 * @en 10100000: parameters set successfully; else: failed to set parameters.
976 */
977 int setAgvControllerParametersFile(const std::string &agv_parameters);
978
979 /**
980 * @ingroup System
981 * @attention
982 * @zh 控制权限制。
983 * @en Requires control priority.
984 * @brief
985 * @zh 修改AGV控制器的参数文件后,让AGV各节点刷新参数。
986 * @en Refreshes parameters on AGV nodes after the AGV controller parameter file is modified.
987 * @note
988 * @zh 不要高频调用,调用频率低于1Hz。
989 * @en Do not call frequently. Keep the call rate below 1 Hz.
990 * @return
991 * @zh 10100000:接口执行成功;else:接口执行失败。
992 * @en 10100000: API executed successfully; else: API execution failed.
993 */
995
996 /**
997 * @ingroup System
998 * @attention
999 * @zh 控制权限制。
1000 * @en Requires control priority.
1001 * @brief
1002 * @zh 将AGV控制器的参数文件恢复出厂设置。
1003 * @en Restores the AGV controller parameter file to factory defaults.
1004 * @note
1005 * @zh 不要高频调用,调用频率低于1Hz。
1006 * @en Do not call frequently. Keep the call rate below 1 Hz.
1007 * @return
1008 * @zh 10100000:接口执行成功;else:接口执行失败。
1009 * @en 10100000: API executed successfully; else: API execution failed.
1010 */
1012
1013 /**
1014 * @ingroup Charging
1015 * @attention
1016 * @zh 控制权限制。
1017 * @en Requires control priority.
1018 * @brief
1019 * @zh 检测当前电量,电量低将自动上桩充电。
1020 * @en Checks the current battery level and automatically docks for charging when the battery is low.
1021 * @deprecated @if Chinese 自0.7.0起废弃,请使用新的sendAutoChargingCommand(const AutoChargingCommand&)接口。 @endif @if English Deprecated since 0.7.0. Use sendAutoChargingCommand(const AutoChargingCommand&) instead. @endif
1022 * @note
1023 * @zh 充电完成后,根据配置文件中的参数auto_leave_board,决定是否自动下桩并行驶到指定站点或等待区。
1024 * @en After charging completes, the auto_leave_board parameter decides whether the AGV automatically leaves the board and moves to a target station or waiting area.
1025 * @note
1026 * @zh 在配置文件中设置电量低阈值[low_battery_threshold]或电量高阈值[high_battery_threshold]。
1027 * @en Configure the low battery threshold [low_battery_threshold] or high battery threshold [high_battery_threshold] in the configuration file.
1028 * @param[in] check_power_header
1029 * @zh 本次命令的id,本次命令的name,当前时间,地图id。
1030 * @en ID of this command, name of this command, current time, and map ID.
1031 * @param[in] nav_board_charge_station_id
1032 * @zh 行驶到指定的充电站点进行上桩充电;如果不设置该参数,行驶到最近的充电站点进行上桩充电。
1033 * @en Drives to the specified charging station for docking and charging. If unset, drives to the nearest charging station.
1034 * @return
1035 * @zh 10100000:接口调用成功,AGV开始执行充电命令;10120202:无控制权;else:接口调用失败。
1036 * @en 10100000: API call succeeded and the AGV starts the charging command; 10120202: no control priority; else: API call failed.
1037 */
1038 [[deprecated("Since 0.7.0: use sendAutoChargingCommand(const AutoChargingCommand&) instead.")]]
1039 int checkPowerAndAutoCharge(const Header &check_power_header = { "99999", "99999", 99999, "99999" },
1040 const std::string &nav_board_charge_station_id = "99999");
1041
1042 /**
1043 * @ingroup Charging
1044 * @brief
1045 * @zh 设置自动下桩时的目标站点。
1046 * @en Sets the target station for automatic undocking.
1047 * @deprecated @if Chinese 自0.7.0起废弃,请使用新的sendAutoChargingCommand(const AutoChargingCommand&)接口。 @endif @if English Deprecated since 0.7.0. Use sendAutoChargingCommand(const AutoChargingCommand&) instead. @endif
1048 * @param[in] leave_board_target_station_header
1049 * @zh 自动下桩的站点header信息。
1050 * @en Header information of the station used for automatic undocking.
1051 * @return
1052 * @zh 10100000:设置自动下桩站点成功;else:设置自动下桩站点失败。
1053 * @en 10100000: automatic undocking station set successfully; else: failed to set the station.
1054 */
1055 [[deprecated("Since 0.7.0: use sendAutoChargingCommand(const AutoChargingCommand&) instead.")]]
1056 int setLeaveBoardTargetStation(const Header &leave_board_target_station_header);
1057
1058 /**
1059 * @ingroup Charging
1060 * @brief
1061 * @zh 获取自动下桩时的目标站点。
1062 * @en Gets the target station for automatic undocking.
1063 * @deprecated @if Chinese 自0.7.0起废弃,请使用新的getNavInfo()接口。 @endif @if English Deprecated since 0.7.0. Use getNavInfo() instead. @endif
1064 * @return
1065 * @zh 自动下桩时的目标站点Header信息。
1066 * @en Header information of the target station for automatic undocking.
1067 */
1068 [[deprecated("Since 0.7.0: use getNavInfo() instead.")]]
1070
1071 /**
1072 * @ingroup Charging
1073 * @attention
1074 * @zh 控制权限制。
1075 * @en Requires control priority.
1076 * @brief
1077 * @zh 强制上桩充电。
1078 * @en Forces the AGV to dock for charging.
1079 * @deprecated @if Chinese 自0.7.0起废弃,请使用新的sendAutoChargingCommand(const AutoChargingCommand&)接口。 @endif @if English Deprecated since 0.7.0. Use sendAutoChargingCommand(const AutoChargingCommand&) instead. @endif
1080 * @param[in] forced_charge_header
1081 * @zh 本次命令的id,本次命令的name,当前时间,地图id。
1082 * @en ID of this command, name of this command, current time, and map ID.
1083 * @param[in] nav_board_charge_station_id
1084 * @zh 行驶到指定的充电站点进行上桩充电;如果不设置该参数,行驶到最近的充电站点进行上桩充电。
1085 * @en Drives to the specified charging station for docking and charging. If unset, drives to the nearest charging station.
1086 * @return
1087 * @zh 10100000:接口调用成功,AGV开始上桩充电;10120202:无控制权;else:接口调用失败。
1088 * @en 10100000: API call succeeded and the AGV starts docking for charging; 10120202: no control priority; else: API call failed.
1089 */
1090 [[deprecated("Since 0.7.0: use sendAutoChargingCommand(const AutoChargingCommand&) instead.")]]
1091 int forcedAgvToChargingBoard(const Header &forced_charge_header = { "99999", "99999", 99999, "99999" },
1092 const std::string &nav_board_charge_station_id = "99999");
1093
1094 /**
1095 * @ingroup Charging
1096 * @attention
1097 * @zh 控制权限制。
1098 * @en Requires control priority.
1099 * @brief
1100 * @zh 强制下桩。
1101 * @en Forces the AGV to leave the charging board.
1102 * @deprecated @if Chinese 自0.7.0起废弃,请使用新的sendAutoChargingCommand(const AutoChargingCommand&)接口。 @endif @if English Deprecated since 0.7.0. Use sendAutoChargingCommand(const AutoChargingCommand&) instead. @endif
1103 * @param[in] forced_leave_header
1104 * @zh 本次命令的id,本次命令的name,当前时间,地图id。
1105 * @en ID of this command, name of this command, current time, and map ID.
1106 * @param[in] leave_board_target_station_id
1107 * @zh 下桩前往的站点;如果不设置该参数,则下桩到充电站点。
1108 * @en Station to move to after leaving the board. If unset, the AGV leaves the board to the charging station.
1109 * @return
1110 * @zh 10100000:接口调用成功,AGV开始下桩;10120202:无控制权;else:接口调用失败。
1111 * @en 10100000: API call succeeded and the AGV starts leaving the board; 10120202: no control priority; else: API call failed.
1112 */
1113 [[deprecated("Since 0.7.0: use sendAutoChargingCommand(const AutoChargingCommand&) instead.")]]
1114 int forcedAgvLeaveChargingBoard(const Header &forced_leave_header = { "99999", "99999", 99999, "99999" },
1115 const std::string &leave_board_target_station_id = "99999");
1116
1117 /**
1118 * @ingroup Charging
1119 * @attention
1120 * @zh 控制权限制。
1121 * @en Requires control priority.
1122 * @brief
1123 * @zh 下发自动充电命令。
1124 * @en Sends an automatic charging command.
1125 * @since 0.7.0
1126 * @param[in] auto_charging_command
1127 * @zh 自动充电命令。
1128 * @en Automatic charging command.
1129 * @return
1130 * @zh 10100000:接口调用成功,AGV开始执行充电命令;10120202:无控制权;else:接口调用失败。
1131 * @en 10100000: API call succeeded and the AGV starts the charging command; 10120202: no control priority; else: API call failed.
1132 */
1133 int sendAutoChargingCommand(const AutoChargingCommand &auto_charging_command);
1134
1135 /**
1136 * @ingroup AgvInfo
1137 * @brief
1138 * @zh 获取AGV运行中的日志信息。
1139 * @en Gets AGV runtime log messages.
1140 * @return
1141 * @zh AGV运行中的日志信息。
1142 * @en AGV runtime log messages.
1143 */
1144 std::string getAgvLogMessage();
1145
1146 /**
1147 * @ingroup System
1148 * @brief
1149 * @zh AGV软件升级。
1150 * @en Upgrades AGV software.
1151 * @param[in] upgrade_pack_path
1152 * @zh 升级包路径,例如"/root/agvc_release-0.1.1+398d1f7-Linux_x86_64.tar.gz"。
1153 * @en Upgrade package path, for example "/root/agvc_release-0.1.1+398d1f7-Linux_x86_64.tar.gz".
1154 * @return
1155 * @zh 10100000:目标版本升级成功;10100201:正在升级中;else:升级失败。
1156 * @en 10100000: target version upgraded successfully; 10100201: upgrade is in progress; else: upgrade failed.
1157 */
1158 int updateSoftware(const std::string &upgrade_pack_path);
1159
1160 /**
1161 * @ingroup System
1162 * @brief
1163 * @zh 获取AGV软件版本列表。
1164 * @en Gets the AGV software version list.
1165 * @return
1166 * @zh 软件版本列表集合 {0.3.2+3b807d1-Linux_x86_64,0.6.3-patch.3+b8c6aa4-Linux_x86_64}。
1167 * @en Software version list, for example {0.3.2+3b807d1-Linux_x86_64,0.6.3-patch.3+b8c6aa4-Linux_x86_64}.
1168 */
1169 std::vector<std::string> getSoftwareVersionList();
1170
1171 /**
1172 * @ingroup System
1173 * @brief
1174 * @zh 切换AGV软件版本。
1175 * @en Switches the AGV software version.
1176 * @param[in] software_version
1177 * @zh 软件版本,例如"0.3.2+3b807d1-Linux_x86_64"。
1178 * @en Software version, for example "0.3.2+3b807d1-Linux_x86_64".
1179 * @return
1180 * @zh 10100000:软件版本切换成功;else:软件版本切换失败。
1181 * @en 10100000: software version switched successfully; else: failed to switch software version.
1182 */
1183 int switchSoftwareVersion(const std::string &software_version);
1184
1185 /**
1186 * @ingroup System
1187 * @brief
1188 * @zh 卸载AGV软件版本。
1189 * @en Uninstalls an AGV software version.
1190 * @param[in] software_version
1191 * @zh 软件版本,例如"0.3.2+3b807d1-Linux_x86_64"。
1192 * @en Software version, for example "0.3.2+3b807d1-Linux_x86_64".
1193 * @return
1194 * @zh 10100000:软件版本卸载成功;else:软件版本卸载失败。
1195 * @en 10100000: software version uninstalled successfully; else: failed to uninstall software version.
1196 */
1197 int uninstallSoftware(const std::string &software_version);
1198
1199 /**
1200 * @ingroup System
1201 * @brief
1202 * @zh AGV固件更新。
1203 * @en Updates AGV firmware.
1204 * @param[in] update_firmware
1205 * @zh 配置要更新固件的模块、固件存储路径。
1206 * @en Configures the firmware modules to update and the firmware storage path.
1207 * @return
1208 * @zh 10100000:下发固件更新信息成功;else:固件正在更新中。
1209 * @en 10100000: firmware update information sent successfully; else: firmware update is in progress.
1210 */
1211 int updateFirmware(const FirmwareUpdateParam &update_firmware);
1212
1213 /**
1214 * @ingroup System
1215 * @brief
1216 * @zh 获取固件更新过程信息。
1217 * @en Gets firmware update process information.
1218 * @return
1219 * @zh 固件更新步骤信息(步骤信息为failed代表更新失败),更新进度(进度信息为1.0代表更新成功)。
1220 * @en Firmware update step information (failed means the update failed) and update progress (1.0 means the update succeeded).
1221 */
1223
1224 /**
1225 * @ingroup System
1226 * @brief
1227 * @zh 开始采集数据。
1228 * @en Starts collecting calibration data.
1229 * @note
1230 * @zh LASER_ODOM标定采集数据量要求大于1000组,具体数据量可以在配置文件中修改。
1231 * @en LASER_ODOM calibration requires more than 1000 data samples. The exact amount can be changed in the configuration file.
1232 * @param[in] type
1233 * @zh 标定类型。
1234 * @en Calibration type.
1235 * @param[in] command_header
1236 * @zh id字段代表下发本次命令的id;其他字段无特殊含义。
1237 * @en The id field is the ID of this command; other fields have no special meaning.
1238 * @return
1239 * @zh 10100000:接口调用成功;10120202:无控制权;else:接口调用失败。
1240 * @en 10100000: API call succeeded; 10120202: no control priority; else: API call failed.
1241 */
1243 const Header &command_header = { "99999", "99999", 1, "99999" });
1244
1245 /**
1246 * @ingroup System
1247 * @brief
1248 * @zh 取消采集数据。
1249 * @en Cancels calibration data collection.
1250 * @param[in] type
1251 * @zh 标定类型。
1252 * @en Calibration type.
1253 * @param[in] command_header
1254 * @zh id字段代表下发本次命令的id;其他字段无特殊含义。
1255 * @en The id field is the ID of this command; other fields have no special meaning.
1256 * @return
1257 * @zh 10100000:接口调用成功;10120202:无控制权;else:接口调用失败。
1258 * @en 10100000: API call succeeded; 10120202: no control priority; else: API call failed.
1259 */
1261 const Header &command_header = { "99999", "99999", 1, "99999" });
1262
1263 /**
1264 * @ingroup System
1265 * @brief
1266 * @zh 开始标定。
1267 * @en Starts calibration.
1268 * @param[in] type
1269 * @zh 标定类型。
1270 * @en Calibration type.
1271 * @param[in] command_header
1272 * @zh id字段代表下发本次命令的id;其他字段无特殊含义。
1273 * @en The id field is the ID of this command; other fields have no special meaning.
1274 * @return
1275 * @zh 10100000:接口调用成功;10120202:无控制权;else:接口调用失败。
1276 * @en 10100000: API call succeeded; 10120202: no control priority; else: API call failed.
1277 */
1278 int startCalibration(const CalibrationType &type, const Header &command_header = { "99999", "99999", 1, "99999" });
1279
1280 /**
1281 * @ingroup System
1282 * @brief
1283 * @zh 获取标定信息。
1284 * @en Gets calibration information.
1285 * @param[in] type
1286 * @zh 标定类型。
1287 * @en Calibration type.
1288 * @return
1289 * @zh 标定信息。
1290 * @en Calibration information.
1291 */
1293
1294 /**
1295 * @ingroup System
1296 * @brief
1297 * @zh 重启AGV。
1298 * @en Restarts the AGV.
1299 * @return
1300 * @zh 10100000:重启指令执行成功;else:重启指令执行失败。
1301 * @en 10100000: restart command executed successfully; else: restart command failed.
1302 */
1304
1305 /**
1306 * @ingroup System
1307 * @brief
1308 * @zh 设置AGV的名称。
1309 * @en Sets the AGV name.
1310 * @param[in] agv_name
1311 * @zh 设置的AGV名称。
1312 * @en AGV name to set.
1313 * @return
1314 * @zh 10100000:设置名称成功;else:设置名称失败。
1315 * @en 10100000: name set successfully; else: failed to set the name.
1316 */
1317 int setAgvName(const std::string &agv_name);
1318
1319 /**
1320 * @ingroup System
1321 * @brief
1322 * @zh 设置控制权。
1323 * @en Sets control priority.
1324 * @note
1325 * @zh 1.该接口设置成功后才能正常使用控制权相关接口;2.控制权设置前需要先释放他人的控制权:releasePriority;3.Web端抢占优先权:name="web"。
1326 * @en 1. Control-priority APIs can be used only after this API succeeds; 2. Release another client's control priority with releasePriority before setting priority; 3. To preempt priority from the web side, set name="web".
1327 * @param[in] name
1328 * @zh 登录RPC注册时的用户名。
1329 * @en User name registered during RPC login.
1330 * @param[in] ip
1331 * @zh IP地址。
1332 * @en IP address.
1333 * @return
1334 * @zh 10100000:设置控制权成功;else:设置控制权失败。
1335 * @en 10100000: control priority set successfully; else: failed to set control priority.
1336 */
1337 int setPriority(const std::string &name, const std::string &ip = "");
1338
1339 /**
1340 * @ingroup System
1341 * @brief
1342 * @zh 释放控制权。
1343 * @en Releases control priority.
1344 * @return
1345 * @zh 10100000:释放控制权成功;else:释放控制权失败。
1346 * @en 10100000: control priority released successfully; else: failed to release control priority.
1347 */
1349
1350 /**
1351 * @ingroup System
1352 * @brief
1353 * @zh 暂停脚本。
1354 * @en Pauses the script.
1355 * @return
1356 * @zh 10100000:脚本暂停成功;else:脚本暂停失败。
1357 * @en 10100000: script paused successfully; else: failed to pause the script.
1358 */
1360
1361 /**
1362 * @ingroup System
1363 * @brief
1364 * @zh 恢复脚本。
1365 * @en Resumes the script.
1366 * @return
1367 * @zh 10100000:脚本恢复成功;else:脚本恢复失败。
1368 * @en 10100000: script resumed successfully; else: failed to resume the script.
1369 */
1371
1372 /**
1373 * @ingroup System
1374 * @brief
1375 * @zh 停止脚本。
1376 * @en Stops the script.
1377 * @return
1378 * @zh 10100000:脚本停止成功;else:脚本停止失败。
1379 * @en 10100000: script stopped successfully; else: failed to stop the script.
1380 */
1382
1383 /**
1384 * @ingroup AgvInfo
1385 * @brief
1386 * @zh 获取脚本运行状态。
1387 * @en Gets the script runtime state.
1388 * @return
1389 * @zh 脚本运行状态。
1390 * @en Script runtime state.
1391 */
1393
1394 /**
1395 * @ingroup System
1396 * @brief
1397 * @zh 设置脚本运行状态。
1398 * @en Sets the script runtime state.
1399 * @return
1400 * @zh 10100000:设置脚本运行状态成功;else:设置脚本运行状态失败。
1401 * @en 10100000: script runtime state set successfully; else: failed to set script runtime state.
1402 */
1404
1405 /**
1406 * @ingroup AgvInfo
1407 * @brief
1408 * @zh 错误码查询。
1409 * @en Queries an error code.
1410 * @param[in] error_code
1411 * @zh 错误码。
1412 * @en Error code.
1413 * @return
1414 * @zh 错误码含义;为空表示错误码未知。
1415 * @en Meaning of the error code. Empty means the error code is unknown.
1416 */
1417 std::string errorCodeDecoder(const int &error_code);
1418
1419 /**
1420 * @ingroup AgvInfo
1421 * @brief
1422 * @zh 获取当前的错误码。
1423 * @en Gets current error codes.
1424 * @return
1425 * @zh 错误码集合。
1426 * @en Error code collection.
1427 */
1428 std::vector<Header> getCurrentErrorCodes();
1429
1430 /**
1431 * @ingroup AgvInfo
1432 * @brief
1433 * @zh 寻找AGV,自动播放语音并特殊灯光闪烁。
1434 * @en Locates the AGV by automatically playing audio and flashing special lights.
1435 * @return
1436 * @zh 10100000:寻找指令下发成功;else:下发指令失败。
1437 * @en 10100000: locate command sent successfully; else: failed to send the command.
1438 */
1440
1441 /**
1442 * @ingroup AgvInfo
1443 * @brief
1444 * @zh AGV行进方向是否有障碍物。
1445 * @en Checks whether there is an obstacle in the AGV travel direction.
1446 * @param[in] detect_distance
1447 * @zh 检测距离,默认为1.0m。
1448 * @en Detection distance. Default: 1.0 m.
1449 * @return
1450 * @zh true:行进方向存在障碍物;false:行进方向无障碍物。
1451 * @en true: obstacle exists in the travel direction; false: no obstacle in the travel direction.
1452 */
1453 bool isObstacleAhead(const double &detect_distance = 1.0);
1454
1455 /**
1456 * @ingroup AgvInfo
1457 * @brief
1458 * @zh 获取指定检测距离范围内的最近站点信息。
1459 * @en Gets the nearest station within the specified detection distance.
1460 * @param[in] detect_distance
1461 * @zh 检测距离,默认为1.0m。
1462 * @en Detection distance. Default: 1.0 m.
1463 * @return
1464 * @zh 最近站点信息,id为NONE代表检测距离内无站点。
1465 * @en Nearest station information. id NONE means no station is within the detection distance.
1466 */
1467 StationMark getNearestStation(const double &detect_distance = 1.0);
1468
1469 /**
1470 * @ingroup System
1471 * @attention
1472 * @zh 1.异步接口;2.控制权限制。
1473 * @en 1. Asynchronous API; 2. Requires control priority.
1474 * @brief
1475 * @zh 自动对接轨道并上轨。
1476 * @en Automatically aligns with the rail and boards the rail.
1477 * @param[in] command_header
1478 * @zh id字段代表下发本次命令的id;其他字段无特殊含义。
1479 * @en The id field is the ID of this command; other fields have no special meaning.
1480 * @return
1481 * @zh 10100000:自动上轨成功;10100201:正在上轨中;10120202:无控制权;else:上轨失败。
1482 * @en 10100000: rail boarding succeeded; 10100201: rail boarding is in progress; 10120202: no control priority; else: rail boarding failed.
1483 */
1484 int autoAlignRailway(const Header &command_header = { "99999", "99999", 1, "99999" });
1485
1486 /** \cond */
1487protected:
1488 void *d_;
1489 /** \endcond */
1490};
1491
1492using AgvcInterfacePtr = std::shared_ptr<AgvcInterface>;
1493
1494} // namespace agvc_interface
1495
1496#define AgvcInterface_DECLARES \
1497 _FUNC(AgvcInterface, 1, setSystemClock, stamp) \
1498 _FUNC(AgvcInterface, 0, getAgvDetails) \
1499 _FUNC(AgvcInterface, 0, getRunningInfo) \
1500 _FUNC(AgvcInterface, 0, getAgvCurrentPose) \
1501 _FUNC(AgvcInterface, 0, getAsyncInterfaceResultStatus) \
1502 _FUNC(AgvcInterface, 0, getLaserPointCloud) \
1503 _FUNC(AgvcInterface, 0, getAllStations) \
1504 _FUNC(AgvcInterface, 1, getAllStationsOfTargetMap, map_header) \
1505 _FUNC(AgvcInterface, 1, addStation, station) \
1506 _FUNC(AgvcInterface, 1, addStations, stations) \
1507 _FUNC(AgvcInterface, 2, addCPStationUseChargingBoard, station_header, dis_station_post) \
1508 _FUNC(AgvcInterface, 1, deleteStation, station_header) \
1509 _FUNC(AgvcInterface, 1, deleteStations, stations_header) \
1510 _FUNC(AgvcInterface, 0, getAllPaths) \
1511 _FUNC(AgvcInterface, 1, getAllPathsOfTargetMap, map_header) \
1512 _FUNC(AgvcInterface, 0, getCurrentPath) \
1513 _FUNC(AgvcInterface, 1, generatePath, path_station) \
1514 _FUNC(AgvcInterface, 1, generatePaths, paths_station) \
1515 _FUNC(AgvcInterface, 1, deletePath, path_header) \
1516 _FUNC(AgvcInterface, 1, deletePaths, paths_header) \
1517 _FUNC(AgvcInterface, 0, getMapList) \
1518 _FUNC(AgvcInterface, 0, getCurrentMapHeader) \
1519 _FUNC(AgvcInterface, 1, getGridMapFromAgv, map_header) \
1520 _FUNC(AgvcInterface, 1, getBase64PngMapFromAgv, map_header) \
1521 _FUNC(AgvcInterface, 3, previewPngMapFromAgv, map_header, image_width_px, image_height_px) \
1522 _FUNC(AgvcInterface, 1, sendGridMapToAgv, map) \
1523 _FUNC(AgvcInterface, 1, sendBase64PngMapToAgv, map) \
1524 _FUNC(AgvcInterface, 1, saveMap, map_header) \
1525 _FUNC(AgvcInterface, 1, switchMap, map_header) \
1526 _FUNC(AgvcInterface, 1, deleteMap, map_header) \
1527 _FUNC(AgvcInterface, 1, deleteMaps, map_headers) \
1528 _FUNC(AgvcInterface, 0, getAllMapVirtualArea) \
1529 _FUNC(AgvcInterface, 1, getAllMapVirtualAreaOfTargetMap, map_header) \
1530 _FUNC(AgvcInterface, 1, addMapVirtualArea, map_virtual_area) \
1531 _FUNC(AgvcInterface, 1, addMapVirtualAreas, map_virtual_areas) \
1532 _FUNC(AgvcInterface, 1, deleteMapVirtualArea, virtual_area_header) \
1533 _FUNC(AgvcInterface, 1, deleteMapVirtualAreas, virtual_areas_header) \
1534 _FUNC(AgvcInterface, 1, getGridMapAllInfo, map_header) \
1535 _FUNC(AgvcInterface, 1, getPngMapAllInfo, map_header) \
1536 _FUNC(AgvcInterface, 2, setGridMapAllInfo, map_all_info, command_header) \
1537 _FUNC(AgvcInterface, 2, setPngMapAllInfo, map_all_info, command_header) \
1538 _FUNC(AgvcInterface, 1, deleteMapAllInfo, map_header) \
1539 _FUNC(AgvcInterface, 0, getWifiList) \
1540 _FUNC(AgvcInterface, 2, connectWifi, ssid, password) \
1541 _FUNC(AgvcInterface, 1, enableHotspot, password) \
1542 _FUNC(AgvcInterface, 0, getIpAddressList) \
1543 _FUNC(AgvcInterface, 2, changeRunningMode, running_mode, command_header) \
1544 _FUNC(AgvcInterface, 1, setControlSpeed, speed) \
1545 _FUNC(AgvcInterface, 1, setNavGoal, target) \
1546 _FUNC(AgvcInterface, 0, getNavInfo) \
1547 _FUNC(AgvcInterface, 0, pauseAgvSpeed) \
1548 _FUNC(AgvcInterface, 0, resumeAgvSpeed) \
1549 _FUNC(AgvcInterface, 0, cancelNavigation) \
1550 _FUNC(AgvcInterface, 2, relocation, init_pose, command_header) \
1551 _FUNC(AgvcInterface, 0, getAgvControllerParametersFile) \
1552 _FUNC(AgvcInterface, 1, setAgvControllerParametersFile, agv_parameters) \
1553 _FUNC(AgvcInterface, 0, refreshAgvControllerParametersFile) \
1554 _FUNC(AgvcInterface, 0, resetAgvControllerParametersFile) \
1555 _FUNC(AgvcInterface, 2, checkPowerAndAutoCharge, check_power_header, nav_board_charge_station_id) \
1556 _FUNC(AgvcInterface, 1, setLeaveBoardTargetStation, leave_board_target_station_header) \
1557 _FUNC(AgvcInterface, 0, getLeaveBoardTargetStation) \
1558 _FUNC(AgvcInterface, 2, forcedAgvToChargingBoard, forced_charge_header, nav_board_charge_station_id) \
1559 _FUNC(AgvcInterface, 2, forcedAgvLeaveChargingBoard, forced_leave_header, leave_board_target_station_id) \
1560 _FUNC(AgvcInterface, 1, sendAutoChargingCommand, auto_charging_command) \
1561 _FUNC(AgvcInterface, 0, getAgvLogMessage) \
1562 _FUNC(AgvcInterface, 1, updateSoftware, upgrade_pack_path) \
1563 _FUNC(AgvcInterface, 0, getSoftwareVersionList) \
1564 _FUNC(AgvcInterface, 1, switchSoftwareVersion, software_version) \
1565 _FUNC(AgvcInterface, 1, uninstallSoftware, software_version) \
1566 _FUNC(AgvcInterface, 1, updateFirmware, update_firmware) \
1567 _FUNC(AgvcInterface, 0, getUpdateFirmwareProcess) \
1568 _FUNC(AgvcInterface, 2, startCollectCalibrationData, type, command_header) \
1569 _FUNC(AgvcInterface, 2, cancelCollectCalibrationData, type, command_header) \
1570 _FUNC(AgvcInterface, 2, startCalibration, type, command_header) \
1571 _FUNC(AgvcInterface, 1, getCalibrationProcessInfo, type) \
1572 _FUNC(AgvcInterface, 0, restartAgv) \
1573 _FUNC(AgvcInterface, 1, setAgvName, agv_name) \
1574 _FUNC(AgvcInterface, 2, setPriority, name, ip) \
1575 _FUNC(AgvcInterface, 0, releasePriority) \
1576 _FUNC(AgvcInterface, 0, scriptPaused) \
1577 _FUNC(AgvcInterface, 0, scriptResume) \
1578 _FUNC(AgvcInterface, 0, scriptStop) \
1579 _FUNC(AgvcInterface, 0, getScriptStatus) \
1580 _FUNC(AgvcInterface, 1, setScriptStatus, status) \
1581 _FUNC(AgvcInterface, 1, errorCodeDecoder, error_code) \
1582 _FUNC(AgvcInterface, 0, getCurrentErrorCodes) \
1583 _FUNC(AgvcInterface, 0, soundLightPrompt) \
1584 _FUNC(AgvcInterface, 1, isObstacleAhead, detect_distance) \
1585 _FUNC(AgvcInterface, 1, getNearestStation, detect_distance) \
1586 _FUNC(AgvcInterface, 1, autoAlignRailway, command_header)
1587#endif // AGVC_INTERFACE_H
1588
1589
StationMark getNearestStation(const double &detect_distance=1.0)
获取指定检测距离范围内的最近站点信息。 检测距离,默认为1.0m。 最近站点信息,id为NONE代表检测距离内无站点。
ScriptRuntimeState getScriptStatus()
获取脚本运行状态。 脚本运行状态。
std::vector< Point2d > getLaserPointCloud()
std::vector< Header > getCurrentErrorCodes()
获取当前的错误码。 错误码集合。
std::string errorCodeDecoder(const int &error_code)
错误码查询。 错误码。 错误码含义;为空表示错误码未知。
std::string getAgvLogMessage()
获取AGV运行中的日志信息。 AGV运行中的日志信息。
bool isObstacleAhead(const double &detect_distance=1.0)
AGV行进方向是否有障碍物。 检测距离,默认为1.0m。 true:行进方向存在障碍物;false:行进方向无障碍物。
int soundLightPrompt()
寻找AGV,自动播放语音并特殊灯光闪烁。 10100000:寻找指令下发成功;else:下发指令失败。
Header getLeaveBoardTargetStation()
获取自动下桩时的目标站点。 自动下桩时的目标站点Header信息。
int sendAutoChargingCommand(const AutoChargingCommand &auto_charging_command)
int forcedAgvLeaveChargingBoard(const Header &forced_leave_header={ "99999", "99999", 99999, "99999" }, const std::string &leave_board_target_station_id="99999")
int setLeaveBoardTargetStation(const Header &leave_board_target_station_header)
设置自动下桩时的目标站点。 自动下桩的站点header信息。 10100000:设置自动下桩站点成功;else:设置自动下桩站点失败。
int checkPowerAndAutoCharge(const Header &check_power_header={ "99999", "99999", 99999, "99999" }, const std::string &nav_board_charge_station_id="99999")
int forcedAgvToChargingBoard(const Header &forced_charge_header={ "99999", "99999", 99999, "99999" }, const std::string &nav_board_charge_station_id="99999")
int setPngMapAllInfo(const MapAllInfo &map_all_info, const Header &command_header={ "99999", "99999", 1, "99999" })
Base64PngMap previewPngMapFromAgv(const Header &map_header, const int &image_width_px=0, const int &image_height_px=0)
int addMapVirtualArea(const MapVirtualArea &map_virtual_area)
添加或修改一个虚拟区域。 待添加或修改的虚拟区域信息。 10100000:添加或修改虚拟区域成功;else:添加或修改虚拟区域失败。
int setGridMapAllInfo(const MapAllInfo &map_all_info, const Header &command_header={ "99999", "99999", 1, "99999" })
Base64PngMap getBase64PngMapFromAgv(const Header &map_header)
OccupancyGridMap getGridMapFromAgv(const Header &map_header)
获取指定栅格地图信息。 指定地图的信息头(本次异步命令id,名称,时间,地图id)。 map_id为"current_map"时,可特指为当前地图。 指定栅格地图信息。
int deleteMapAllInfo(const Header &map_header)
删除指定地图的全部信息,包括地图数据、站点、路径、虚拟区信息。 指定地图信息头(命令id,地图名称,时间,地图id)。 10100000:删除成功;else:删除失败。
int deleteMaps(const std::vector< Header > &map_headers)
删除多张指定地图。 多个指定地图的信息头(命令id,名称,时间,地图id)。 10100000:删除地图成功;else:删除地图失败。
int sendGridMapToAgv(const OccupancyGridMap &map)
std::vector< MapVirtualArea > getAllMapVirtualAreaOfTargetMap(const Header &map_header)
查询目标地图的虚拟区域。 指定地图header(命令id,名称,时间,地图id)。 指定地图的所有虚拟区域。
Header getCurrentMapHeader()
查询当前AGV地图的信息头。 当前地图的信息头(命令id,名称,时间,地图id)。
int addMapVirtualAreas(const std::vector< MapVirtualArea > &map_virtual_areas)
添加或修改多个虚拟区域。 待添加或修改的虚拟区域信息。 10100000:添加或修改虚拟区域成功;else:添加或修改虚拟区域失败。
int sendBase64PngMapToAgv(const Base64PngMap &map)
MapAllInfo getGridMapAllInfo(const Header &map_header)
std::vector< Header > getMapList()
获取AGV所有地图的信息头。 所有地图的信息头(命令id,名称,时间,地图id)。
std::vector< MapVirtualArea > getAllMapVirtualArea()
查询当前地图的虚拟区域。 当前地图的虚拟区域信息。
int deleteMapVirtualAreas(const std::vector< Header > &virtual_areas_header)
删除多个指定虚拟区域。 指定虚拟区域信息头(命令id,虚拟区域名称,时间,所在地图id)。 10100000:删除虚拟区域成功;else:删除虚拟区域失败。
int deleteMap(const Header &map_header)
删除一张指定地图。 指定地图的信息头(命令id,名称,时间,地图id)。 10100000:删除地图成功;else:删除地图失败。
int saveMap(const Header &map_header)
int deleteMapVirtualArea(const Header &virtual_area_header)
删除指定虚拟区域。 指定虚拟区域信息头(命令id,虚拟区域名称,时间,所在地图id)。 10100000:删除虚拟区域成功;else:删除虚拟区域失败。
MapAllInfo getPngMapAllInfo(const Header &map_header)
int switchMap(const Header &map_header)
int relocation(const Pose2d &init_pose, const Header &command_header={ "99999", "99999", 1, "99999" })
int setControlSpeed(const Speed &speed)
int setNavGoal(const NavGoalType &target)
int changeRunningMode(const RunningMode &running_mode, const Header &command_header={ "99999", "99999", 1, "99999" })
int generatePaths(const std::vector< PathStation > &paths_station)
生成或修改多条路径。 待生成或修改的路径信息。 10100000:修改或生成路径成功;else:修改或生成路径失败。
std::vector< PathStation > getAllPaths()
查询当前地图的所有路径信息。 当前地图的所有路径信息。
PathStation getCurrentPath()
查询AGV当前正在跟踪的路径信息。 当前正在跟踪的路径信息。
std::vector< PathStation > getAllPathsOfTargetMap(const Header &map_header)
查询指定地图的所有路径信息。 指定地图header(命令id,名称,时间,地图id)。 指定地图的所有路径信息。
int generatePath(const PathStation &path_station)
生成或修改一条路径。 待生成或修改的路径信息。 10100000:修改或生成路径成功;else:修改或生成路径失败。
int deletePaths(const std::vector< Header > &paths_header)
删除多条路径。 待删除路径信息(路径id,名称,时间,地图id)。 10100000:删除路径成功;else:删除路径失败。
int deletePath(const Header &path_header)
删除一条路径。 待删除路径信息(路径id,名称,时间,地图id)。 10100000:删除路径成功;else:删除路径失败。
int deleteStation(const Header &station_header)
删除指定站点,会删除与该站点相关的路径。 待删除站点信息(站点id,名称,时间,地图id)。 10100000:删除站点成功;else:删除站点失败。
std::vector< StationMark > getAllStationsOfTargetMap(const Header &map_header)
查询指定地图的所有站点信息。 指定地图header(命令id,名称,时间,地图id)。 指定地图的所有站点信息。
int addStation(const StationMark &station)
添加或修改一个站点。 待添加或修改的站点信息。 10100000:添加或修改站点成功;else:添加或修改站点失败。
std::vector< StationMark > getAllStations()
查询当前地图的所有站点信息。 当前地图的所有站点信息。
int addStations(const std::vector< StationMark > &stations)
添加或修改多个站点。 待添加或修改的站点信息。 10100000:添加或修改站点成功;else:添加或修改站点失败。
int deleteStations(const std::vector< Header > &stations_header)
删除多个站点,会删除与站点相关的路径。 待删除站点信息(站点id,名称,时间,地图id)。 10100000:删除站点成功;else:删除站点失败。
int addCPStationUseChargingBoard(const Header &station_header, const double &dis_station_board=1.5)
通过自动识别充电桩位姿来添加充电站点。 待添加或修改的充电站点信息(站点id,名称,时间,地图id)。 充电站点与充电桩之间的距离(充电站点位于AGV中心),单位:m,范围[1....
int updateSoftware(const std::string &upgrade_pack_path)
AGV软件升级。 升级包路径,例如"/root/agvc_release-0.1.1+398d1f7-Linux_x86_64.tar.gz"。 10100000:目标版本升级成功;10100201:正...
int scriptPaused()
暂停脚本。 10100000:脚本暂停成功;else:脚本暂停失败。
AsyncInterfaceResultStatus getAsyncInterfaceResultStatus()
查询异步接口的运行情况,不代表异步接口本身的运行结果。 异步接口:saveMap, switchMap, changeRunningMode, relocation,...
int setScriptStatus(ScriptRuntimeState status)
设置脚本运行状态。 10100000:设置脚本运行状态成功;else:设置脚本运行状态失败。
int setPriority(const std::string &name, const std::string &ip="")
设置控制权。 1.
int setAgvName(const std::string &agv_name)
设置AGV的名称。 设置的AGV名称。 10100000:设置名称成功;else:设置名称失败。
int restartAgv()
重启AGV。 10100000:重启指令执行成功;else:重启指令执行失败。
int autoAlignRailway(const Header &command_header={ "99999", "99999", 1, "99999" })
int enableHotspot(const std::string &password)
开启热点,自动切换到热点模式。 必须在有线连接时调用,且执行时间较长。 热点密码;如果为空使用"administrator"为默认密码,SSID默认为SN码。 10100000:启用热点成功;else:...
int connectWifi(const std::string &ssid, const std::string &password)
连接到指定WiFi,自动切换到WiFi模式。 必须在有线连接时调用,且执行时间较长。 WiFi名称。 WiFi密码。 10100000:连接WiFi成功;else:连接WiFi失败。
int switchSoftwareVersion(const std::string &software_version)
切换AGV软件版本。 软件版本,例如"0.3.2+3b807d1-Linux_x86_64"。 10100000:软件版本切换成功;else:软件版本切换失败。
int setSystemClock(const std::string &stamp)
设置AGV系统时间。 时间戳,格式为YYYY-MM-DDTHH:mm:ss.ssZ,例如“2017-04-15T11:40:03.12Z”。
int setAgvControllerParametersFile(const std::string &agv_parameters)
std::vector< std::string > getSoftwareVersionList()
获取AGV软件版本列表。 软件版本列表集合 {0.3.2+3b807d1-Linux_x86_64,0.6.3-patch.3+b8c6aa4-Linux_x86_64}...
int releasePriority()
释放控制权。 10100000:释放控制权成功;else:释放控制权失败。
int updateFirmware(const FirmwareUpdateParam &update_firmware)
AGV固件更新。 配置要更新固件的模块、固件存储路径。 10100000:下发固件更新信息成功;else:固件正在更新中。
std::vector< std::string > getWifiList()
FirmwareUpdateProcessInfo getUpdateFirmwareProcess()
获取固件更新过程信息。 固件更新步骤信息(步骤信息为failed代表更新失败),更新进度(进度信息为1.0代表更新成功)。
int uninstallSoftware(const std::string &software_version)
卸载AGV软件版本。 软件版本,例如"0.3.2+3b807d1-Linux_x86_64"。 10100000:软件版本卸载成功;else:软件版本卸载失败。
std::string getAgvControllerParametersFile()
获取AGV控制器的参数文件。 当前AGV控制器中的参数信息。
int scriptStop()
停止脚本。 10100000:脚本停止成功;else:脚本停止失败。
int startCalibration(const CalibrationType &type, const Header &command_header={ "99999", "99999", 1, "99999" })
开始标定。 标定类型。 id字段代表下发本次命令的id;其他字段无特殊含义。 10100000:接口调用成功;10120202:无控制权;else:接口调用失败。
int cancelCollectCalibrationData(const CalibrationType &type, const Header &command_header={ "99999", "99999", 1, "99999" })
取消采集数据。 标定类型。 id字段代表下发本次命令的id;其他字段无特殊含义。 10100000:接口调用成功;10120202:无控制权;else:接口调用失败。
CalibrationProcessInfo getCalibrationProcessInfo(const CalibrationType &type)
获取标定信息。 标定类型。 标定信息。
int scriptResume()
恢复脚本。 10100000:脚本恢复成功;else:脚本恢复失败。
int startCollectCalibrationData(const CalibrationType &type, const Header &command_header={ "99999", "99999", 1, "99999" })
开始采集数据。 LASER_ODOM标定采集数据量要求大于1000组,具体数据量可以在配置文件中修改。 标定类型。 id字段代表下发本次命令的id;其他字段无特殊含义。 10100000:接口调用成功;...
std::vector< IpAddressInfo > getIpAddressList()
获取本机所有IP地址。 本机所有IP地址。
RunningMode
agv 运行模式
定义 type.h:80
MapInfo OccupancyGridMap
栅格地图
定义 type.h:691
std::shared_ptr< AgvcInterface > AgvcInterfacePtr
MapInfo Base64PngMap
Base64编码的png地图图片
定义 type.h:706
CalibrationType
标定类型
定义 type.h:197
异步接口运行状态 暂时存在14个异步接口:saveMap, switchMap, changeRunningMode, relocation, sendBase64PngMapToAgv getGrid...
定义 type.h:620
配置要更新固件的模块及固件路径
定义 type.h:813
包含当前地图、当前地图上的站点、当前地图上的路径、当前地图上的虚拟区域信息
定义 type.h:727
地图中的虚拟区域
定义 type.h:712
使 agv 导航到目标位置(控制信息)
定义 type.h:763
导航状态信息 / 自动充电状态信息
定义 type.h:785
通过站点表示路径
定义 type.h:652