跳转到内容

数据结构

using AbcType = double;
枚举量说明

SUCCESS

0

成功

UNKNOWN_ERROR

-1

未知错误

通用错误(-1~-49)

TIMEOUT

-2

超时

INVALID_HANDLE

-3

无效句柄

INVALID_STATE

-4

无效状态

NOT_INITIALIZED

-5

未初始化

NOT_IMPLEMENTED

-6

未实现的功能

INVALID_ARGUMENT

-7

无效参数

PARAM_ERROR

-50

参数错误

参数错误(-50~-99)

PARAM_OUT_OF_RANGE

-51

参数取值超出范围

ARM_ERROR

-100

机械臂通用错误

机械臂错误(-100~-199)

ARM_CTRL_FALSE

-101

控制器返回 false,传递参数错误或机械臂状态发生错误

ARM_DATA_SEND_FAILED

-102

数据发送失败,通信过程中出现问题

ARM_DATA_RECEIVE_FAILED

-103

数据接收失败,通信过程中出现问题或者控制器超时没有返回

ARM_RETURN_DATA_ERR

-104

返回值解析失败,接收到的数据格式不正确或不完整

ARM_CHECK_FAILED

-105

当前到位设备校验失败,即当前到位设备不为关节

ARM_TIMEOUT

-106

超时未接收到返回

ARM_OUT_OF_RANGE

-107

机械臂运动超出范围

TORSO_ERROR

-200

躯干通用错误

躯干错误(-200~-219)

TORSO_CANBUS_ERROR

-201

躯干 CAN 总线错误

TORSO_ACTUATOR_ERROR

-202

躯干执行器错误

TORSO_TIMEOUT

-206

超时未接收到返回

TORSO_OUT_OF_RANGE

-207

躯干运动超出范围

HEAD_ERROR

-220

头部通用错误

头部错误(-220~-229)

HEAD_CANBUS_ERROR

-221

头部 CAN 总线错误

HEAD_ACTUATOR_ERROR

-222

头部执行器错误

HEAD_TIMEOUT

-226

超时未接收到返回

HEAD_OUT_OF_RANGE

-227

头部运动超出范围

SENSOR_ERROR

-300

传感器通用错误

传感器错误(-300~-399)

SENSOR_NOT_CONNECTED

-301

传感器未连接

SENSOR_DATA_ERROR

-302

传感器数据错误

CHASSIS_ERROR

-400

底盘通用错误

底盘错误(-400~-499)

CHASSIS_INIT_ERROR

-401

底盘初始化错误

CHASSIS_TIMEOUT

-402

底盘超时未接收到返回

ALGO_ERROR

-900

算法通用错误

算法错误(-900~-999)

ALGO_NOT_CONVERGED

-901

算法未收敛

ALGO_APPROXIMATE_SOLUTION

-902

算法近似解

结构体成员数据类型说明
positionAbcPositionXYZ 坐标
quaternionAbcQuat四元数
结构体成员数据类型说明
xAbcTypeXYZ 坐标值,单位为米。
y
z
结构体成员数据类型说明
wAbcType四元数
x
y
z
结构体成员数据类型说明
xAbcType笛卡尔空间速度
y
z
wx
wy
wz
枚举量说明
RM65_B0机械臂型号
RM65_6FB1
RM65_6F2
RM75_B3
RM75_6FB4
RM75_6F5
ZM73L_6F6
ZM73R_6F7
枚举量说明
AlphaBot1s1机器人型号
AlphaBot22
AlphaBot1s_HuiKe3
结构体成员数据类型说明
heightAbcType垂直高度,单位为米(m)。
forwardAbcType前后方向位移,单位为米(m)。
pitchAbcType俯仰角,单位为弧度(rad)。
yawAbcType腰部旋转角,单位为弧度(rad)。
枚举量说明
ARM_IDLE使能但空闲状态
ARM_MOVE运动中状态
ARM_MOVE_THROUGH_JOINT角度透传状态
ARM_MOVE_THROUGH_POSE位姿透传状态
ARM_MOVE_THROUGH_FORCE_POSE力控透传状态
ARM_MOVE_THROUGH_CURRENT电流环透传状态
ARM_STOP急停状态
ARM_SLOW_STOP缓停状态
ARM_PAUSE暂停状态
ARM_CURRENT_DRAG电流环拖动状态
ARM_SENSOR_DRAG六维力拖动状态
ARM_TECH_DEMONSTRATION示教状态

关节状态结构体包含以下成员。如果关节数量小于 MAX_ARM_DOF,则多余的数据为 0。

结构体成员数据类型说明
jointsarray<AbcType, MAX_ARM_DOF>当前各关节角度,单位为 rad(弧度)。
joint_position当前各关节角度,单位为 °(度)。
joint_speed当前各关节速度,单位为 RPM(转/分)。
joint_current当前各关节电流,单位为 mA(毫安)。
joint_temperature当前各关节温度,单位为 °C(摄氏度)。
joint_voltage当前各关节电压,单位为 V(伏特)。
joint_err_codearray<uint16_t, MAX_ARM_DOF>当前各关节错误码。
joint_en_flagarray<bool, MAX_ARM_DOF>当前各关节使能标志位。
- true 为上使能。
- false 为掉使能。

力传感器

结构体成员数据类型说明
forceAbcType[6]当前力传感器原始数据,单位为 0.001N 或 0.001N·m。
zero_forceAbcType[6]当前力传感器系统外受力数据,单位为 0.001N 或 0.001N·m。
coordinateint系统外受力数据的坐标系。
- 0:传感器坐标系。
- 1:当前工作坐标系。
- 2:当前工具坐标系。

实时回调机械臂信息

结构体成员数据类型说明
namechar[64]机械臂名称
timestampstd::chrono::system_clock::time_point状态时间戳
joint_statusAbcJointState关节状态
poseAbcPose机械臂当前位姿
force_sensorAbcArmForceSensor力传感器状态
arm_current_statusAbcArmCurrentStatus机械臂状态
gripper_stateAbcGripperState夹爪状态
ee_poseAbcPose末端位姿
结构体成员数据类型说明
portint通信端口。
- 0:控制器 RS485 端口。
- 1:末端接口板 RS485 接口。
- 3:控制器 Modbus TCP 设备。
addressint数据起始地址
deviceint外设设备地址
numint数据的数量
结构体成员数据类型说明
joint_speedint关节速度。
lift_stateint升降关节信息。
- 1:上报。
- 0:关闭上报。
- -1:不设置,保持之前的状态。
expand_stateint扩展关节信息(升降关节和扩展关节为二选一,优先显示升降关节)。
- 1:上报。
- 0:关闭上报。
- -1:不设置,保持之前的状态。
hand_stateint灵巧手状态。
- 1:上报。
- 0:关闭上报。
- -1:不设置,保持之前的状态。
arm_current_statusint机械臂当前状态。
- 1:上报。
- 0:关闭上报。
- -1:不设置,保持之前的状态。
aloha_stateintAlphaBot 主臂状态。
- 1:上报。
- 0:关闭上报。
- -1:不设置,保持之前的状态。
结构体成员数据类型说明
cycleint广播周期,值为 5ms 的倍数。
enablebool使能,是否主动上报。
portint广播的端口号。
force_coordinateint系统外受力数据的坐标系。
- -1:不支持力传感器。
- 0:传感器坐标系。
- 1:当前工作坐标系。
- 2:当前工具坐标系。
ipchar[28]自定义的上报目标 IP 地址。
custom_configUdpCustomConfig自定义项内容。
结构体成员数据类型说明
arm_typestring机械臂厂商。
arm_namestring机械臂名称,例如 "left_arm"
ipstringTCP IP 地址。
udp_ipstringUDP IP 地址。
portintTCP 端口号。
udp_portintUDP 端口号。
udp_cycleintUDP 周期,以 udp_cycle * 5 毫秒为周期。
enable_gripperbool夹爪状态。
const size_t MAX_ARM_DOF = 7;
using AbcArmRealtimeStateCallback =
std::function<void(std::shared_ptr<const AbcArmRealtimeState>)>;
结构体成员数据类型说明
chassis_typestring底盘厂商。
chassis_namestring底盘名称,例如 "chassis"
ipstringIP 地址,例如 "127.0.0.1"
portint端口号,例如 54051
结构体成员数据类型说明
thetafloat朝向
xfloatX 轴坐标值
yfloatY 轴坐标值
结构体成员数据类型说明
map_iduint32_t当前地图 ID
mileageuint32_t累计里程数
robot_iduint32_t底盘 ID
poseChassisPose2D2D 位姿
twistChassisTwist速度
结构体成员数据类型说明
xfloatX 轴坐标值
yfloatY 轴坐标值
zfloatZ 轴坐标值
结构体成员数据类型说明
angularfloat角速度
linearfloat线速度
结构体成员数据类型说明
frame_idstring父坐标系
secsint32_t
nsecsuint32_t纳秒
child_frame_idstring子坐标系
t_xdoubleXYZ 坐标值
t_ydouble
t_zdouble
r_xdouble四元数
r_ydouble
r_zdouble
r_wdouble
结构体成员数据类型说明
charge_stateChargeState充电状态
robot_iduint32_t底盘 ID
poweruint32_t电量百分比,取值范围为 0~100。
- 100:全满。
- 0:无电量。
healthuint32_t电池健康(充满容量/设计容量)
charge_cycleuint32_t循环次数
battery_cycleuint32_t电池寿命
temp_maxuint32_t电池温度(最高温度)
successbool请求是否成功。
- true:成功响应请求。
- false:未成功处理请求。
msgstring应答消息描述,通常用于请求未能处理时的原因描述。
枚举量说明
kChargeStateUndefined0未定义
kNot1未充电
kManual2手动充电中
kAuto3自动充电中
结构体成员数据类型说明
robot_iduint32_t底盘 ID
navNavState底盘导航相关位信息
robotRobotBit底盘位信息
successbool请求是否成功。
- true:成功响应请求。
- false:未成功处理请求。
msgstring应答消息描述,通常用于请求未能处理时的原因描述。
枚举量说明
kNavBitUndefined0未定义
kNarrow1狭窄通道
kGuide2引导到达
kInaLift3乘梯中
kImpede4阻碍
kQRCode5二维码
kStage6分段到达
枚举量说明
kRobotBitUndefined0未定义
kTaskable1可接任务
结构体成员数据类型说明
robot_iduint32_t底盘 ID
stateState底盘自动模式状态
successbool请求是否成功。
- true:成功响应请求。
- false:未成功处理请求。
msgstring应答消息描述,通常用于请求未能处理时的原因描述。
枚举量说明
kStateUndefined0未定义
kUninit1未初始化
kIdle2空闲
kParking3泊车中
kTask4任务中
kWarning5警告
kFault6异常
kFollowing7跟随中
kCharging8充电中
kMapping9构图中

单个状态码信息

结构体成员数据类型说明
robot_iduint32_t底盘 ID
codeuint64_t状态码
timeuint64_t时间
status_msgstring描述
robot_task_idint64_t任务 ID
stateRobotState自动模式状态
typeActionType动作类型
levelLevel等级
successbool请求是否成功。
- true:成功响应请求。
- false:未成功处理请求。
msgstring应答消息描述,通常用于请求未能处理时的原因描述。
枚举量说明
rs_kStateUndefined0未定义
rs_kUninit1未初始化
rs_kIdle2空闲
rs_kParking3泊车中
rs_kTask4任务中
rs_kWarning5警告
rs_kFault6异常
rs_kFollowing7跟随中
rs_kCharging8充电中
rs_kMapping9构图中

动作类型

枚举量说明
at_kTypeUndefined0未定义
at_kNav1导航
at_kStepCtrl2单步控制
at_kSecondposEnter3二次定位进入
at_kSecondposQuit4二次定位退出
at_kCarry5搬运动作
at_kWait6等待
at_kCharge7充电
枚举量说明
l_kNormal0正常
l_kTips1提示
l_kWarn2警告
l_kFault3故障
结构体成员数据类型说明
robot_iduint32_t底盘 ID
lidarsvector<HardwareState_State>repeated 激光雷达 2
camerasvector<HardwareState_State>repeated 摄像头 2
successbool请求是否成功。
- true:成功响应请求。
- false:未成功处理请求。
msgstring应答消息描述,通常用于请求未能处理时的原因描述。

硬件状态类型

枚举量说明
kNormal0正常
kInfo1提示
kWarn16警告
kFatal17故障
结构体成员数据类型说明
task_stateTaskState任务状态
current_poseChassisPose2D当前 2D 位姿
msg_typeMassageType消息类型
msgstring应答消息描述,通常用于请求未能处理时的原因描述。
枚举量说明
kSuccess0完成
kRunning1执行中
kFailed2失败
枚举量说明
kNormal0正常
kWarn1警告
kFault2故障
#define ABC_TORSO_DOF 4
#define ABC_HEAD_DOF 2
结构体成员数据类型说明
head_typestring头部厂商,例如 "ti5"(钛虎头部)。
head_namestring头部名称。
head_joint_numuint8_t头部关节数。
comm_paramsCommParamsUnion通信参数。
motor_paramsvector<MotorParam>电机参数。
联合体成员数据类型说明
canCommParamsCANCAN 参数。
ethCommParamsETHETH 参数(预留)。
结构体成员数据类型说明
devicestring设备名称,例如 "can0"
baud_rateint波特率,例如 500000
can_iduint8_tCAN 节点 ID(0x00~0xFF)。
结构体成员数据类型说明
ipstringIP 地址。
portuint16_t端口号。
结构体成员数据类型说明
motor_iduint16_t电机 ID。
reduction_ratiouint16_t减速比。
position_maxAbcType转动的最大角度。
position_minAbcType转动的最小角度。
speed_maxAbcType转动的最大速度。
speed_minAbcType转动的最小速度。
acc_maxAbcType转动的最大加速度。
acc_minAbcType转动的最小加速度。
结构体成员数据类型说明
torso_typestring躯干厂商,例如 ti5(钛虎躯干)。
torso_namestring躯干名称。
torso_joint_numuint8_t躯干关节数。
comm_paramsCommParamsUnion通信参数。
motor_paramsvector<MotorParam>电机参数。
using AbcTorsoStateCallback = std::function<
void(std::shared_ptr<const AbcTorsoState>)>;
结构体成员数据类型说明
timestampstd::chrono::system_clock::time_point时间戳
err_codestd::array<uint32_t, ABC_TORSO_DOF>各关节错误码
joints_positionsstd::array<AbcType, ABC_TORSO_DOF>各关节角度
joints_speedstd::array<AbcType, ABC_TORSO_DOF各关节速度
joints_currentstd::array<AbcType, ABC_TORSO_DOF>各关节电流
结构体成员数据类型说明
sensor_typestring传感器厂商,例如 "realsense"
sensor_namestring传感器名称,例如 "head_camera"
serial_numberstring序列号。
color_widthint彩色图的宽。
color_heightint彩色图的高。
depth_widthint深度图的宽。
depth_heightint深度图的高。
frame_rateint帧率。
align_to_colorbool是否将深度图对齐到彩色图。
enable_depthbool是否启用深度流。默认为 true;设置为 false 时,深度流及所有依赖深度数据的相关逻辑将被关闭。
active_pullbool是否采用主动拉流模式。默认为 false(后台自动拉流);设置为 true 时,仅在调用 get_data() 时拉取一帧,且不支持回调机制。
using SensorCallback = std::function<
void(std::shared_ptr<const SensorData>)>;
枚举量说明
CAMERA相机类传感器
DEPTH_CAMERA深度相机
LIDAR激光雷达
IMU惯性测量单元
FORCE_TORQUE力矩传感器
PROXIMITY接近传感器
OTHER其他类型传感器
枚举量说明
DISCONNECTED未连接
CONNECTED已连接
STREAMING数据流传输中
SENSOR_ERROR错误状态
结构体成员数据类型说明
widthint图像宽度,单位为像素。
heightint图像高度,单位为像素。
ppxfloat图像主点的水平坐标,以距左边缘的像素偏移量表示。
ppyfloat图像主点的垂直坐标,以距上边缘的像素偏移量表示。
fxfloat水平焦距,以像素宽度倍数表示。
fyfloat垂直焦距,以像素高度倍数表示。
coeffsfloat[5]畸变系数。各模型的参数顺序如下。
- Brown-Conrady 模型:[k1, k2, p1, p2, k3]
- F-Theta 鱼眼镜头模型:[k1, k2, k3, k4, 0]
- 其他模型:参见其具体解释规则。
结构体成员数据类型说明
positionsvector<AbcType>位置
velocitiesvector<AbcType>速度
accelerationsvector<AbcType>加速度
timestampAbcType时间戳
结构体成员数据类型说明
is_validbool轨迹是否有效
issuesvector<string>存在的问题
scoredouble轨迹得分(分值越高越好)
has_collisionbool是否存在碰撞
collision_indicesvector<size_t>碰撞点索引
using TrajectoryStatusCallback = std::function<
void(bool finished, AbcErrorCode error_code)>;
using SyncDataCallback = std::function<
void(std::shared_ptr<SyncDataPackage>)>;
枚举量说明
NEAREST最近时间戳匹配
INTERPOLATE插值匹配
EXTRAPOLATE外推匹配
枚举量说明
LATEST_TIMESTAMP基于最新时间戳同步(默认模式)
REFERENCE_SENSOR基于参考传感器同步
结构体成员
数据类型
说明
pressed_level_int急停按钮按下时的 GPIO 电平极性。
- 0:低电平有效(Active-Low),按下时引脚电平为低。
- 1:高电平有效(Active-High),按下时引脚电平为高。
allow_multicb_bool是否允许多个回调函数。
- true:允许设置多个回调函数。
- false:仅允许设置一个回调函数。
name_string名称。
EStopMConfig构造函数使用成员初始化列表的方式初始化所有数据成员。
ApacheOrin静态函数返回配置完成的 EStopMConfig 实例(gpiochip0 + 引脚 2 + 低电平有效),与 EStopMConfig() 配置相同,适用于搭载 ApacheOrin 芯片的机器人。
NvidiaOrin静态函数返回配置完成的 EStopMConfig 实例(gpiochip1 + 引脚 9 + 高电平有效),适用于搭载 NvidiaOrin 芯片的机器人。
枚举量说明
None-1无法获取状态
Pressed1急停按钮处于被按下的状态
Released0急停按钮处于被释放的状态
结构体成员数据类型说明
statusint夹爪状态。
- 0:离线。
- 1:在线。
- -1:在线,且处于下使能状态。
errorint夹爪错误信息。
- 低 8 位:夹爪内部的错误信息。
- bit 5~7:预留。
- bit 4:内部通信。
- bit 3:驱动。
- bit 2:过流。
- bit 1:过温。
- bit 0:堵转。
modeint当前工作状态。
- 1:夹爪张开到最大且空闲。
- 2:夹爪闭合到最小且空闲。
- 3:夹爪停止且空闲。
- 4:夹爪正在闭合。
- 5:夹爪正在张开。
- 6:夹爪闭合过程中遇到力控停止。
current_forceint夹爪当前压力,单位为 g。
temperatureint当前温度,单位为 °C。
actposint夹爪开口度,取值范围为 0~1000。
- 0:夹爪闭合到最小。
- 1000:夹爪张开到最大。