2025-08-22 16:57:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
syntax = "proto3";
|
|
|
|
|
|
package cmvr.api;
|
|
|
|
|
|
import "cmvr/api/common.proto";
|
|
|
|
|
|
|
|
|
|
|
|
message JointCmd {
|
|
|
|
|
|
string joint_name = 1; // 关节名称
|
|
|
|
|
|
double rad = 2; // 弧度
|
|
|
|
|
|
double vel = 3; // 角速度,rad/s
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
message MoveJ{
|
|
|
|
|
|
message Request{
|
|
|
|
|
|
CommandHeader.Request header = 1;
|
|
|
|
|
|
repeated JointCmd cmds = 2;
|
|
|
|
|
|
double vel = 3;
|
|
|
|
|
|
double acc = 4;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
message Response{
|
|
|
|
|
|
CommandHeader.Feedback header= 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-10-09 16:31:21 +08:00
|
|
|
|
// 关节状态消息
|
|
|
|
|
|
message JointState {
|
|
|
|
|
|
repeated string name = 1; // 关节名称
|
|
|
|
|
|
repeated double position = 2; // 关节位置
|
|
|
|
|
|
repeated double velocity = 3; // 可选:关节速度
|
|
|
|
|
|
repeated double effort = 4; // 可选:关节力矩
|
|
|
|
|
|
double timestamp = 5; // 可选:时间戳
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 返回消息
|
|
|
|
|
|
message JointResponse {
|
|
|
|
|
|
CommandHeader.Feedback header= 1;
|
|
|
|
|
|
repeated JointState state = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 请求消息(可选)
|
|
|
|
|
|
message JointRequest {
|
|
|
|
|
|
CommandHeader.Request header = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-22 16:57:29 +08:00
|
|
|
|
service HumanoidRobotService{
|
|
|
|
|
|
rpc torqueOff(CommandHeader.Request) returns (CommandHeader.Feedback);
|
|
|
|
|
|
rpc torqueOn(CommandHeader.Request) returns (CommandHeader.Feedback);
|
|
|
|
|
|
rpc moveJ(MoveJ.Request) returns (MoveJ.Response);
|
2025-10-09 16:31:21 +08:00
|
|
|
|
rpc getJointState(JointRequest) returns (JointResponse);
|
2025-08-22 16:57:29 +08:00
|
|
|
|
}
|