update
This commit is contained in:
parent
b428db1372
commit
891529a095
@ -4,146 +4,169 @@ import "cmvr/api/common.proto";
|
||||
|
||||
package cmvr.api;
|
||||
|
||||
// 自由度值(用于设置指令)
|
||||
message FreedomValue {
|
||||
int32 id = 1; // 自由度id 0-6 分别对应六个自由度 小拇指 无名指 中指 食指 大拇指弯曲 大拇指旋转
|
||||
float value = 2; // 值 0-1百分比
|
||||
string id = 1; // 自由度id,可选值:
|
||||
// little_finger(小拇指)、
|
||||
// ring_finger(无名指)、
|
||||
// middle_finger(中指)、
|
||||
// index_finger(食指)、
|
||||
// thumb_bend(大拇指弯曲)、
|
||||
// thumb_rotate(大拇指旋转)
|
||||
float value = 2; // 值 0-1百分比(对应实际物理量的比例)
|
||||
}
|
||||
|
||||
// 自由度状态(用于获取状态指令的返回)
|
||||
message FreedomState {
|
||||
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; // 错误消息列表
|
||||
string dof_id = 1; // 自由度id,与FreedomValue.id一致,可选值:
|
||||
// little_finger(小拇指)、
|
||||
// ring_finger(无名指)、
|
||||
// middle_finger(中指)、
|
||||
// index_finger(食指)、
|
||||
// thumb_bend(大拇指弯曲)、
|
||||
// thumb_rotate(大拇指旋转)
|
||||
int32 angle = 2; // 自由度当前角度(单位:根据设备定义,如0.1°/单位)
|
||||
int32 speed = 3; // 自由度当前速度(单位:根据设备定义,如0.1°/s/单位)
|
||||
int32 force = 4; // 实际受力(单位:根据设备定义,如0.01N/单位)
|
||||
int32 position = 5; // 执行器当前位置(单位:根据设备定义,如步长/毫米)
|
||||
int32 current = 6; // 执行器实际电流(单位:根据设备定义,如mA)
|
||||
int32 temperature = 7; // 执行器温度(单位:℃)
|
||||
int32 error = 8; // 执行器故障码(0表示无故障,非0对应具体故障)
|
||||
repeated string error_message = 9; // 错误消息列表(详细描述故障原因)
|
||||
}
|
||||
// 传感器数据
|
||||
|
||||
// 传感器数据
|
||||
message SensorData {
|
||||
// 手指类型(掌心作为特殊类型)
|
||||
enum FingerType {
|
||||
PINKY = 0; // 小拇指
|
||||
RING = 1; // 无名指
|
||||
MIDDLE_FINGER = 2; // 中指(避免与PartType.MIDDLE冲突)
|
||||
INDEX = 3; // 食指
|
||||
THUMB = 4; // 大拇指
|
||||
PALM = 5; // 掌心
|
||||
PINKY = 0; // 小拇指
|
||||
RING = 1; // 无名指
|
||||
MIDDLE_FINGER = 2; // 中指(避免与PartType冲突)
|
||||
INDEX = 3; // 食指
|
||||
THUMB = 4; // 大拇指
|
||||
PALM = 5; // 掌心
|
||||
}
|
||||
|
||||
// 部位类型(指中改为THUMB_MIDDLE以避免冲突)
|
||||
// 部位类型(区分手指的不同部位)
|
||||
enum PartType {
|
||||
TIP = 0; // 指端
|
||||
FINGER = 1; // 指尖
|
||||
PAD = 2; // 指腹
|
||||
THUMB_MIDDLE = 3; // 大拇指指中(仅大拇指有)
|
||||
PALM_PAD = 4; // 掌心部位(对应PalmTactileData)
|
||||
TIP = 0; // 指端(指尖最前端)
|
||||
FINGER = 1; // 指节(手指中段)
|
||||
PAD = 2; // 指腹(手指接触物体的面)
|
||||
THUMB_MIDDLE = 3; // 大拇指指中(仅大拇指特有部位)
|
||||
PALM_PAD = 4; // 掌心部位(掌心接触区域)
|
||||
}
|
||||
|
||||
FingerType finger_type = 4; // 手指类型(掌心使用PALM)
|
||||
PartType part_type = 5; // 部位类型
|
||||
string sensor_name = 6; // 传感器名称(如"小拇指指端")
|
||||
FingerType finger_type = 4; // 所属手指(或掌心)
|
||||
PartType part_type = 5; // 所属部位
|
||||
string sensor_name = 6; // 传感器名称(如"little_finger_tip",便于调试)
|
||||
|
||||
// 传感器单行数据
|
||||
message RowData {
|
||||
repeated int32 values = 1 [packed = true]; // 一维数组,存放每行的浮点数值
|
||||
repeated int32 values = 1 [packed = true]; // 单行传感器数据(原始采样值)
|
||||
}
|
||||
repeated RowData data = 1; // 二维数组,每行数据是 RowData 类型
|
||||
int32 rows = 2; // 行
|
||||
int32 cols = 3; // 列
|
||||
repeated RowData data = 1; // 二维传感器数据(按行列组织)
|
||||
int32 rows = 2; // 数据行数(传感器阵列行数)
|
||||
int32 cols = 3; // 数据列数(传感器阵列列数)
|
||||
}
|
||||
|
||||
|
||||
// 灵巧手整体状态
|
||||
message DexHandState {
|
||||
bool is_initialized = 1; // 是否初始化
|
||||
repeated FreedomState hands = 2; // 包含多个自由度状态
|
||||
bool is_initialized = 1; // 设备是否初始化完成(true:已就绪,false:未就绪)
|
||||
repeated FreedomState hands = 2; // 所有自由度的状态列表(与FreedomValue.id一一对应)
|
||||
}
|
||||
|
||||
// 获取灵巧手状态指令
|
||||
message GetDexHandStateCommand {
|
||||
message Request {
|
||||
CommandHeader.Request header = 1;
|
||||
CommandHeader.Request header = 1; // 通用请求头(包含设备ID等)
|
||||
}
|
||||
|
||||
message Feedback {
|
||||
CommandHeader.Feedback header = 1;
|
||||
DexHandState state = 2;
|
||||
CommandHeader.Feedback header = 1; // 通用响应头(包含成功状态、时间戳等)
|
||||
DexHandState state = 2; // 灵巧手状态数据
|
||||
}
|
||||
}
|
||||
|
||||
// 设置灵巧手位置指令
|
||||
message SetDexHandPositionsCommand {
|
||||
message Request {
|
||||
CommandHeader.Request header = 1;
|
||||
repeated FreedomValue values = 2;
|
||||
CommandHeader.Request header = 1; // 通用请求头
|
||||
repeated FreedomValue values = 2; // 待设置的位置参数(百分比)
|
||||
}
|
||||
|
||||
message Feedback {
|
||||
CommandHeader.Feedback header = 1;
|
||||
CommandHeader.Feedback header = 1; // 通用响应头(反馈设置结果)
|
||||
}
|
||||
}
|
||||
|
||||
// 设置灵巧手角度指令
|
||||
message SetDexHandAnglesCommand {
|
||||
message Request {
|
||||
CommandHeader.Request header = 1;
|
||||
repeated FreedomValue values = 2;
|
||||
CommandHeader.Request header = 1; // 通用请求头
|
||||
repeated FreedomValue values = 2; // 待设置的角度参数(百分比)
|
||||
}
|
||||
|
||||
message Feedback {
|
||||
CommandHeader.Feedback header = 1;
|
||||
CommandHeader.Feedback header = 1; // 通用响应头
|
||||
}
|
||||
}
|
||||
|
||||
// 设置灵巧手力值指令
|
||||
message SetDexHandForceCommand {
|
||||
message Request {
|
||||
CommandHeader.Request header = 1;
|
||||
repeated FreedomValue values = 2;
|
||||
CommandHeader.Request header = 1; // 通用请求头
|
||||
repeated FreedomValue values = 2; // 待设置的力值参数(百分比)
|
||||
}
|
||||
|
||||
message Feedback {
|
||||
CommandHeader.Feedback header = 1;
|
||||
CommandHeader.Feedback header = 1; // 通用响应头
|
||||
}
|
||||
}
|
||||
|
||||
// 设置灵巧手速度指令
|
||||
message SetDexHandSpeedCommand {
|
||||
message Request {
|
||||
CommandHeader.Request header = 1;
|
||||
repeated FreedomValue values = 2;
|
||||
CommandHeader.Request header = 1; // 通用请求头
|
||||
repeated FreedomValue values = 2; // 待设置的速度参数(百分比)
|
||||
}
|
||||
|
||||
message Feedback {
|
||||
CommandHeader.Feedback header = 1;
|
||||
CommandHeader.Feedback header = 1; // 通用响应头
|
||||
}
|
||||
}
|
||||
|
||||
// 设置灵巧手预设动作指令
|
||||
message SetDexHandPresetActCommand {
|
||||
message Request {
|
||||
CommandHeader.Request header = 1;
|
||||
int32 presetActId = 2;
|
||||
CommandHeader.Request header = 1; // 通用请求头
|
||||
int32 presetActId = 2; // 预设动作ID(如0:握拳,1:伸开等)
|
||||
}
|
||||
|
||||
message Feedback {
|
||||
CommandHeader.Feedback header = 1;
|
||||
CommandHeader.Feedback header = 1; // 通用响应头
|
||||
}
|
||||
}
|
||||
|
||||
// 获取传感器数据指令(单次)
|
||||
message GetSensorDataCommand {
|
||||
message Request {
|
||||
CommandHeader.Request header = 1;
|
||||
CommandHeader.Request header = 1; // 通用请求头
|
||||
}
|
||||
|
||||
message Feedback {
|
||||
CommandHeader.Feedback header = 1;
|
||||
repeated SensorData sensor = 2;//所有传感器的数据
|
||||
CommandHeader.Feedback header = 1; // 通用响应头
|
||||
repeated SensorData sensor = 2; // 所有传感器的实时数据
|
||||
}
|
||||
}
|
||||
|
||||
// 获取传感器数据指令(流模式)
|
||||
message GetSensorDataStreamCommand {
|
||||
message Request {
|
||||
CommandHeader.Request header = 1;
|
||||
CommandHeader.Request header = 1; // 通用请求头
|
||||
}
|
||||
|
||||
message Feedback {
|
||||
CommandHeader.Feedback header = 1;
|
||||
repeated SensorData sensor = 2;//所有传感器的数据
|
||||
CommandHeader.Feedback header = 1; // 通用响应头
|
||||
repeated SensorData sensor = 2; // 流式返回的传感器数据
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user