2026-06-24 15:45:54 +08:00
|
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
|
|
|
|
package cmvr.api;
|
|
|
|
|
|
|
|
|
|
|
|
import "cmvr/api/common.proto";
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 机械臂笛卡尔命令使用的参考坐标系。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
enum ArmFrameType {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 机械臂基座坐标系,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
ARM_FRAME_BASE = 0;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 当前工具/TCP 坐标系,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
ARM_FRAME_TOOL = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 世界坐标系,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
ARM_FRAME_WORLD = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 用户自定义坐标系,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
ARM_FRAME_USER = 3;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-22 16:23:50 +08:00
|
|
|
|
enum ArmRobotMode {
|
|
|
|
|
|
ARM_ROBOT_MODE_UNKNOWN = 0;
|
|
|
|
|
|
ARM_ROBOT_MODE_DISCONNECTED = 1;
|
|
|
|
|
|
ARM_ROBOT_MODE_POWER_OFF = 2;
|
|
|
|
|
|
ARM_ROBOT_MODE_IDLE = 3;
|
|
|
|
|
|
ARM_ROBOT_MODE_RUNNING = 4;
|
|
|
|
|
|
ARM_ROBOT_MODE_PAUSED = 5;
|
|
|
|
|
|
ARM_ROBOT_MODE_STOPPED = 6;
|
|
|
|
|
|
ARM_ROBOT_MODE_FAULT = 7;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
enum ArmSafetyMode {
|
|
|
|
|
|
ARM_SAFETY_MODE_UNKNOWN = 0;
|
|
|
|
|
|
ARM_SAFETY_MODE_NORMAL = 1;
|
|
|
|
|
|
ARM_SAFETY_MODE_REDUCED = 2;
|
|
|
|
|
|
ARM_SAFETY_MODE_PROTECTIVE_STOP = 3;
|
|
|
|
|
|
ARM_SAFETY_MODE_EMERGENCY_STOP = 4;
|
|
|
|
|
|
ARM_SAFETY_MODE_SAFEGUARD_STOP = 5;
|
|
|
|
|
|
ARM_SAFETY_MODE_SYSTEM_EMERGENCY_STOP = 6;
|
|
|
|
|
|
ARM_SAFETY_MODE_FAULT = 7;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
enum ArmControlMode {
|
|
|
|
|
|
ARM_CONTROL_MODE_NONE = 0;
|
|
|
|
|
|
ARM_CONTROL_MODE_MANUAL = 1;
|
|
|
|
|
|
ARM_CONTROL_MODE_POSITION = 2;
|
|
|
|
|
|
ARM_CONTROL_MODE_VELOCITY = 3;
|
|
|
|
|
|
ARM_CONTROL_MODE_TORQUE = 4;
|
|
|
|
|
|
ARM_CONTROL_MODE_SERVO = 5;
|
|
|
|
|
|
ARM_CONTROL_MODE_FREEDRIVE = 6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节位置命令;数组顺序必须与机械臂关节顺序一致。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message JointPositionCommand {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 各关节目标角度,单位:rad。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
repeated double position = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节速度命令;数组顺序必须与机械臂关节顺序一致。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message JointVelocityCommand {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 各关节目标角速度,单位:rad/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
repeated double velocity = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// MoveJ 和 MoveL 共用的运动参数。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message MotionOptions {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 目标速度;MoveJ 单位为 rad/s,MoveL 单位为 m/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double velocity = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 目标加速度;MoveJ 单位为 rad/s^2,MoveL 单位为 m/s^2。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double acceleration = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 路径交融半径,单位:m;0 表示不交融。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double blend_radius = 3;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 目标加加速度;MoveJ 单位为 rad/s^3,MoveL 单位为 m/s^3。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double jerk = 4;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// MoveL 规划时各关节的最大角速度限制,单位:rad/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
repeated double joint_velocity_limits = 5;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 是否异步执行;true 表示命令提交后立即返回,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
bool asynchronous = 6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// TCP 的笛卡尔位姿。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message CartesianPose {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// X 方向位置,单位:m。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double x = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// Y 方向位置,单位:m。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double y = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// Z 方向位置,单位:m。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double z = 3;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 绕 X 轴的姿态分量,单位:rad。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double rx = 4;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 绕 Y 轴的姿态分量,单位:rad。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double ry = 5;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 绕 Z 轴的姿态分量,单位:rad。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double rz = 6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// TCP 的笛卡尔速度。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message CartesianVelocity {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// X 方向线速度,单位:m/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double vx = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// Y 方向线速度,单位:m/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double vy = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// Z 方向线速度,单位:m/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double vz = 3;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 绕 X 轴角速度,单位:rad/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double wx = 4;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 绕 Y 轴角速度,单位:rad/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double wy = 5;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 绕 Z 轴角速度,单位:rad/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double wz = 6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-22 16:23:50 +08:00
|
|
|
|
message CartesianWrench {
|
|
|
|
|
|
double fx = 1;
|
|
|
|
|
|
double fy = 2;
|
|
|
|
|
|
double fz = 3;
|
|
|
|
|
|
double tx = 4;
|
|
|
|
|
|
double ty = 5;
|
|
|
|
|
|
double tz = 6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 4x4 齐次变换矩阵;前三列为无量纲旋转矩阵,第四列前三项为平移量(m)。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message TransformMatrix4x4 {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 第一行:m00~m02 无单位,m03 单位为 m。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double m00 = 1; double m01 = 2; double m02 = 3; double m03 = 4;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 第二行:m10~m12 无单位,m13 单位为 m。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double m10 = 5; double m11 = 6; double m12 = 7; double m13 = 8;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 第三行:m20~m22 无单位,m23 单位为 m。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double m20 = 9; double m21 = 10; double m22 = 11; double m23 = 12;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 齐次矩阵最后一行,均无单位,通常为 [0, 0, 0, 1]。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double m30 = 13; double m31 = 14; double m32 = 15; double m33 = 16;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节空间点到点运动命令。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message MoveJ {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// MoveJ 请求。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Request {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节目标位置,单位:rad。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
JointPositionCommand target = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 运动参数;速度/加速度/加加速度单位分别为 rad/s、rad/s^2、rad/s^3。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
MotionOptions options = 3;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// MoveJ 执行结果。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Response {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// TCP 笛卡尔直线运动命令。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message MoveL {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// MoveL 请求。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Request {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// TCP 目标位姿;位置单位为 m,姿态单位为 rad。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CartesianPose target = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 运动参数;速度/加速度/加加速度单位分别为 m/s、m/s^2、m/s^3。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
MotionOptions options = 3;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 未指定命名坐标系时使用的参考坐标系,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
ArmFrameType frame = 4;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 可选基准坐标系名称,无单位;不传或为空时使用驱动配置的默认基准坐标系。
|
2026-09-16 14:11:37 +08:00
|
|
|
|
optional string base_frame = 5;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 可选 TCP 坐标系名称,无单位;不传或为空时使用驱动配置的默认 TCP 坐标系。
|
2026-09-16 14:11:37 +08:00
|
|
|
|
optional string tcp_frame = 6;
|
2026-06-24 15:45:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// MoveL 执行结果。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Response {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 查询机械臂可用坐标系名称。
|
2026-09-16 14:11:37 +08:00
|
|
|
|
message ListFrame {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 坐标系列表查询请求。
|
2026-09-16 14:11:37 +08:00
|
|
|
|
message Request {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-09-16 14:11:37 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 坐标系列表查询结果。
|
2026-09-16 14:11:37 +08:00
|
|
|
|
message Response {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-09-16 14:11:37 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 可选坐标系名称列表,无单位。
|
2026-09-16 14:11:37 +08:00
|
|
|
|
repeated string frame_names = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节速度运动命令。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message SpeedJ {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// SpeedJ 请求。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Request {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 各关节目标角速度,单位:rad/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
JointVelocityCommand velocity = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节角加速度,单位:rad/s^2。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double acceleration = 3;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 速度命令持续时间,单位:s;具体停止语义由机械臂驱动实现。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double duration = 4;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// SpeedJ 执行结果。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Response {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// TCP 笛卡尔速度运动命令。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message SpeedL {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// SpeedL 请求。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Request {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// TCP 目标速度;线速度单位为 m/s,角速度单位为 rad/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CartesianVelocity velocity = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// TCP 线加速度,单位:m/s^2。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double acceleration = 3;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 速度命令持续时间,单位:s;具体停止语义由机械臂驱动实现。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double duration = 4;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 速度向量所在的参考坐标系,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
ArmFrameType frame = 5;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// SpeedL 执行结果。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Response {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节位置实时伺服命令。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message ServoJ {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// ServoJ 请求。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Request {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 本周期各关节目标角度,单位:rad。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
JointPositionCommand target = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// ServoJ 执行结果。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Response {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 机械臂关节状态。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message JointState {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节名称列表,无单位;与 position、velocity、effort 按索引对应。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
repeated string name = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节实际角度,单位:rad。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
repeated double position = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节实际角速度,单位:rad/s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
repeated double velocity = 3;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 关节实际力矩,单位:N·m。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
repeated double effort = 4;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 状态采样的 Unix 时间戳,单位:s。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
double timestamp = 5;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 查询关节状态的请求。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message JointRequest {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 查询关节状态的响应。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message JointResponse {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 当前关节状态。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
JointState state = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-22 16:23:50 +08:00
|
|
|
|
// 机械臂静态能力与 SDK 自动识别信息。
|
|
|
|
|
|
message GetArmInfo {
|
|
|
|
|
|
message Request {
|
|
|
|
|
|
CommandHeader.Request header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
message Response {
|
|
|
|
|
|
CommandHeader.Feedback header = 1;
|
|
|
|
|
|
string device_id = 2;
|
|
|
|
|
|
string manufacturer = 3;
|
|
|
|
|
|
string model = 4;
|
|
|
|
|
|
string subtype = 5;
|
|
|
|
|
|
uint32 dof = 6;
|
|
|
|
|
|
repeated string joint_names = 7;
|
|
|
|
|
|
string default_base_frame = 8;
|
|
|
|
|
|
string default_tcp_frame = 9;
|
|
|
|
|
|
string description_id = 10;
|
|
|
|
|
|
bool detected_from_sdk = 11;
|
|
|
|
|
|
string driver_type = 12;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
message RobotState {
|
|
|
|
|
|
double timestamp = 1;
|
|
|
|
|
|
ArmRobotMode robot_mode = 2;
|
|
|
|
|
|
ArmSafetyMode safety_mode = 3;
|
|
|
|
|
|
ArmControlMode control_mode = 4;
|
|
|
|
|
|
bool connected = 5;
|
|
|
|
|
|
bool powered_on = 6;
|
|
|
|
|
|
bool brake_released = 7;
|
|
|
|
|
|
bool moving = 8;
|
|
|
|
|
|
bool program_running = 9;
|
|
|
|
|
|
bool protective_stopped = 10;
|
|
|
|
|
|
bool emergency_stopped = 11;
|
|
|
|
|
|
bool fault = 12;
|
|
|
|
|
|
double speed_scaling = 13;
|
|
|
|
|
|
JointState actual_joint_state = 14;
|
|
|
|
|
|
JointState target_joint_state = 15;
|
|
|
|
|
|
CartesianPose actual_tcp_pose = 16;
|
|
|
|
|
|
CartesianVelocity actual_tcp_velocity = 17;
|
|
|
|
|
|
CartesianWrench actual_tcp_wrench = 18;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
message GetRobotState {
|
|
|
|
|
|
message Request {
|
|
|
|
|
|
CommandHeader.Request header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
message Response {
|
|
|
|
|
|
CommandHeader.Feedback header = 1;
|
|
|
|
|
|
RobotState state = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 查询 TCP 位姿。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message GetPose {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 位姿查询请求。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Request {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 参考坐标系名称,无单位;为空时使用驱动默认基准坐标系。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
string base_link = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 末端坐标系名称,无单位;为空时使用驱动默认 TCP 坐标系。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
string ee_link = 3;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 位姿查询结果。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Response {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// TCP 位姿;位置单位为 m,姿态单位为 rad。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CartesianPose pose = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 指定关节的零位标定命令。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message CalibrateZeroQ {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 零位标定请求。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Request {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 待标定关节名称,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
string joint_name = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 零位标定结果。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Response {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 查询两个坐标系之间的齐次变换矩阵。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message GetPoseMatrix {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 变换矩阵查询请求。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Request {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 参考坐标系名称,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
string base_link = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 目标末端坐标系名称,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
string ee_link = 3;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 变换矩阵查询结果。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Response {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 齐次变换矩阵;旋转元素无单位,平移元素单位为 m。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
TransformMatrix4x4 matrix = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 根据关节角计算正运动学变换矩阵。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message ComputeForwardKinematics {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 正运动学计算请求。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Request {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用请求头,包含目标设备 ID 和请求时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Request header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 参考坐标系名称,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
string base_link = 2;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 目标末端坐标系名称,无单位。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
string ee_link = 3;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 用于计算的关节角,单位:rad。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
JointPositionCommand joints = 4;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 正运动学计算结果。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
message Response {
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 通用响应头,包含成功标志、错误信息和响应时间戳。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
CommandHeader.Feedback header = 1;
|
2026-09-18 15:22:50 +08:00
|
|
|
|
// 齐次变换矩阵;旋转元素无单位,平移元素单位为 m。
|
2026-06-24 15:45:54 +08:00
|
|
|
|
TransformMatrix4x4 matrix = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|