cmvr-es/protos/cmvr/config/grpc_server_config/grpc_server_config.proto
xtkuang af67751937 feat: add safe UME teleoperation framework
Add the UME RobotArm and Damiao CAN-FD path, migrate the legacy UME controller, and introduce guarded cross-machine gRPC teleoperation with lifecycle, authority, configuration, and test coverage.
2026-07-31 08:48:04 +08:00

43 lines
1.6 KiB
Protocol Buffer

syntax = "proto3";
package cmvr.config;
message ArmTeleopBackendConfig {
// Two independent gates are required: this service-level switch and the
// RobotArm implementation's teleop group-servo capability.
bool enable = 1;
// Also becomes RobotManifest.robot_id and the process-wide control lease
// resource. It must exactly match RobotArm.id().
string device_id = 2;
string model_sha256 = 3;
string calibration_sha256 = 4;
string base_frame = 5;
string tool_frame = 6;
double servo_period_s = 7;
// Maximum wall time allowed for one RobotArm::servoJ call.
uint32 max_apply_duration_us = 8;
// Omission is interpreted as true by the backend. Explicit false is intended
// only for simulation and independently supervised commissioning.
optional bool require_powered = 9;
// Bounds the first target relative to the cached measured position.
double max_initial_position_step_rad = 10;
// Bounds every later target relative to the last accepted target.
double max_position_step_rad = 11;
}
message GRPCServerConfig {
string host = 1;
string port = 2;
bool enable_reflection = 3;
string id = 4;
// Bounds the continuity-oriented media queue before the gRPC stream skips
// ahead and waits for a new key frame. Zero uses the service default.
uint32 camera_stream_max_pending_frames = 5;
// Frames older than this monotonic age are not sent. Zero uses the service
// default so configurations written before these fields remain low-latency.
uint32 camera_stream_max_frame_age_ms = 6;
ArmTeleopBackendConfig arm_teleop_backend = 7;
}
message GRPCServerRootConfig {
GRPCServerConfig grpc_server = 1;
}