PDF
AGVC SDK  0.8.0
agvc_interface.h
Go to the documentation of this file.
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)
Gets the nearest station within the specified detection distance.
ScriptRuntimeState getScriptStatus()
Gets the script runtime state.
std::vector< Point2d > getLaserPointCloud()
Queries the current laser point cloud data.
std::vector< Header > getCurrentErrorCodes()
Gets current error codes.
Pose2d getAgvCurrentPose()
Queries the current AGV pose.
std::string errorCodeDecoder(const int &error_code)
Queries an error code.
std::string getAgvLogMessage()
Gets AGV runtime log messages.
bool isObstacleAhead(const double &detect_distance=1.0)
Checks whether there is an obstacle in the AGV travel direction.
AgvDetails getAgvDetails()
Queries current AGV information.
RunningInfo getRunningInfo()
Queries current AGV running information.
int soundLightPrompt()
Locates the AGV by automatically playing audio and flashing special lights.
NavInfo getNavInfo()
Gets current navigation information.
Header getLeaveBoardTargetStation()
Gets the target station for automatic undocking.
int sendAutoChargingCommand(const AutoChargingCommand &auto_charging_command)
Sends an automatic charging command.
int forcedAgvLeaveChargingBoard(const Header &forced_leave_header={ "99999", "99999", 99999, "99999" }, const std::string &leave_board_target_station_id="99999")
Forces the AGV to leave the charging board.
int setLeaveBoardTargetStation(const Header &leave_board_target_station_header)
Sets the target station for automatic undocking.
int checkPowerAndAutoCharge(const Header &check_power_header={ "99999", "99999", 99999, "99999" }, const std::string &nav_board_charge_station_id="99999")
Checks the current battery level and automatically docks for charging when the battery is low.
int forcedAgvToChargingBoard(const Header &forced_charge_header={ "99999", "99999", 99999, "99999" }, const std::string &nav_board_charge_station_id="99999")
Forces the AGV to dock for charging.
int setPngMapAllInfo(const MapAllInfo &map_all_info, const Header &command_header={ "99999", "99999", 1, "99999" })
Sets Base64 map, path, station, and virtual area information.
Base64PngMap previewPngMapFromAgv(const Header &map_header, const int &image_width_px=0, const int &image_height_px=0)
Gets a preview image with optional width and height.
int addMapVirtualArea(const MapVirtualArea &map_virtual_area)
Adds or modifies one virtual area.
int setGridMapAllInfo(const MapAllInfo &map_all_info, const Header &command_header={ "99999", "99999", 1, "99999" })
Sets occupancy grid map, path, station, and virtual area information.
Base64PngMap getBase64PngMapFromAgv(const Header &map_header)
Gets Base64-encoded PNG map information.
OccupancyGridMap getGridMapFromAgv(const Header &map_header)
Gets the specified occupancy grid map information.
int deleteMapAllInfo(const Header &map_header)
Deletes all information of the specified map, including map data, stations, paths,...
int deleteMaps(const std::vector< Header > &map_headers)
Deletes multiple specified maps.
int sendGridMapToAgv(const OccupancyGridMap &map)
Sends occupancy grid map information to the AGV.
std::vector< MapVirtualArea > getAllMapVirtualAreaOfTargetMap(const Header &map_header)
Queries virtual areas on the target map.
Header getCurrentMapHeader()
Queries the header of the current AGV map.
int addMapVirtualAreas(const std::vector< MapVirtualArea > &map_virtual_areas)
Adds or modifies multiple virtual areas.
int sendBase64PngMapToAgv(const Base64PngMap &map)
Sends a Base64-encoded PNG map to the AGV.
MapAllInfo getGridMapAllInfo(const Header &map_header)
Gets occupancy grid map data, paths, stations, and virtual areas for the specified map.
std::vector< Header > getMapList()
Gets the headers of all maps on the AGV.
std::vector< MapVirtualArea > getAllMapVirtualArea()
Queries virtual areas on the current map.
int deleteMapVirtualAreas(const std::vector< Header > &virtual_areas_header)
Deletes multiple specified virtual areas.
int deleteMap(const Header &map_header)
Deletes one specified map.
int saveMap(const Header &map_header)
Saves the map after mapping is complete.
int deleteMapVirtualArea(const Header &virtual_area_header)
Deletes the specified virtual area.
MapAllInfo getPngMapAllInfo(const Header &map_header)
Gets Base64 map data, paths, stations, and virtual areas for the specified map.
int switchMap(const Header &map_header)
Switches to the specified map.
int relocation(const Pose2d &init_pose, const Header &command_header={ "99999", "99999", 1, "99999" })
Relocates the AGV.
int setControlSpeed(const Speed &speed)
Controls AGV motion.
int resumeAgvSpeed()
Resumes AGV speed after a pause.
int setNavGoal(const NavGoalType &target)
Sends a navigation goal to the AGV.
int pauseAgvSpeed()
Pauses AGV speed.
int changeRunningMode(const RunningMode &running_mode, const Header &command_header={ "99999", "99999", 1, "99999" })
Switches the AGV running mode.
int cancelNavigation()
Cancels the navigation task.
int generatePaths(const std::vector< PathStation > &paths_station)
Generates or modifies multiple paths.
std::vector< PathStation > getAllPaths()
Queries all path information on the current map.
PathStation getCurrentPath()
Queries the path currently being tracked by the AGV.
std::vector< PathStation > getAllPathsOfTargetMap(const Header &map_header)
Queries all path information on the specified map.
int generatePath(const PathStation &path_station)
Generates or modifies one path.
int deletePaths(const std::vector< Header > &paths_header)
Deletes multiple paths.
int deletePath(const Header &path_header)
Deletes one path.
int deleteStation(const Header &station_header)
Deletes the specified station and its related paths.
std::vector< StationMark > getAllStationsOfTargetMap(const Header &map_header)
Queries all station information on the specified map.
int addStation(const StationMark &station)
Adds or modifies one station.
std::vector< StationMark > getAllStations()
Queries all station information on the current map.
int addStations(const std::vector< StationMark > &stations)
Adds or modifies multiple stations.
int deleteStations(const std::vector< Header > &stations_header)
Deletes multiple stations and their related paths.
int addCPStationUseChargingBoard(const Header &station_header, const double &dis_station_board=1.5)
Adds a charging station by automatically recognizing the charging board pose.
int updateSoftware(const std::string &upgrade_pack_path)
Upgrades AGV software.
int scriptPaused()
Pauses the script.
AsyncInterfaceResultStatus getAsyncInterfaceResultStatus()
Queries the running status of asynchronous APIs; this does not represent each API's own execution res...
int setScriptStatus(ScriptRuntimeState status)
Sets the script runtime state.
int setPriority(const std::string &name, const std::string &ip="")
Sets control priority.
int setAgvName(const std::string &agv_name)
Sets the AGV name.
int restartAgv()
Restarts the AGV.
int autoAlignRailway(const Header &command_header={ "99999", "99999", 1, "99999" })
Automatically aligns with the rail and boards the rail.
int enableHotspot(const std::string &password)
Enables hotspot mode and automatically switches to hotspot mode.
int connectWifi(const std::string &ssid, const std::string &password)
Connects to the specified WiFi and automatically switches to WiFi mode.
int switchSoftwareVersion(const std::string &software_version)
Switches the AGV software version.
int setSystemClock(const std::string &stamp)
Sets the AGV system time.
int setAgvControllerParametersFile(const std::string &agv_parameters)
Sets the AGV controller parameter file.
std::vector< std::string > getSoftwareVersionList()
Gets the AGV software version list.
int releasePriority()
Releases control priority.
int updateFirmware(const FirmwareUpdateParam &update_firmware)
Updates AGV firmware.
std::vector< std::string > getWifiList()
Gets the currently scanned WiFi list.
FirmwareUpdateProcessInfo getUpdateFirmwareProcess()
Gets firmware update process information.
int uninstallSoftware(const std::string &software_version)
Uninstalls an AGV software version.
std::string getAgvControllerParametersFile()
Gets the AGV controller parameter file.
int refreshAgvControllerParametersFile()
Refreshes parameters on AGV nodes after the AGV controller parameter file is modified.
int resetAgvControllerParametersFile()
Restores the AGV controller parameter file to factory defaults.
int scriptStop()
Stops the script.
int startCalibration(const CalibrationType &type, const Header &command_header={ "99999", "99999", 1, "99999" })
Starts calibration.
int cancelCollectCalibrationData(const CalibrationType &type, const Header &command_header={ "99999", "99999", 1, "99999" })
Cancels calibration data collection.
CalibrationProcessInfo getCalibrationProcessInfo(const CalibrationType &type)
Gets calibration information.
int scriptResume()
Resumes the script.
int startCollectCalibrationData(const CalibrationType &type, const Header &command_header={ "99999", "99999", 1, "99999" })
Starts collecting calibration data.
std::vector< IpAddressInfo > getIpAddressList()
Gets all local IP addresses.
RunningMode
agv 运行模式
Definition type.h:80
MapInfo OccupancyGridMap
栅格地图
Definition type.h:691
std::shared_ptr< AgvcInterface > AgvcInterfacePtr
MapInfo Base64PngMap
Base64编码的png地图图片
Definition type.h:706
CalibrationType
标定类型
Definition type.h:197
异步接口运行状态 暂时存在14个异步接口:saveMap, switchMap, changeRunningMode, relocation, sendBase64PngMapToAgv getGrid...
Definition type.h:620
配置要更新固件的模块及固件路径
Definition type.h:813
固件更新过程信息
Definition type.h:824
头部信息
Definition type.h:426
包含当前地图、当前地图上的站点、当前地图上的路径、当前地图上的虚拟区域信息
Definition type.h:727
地图中的虚拟区域
Definition type.h:712
使 agv 导航到目标位置(控制信息)
Definition type.h:763
导航状态信息 / 自动充电状态信息
Definition type.h:785
通过站点表示路径
Definition type.h:652
二维位姿
Definition type.h:407
agv 运行信息
Definition type.h:461