ARCS SDK API  0.25.0
载入中...
搜索中...
未找到
robot_manage.h
浏览该文件的文档.
1/** @file robot_manage.h
2 * @brief 机器人管理接口,如上电、启动、拖动示教模式等
3 */
4#ifndef AUBO_SDK_ROBOT_CONTROL_INTERFACE_H
5#define AUBO_SDK_ROBOT_CONTROL_INTERFACE_H
6
7#include <vector>
8#include <thread>
9
10#include <aubo/global_config.h>
11#include <aubo/type_def.h>
12
13namespace arcs {
14namespace common_interface {
15
16class ARCS_ABI_EXPORT RobotManage
17{
18public:
20 virtual ~RobotManage();
21
22 /**
23 * 发起机器人上电请求
24 *
25 * @return 成功返回0; 失败返回错误码
26 * AUBO_BAD_STATE
27 *
28 * @throws arcs::common_interface::AuboException
29 *
30 * @par Python函数原型
31 * poweron(self: pyaubo_sdk.RobotManage) -> int
32 *
33 * @par Lua函数原型
34 * poweron() -> number
35 *
36 * @par JSON-RPC请求示例
37 * {"jsonrpc":"2.0","method":"rob1.RobotManage.poweron","params":[],"id":1}
38 *
39 * @par JSON-RPC响应示例
40 * {"id":1,"jsonrpc":"2.0","result":0}
41 *
42 * @par C++示例
43 * @code
44 * auto rpc_cli = std::make_shared<RpcClient>();
45 * auto robot_name = rpc_cli->getRobotNames().front();
46 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->poweron();
47 * @endcode
48 *
49 */
50 int poweron();
51
52 /**
53 * 发起机器人启动请求
54 *
55 * @return 成功返回0; 失败返回错误码
56 * AUBO_BAD_STATE
57 *
58 * @throws arcs::common_interface::AuboException
59 *
60 * @par Python函数原型
61 * startup(self: pyaubo_sdk.RobotManage) -> int
62 *
63 * @par Lua函数原型
64 * startup() -> number
65 *
66 * @par JSON-RPC请求示例
67 * {"jsonrpc":"2.0","method":"rob1.RobotManage.startup","params":[],"id":1}
68 *
69 * @par JSON-RPC响应示例
70 * {"id":1,"jsonrpc":"2.0","result":0}
71 *
72 * @par C++示例
73 * @code
74 * auto rpc_cli = std::make_shared<RpcClient>();
75 * auto robot_name = rpc_cli->getRobotNames().front();
76 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->startup();
77 * @endcode
78 */
79 int startup();
80
81 /**
82 * 发起机器人松开刹车请求
83 *
84 * @return 成功返回0; 失败返回错误码
85 * AUBO_BAD_STATE
86 *
87 * @throws arcs::common_interface::AuboException
88 *
89 * @par Python函数原型
90 * releaseRobotBrake(self: pyaubo_sdk.RobotManage) -> int
91 *
92 * @par Lua函数原型
93 * releaseRobotBrake() -> number
94 *
95 * @par JSON-RPC请求示例
96 * {"jsonrpc":"2.0","method":"rob1.RobotManage.releaseRobotBrake","params":[],"id":1}
97 *
98 * @par JSON-RPC响应示例
99 * {"id":1,"jsonrpc":"2.0","result":0}
100 *
101 * @par C++示例
102 * @code
103 * auto rpc_cli = std::make_shared<RpcClient>();
104 * auto robot_name = rpc_cli->getRobotNames().front();
105 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->releaseRobotBrake();
106 * @endcode
107 */
109
110 /**
111 * 发起机器人刹车请求
112 *
113 * @return 成功返回0; 失败返回错误码
114 * AUBO_BAD_STATE
115 *
116 * @throws arcs::common_interface::AuboException
117 *
118 * @par Python函数原型
119 * lockRobotBrake(self: pyaubo_sdk.RobotManage) -> int
120 *
121 * @par Lua函数原型
122 * lockRobotBrake() -> number
123 *
124 * @par JSON-RPC请求示例
125 * {"jsonrpc":"2.0","method":"rob1.RobotManage.lockRobotBrake","params":[],"id":1}
126 *
127 * @par JSON-RPC响应示例
128 * {"id":1,"jsonrpc":"2.0","result":0}
129 *
130 * @par C++示例
131 * @code
132 * auto rpc_cli = std::make_shared<RpcClient>();
133 * auto robot_name = rpc_cli->getRobotNames().front();
134 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->lockRobotBrake();
135 * @endcode
136 */
138
139 /**
140 * 发起机器人断电请求
141 *
142 * @return 成功返回0; 失败返回错误码
143 * AUBO_BAD_STATE
144 *
145 * @throws arcs::common_interface::AuboException
146 *
147 * @par Python函数原型
148 * poweroff(self: pyaubo_sdk.RobotManage) -> int
149 *
150 * @par Lua函数原型
151 * poweroff() -> number
152 *
153 * @par JSON-RPC请求示例
154 * {"jsonrpc":"2.0","method":"rob1.RobotManage.poweroff","params":[],"id":1}
155 *
156 * @par JSON-RPC响应示例
157 * {"id":1,"jsonrpc":"2.0","result":0}
158 *
159 * @par C++示例
160 * @code
161 * auto rpc_cli = std::make_shared<RpcClient>();
162 * auto robot_name = rpc_cli->getRobotNames().front();
163 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->poweroff();
164 * @endcode
165 */
166 int poweroff();
167
168 /**
169 * 发起机器人反向驱动请求
170 *
171 * @param enable
172 *
173 * @return 成功返回0; 失败返回错误码
174 * AUBO_BUSY
175 * AUBO_BAD_STATE
176 * -AUBO_INVL_ARGUMENT
177 * -AUBO_BAD_STATE
178 *
179 * @throws arcs::common_interface::AuboException
180 *
181 * @par Python函数原型
182 * backdrive(self: pyaubo_sdk.RobotManage, arg0: bool) -> int
183 *
184 * @par Lua函数原型
185 * backdrive(enable: boolean) -> number
186 *
187 * @par JSON-RPC请求示例
188 * {"jsonrpc":"2.0","method":"rob1.RobotManage.backdrive","params":[false],"id":1}
189 *
190 * @par JSON-RPC响应示例
191 * {"id":1,"jsonrpc":"2.0","result":0}
192 *
193 * @par C++示例
194 * @code
195 * auto rpc_cli = std::make_shared<RpcClient>();
196 * auto robot_name = rpc_cli->getRobotNames().front();
197 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->backdrive(true);
198 * @endcode
199 *
200 */
201 int backdrive(bool enable);
202
203 /**
204 * 发起机器人自由驱动请求
205 * 接口在软件版本 0.31.x 后已废弃,使用 handguideMode 接口替换
206 * handguideMode({1,1,1,1,1}, {0,0,0,0,0,0})
207 *
208 * @param enable
209 *
210 * @return 成功返回0; 失败返回错误码
211 * AUBO_BUSY
212 * AUBO_BAD_STATE
213 * -AUBO_INVL_ARGUMENT
214 * -AUBO_BAD_STATE
215 *
216 * @throws arcs::common_interface::AuboException
217 *
218 * @par Python函数原型
219 * freedrive(self: pyaubo_sdk.RobotManage, arg0: bool) -> int
220 *
221 * @par Lua函数原型
222 * freedrive(enable: boolean) -> number
223 *
224 * @par JSON-RPC请求示例
225 * {"jsonrpc":"2.0","method":"rob1.RobotManage.freedrive","params":[true],"id":1}
226 *
227 * @par JSON-RPC响应示例
228 * {"id":1,"jsonrpc":"2.0","result":0}
229 *
230 * @par C++示例
231 * @code
232 * auto rpc_cli = std::make_shared<RpcClient>();
233 * auto robot_name = rpc_cli->getRobotNames().front();
234 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->freedrive(true);
235 * @endcode
236 *
237 */
238 int freedrive(bool enable);
239
240 /**
241 * 高阶拖动示教
242 *
243 * @param freeAxes 可以拖动的轴 0-不能拖动 1-可以拖动
244 * @param feature 如果维度为0,代表基于 TCP 坐标系拖动
245 *
246 * @return 成功返回0; 失败返回错误码
247 * AUBO_BUSY
248 * AUBO_BAD_STATE
249 * -AUBO_INVL_ARGUMENT
250 * -AUBO_BAD_STATE
251 *
252 * @throws arcs::common_interface::AuboException
253 *
254 */
255 int handguideMode(const std::vector<int> &freeAxes,
256 const std::vector<double> &feature);
257
258 /**
259 * 退出拖动示教
260 *
261 * @note 暂未实现
262 *
263 * @return 成功返回0; 失败返回错误码
264 * AUBO_BUSY
265 * AUBO_BAD_STATE
266 * -AUBO_BAD_STATE
267 *
268 * @throws arcs::common_interface::AuboException
269 *
270 */
272
273 /**
274 * 获取拖动示教器的状态(是否处于奇异空间)
275 *
276 * @note 暂未实现
277 *
278 * @return
279 * • 0 - 正常操作.
280 * • 1 - 接近奇异空间.
281 * • 2 - 极其接近奇异点,将产生较大的拖动阻尼.
282 *
283 * @throws arcs::common_interface::AuboException
284 *
285 */
287
288 /**
289 * 获取拖动示教器触发源
290 *
291 * @note 暂未实现
292 *
293 * @return
294 *
295 * @throws arcs::common_interface::AuboException
296 *
297 */
299
300 /**
301 * 获取拖动示教使能状态
302 *
303 * @return 使能返回true; 失能返回false
304 *
305 * @throws arcs::common_interface::AuboException
306 *
307 * @par JSON-RPC请求示例
308 * {"jsonrpc":"2.0","method":"rob1.RobotManage.isHandguideEnabled","params":[],"id":1}
309 *
310 * @par JSON-RPC响应示例
311 * {"id":1,"jsonrpc":"2.0","result":false}
312 *
313 */
315
316 /**
317 * 发起机器人进入/退出仿真模式请求
318 *
319 * @param enable
320 *
321 * @return 成功返回0;失败返回错误码
322 * AUBO_BUSY
323 * AUBO_BAD_STATE
324 * -AUBO_INVL_ARGUMENT
325 * -AUBO_BAD_STATE
326 *
327 * @throws arcs::common_interface::AuboException
328 *
329 * @par Python函数原型
330 * setSim(self: pyaubo_sdk.RobotManage, arg0: bool) -> int
331 *
332 * @par Lua函数原型
333 * setSim(enable: boolean) -> number
334 *
335 * @par JSON-RPC请求示例
336 * {"jsonrpc":"2.0","method":"rob1.RobotManage.setSim","params":[true],"id":1}
337 *
338 * @par JSON-RPC响应示例
339 * {"id":1,"jsonrpc":"2.0","result":0}
340 *
341 * @par C++示例
342 * @code
343 * auto rpc_cli = std::make_shared<RpcClient>();
344 * auto robot_name = rpc_cli->getRobotNames().front();
345 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->setSim(true);
346 * @endcode
347 *
348 */
349 int setSim(bool enable);
350
351 /**
352 * 设置机器人操作模式
353 *
354 * @param mode 操作模式
355 *
356 * @return 成功返回0; 失败返回错误码
357 * -AUBO_BAD_STATE
358 *
359 * @throws arcs::common_interface::AuboException
360 *
361 * @par Python函数原型
362 * setOperationalMode(self: pyaubo_sdk.RobotManage, arg0:
363 * arcs::common_interface::OperationalModeType) -> int
364 *
365 * @par Lua函数原型
366 * setOperationalMode(mode: number) -> number
367 *
368 * @par JSON-RPC请求示例
369 * {"jsonrpc":"2.0","method":"rob1.RobotManage.setOperationalMode","params":["Manual"],"id":1}
370 *
371 * @par JSON-RPC响应示例
372 * {"id":1,"jsonrpc":"2.0","result":0}
373 *
374 * @par C++示例
375 * @code
376 * auto rpc_cli = std::make_shared<RpcClient>();
377 * auto robot_name = rpc_cli->getRobotNames().front();
378 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->setOperationalMode(OperationalModeType::Automatic);
379 * @endcode
380 *
381 */
383
384 /**
385 * 获取机器人操作模式
386 *
387 * @return 机器人操作模式
388 *
389 * @throws arcs::common_interface::AuboException
390 *
391 * @par Python函数原型
392 * getOperationalMode(self: pyaubo_sdk.RobotManage) ->
393 * arcs::common_interface::OperationalModeType
394 *
395 * @par Lua函数原型
396 * getOperationalMode() -> number
397 *
398 * @par JSON-RPC请求示例
399 * {"jsonrpc":"2.0","method":"rob1.RobotManage.getOperationalMode","params":[],"id":1}
400 *
401 * @par JSON-RPC响应示例
402 * {"id":1,"jsonrpc":"2.0","result":"Manual"}
403 *
404 * @par C++示例
405 * @code
406 * auto rpc_cli = std::make_shared<RpcClient>();
407 * auto robot_name = rpc_cli->getRobotNames().front();
408 * OperationalModeType mode =
409 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->getOperationalMode();
410 * @endcode
411 *
412 */
414
415 /**
416 * 获取控制模式
417 *
418 * @return 控制模式
419 *
420 * @throws arcs::common_interface::AuboException
421 *
422 * @par Python函数原型
423 * getRobotControlMode(self: pyaubo_sdk.RobotManage) ->
424 * arcs::common_interface::RobotControlModeType
425 *
426 * @par Lua函数原型
427 * getRobotControlMode() -> number
428 *
429 * @par JSON-RPC请求示例
430 * {"jsonrpc":"2.0","method":"rob1.RobotManage.getRobotControlMode","params":[],"id":1}
431 *
432 * @par JSON-RPC响应示例
433 * {"id":1,"jsonrpc":"2.0","result":"Position"}
434 *
435 * @par C++示例
436 * @code
437 * auto rpc_cli = std::make_shared<RpcClient>();
438 * auto robot_name = rpc_cli->getRobotNames().front();
439 * RobotControlModeType mode =
440 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->getRobotControlMode();
441 * @endcode
442 */
444
445 /**
446 * 是否使能了拖动示教模式
447 *
448 * @return 使能返回true; 反之返回false
449 *
450 * @throws arcs::common_interface::AuboException
451 *
452 * @par Python函数原型
453 * isFreedriveEnabled(self: pyaubo_sdk.RobotManage) -> bool
454 *
455 * @par Lua函数原型
456 * isFreedriveEnabled() -> boolean
457 *
458 * @par JSON-RPC请求示例
459 * {"jsonrpc":"2.0","method":"rob1.RobotManage.isFreedriveEnabled","params":[],"id":1}
460 *
461 * @par JSON-RPC响应示例
462 * {"id":1,"jsonrpc":"2.0","result":false}
463 *
464 * @par C++示例
465 * @code
466 * auto rpc_cli = std::make_shared<RpcClient>();
467 * auto robot_name = rpc_cli->getRobotNames().front();
468 * bool isEnabled =
469 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->isFreedriveEnabled();
470 * @endcode
471 *
472 */
474
475 /**
476 * 是否使能了反向驱动模式
477 *
478 * @return 使能返回true; 反之返回false
479 *
480 * @throws arcs::common_interface::AuboException
481 *
482 * @par Python函数原型
483 * isBackdriveEnabled(self: pyaubo_sdk.RobotManage) -> bool
484 *
485 * @par Lua函数原型
486 * isBackdriveEnabled() -> boolean
487 *
488 * @par JSON-RPC请求示例
489 * {"jsonrpc":"2.0","method":"rob1.RobotManage.isBackdriveEnabled","params":[],"id":1}
490 *
491 * @par JSON-RPC响应示例
492 * {"id":1,"jsonrpc":"2.0","result":false}
493 *
494 * @par C++示例
495 * @code
496 * auto rpc_cli = std::make_shared<RpcClient>();
497 * auto robot_name = rpc_cli->getRobotNames().front();
498 * bool isEnabled =
499 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->isBackdriveEnabled();
500 * @endcode
501 */
503
504 /**
505 * 是否使能了仿真模式
506 *
507 * @return 使能返回true; 反之返回false
508 *
509 * @throws arcs::common_interface::AuboException
510 *
511 * @par Python函数原型
512 * isSimulationEnabled(self: pyaubo_sdk.RobotManage) -> bool
513 *
514 * @par Lua函数原型
515 * isSimulationEnabled() -> boolean
516 *
517 * @par JSON-RPC请求示例
518 * {"jsonrpc":"2.0","method":"rob1.RobotManage.isSimulationEnabled","params":[],"id":1}
519 *
520 * @par JSON-RPC响应示例
521 * {"id":1,"jsonrpc":"2.0","result":true}
522 *
523 * @par C++示例
524 * @code
525 * auto rpc_cli = std::make_shared<RpcClient>();
526 * auto robot_name = rpc_cli->getRobotNames().front();
527 * bool isEnabled =
528 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->isSimulationEnabled();
529 * @endcode
530 */
532
533 /**
534 * 清除防护停机,包括碰撞停机
535 *
536 * @return 成功返回0;失败返回错误码
537 * AUBO_BUSY
538 * AUBO_BAD_STATE
539 * -AUBO_BAD_STATE
540 *
541 * @throws arcs::common_interface::AuboException
542 *
543 * @par Python函数原型
544 * setUnlockProtectiveStop(self: pyaubo_sdk.RobotManage) -> int
545 *
546 * @par Lua函数原型
547 * setUnlockProtectiveStop() -> number
548 *
549 * @par JSON-RPC请求示例
550 * {"jsonrpc":"2.0","method":"rob1.RobotManage.setUnlockProtectiveStop","params":[],"id":1}
551 *
552 * @par JSON-RPC响应示例
553 * {"id":1,"jsonrpc":"2.0","result":0}
554 *
555 * @par C++示例
556 * @code
557 * auto rpc_cli = std::make_shared<RpcClient>();
558 * auto robot_name = rpc_cli->getRobotNames().front();
559 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->setUnlockProtectiveStop();
560 * @endcode
561 */
563
564 /**
565 * 重置安全接口板,一般在机器人断电之后需要重置时调用,比如机器人急停、故障等之后
566 *
567 * @return 成功返回0; 失败返回错误码
568 * AUBO_BUSY
569 * AUBO_BAD_STATE
570 * -AUBO_BAD_STATE
571 *
572 * @throws arcs::common_interface::AuboException
573 *
574 * @par Python函数原型
575 * restartInterfaceBoard(self: pyaubo_sdk.RobotManage) -> int
576 *
577 * @par Lua函数原型
578 * restartInterfaceBoard() -> number
579 *
580 * @par JSON-RPC请求示例
581 * {"jsonrpc":"2.0","method":"rob1.RobotManage.restartInterfaceBoard","params":[],"id":1}
582 *
583 * @par JSON-RPC响应示例
584 * {"id":1,"jsonrpc":"2.0","result":0}
585 *
586 * @par C++示例
587 * @code
588 * auto rpc_cli = std::make_shared<RpcClient>();
589 * auto robot_name = rpc_cli->getRobotNames().front();
590 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->restartInterfaceBoard();
591 * @endcode
592 */
594
595 /**
596 * 开始实时轨迹的记录
597 *
598 * @param file_name
599 *
600 * @return 成功返回0;失败返回错误码
601 * AUBO_BUSY
602 * AUBO_BAD_STATE
603 * -AUBO_INVL_ARGUMENT
604 * -AUBO_BAD_STATE
605 *
606 * @throws arcs::common_interface::AuboException
607 *
608 */
609 int startRecord(const std::string &file_name);
610
611 /**
612 * 停止实时记录
613 *
614 * @return 成功返回0;失败返回错误码
615 * AUBO_BUSY
616 * AUBO_BAD_STATE
617 * -AUBO_BAD_STATE
618 *
619 * @throws arcs::common_interface::AuboException
620 *
621 * @par JSON-RPC请求示例
622 * {"jsonrpc":"2.0","method":"rob1.RobotManage.stopRecord","params":[],"id":1}
623 *
624 * @par JSON-RPC响应示例
625 * {"id":1,"jsonrpc":"2.0","result":0}
626 *
627 */
629
630 /**
631 * 暂停实时记录
632 *
633 * @param pause
634 *
635 * @return 成功返回0;失败返回错误码
636 * AUBO_BUSY
637 * AUBO_BAD_STATE
638 * -AUBO_BAD_STATE
639 *
640 * @throws arcs::common_interface::AuboException
641 *
642 * @par JSON-RPC请求示例
643 * {"jsonrpc":"2.0","method":"rob1.RobotManage.pauseRecord","params":[true],"id":1}
644 *
645 * @par JSON-RPC响应示例
646 * {"id":1,"jsonrpc":"2.0","result":0}
647 *
648 */
649 int pauseRecord(bool pause);
650
651 /**
652 * 发起机器人进入/退出联动模式请求,
653 * 只有操作模式为自动或者无时,才能使能联动模式
654 *
655 * @param enable
656 *
657 * @return 成功返回0; 失败返回错误码
658 * AUBO_BUSY
659 * AUBO_REQUEST_IGNORE
660 * -AUBO_BAD_STATE
661 *
662 * @throws arcs::common_interface::AuboException
663 *
664 * @par Python函数原型
665 * setLinkModeEnable(self: pyaubo_sdk.RobotManage, arg0: bool) -> int
666 *
667 * @par Lua函数原型
668 * setLinkModeEnable(enable: boolean) -> number
669 *
670 * @par JSON-RPC请求示例
671 * {"jsonrpc":"2.0","method":"rob1.RobotManage.setLinkModeEnable","params":[true],"id":1}
672 *
673 * @par JSON-RPC响应示例
674 * {"id":1,"jsonrpc":"2.0","result":0}
675 *
676 * @par C++示例
677 * @code
678 * auto rpc_cli = std::make_shared<RpcClient>();
679 * auto robot_name = rpc_cli->getRobotNames().front();
680 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->setLinkModeEnable(true);
681 * @endcode
682 *
683 */
684 int setLinkModeEnable(bool enable);
685
686 /**
687 * 是否使能了联动模式,联动模式下用户可以通过外部IO控制机器人(用户可以对IO的功能进行配置)
688 *
689 * @return 使能返回true; 反之返回false
690 *
691 * @throws arcs::common_interface::AuboException
692 *
693 * @par Python函数原型
694 * isLinkModeEnabled(self: pyaubo_sdk.RobotManage) -> bool
695 *
696 * @par Lua函数原型
697 * isLinkModeEnabled() -> boolean
698 *
699 * @par JSON-RPC请求示例
700 * {"jsonrpc":"2.0","method":"rob1.RobotManage.isLinkModeEnabled","params":[],"id":1}
701 *
702 * @par JSON-RPC响应示例
703 * {"id":1,"jsonrpc":"2.0","result":false}
704 *
705 * @par C++示例
706 * @code
707 * auto rpc_cli = std::make_shared<RpcClient>();
708 * auto robot_name = rpc_cli->getRobotNames().front();
709 * bool isEnabled =
710 * rpc_cli->getRobotInterface(robot_name)->getRobotManage()->isLinkModeEnabled();
711 * @endcode
712 */
714
715protected:
716 void *d_;
717};
718using RobotManagePtr = std::shared_ptr<RobotManage>;
719
720// clang-format off
721#define RobotManage_DECLARES \
722 _FUNC(RobotManage, 0, poweron) \
723 _FUNC(RobotManage, 0, startup) \
724 _FUNC(RobotManage, 0, releaseRobotBrake) \
725 _FUNC(RobotManage, 0, lockRobotBrake) \
726 _FUNC(RobotManage, 0, poweroff) \
727 _FUNC(RobotManage, 1, backdrive, enable) \
728 _FUNC(RobotManage, 1, freedrive, enable) \
729 _FUNC(RobotManage, 2, handguideMode, freeAxes,feature) \
730 _FUNC(RobotManage, 0, exitHandguideMode) \
731 _FUNC(RobotManage, 0, getHandguideStatus) \
732 _FUNC(RobotManage, 0, getHandguideTrigger) \
733 _FUNC(RobotManage, 0, isHandguideEnabled) \
734 _FUNC(RobotManage, 1, setSim, enable) \
735 _FUNC(RobotManage, 1, setOperationalMode, mode) \
736 _FUNC(RobotManage, 0, getOperationalMode) \
737 _FUNC(RobotManage, 0, getRobotControlMode) \
738 _FUNC(RobotManage, 0, isSimulationEnabled) \
739 _FUNC(RobotManage, 0, isFreedriveEnabled) \
740 _FUNC(RobotManage, 0, isBackdriveEnabled) \
741 _FUNC(RobotManage, 0, setUnlockProtectiveStop) \
742 _INST(RobotManage, 1, startRecord, file_name) \
743 _INST(RobotManage, 0, stopRecord) \
744 _INST(RobotManage, 1, pauseRecord, pause) \
745 _FUNC(RobotManage, 0, restartInterfaceBoard) \
746 _FUNC(RobotManage, 1, setLinkModeEnable, enable) \
747 _FUNC(RobotManage, 0, isLinkModeEnabled)
748// clang-format on
749} // namespace common_interface
750} // namespace arcs
751
752#endif // AUBO_SDK_ROBOT_CONTROL_INTERFACE_H
int setUnlockProtectiveStop()
清除防护停机,包括碰撞停机
int exitHandguideMode()
退出拖动示教
int startup()
发起机器人启动请求
int backdrive(bool enable)
发起机器人反向驱动请求
int lockRobotBrake()
发起机器人刹车请求
int handguideMode(const std::vector< int > &freeAxes, const std::vector< double > &feature)
高阶拖动示教
int stopRecord()
停止实时记录
int poweroff()
发起机器人断电请求
bool isHandguideEnabled()
获取拖动示教使能状态
int setOperationalMode(OperationalModeType mode)
设置机器人操作模式
int releaseRobotBrake()
发起机器人松开刹车请求
OperationalModeType getOperationalMode()
获取机器人操作模式
bool isBackdriveEnabled()
是否使能了反向驱动模式
RobotControlModeType getRobotControlMode()
获取控制模式
int setSim(bool enable)
发起机器人进入/退出仿真模式请求
int getHandguideTrigger()
获取拖动示教器触发源
int freedrive(bool enable)
发起机器人自由驱动请求 接口在软件版本 0.31.x 后已废弃,使用 handguideMode 接口替换 handguideMode({1,1,1,1,1}, {0,...
int poweron()
发起机器人上电请求
bool isFreedriveEnabled()
是否使能了拖动示教模式
int startRecord(const std::string &file_name)
开始实时轨迹的记录
bool isSimulationEnabled()
是否使能了仿真模式
int pauseRecord(bool pause)
暂停实时记录
int getHandguideStatus()
获取拖动示教器的状态(是否处于奇异空间)
int restartInterfaceBoard()
重置安全接口板,一般在机器人断电之后需要重置时调用,比如机器人急停、故障等之后
int setLinkModeEnable(bool enable)
发起机器人进入/退出联动模式请求, 只有操作模式为自动或者无时,才能使能联动模式
bool isLinkModeEnabled()
是否使能了联动模式,联动模式下用户可以通过外部IO控制机器人(用户可以对IO的功能进行配置)
RobotControlModeType
机器人控制模式
Definition type_def.h:466
std::shared_ptr< RobotManage > RobotManagePtr
OperationalModeType
操作模式
Definition type_def.h:458
数据类型的定义