Skip to content

UDP主动上报配置指令集

UDP 主动上报

UDP 机械臂状态主动上报接口

第三代机械臂提供 UDP 机械臂状态主动上报接口,使用时,需要和机械臂处于同一局域网络下,通过设置主动上报配置接口的目标 IP或和机械臂建立 TCP 连接,机械臂即会主动周期性上报机械臂状态数据,上报的默认目标端口为 8089(可配置),使用 UDP 协议监听本机的 8089 端口,即可收到数据,数据周期可配置,默认 5ms。

  • 输入参数

关节相关数组的大小跟关节数一致,如7轴,则joint_status等关节信息的字段,数组大小为7。详细参数如下:

参数类型说明
statestringrealtime_arm_joint_state 实时机械臂状态上报。
arm_current_statusstring"idle":使能但空闲状态
"move_L":move L运动中状态
"move_J":move J运动中状态
"move_C":move C运动中状态
"move_S":move S运动中状态
"move_through_joint": 角度透传状态
"move_through_pose": 位姿透传状态
"move_through_force_pose": 力控透传状态
"move_through_current": 电流环透传状态
"stop": 急停状态
"slow_stop": 缓停状态
"pause": 暂停状态
"current_drag": 电流环拖动状态
"sensor_drag": 六维力拖动状态
"tech_demonstration": 示教状态
arm_errint机械臂错误码。
sys_errint系统错误码。
joint_statusint当前关节状态。
joint_currentint当前关节电流,精度 0.001mA。
joint_en_flagint当前关节使能状态 ,1 为上使能,0 为掉使能。
joint_err_codeint当前关节错误码。
joint_positionint当前关节角度,精度 0.001°。
joint_temperatureint当前关节温度,精度 0.001℃。
joint_voltageint当前关节电压,精度 0.001V。
joint_speedint当前关节速度,精度0.02RPM。
waypointobject当前路点信息。
positionint当前路点位置,精度 0.000001M。
eulerobject当前路点姿态欧拉角,精度 0.001rad。
quatobject当前路点四元数,精度 0.000001。
six_force_sensorobject六维力数据(六维力版本支持)。
one_force_sensorobject一维力数据(一维力版本支持)。
forceobject当前力传感器原始数据 0.001N 或 0.001Nm。
zero_forceobject当前力传感器系统外受力数据 0.001N 或 0.001Nm。
coordinateint系统外受力数据的坐标系,0 为传感器坐标系 1 为当前工作坐标系 2 为当前工具坐标系。
lift_stateint升降关节数据。包含:
height:当前升降机构高度,单位:mm,精度:1mm;
pos:当前角度 精度 0.001°;
current:当前升降驱动电流,单位:mA,精度:1mA;
err_flag:升降驱动错误代码,错误代码类型参考关节错误代码;
en_flag:当前关节使能状态 ,1 为上使能,0 为掉使能。
expand_stateint扩展关节相关数据。包含:
pos:当前角度,精度 0.001°;
current:当前升降驱动电流,单位:mA,精度:1mA;
err_flag:升降驱动错误代码,错误代码类型参考关节错误代码;en_flag:当前关节使能状态 ,1 为上使能,0 为掉使能。
mode: 当前升降状态,0-空闲,1-正方向速度运动,2-正方向位置运动,3-负方向速度运动,4-负方向位置运动。
joint_id: 扩展关节ID。
aloha_stateintaloha主臂状态。包含:
io1_state: IO1状态(手柄光电检测),0为按键未触发,1为按键触发;
io2_state: IO2状态(手柄按键检测),0为按键未触发,1为按键触发。
handint灵巧手状态:
hand_pos ,表示灵巧手位置
hand_angle ,表示灵巧手角度
hand_force,表示灵巧手自由度力,单位mN
hand_state,表示灵巧手自由度状态,由灵巧手厂商定义状态含义
hand_err,表示灵巧手系统错误,由灵巧手厂商定义错误含义,具体定义如下表格所示。
  • 灵巧手状态定义

傲意:

状态名称状态码说明
STATUS_OPENING0正在展开
STATUS_CLOSING1正在抓取
STATUS_POS_REACHED2位置到位停止
STATUS_OVER_CURRENT3电流保护停止
STATUS_FORCE_REACHED4力控到位停止
STATUS_STUCK5电机堵转停止

因时:

状态码说明
0正在松开
1正在抓取
2位置到位停止
3力控到位停止
5电流保护停止
6电缸堵转停止
7电缸故障停止
  • 代码示例

六自由度UDP数据上报。

json
{"aloha_state":{"io1_state":0,"io2_state":0},"arm_current_status":"idle","arm_err":0,"joint_status":{"joint_current":[43000,2085000,1020000,1000,257000,-57000],"joint_en_flag":[1,1,1,1,1,1],"joint_err_code":[0,0,0,0,0,0],"joint_position":[13434,-69764,2926,-4742,-45721,-223],"joint_temperature":[33000,35000,37000,36000,37000,39000],"joint_voltage":[22000,22000,22000,22000,22000,22000]},"six_force_sensor":{"force":[-13000,3799,-22393,-216,-408,481],"zero_force":[17476,10415,30827,5,2,2],"coordinate":1},"state":"realtime_arm_joint_state","sys_err":0,"waypoint":{"euler":[2935,2935,2935],"position":[578568,127709,345856],"quat":[-23405,824245,106348,555663]}}

七自由度UDP数据上报。

json
{"aloha_state":{"io1_state":0,"io2_state":0},"arm_current_status":"idle","arm_err":0,"joint_status":{"joint_current":[43000,2085000,1020000,1000,257000,-57000,1000],"joint_en_flag":[1,1,1,1,1,1,1],"joint_err_code":[0,0,0,0,0,0,0],"joint_position":[13434,-69764,2926,-4742,-45721,-223,-223],"joint_temperature":[33000,35000,37000,36000,37000,39000,37000],"joint_voltage":[22000,22000,22000,22000,22000,22000,22000]},"six_force_sensor":{"force":[-13000,3799,-22393,-216,-408,481],"zero_force":[17476,10415,30827,5,2,2],"coordinate":1},"state":"realtime_arm_joint_state","sys_err":0,"waypoint":{"euler":[2935,2935,2935],"position":[578568,127709,345856],"quat":[-23405,824245,106348,555663]}}

查询 UDP 机械臂状态主动上报配置get_realtime_push

  • 输入参数
参数类型说明
get_realtime_pushstring查询 UDP 机械臂状态主动上报配置
  • 输出参数
参数类型说明
portint设置广播的端口号。
cycleint设置广播周期,单位为 5ms。
enablebool设置使能,是否使能主动上报。
force_coordinateint系统外受力数据的坐标系:
0 为传感器坐标系;
1 为当前工作坐标系;
2 为当前工具坐标系(力传感器版本支持)。
ipstring自定义的上报目标 IP 地址。
customint包含
joint_speed:关节速度;
lift_state:升降关节信息;
expand_state:扩展关节信息;
arm_current_status:机械臂当前状态;
aloha_state: aloha主臂状态;
hand:灵巧手状态。
  • 代码示例

输入

用于查询 UDP 机械臂状态主动上报配置。

json
{"command":"get_realtime_push"}

输出

json
{
    "command": "get_realtime_push",
    "custom": {
        "aloha_state": false,
        "expand_state": true,
        "joint_speed": true,
        "lift_state": true,
        "arm_current_status": true
    },
    "cycle": 100,
    "enable": true,
    "force_coordinate": 2,
    "ip": "192.168.1.10",
    "port": 8099
}

设置 UDP 机械臂状态主动上报配置set_realtime_push

  • 输入参数
参数类型说明
set_realtime_pushstring设置 UDP 机械臂状态主动上报配置。
portint设置广播的端口号。
cycleint设置广播周期,单位为5ms的倍数,如参数为1则表示5ms,参数为2则表示10ms。
enablebool设置使能,是否使能主动上报。
force_coordinateint系统外受力数据的坐标系,0 为传感器坐标系 1 为当前工作坐标系 2 为当前工具坐标系(力传感器版本支持)。
ipstring自定义的上报目标 IP 地址。
customint自定义项内容,如下选项不是必选项,如果不设置,则保持设置之前的状态。包含:
joint_speed:关节速度;
lift_state:升降关节信息;
expand_state:扩展关节信息(升降关节和扩展关节为二选一,优先显示升降关节);
arm_current_status:机械臂当前状态;
aloha_state: aloha主臂状态;
hand:灵巧手状态

注意

hand字段,以下数据只有在调用hand_follow_anglehand_follow_pos接口后才具有实际含义,顺序分别为大拇指弯曲,食指、中指、无名指、小拇指、大拇指旋转。

  1. hand_pos ,表示灵巧手位置
  2. hand_angle ,表示灵巧手角度
  3. hand_force,表示灵巧手自由度力,单位mN
  4. hand_state,表示灵巧手自由度状态,由灵巧手厂商定义状态含义
  5. hand_err,表示灵巧手系统错误,由灵巧手厂商定义错误含义,例如因时状态码如下:1表示有错误,0表示无错误
  • 输出参数
参数类型说明
set_realtime_pushbooltrue 成功 false 失败。
  • 代码示例

输入

用于设置 UDP 机械臂状态主动上报配置

json
{"command":"set_realtime_push","cycle":100,"enable":true,"port":8099,"force_coordinate":2,"ip":"192.168.1.223","custom":{"aloha_state":true,"joint_speed":true,"lift_state":true,"expand_state":true,"arm_current_status":true,"hand":true}}

返回示例:

json
{
    "command": "set_realtime_push",
    "state": true
}