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; } 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; } 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; } message CartesianWrench { double fx = 1; double fy = 2; double fz = 3; double tx = 4; double ty = 5; double tz = 6; } 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; } 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; } } 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; } }