cmvr-es/protos/cmvr/api/arm_command.proto

259 lines
5.0 KiB
Protocol Buffer
Raw Permalink Normal View History

2026-06-24 15:45:54 +08:00
syntax = "proto3";
package cmvr.api;
import "cmvr/api/common.proto";
enum ArmFrameType {
ARM_FRAME_BASE = 0;
ARM_FRAME_TOOL = 1;
ARM_FRAME_WORLD = 2;
ARM_FRAME_USER = 3;
}
2026-08-03 14:43:12 +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-06-24 15:45:54 +08:00
message JointPositionCommand {
repeated double position = 1;
}
message JointVelocityCommand {
repeated double velocity = 1;
}
message MotionOptions {
double velocity = 1;
double acceleration = 2;
double blend_radius = 3;
double jerk = 4;
repeated double joint_velocity_limits = 5;
bool asynchronous = 6;
}
message CartesianPose {
double x = 1;
double y = 2;
double z = 3;
double rx = 4;
double ry = 5;
double rz = 6;
}
message CartesianVelocity {
double vx = 1;
double vy = 2;
double vz = 3;
double wx = 4;
double wy = 5;
double wz = 6;
}
2026-08-03 14:43:12 +08:00
message CartesianWrench {
double fx = 1;
double fy = 2;
double fz = 3;
double tx = 4;
double ty = 5;
double tz = 6;
}
2026-06-24 15:45:54 +08:00
message TransformMatrix4x4 {
double m00 = 1; double m01 = 2; double m02 = 3; double m03 = 4;
double m10 = 5; double m11 = 6; double m12 = 7; double m13 = 8;
double m20 = 9; double m21 = 10; double m22 = 11; double m23 = 12;
double m30 = 13; double m31 = 14; double m32 = 15; double m33 = 16;
}
message MoveJ {
message Request {
CommandHeader.Request header = 1;
JointPositionCommand target = 2;
MotionOptions options = 3;
}
message Response {
CommandHeader.Feedback header = 1;
}
}
message MoveL {
message Request {
CommandHeader.Request header = 1;
CartesianPose target = 2;
MotionOptions options = 3;
ArmFrameType frame = 4;
}
message Response {
CommandHeader.Feedback header = 1;
}
}
message SpeedJ {
message Request {
CommandHeader.Request header = 1;
JointVelocityCommand velocity = 2;
double acceleration = 3;
double duration = 4;
}
message Response {
CommandHeader.Feedback header = 1;
}
}
message SpeedL {
message Request {
CommandHeader.Request header = 1;
CartesianVelocity velocity = 2;
double acceleration = 3;
double duration = 4;
ArmFrameType frame = 5;
}
message Response {
CommandHeader.Feedback header = 1;
}
}
message ServoJ {
message Request {
CommandHeader.Request header = 1;
JointPositionCommand target = 2;
}
message Response {
CommandHeader.Feedback header = 1;
}
}
message JointState {
repeated string name = 1;
repeated double position = 2;
repeated double velocity = 3;
repeated double effort = 4;
double timestamp = 5;
}
message JointRequest {
CommandHeader.Request header = 1;
}
message JointResponse {
CommandHeader.Feedback header = 1;
JointState state = 2;
}
2026-08-03 14:43:12 +08:00
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-06-24 15:45:54 +08:00
message GetPose {
message Request {
CommandHeader.Request header = 1;
string base_link = 2;
string ee_link = 3;
}
message Response {
CommandHeader.Feedback header = 1;
CartesianPose pose = 2;
}
}
message CalibrateZeroQ {
message Request {
CommandHeader.Request header = 1;
string joint_name = 2;
}
message Response {
CommandHeader.Feedback header = 1;
}
}
message GetPoseMatrix {
message Request {
CommandHeader.Request header = 1;
string base_link = 2;
string ee_link = 3;
}
message Response {
CommandHeader.Feedback header = 1;
TransformMatrix4x4 matrix = 2;
}
}
message ComputeForwardKinematics {
message Request {
CommandHeader.Request header = 1;
string base_link = 2;
string ee_link = 3;
JointPositionCommand joints = 4;
}
message Response {
CommandHeader.Feedback header = 1;
TransformMatrix4x4 matrix = 2;
}
}