AUBO SDK  0.26.0
Aubo SDK

概述

Aubo SDK 提供了一套完整的接口来控制和管理机器人系统。SDK 采用分层架构设计,通过 AuboApi (主入口) 作为主入口,提供对各个功能模块的访问。

目录

  • 快速开始
  • SDK 架构
  • 核心模块
  • 使用示例
  • 命名空间
  • 错误处理
  • 支持的编程语言

快速开始

基本使用流程

// 1. 获取主 API 接口
auto rpc_cli = std::make_shared<RpcClient>();
// 2. 获取机器人列表
auto robot_names = rpc_cli->getRobotNames();
auto robot_name = robot_names.front();
// 3. 获取机器人接口
auto robot = rpc_cli->getRobotInterface(robot_name);
// 4. 获取具体功能模块
auto motion = robot->getMotionControl();
auto state = robot->getRobotState();

SDK 架构

层次结构

AuboApi (主入口)
├── 系统级接口
│ ├── SystemInfo (系统信息)
│ ├── RuntimeMachine (运行时管理)
│ ├── RegisterControl (寄存器操作)
│ ├── Math (数学工具)
│ ├── SyncMove (同步运动控制和轴组管理)
│ └── Trace (日志与弹窗)
├── 设备接口
│ ├── RobotInterface (机器人)
│ │ ├── RobotConfig (机器人配置管理)
│ │ ├── MotionControl (运动规划与控制)
│ │ ├── ForceControl (力控功能)
│ │ ├── IoControl (IO输入输出控制)
│ │ ├── RobotAlgorithm (机器人算法工具)
│ │ ├── RobotManage (机器人生命周期管理)
│ │ └── RobotState (机器人状态查询)
│ ├── AxisInterface (外部轴)
│ └── GripperInterface (夹爪)
└── 通信接口
├── Socket (网络通信)
└── Serial (串口通信)

核心模块

功能 接口 文件 主要功能说明
机器人运动 MotionControl robot/motion_control.h 路径规划,关节运动、直线运动、圆弧运动控制,速度与加速度参数设置,等效半径配置
机器人配置 RobotConfig robot/robot_config.h 机器人本体参数管理,工具坐标系(TCP)设置,用户坐标系设置,负载及质心参数配置
机器人状态 RobotState robot/robot_state.h 实时关节角度与末端位姿查询,机器人运行状态获取,错误与异常状态查询
机器人管理 RobotManage robot/robot_manage.h 机器人上电、使能、断电控制,急停、暂停与恢复操作,运行模式切换
IO 控制 IoControl robot/io_control.h 数字 IO 读写,模拟 IO 读写,IO 参数与模式配置
力控 ForceControl robot/force_control.h 力/扭矩传感器配置,力控运动接口,阻抗控制与柔顺控制
算法工具 RobotAlgorithm robot/robot_algorithm.h 坐标系变换计算,正/逆运动学求解,碰撞检测与空间约束判断
外部轴 AxisInterface axis_interface.h 外部轴上电与启动管理,外部轴运动控制,外部轴安装位姿与标定设置
夹爪 GripperInterface gripper_interface.h 夹爪设备扫描与添加,夹爪连接与状态管理,夹爪开合与动作控制
系统信息 SystemInfo system_info.h 控制器软件版本查询,硬件信息获取,系统整体运行状态
运行时 RuntimeMachine runtime_machine.h 任务创建与删除,脚本运行与管理,断点设置与程序控制
寄存器 RegisterControl register_control.h 布尔寄存器、整数寄存器、浮点寄存器的读写操作
数学工具 Math math.h 矩阵运算,四元数运算,坐标与姿态变换相关数学工具
网络通信 Socket socket.h TCP 客户端通信接口,网络连接与会话管理
串口通信 Serial serial.h 串口数据读写,波特率及通信参数配置
同步运动 SyncMove sync_move.h 多设备同步运动控制,同步时序管理,外部轴轴组管理
告警日志 Trace trace.h 告警信息查询,系统日志记录与导出

使用示例

获取机器人状态

auto rpc_cli = std::make_shared<RpcClient>();
auto robot = rpc_cli->getRobotInterface("rob1");
auto state = robot->getRobotState();
// 获取关节角度
auto joint_angles = state->getJointState();

执行运动

auto motion = robot->getMotionControl();
// 设置运动参数
motion->setEqradius(0.8);
// 执行关节运动
std::vector<double> target_pose = {0, -1.57, 1.57, 0, 0, 0};
motion->moveJoint(target_pose, 0.5, 0.5);

控制 IO

auto io = robot->getIoControl();
// 设置数字输出
io->setStandardDigitalOutput(0, true);
// 读取数字输入
bool input_state = io->getStandardDigitalInput(0);

命名空间

所有接口都定义在以下命名空间中:

namespace arcs {
namespace common_interface {
// 所有接口定义
}
}

错误处理

大多数接口方法返回整数错误码,其中 0 表示成功,负数表示错误。某些接口可能抛出 AuboException 异常。

支持的编程语言

  • C++
  • Python
  • Lua
  • JSON-RPC

相关文件

  • type_def.h - 类型定义
  • global_config.h - 全局配置
  • error_stack/ - 错误处理相关