149 lines
3.9 KiB
Protocol Buffer
149 lines
3.9 KiB
Protocol Buffer
syntax = "proto3";
|
||
|
||
import "cmvr/api/common.proto";
|
||
|
||
package cmvr.api;
|
||
|
||
message FreedomValue {
|
||
int32 id = 1; // 自由度id 0-6 分别对应六个自由度 小拇指 无名指 中指 食指 大拇指弯曲 大拇指旋转
|
||
float value = 2; // 值 0-1百分比
|
||
}
|
||
|
||
message RH56DFTPDexHand {
|
||
int32 dof_id = 1; // 自由度ID,唯一标识不同的关节或自由度
|
||
int32 angle = 2; // 自由度角度
|
||
int32 speed = 3; // 自由度速度
|
||
int32 force = 4; // 实际受力
|
||
int32 position = 5; // 执行器位置
|
||
int32 current = 6; // 执行器实际电流
|
||
int32 temperature = 7; // 执行器温度
|
||
int32 error = 8; // 执行器故障信息
|
||
repeated string error_message = 9; // 错误消息列表
|
||
}
|
||
// 传感器数据
|
||
// 传感器数据
|
||
message SensorData {
|
||
// 手指类型(掌心作为特殊类型)
|
||
enum FingerType {
|
||
PINKY = 0; // 小拇指
|
||
RING = 1; // 无名指
|
||
MIDDLE_FINGER = 2; // 中指(避免与PartType.MIDDLE冲突)
|
||
INDEX = 3; // 食指
|
||
THUMB = 4; // 大拇指
|
||
PALM = 5; // 掌心
|
||
}
|
||
|
||
// 部位类型(指中改为THUMB_MIDDLE以避免冲突)
|
||
enum PartType {
|
||
TIP = 0; // 指端
|
||
FINGER = 1; // 指尖
|
||
PAD = 2; // 指腹
|
||
THUMB_MIDDLE = 3; // 大拇指指中(仅大拇指有)
|
||
PALM_PAD = 4; // 掌心部位(对应PalmTactileData)
|
||
}
|
||
|
||
FingerType finger_type = 4; // 手指类型(掌心使用PALM)
|
||
PartType part_type = 5; // 部位类型
|
||
string sensor_name = 6; // 传感器名称(如"小拇指指端")
|
||
|
||
message RowData {
|
||
repeated int32 values = 1 [packed = true]; // 一维数组,存放每行的浮点数值
|
||
}
|
||
repeated RowData data = 1; // 二维数组,每行数据是 RowData 类型
|
||
int32 rows = 2; // 行
|
||
int32 cols = 3; // 列
|
||
}
|
||
|
||
|
||
message DexHandState {
|
||
bool is_initialized = 1; // 是否初始化
|
||
repeated RH56DFTPDexHand hands = 2; // 包含多个自由度状态
|
||
}
|
||
|
||
message GetDexHandStateCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
}
|
||
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
DexHandState state = 2;
|
||
}
|
||
}
|
||
|
||
message SetDexHandPositionsCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
repeated FreedomValue values = 2;
|
||
}
|
||
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
}
|
||
}
|
||
|
||
message SetDexHandAnglesCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
repeated FreedomValue values = 2;
|
||
}
|
||
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
}
|
||
}
|
||
|
||
message SetDexHandForceCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
repeated FreedomValue values = 2;
|
||
}
|
||
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
}
|
||
}
|
||
|
||
message SetDexHandSpeedCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
repeated FreedomValue values = 2;
|
||
}
|
||
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
}
|
||
}
|
||
|
||
message SetDexHandPresetActCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
int32 presetActId = 2;
|
||
}
|
||
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
}
|
||
}
|
||
|
||
message GetSensorDataCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
}
|
||
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
repeated SensorData sensor = 2;//所有传感器的数据
|
||
}
|
||
}
|
||
|
||
message GetSensorDataStreamCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
}
|
||
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
repeated SensorData sensor = 2;//所有传感器的数据
|
||
}
|
||
} |