cmvr-es/protos/cmvr/config/arm_config/arm_config.proto

168 lines
4.8 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";
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;
}