Skip to content

USM - User Socket Message

概述

USM 是捷勃特(Agilebot)机器人 Socket 控制插件,基于 Agilebot.Robot.SDK.A-2.0.0.0 开发。
通过 TCP 字符串命令调用 Python SDK,实现对机器人寄存器、IO、程序、运动、报警、伺服等控制。


兼容 SDK 版本说明

本插件使用 SDK 版本 Agilebot.Robot.SDK.A-2.0.0.0 开发,请确保您的机器人系统环境与此版本兼容。


打包说明

插件开发完毕后,需要使用捷勃特插件打包工具进行打包。详细的打包与安装说明请参考:

打包与安装文档


版本信息

  • 插件版本: v1.0
  • SDK 版本: Agilebot.Robot.SDK.A-2.0.0.0

注意事项

  • 协议:TCP,UTF-8
  • 命令格式: command,arg1,arg2,...
  • 返回格式:成功 OK[,data] ,失败 NG,error[,detail]
  • 命令名:不区分大小写
  • 唯一大小写敏感参数: program_start/stop/pause/resume程序名
  • 字段分隔:除特殊说明外均为逗号分隔

连接与响应

  • 默认端口: 7000
  • 单客户端模式:已有连接时拒绝新连接(返回 busy

常见错误码:

  • not_connected
  • invalid_args
  • sdk_error
  • internal_error
  • unknown_command
  • busy

功能命令示例

寄存器

  • read_R — 读 R 浮点寄存器。 例:发送 read_R,5 → 回复 OK,8.6

  • write_R — 写 R 寄存器。 例:发送 write_R,5,10.5 → 回复 OK

  • delete_R — 删 R 寄存器。 例:发送 delete_R,5 → 回复 OK

  • read_MR — 读 MR 整型寄存器。 例:发送 read_MR,1 → 回复 OK,100

  • write_MR — 写 MR 整型寄存器。 例:发送 write_MR,1,200 → 回复 OK

  • delete_MR — 删 MR 整型寄存器。 例:发送 delete_MR,1 → 回复 OK

  • read_SR — 读 SR 字符串寄存器。 例:发送 read_SR,1 → 回复 OK,hello

  • write_SR — 写 SR 字符串寄存器。 例:发送 write_SR,1,hello → 回复 OK

  • delete_SR — 删 SR 字符串寄存器。 例:发送 delete_SR,1 → 回复 OK

  • read_MH — 读 MH 保持型寄存器。 例:发送 read_MH,1 → 回复 OK,100

  • write_MH — 写 MH 保持型寄存器。 例:发送 write_MH,1,50 → 回复 OK

  • read_MI — 读 MI 输入型寄存器。 例:发送 read_MI,1 → 回复 OK,50

  • write_MI — 写 MI 输入型寄存器。 例:发送 write_MI,1,75 → 回复 OK

  • read_PR — 读 PR 位姿(逗号分隔,格式: OK,id,C/J,六个数 )。 例:发送 read_PR,5 → 回复 OK,5,C,100.000,200.000,300.000,0.000,0.000,0.000

  • write_PR — 写 PR: id,J/C,六个数 。 例:发送 write_PR,5,C,100,200,300,0,0,0 → 回复 OK

  • delete_PR — 删 PR。 例:发送 delete_PR,5 → 回复 OK

IO

  • read_DO — 读 DO( ON/OFF )。 例:发送 read_DO,1 → 回复 OK,ON

  • write_DO — 写 DO。 例:发送 write_DO,1,OFF → 回复 OK

  • read_DI — 读 DI。 例:发送 read_DI,3 → 回复 OK,OFF

  • read_AO — 读 AO(部分机型支持) 例:发送 read_AO,2 → 回复 OK,2048

  • write_AO — 写 AO(部分机型支持) 例:发送 write_AO,2,1 → 回复 OK

  • read_AI — 读 AI(部分机型支持) 例:发送 read_AI,1 → 回复 OK,3276

程序与操作权

  • program_start — 启动程序(程序名区分大小写)。 例:发送 program_start,test → 回复 OK

  • program_stop — 停止程序(程序名区分大小写)。 例:发送 program_stop,test → 回复 OK

  • program_pause — 暂停程序(程序名区分大小写)。 例:发送 program_pause,test → 回复 OK

  • program_resume — 恢复程序(程序名区分大小写)。 例:发送 program_resume,test → 回复 OK

  • program_list — 列运行中程序(仅返回程序名称,多个用逗号分隔)。 例:发送 program_list → 回复 OK,test,t

  • program_prepare — 程序启动前状态确认。 例:发送 program_prepare → 回复 OK,soft_mode=ok

  • acquire_access — 获取 PC 操作权。 例:发送 acquire_access → 回复 OK

  • release_access — 释放 PC 操作权。 例:发送 release_access → 回复 OK

运动

  • move_joint — 关节运动。 写法: move_joint,J,j1,j2,j3,j4,j5,j6,vel,acc / move_joint,C,x,y,z,a,b,c,vel,acc / move_joint,PR,id[,vel,acc] 。 说明: vel 必须 xx% (0-100%), acc 必须 xx% (1-120%)。 例:发送 move_joint,J,0,0,60,60,0,0,50%,100% → 回复 OK 例:发送 move_joint,C,0,0,60,60,0,0,50%,100% → 回复 OK 例:发送 move_joint,PR,1,50%,100% → 回复 OK

  • move_line — 直线运动。 写法: move_line,J,j1,j2,j3,j4,j5,j6,vel,acc / move_line,C,x,y,z,a,b,c,vel,acc / move_line,PR,id[,vel,acc] 。 说明: vel 单位 mm/s, acc 必须 xx% (1-120%)。 例:发送 move_line,J,-63,127,-106,36,0,0,500,60% → 回复 OK 例:发送 move_line,C,0,0,60,60,0,0,500,60% → 回复 OK 例:发送 move_line,PR,1,500,60% → 回复 OK

  • get_current_pose — 当前位姿 J/C(逗号分隔)。 例:发送 get_current_pose,J → 回复 OK,J,0.000,0.000,60.000,60.000,0.000,0.000

点动 / 速度 / 坐标系

  • jog_step — 步进点动:( 1 代表 +2 代表 - )。 例:发送 jog_step,1,1,0.5 → 回复 OK

  • get_ovc / set_ovc — 全局速度倍率(百分比)。 例:发送 get_ovc → 回复 OK,100% ;发送 set_ovc,30% → 回复 OK

  • get_oac / set_oac — 全局加速度倍率。 例:发送 get_oac → 回复 OK,100%

  • get_tf / set_tf — 工具坐标系编号(0-50)。 例:发送 set_tf,2 → 回复 OK

  • get_uf / set_uf — 用户坐标系编号(0-50)。 例:发送 set_uf,1 → 回复 OK

  • get_tcs / set_tcs — 参考坐标系。 set_tcs 支持: JOINT/BASE/WORLD/UF/TF/RTCP_UF/RTCP_TF (不区分大小写)。 例:发送 set_tcs,WORLD → 回复 OK

状态

  • robot_status — 机器人运行状态。 例:发送 robot_status → 回复 OK,Robot idle

  • ctrl_status — 控制器状态。 例:发送 ctrl_status → 回复 OK,Controller enabled

  • servo_status — 伺服状态。 例:发送 servo_status → 回复 OK,Servo controller idle

  • ready_check — 启动前一键检查(alarm/robot/ctrl/servo/op/soft)。 例:发送 ready_check → 回复 OK,alarm=none,robot=...,ctrl=...,servo=...,op=...,soft=...

报警

  • get_alarms — 活动报警列表 例:发送 get_alarms → 依次回复: OK,示教器急停按钮触发OK,双通道安全板信号有不一致

  • get_top_alarm — 最高优先级报警 例:发送 get_top_alarm → 回复 OK,示教器急停按钮触发

伺服与急停

  • servo_on — 上使能。 例:发送 servo_on → 回复 OK

  • servo_off — 下使能。 例:发送 servo_off → 回复 OK

  • servo_reset — 伺服复位。 例:发送 servo_reset → 回复 OK

  • estop — 急停。 例:发送 estop → 回复 OK

负载

  • get_payload — 当前负载,格式 mass,x,y,z (逗号分隔,三位小数)。 例:发送 get_payload → 回复 OK,2.500,0.000,0.000,50.000

常见现场问题

  • 示教器提示 “没有操作权”:检查是否已 acquire_access ,需要时 release_access
  • NetAssist 乱码:接收编码改为 UTF-8
  • program_start 报启动条件错误:先发 program_prepare