|
- syntax = "proto3";
- import "messages.proto";
- package robotc;
-
- service RobotTest {
- rpc InitReducerTest(Empty) returns (Result);
- rpc ReducerTest(ReducerRequest) returns (ReducerResult);
- rpc InitJointTest(Empty) returns (Result);
- rpc JointStudy(Empty) returns (JointStudyResult);
- rpc JointTest(JointRequest) returns (JointResult);
- rpc TestCommand(CommandRequest) returns (CommandResult);
- /// 磨合测试,返回每个周期的结果,主动断开即停止
- rpc RunInTest(RunInRequest) returns(RunInResult);
- /// 绝对精度测试
- rpc MoveDetectTest(MoveDetectRequest) returns(MoveDetectResult);
- /// 百分表读取
- rpc GetDialIndicator(DeviceIds) returns(DeviceValues);
- /// 量产测试
- rpc StartProductTest(ProductTestRequest) returns(ProductTestResult);
- /// 主机箱测试: 1, 正常;其他异常
- rpc BoxTest(Empty) returns(Result);
-
- // 初始化机器人设备信息
- /**
- {
- "robot": {
- "model": "LM6J",
- "sn": "C01905010001XX"
- },
- "name": "lebai-Yonnie",
- "mac": "B6LLYLUAQG19",
- "arm": {
- "sn": "R01905010001XX"
- }
- }
- */
- rpc InitRobot(RobotInfo) returns (InitRobotResult);
- rpc WriteSn(DeviceInfo) returns (WriteSnResult);
- rpc ReadSn(DeviceTypeRequest) returns (DeviceInfo);
- }
-
- message Empty {}
-
- message Result {
- int32 ok = 1; // 0 正常 其他异常
- int32 testError = 2;
- }
-
- message Joints {
- repeated double pose = 1;
- }
-
- message ReducerRequest {
- double v = 1; // 转速
- }
-
- message ReducerResult {
- double voltage = 1; // 电压 V
- double v = 2; // 转速 rpm
- double torque = 3; // 扭矩 Nm
- }
-
- message JointStudyResult {
- uint32 motor_encoder = 1; // 电机编码(磁编位置)
- }
-
- message JointRequest {
- uint32 joint_type = 1; // 0 大关节 1 小关节
- }
-
- message JointResult {
- double backlash = 1; // 空程 °
- double pos_stable_time = 2; // 位置稳定时间 s
- double pos_overshot = 3; // 位置超调量 rad
- double temperature = 4; // 关节内部温度 ℃
- double current = 5; // 电流 A
- double voltage = 6; // 电压 V
- double v = 7; // 转速 rpm
- double torque = 8; // 电机扭矩 Nm
- uint32 motor_encoder = 9; // 电机编码(磁编位置)
- double joint_torque = 10; // 关节扭矩
- double reducer_eff = 11; // 减速器效率
- double motor_eff = 12; // 电机效率
- }
-
- message CommandRequest {
- int32 type = 1; // 类型
- int32 value_i = 2;
- double value_f = 3;
- }
-
- message CommandResult {
- int32 code = 1; // 返回码,默认0即可
- }
-
- message MovePoint {
- // 如果pose_is_joint_angle 为 false,反向运动学会计算成对应的关节角度;
- repeated double joint_pose_to = 1;
- // 设定joint_pose_to是用{x, y, z, rx, ry, rz}描述末端位置和姿态还是用关节角度
- bool pose_is_joint_angle = 2;
- // 单位:rad/s^2,主轴的关节加速度
- double acceleration = 3;
- // 单位:rad/s,主轴的关节速度
- double velocity = 4;
- // 单位:s,运动时间
- double time = 5;
- // 单位:m,下一段的交融半径
- double blend_radius = 6;
- }
-
- message RunInRequest {
- repeated MovePoint path = 1; // 单个磨合测试周期轨迹
- double equivalent_radius = 2; // 等效半径 m
- double threshold_distance = 3;// 门限距离 m
- double position_stable_time = 4; // 位置稳定时间(最大) s
- double position_overshoot = 5; // 位置超调量(最大) m
- double pose_stable_time = 6; // 姿态稳定时间(最大) s
- double pose_overshoot = 7; // 姿态超调量(最大) m
- }
-
- message RunInJointInfo {
- double min_velocity = 1; // 反馈速度 m/s
- double max_velocity = 2; // 反馈速度
- double min_voltage = 3; // 电压 V
- double max_voltage = 4; // 电压
- double min_temperature = 5; // 温度 ℃
- double max_temperature = 6; // 温度
- }
-
- message RunInPathResult {
- repeated RunInJointInfo joints = 1;
- }
-
- message RunInResult {
- bool ok = 1; // 是否符合标准
- repeated RunInPathResult path = 2; // 每条轨迹的抖动值
- double position_stable_time = 4; // 位置稳定时间 s
- double position_overshoot = 5; // 位置超调量 m
- double pose_stable_time = 6; // 姿态稳定时间 s
- double pose_overshoot = 7; // 姿态超调量 m
- string filename = 8; // csv文件路径
- }
-
- message DeviceIds {
- repeated uint32 id = 1; // 同类型的第几个设备
- }
-
- message DeviceValues {
- repeated double value = 1; // 读数结果
- }
-
- message ProductTestRequest {
- uint32 cmd = 1; // 测试命令
- }
-
- message ProductTestResult {
- uint32 testRes = 1; // 测试结果
- uint32 testError = 2;
- }
-
- message InitRobotResult {
- int32 ret = 1; // 初始化Robort返回结果
- string cup = 2; // 绑定hash值
- }
-
- message WriteSnResult {
- int32 writeSnRes = 1; // 写sn结果
- }
-
- message DeviceTypeRequest {
- int32 devType = 1; // 要读sn的设备类型
- }
-
- message DecimalInput {
- int32 pin = 1;
- int32 value = 2; // 1 或者 0。若为 -1 则表示没有结果(没有运行到此处)
- }
-
- message MoveDetectPath {
- MovePoint path = 1; // 单个轨迹
- repeated DecimalInput moving = 2; // 移动中的各传感器应有值
- repeated DecimalInput cross = 3; // 移动完成后(交点)时的各传感器应有值
- }
-
- message MoveDetectRequest {
- repeated MoveDetectPath req = 1;
- }
-
- message MoveDetectResult {
- bool ok = 1; // 是否符合标准
- repeated MoveDetectPath res = 2; // 周期内移动中的传感器值,不保证path是对的
- string filename = 3; // csv文件路径
- }
|