cmvr-es/protos/cmvr/api/dexhand_command.proto
2025-08-21 13:56:39 +08:00

149 lines
3.9 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;//所有传感器的数据
}
}