AUBO SDK  0.26.0
载入中...
搜索中...
未找到
aubo_api.h
浏览该文件的文档.
1/** @file aubo_api.h
2 * @brief \~chinese 机器人及外部轴等控制API接口,如获取机器人列表、获取系统信息等等
3 * @brief \~english API for controlling the robot and external axis
4 */
5#ifndef AUBO_SDK_AUBO_API_INTERFACE_H
6#define AUBO_SDK_AUBO_API_INTERFACE_H
7
8#include <aubo/system_info.h>
12#include <aubo/global_config.h>
13#include <aubo/math.h>
14#include <aubo/socket.h>
15#include <aubo/serial.h>
16#include <aubo/axis_interface.h>
18
19namespace arcs {
20namespace common_interface {
21
22class ARCS_ABI_EXPORT AuboApi
23{
24public:
26 virtual ~AuboApi();
27
28 /**
29 * \chinese
30 * 获取纯数学相关接口
31 *
32 * @return MathPtr对象的指针
33 *
34 * @par Python函数原型
35 * getMath(self: pyaubo_sdk.AuboApi) -> pyaubo_sdk.Math
36 *
37 * @par C++示例
38 * @code
39 * auto rpc_cli = std::make_shared<RpcClient>();
40 * MathPtr ptr = rpc_cli->getMath();
41 * @endcode
42 * \endchinese
43 *
44 *\english
45 * Get pure mathematic related API
46 *
47 * @return Shared pointer to a Math object
48 *
49 * @par Python function prototype
50 * getMath(self: pyaubo_sdk.AuboApi) -> pyaubo_sdk.Math
51 *
52 * @par C++ example
53 * @code
54 * auto rpc_cli = std::make_shared<RpcClient>();
55 * MathPtr ptr = rpc_cli->getMath();
56 * @endcode
57 *\endenglish
58 */
60
61 /**
62 * \chinese
63 * 获取系统信息
64 *
65 * @return SystemInfoPtr对象的指针
66 *
67 * @par Python函数原型
68 * getSystemInfo(self: pyaubo_sdk.AuboApi) -> pyaubo_sdk.SystemInfo
69 *
70 * @par C++示例
71 * @code
72 * auto rpc_cli = std::make_shared<RpcClient>();
73 * SystemInfoPtr ptr = rpc_cli->getSystemInfo();
74 * @endcode
75 * \endchinese
76 *
77 * \english
78 * Get system info
79 *
80 * @return Shared pointer to SystemInfo object
81 *
82 * @par Python function prototype
83 * getSystemInfo(self: pyaubo_sdk.AuboApi) -> pyaubo_sdk.SystemInfo
84 *
85 * @par C++ example
86 * @code
87 * auto rpc_cli = std::make_shared<RpcClient>();
88 * SystemInfoPtr ptr = rpc_cli->getSystemInfo();
89 * @endcode
90 * \endenglish
91 */
93
94 /**
95 * \chinese
96 * 获取运行时接口
97 *
98 * @return RuntimeMachinePtr对象的指针
99 *
100 * @par Python函数原型
101 * getRuntimeMachine(self: pyaubo_sdk.AuboApi) -> pyaubo_sdk.RuntimeMachine
102 *
103 * @par C++示例
104 * @code
105 * auto rpc_cli = std::make_shared<RpcClient>();
106 * RuntimeMachinePtr ptr = rpc_cli->getRuntimeMachine();
107 * @endcode
108 * \endchinese
109 *
110 * \english
111 * Get runtime api
112 *
113 * @return Shared pointer to RuntimeMachine object
114 * Python function prototype
115 * getRuntimeMachine(self: pyaubo_sdk.AuboApi) -> pyaubo_sdk.RuntimeMachine
116 *
117 * @par C++ example
118 * @code
119 * auto rpc_cli = std::make_shared<RpcClient>();
120 * RuntimeMachinePtr ptr = rpc_cli->getRuntimeMachine();
121 * @endcode
122 * \endenglish
123 */
125
126 /**
127 * \chinese
128 * 对外寄存器接口
129 *
130 * @return RegisterControlPtr对象的指针
131 *
132 * @par Python函数原型
133 * getRegisterControl(self: pyaubo_sdk.AuboApi) ->
134 * pyaubo_sdk.RegisterControl
135 *
136 * @par C++示例
137 * @code
138 * auto rpc_cli = std::make_shared<RpcClient>();
139 * RegisterControlPtr ptr = rpc_cli->getRegisterControl();
140 * @endcode
141 * \endchinese
142 *
143 * \english
144 * External registers api
145 *
146 * @return Shared pointer to RegisterControl object
147 *
148 * @par Python function prototype
149 * getRegisterControl(self: pyaubo_sdk.AuboApi) ->
150 * pyaubo_sdk.RegisterControl
151 *
152 * @par C++ example
153 * @code
154 * auto rpc_cli = std::make_shared<RpcClient>();
155 * RegisterControlPtr ptr = rpc_cli->getRegisterControl();
156 * @endcode
157 * \endenglish
158 */
160
161 /**
162 * \chinese
163 * 获取机器人列表
164 *
165 * @return 机器人列表
166 *
167 * @par Python函数原型
168 * getRobotNames(self: pyaubo_sdk.AuboApi) -> List[str]
169 *
170 * @par C++示例
171 * @code
172 * auto rpc_cli = std::make_shared<RpcClient>();
173 * auto robot_name = rpc_cli->getRobotNames().front();
174 * @endcode
175 *
176 * @par JSON-RPC请求示例
177 * {"jsonrpc":"2.0","method":"getRobotNames","params":[],"id":1}
178 *
179 * @par JSON-RPC响应示例
180 * {"id":1,"jsonrpc":"2.0","result":["rob1"]}
181 * \endchinese
182 *
183 * \english
184 * Get robot list
185 *
186 * @return robot list
187 *
188 * @par Python function prototype
189 * getRobotNames(self: pyaubo_sdk.AuboApi) -> List[str]
190 *
191 * @par C++ example
192 * @code
193 * auto rpc_cli = std::make_shared<RpcClient>();
194 * auto robot_name = rpc_cli->getRobotNames().front();
195 * @endcode
196 *
197 * @par JSON-RPC request example
198 * {"jsonrpc":"2.0","method":"getRobotNames","params":[],"id":1}
199 *
200 * @par JSON-RPC response example
201 * {"id":1,"jsonrpc":"2.0","result":["rob1"]}
202 * \endenglish
203 */
204 std::vector<std::string> getRobotNames();
205
206 /**
207 * \chinese
208 * 根据名字获取 RobotInterfacePtr 接口
209 *
210 * @param name 机器人名字
211 * @return RobotInterfacePtr对象的指针
212 *
213 * @par Python函数原型
214 * getRobotInterface(self: pyaubo_sdk.AuboApi, arg0: str) ->
215 * pyaubo_sdk.RobotInterface
216 *
217 * @par C++示例
218 * @code
219 * auto rpc_cli = std::make_shared<RpcClient>();
220 * auto robot_name = rpc_cli->getRobotNames().front();
221 * RobotInterfacePtr ptr = rpc_cli->getRobotInterface(robot_name);
222 * @endcode
223 * \endchinese
224 *
225 * \english
226 * Get RobotInterfacePtr based on name
227 *
228 * @param name Robot name
229 * @return Shared pointer to a RobotInterface object
230 *
231 * @par Python function prototype
232 * getRobotInterface(self: pyaubo_sdk.AuboApi, arg0: str) ->
233 * pyaubo_sdk.RobotInterface
234 *
235 * @par C++ example
236 * @code
237 * auto rpc_cli = std::make_shared<RpcClient>();
238 * auto robot_name = rpc_cli->getRobotNames().front();
239 * RobotInterfacePtr ptr = rpc_cli->getRobotInterface(robot_name);
240 * @endcode
241 * \endenglish
242 */
243 RobotInterfacePtr getRobotInterface(const std::string &name);
244
245 /**
246 * \~chinese 获取外部轴列表 \~english Get external axis list
247 *
248 * @return
249 */
250 std::vector<std::string> getAxisNames();
251
252 /**
253 * \chinese
254 * 获取外部轴接口
255 *
256 * @param name
257 * @return
258 * \endchinese
259 *
260 * \english
261 * Get external axis interface
262 *
263 * @param name
264 * @return
265 * \endenglish
266 */
267 AxisInterfacePtr getAxisInterface(const std::string &name);
268
269 /// \~chinese 获取独立 IO 模块接口 \~english Get independent IO module interface
270
271 /**
272 * \chinese
273 * 获取 socket
274 * @return SocketPtr对象的指针
275 *
276 * @par Python函数原型
277 * getSocket(self: pyaubo_sdk.AuboApi) -> arcs::common_interface::Socket
278 * @endcode
279 *
280 * @par C++示例
281 * @code
282 * auto rpc_cli = std::make_shared<RpcClient>();
283 * SocketPtr ptr = rpc_cli->getSocket();
284 * @endcode
285 * \endchinese
286 *
287 * \english
288 * Get socket
289 * @return Shared pointer to a socket object
290 *
291 * @par Python function prototype
292 * getSocket(self: pyaubo_sdk.AuboApi) -> arcs::common_interface::Socket
293 * @endcode
294 *
295 * @par C++ example
296 * @code
297 * auto rpc_cli = std::make_shared<RpcClient>();
298 * SocketPtr ptr = rpc_cli->getSocket();
299 * @endcode
300 * \endenglish
301 */
303
304 /**
305 * \chinese
306 * @return SerialPtr对象的指针
307 *
308 * @par Python函数原型
309 * getSerial(self: pyaubo_sdk.AuboApi) -> arcs::common_interface::Serial
310 *
311 * @par C++示例
312 * @code
313 * auto rpc_cli = std::make_shared<RpcClient>();
314 * SerialPtr ptr = rpc_cli->getSerial();
315 * @endcode
316 * \endchinese
317 *
318 * \english
319 * @return Shared pointer to Serial object
320 *
321 * @par Python function prototype
322 * getSerial(self: pyaubo_sdk.AuboApi) -> arcs::common_interface::Serial
323 *
324 * @par C++ example
325 * @code
326 * auto rpc_cli = std::make_shared<RpcClient>();
327 * SerialPtr ptr = rpc_cli->getSerial();
328 * @endcode
329 * \endenglish
330 */
332
333 /**
334 * \~chinese 获取同步运动接口 \~english Get syncronous move interface
335 *
336 * \~chinese @return SyncMovePtr对象的指针
337 * \~english @return Shared pointer to SyncMove object
338 */
339 SyncMovePtr getSyncMove(const std::string &name);
340
341 /**
342 * \~chinese 获取告警信息接口
343 * \~english Get alert interface
344 *
345 * \~chinese @return TracePtr对象的指针
346 * \~english @return Shared pointer of trace object
347 */
348 TracePtr getTrace(const std::string &name);
349
350 /**
351 * \~chinese 获取通用夹爪接口
352 * \~english Get gripper interface
353 *
354 * \~chinese @return GripperInterfacePtr对象的指针
355 * \~english @return Shared pointer of gripper object
356 */
358
359protected:
360 void *d_{ nullptr };
361};
362using AuboApiPtr = std::shared_ptr<AuboApi>;
363
364} // namespace common_interface
365} // namespace arcs
366
367#endif // AUBO_SDK_AUBO_API_H
TracePtr getTrace(const std::string &name)
获取告警信息接口
GripperInterfacePtr getGripperInterface()
获取通用夹爪接口
MathPtr getMath()
获取纯数学相关接口
AxisInterfacePtr getAxisInterface(const std::string &name)
获取外部轴接口
SocketPtr getSocket()
获取独立 IO 模块接口
RegisterControlPtr getRegisterControl()
对外寄存器接口
std::vector< std::string > getAxisNames()
获取外部轴列表
SystemInfoPtr getSystemInfo()
获取系统信息
RobotInterfacePtr getRobotInterface(const std::string &name)
根据名字获取 RobotInterfacePtr 接口
RuntimeMachinePtr getRuntimeMachine()
获取运行时接口
std::vector< std::string > getRobotNames()
获取机器人列表
SyncMovePtr getSyncMove(const std::string &name)
获取同步运动接口
通用夹爪接口
数学方法接口,如欧拉角与四元数转换、位姿的加减运算
std::shared_ptr< Serial > SerialPtr
Definition serial.h:392
std::shared_ptr< RegisterControl > RegisterControlPtr
std::shared_ptr< RobotInterface > RobotInterfacePtr
std::shared_ptr< Socket > SocketPtr
Definition socket.h:623
std::shared_ptr< AxisInterface > AxisInterfacePtr
std::shared_ptr< SystemInfo > SystemInfoPtr
std::shared_ptr< RuntimeMachine > RuntimeMachinePtr
std::shared_ptr< AuboApi > AuboApiPtr
Definition aubo_api.h:362
std::shared_ptr< GripperInterface > GripperInterfacePtr
std::shared_ptr< SyncMove > SyncMovePtr
Definition sync_move.h:977
std::shared_ptr< Trace > TracePtr
Definition trace.h:227
std::shared_ptr< Math > MathPtr
Definition math.h:1046
寄存器操作接口,用于三个模块之间的数据交换功能
机器人API 接口
Script interpreter runtime interface, allows pausing the script interpreter and setting/removing brea...
串口通信
socket通信
获取系统信息接口,如接口板的版本号、示教器软件的版本号