168 lines
4.8 KiB
Protocol Buffer
168 lines
4.8 KiB
Protocol Buffer
syntax = "proto3";
|
||
package cmvr.config;
|
||
|
||
import "cmvr/config/lawba_ik_config.proto";
|
||
import "cmvr/config/pinocchio_dls_ik_config.proto";
|
||
import "cmvr/config/pinocchio_qp_ik_config.proto";
|
||
import "cmvr/config/srs_ik_config.proto";
|
||
import "cmvr/config/cartesian_motion_validation_config.proto";
|
||
|
||
enum ToppraPathType {
|
||
TOPPRA_PATH_TYPE_UNKNOWN = 0;
|
||
TOPPRA_PATH_TYPE_LINEAR = 1;
|
||
TOPPRA_PATH_TYPE_CUBIC_HERMITE = 2;
|
||
TOPPRA_PATH_TYPE_QUINTIC = 3;
|
||
TOPPRA_PATH_TYPE_NATURAL = 4;
|
||
}
|
||
|
||
message MotorRobotArmBackendConfig {
|
||
string motor_system_id = 2;
|
||
int32 dof = 3;
|
||
repeated string joint_names = 4;
|
||
int32 upd_freq = 5;
|
||
int32 buffer_size = 6;
|
||
double default_vel = 7;
|
||
double default_acc = 8;
|
||
repeated string motor_group_ids = 9;
|
||
}
|
||
|
||
enum VendorRobotArmBrand {
|
||
VENDOR_ROBOT_ARM_BRAND_UNKNOWN = 0;
|
||
VENDOR_ROBOT_ARM_BRAND_AUBO_ARM = 1;
|
||
VENDOR_ROBOT_ARM_BRAND_HUAYAN_ARM = 2;
|
||
}
|
||
|
||
message VendorRobotArmBackendConfig {
|
||
VendorRobotArmBrand brand = 1;
|
||
string ip = 2;
|
||
int32 port = 3;
|
||
string model = 4;
|
||
int32 dof = 5;
|
||
repeated string joint_names = 6;
|
||
string base_frame = 7;
|
||
string tool_frame = 8;
|
||
string username = 9;
|
||
string password = 10;
|
||
// 仅在检测到一次真实硬件急停并确认急停输入已释放后,自动上电并使能。
|
||
// 默认 false;普通启动、普通掉电和软件急停不会触发自动使能。
|
||
bool auto_enable = 11;
|
||
}
|
||
|
||
message SpeedLPlannerConfig {
|
||
// Default true: preserve acceleration through same-axis velocity reversal.
|
||
optional bool continuous_linear_reversal = 21;
|
||
// Arm-level speedL limits. Command requests may lower, but not raise them.
|
||
// Linear units: m/s, m/s^2, m/s^3. Angular units: rad/s, rad/s^2, rad/s^3.
|
||
// Unset/nonpositive values use the planner defaults.
|
||
double linear_velocity_max = 1;
|
||
double linear_acceleration_max = 2;
|
||
double linear_jerk_max = 3;
|
||
double angular_velocity_max = 4;
|
||
double angular_acceleration_max = 5;
|
||
double angular_jerk_max = 6;
|
||
double linear_target_replan_threshold = 8;
|
||
double angular_target_replan_threshold = 9;
|
||
double linear_reverse_cos_threshold = 10;
|
||
double linear_reverse_switch_speed_threshold = 11;
|
||
optional bool enforce_joint_acceleration_limits = 17;
|
||
CartesianLineDeviationCheckConfig line_deviation_check = 18;
|
||
JointVelocityCheckConfig joint_velocity_check = 19;
|
||
CartesianVelocityFeasibilityCheckConfig cartesian_velocity_feasibility_check = 20;
|
||
}
|
||
|
||
message CartesianVelocityControllerConfig {
|
||
double control_period_s = 1;
|
||
double stop_twist_norm = 2;
|
||
double stop_command_velocity_norm = 3;
|
||
double stop_measured_velocity_norm = 4;
|
||
double stop_acceleration = 5;
|
||
// 等待 Cartesian 速度运动停止的最长时间,单位为秒。
|
||
optional double stop_timeout_s = 6;
|
||
}
|
||
|
||
message ToppraJointMotionPlannerConfig {
|
||
ToppraPathType path_type = 1;
|
||
double sample_period_s = 2;
|
||
int32 grid_size = 3;
|
||
int32 high_grid_size = 4;
|
||
}
|
||
|
||
message MoveJConfig {
|
||
oneof algorithm {
|
||
ToppraJointMotionPlannerConfig toppra_joint_motion_planner = 1;
|
||
}
|
||
|
||
// MoveJ 轨迹发送完成后,等待关节实际状态稳定的最长时间,单位为秒。
|
||
optional double settle_timeout_s = 2;
|
||
// MoveJ 完成时允许的最大关节位置误差,单位为弧度。
|
||
optional double settle_position_tolerance_rad = 3;
|
||
// MoveJ 完成时允许的最大关节速度,单位为弧度/秒。
|
||
optional double settle_velocity_tolerance_rad_s = 4;
|
||
// 位置和速度连续满足条件的采样次数。
|
||
optional int32 settle_stable_sample_count = 5;
|
||
}
|
||
|
||
message MoveLPlannerConfig {
|
||
double sample_period_s = 1;
|
||
double position_gain = 2;
|
||
double rotation_gain = 3;
|
||
CartesianLineDeviationCheckConfig line_deviation_check = 4;
|
||
JointContinuityCheckConfig joint_continuity_check = 5;
|
||
CartesianStepFeasibilityCheckConfig cartesian_step_feasibility_check = 6;
|
||
}
|
||
|
||
message MoveLConfig {
|
||
oneof algorithm {
|
||
MoveLPlannerConfig pinocchio_cartesian_motion_planner = 1;
|
||
}
|
||
}
|
||
|
||
message SpeedLControllerConfig {
|
||
oneof algorithm {
|
||
CartesianVelocityControllerConfig cartesian_velocity_controller = 1;
|
||
}
|
||
}
|
||
|
||
message SpeedLConfig {
|
||
oneof algorithm {
|
||
SpeedLPlannerConfig pinocchio_cartesian_motion_planner = 1;
|
||
}
|
||
|
||
SpeedLControllerConfig speed_l_controller = 10;
|
||
}
|
||
|
||
message ArmKinematicsConfig {
|
||
oneof algorithm {
|
||
PinocchioDlsIKConfig pinocchio_dls_ik_solver = 10;
|
||
PinocchioQpIKConfig pinocchio_qp_ik_solver = 11;
|
||
SrsIKConfig srs_ik_solver = 12;
|
||
LawbaIKConfig lawba_ik_solver = 13;
|
||
}
|
||
}
|
||
|
||
message ArmMotionConfig {
|
||
MoveJConfig move_j = 1;
|
||
MoveLConfig move_l = 2;
|
||
SpeedLConfig speed_l = 4;
|
||
}
|
||
|
||
message RobotArmConfig {
|
||
string id = 1;
|
||
|
||
oneof backend {
|
||
MotorRobotArmBackendConfig motor = 10;
|
||
VendorRobotArmBackendConfig vendor = 11;
|
||
}
|
||
|
||
ArmKinematicsConfig kinematics = 20;
|
||
ArmMotionConfig motion = 21;
|
||
}
|
||
|
||
message ArmConfig {
|
||
repeated RobotArmConfig robot_arms = 1;
|
||
}
|
||
|
||
message ArmRootConfig {
|
||
ArmConfig arm = 1;
|
||
}
|