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

149 lines
3.7 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;
}
message SpeedLPlannerConfig {
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;
}
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;
}
}
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;
}