syntax = "proto3"; package cmvr.config; enum JointLimitSource { JOINT_LIMIT_SOURCE_UNSPECIFIED = 0; JOINT_LIMIT_SOURCE_URDF = 1; JOINT_LIMIT_SOURCE_CUSTOM = 2; } message JointLimitConfig { string joint_name = 1; double q_lb = 2; double q_ub = 3; double qd = 4; double qdd = 5; } message JointLimitsConfig { JointLimitSource source = 1; repeated JointLimitConfig joints = 2; string urdf_path = 3; bool enable = 4; } message JointSoftLimitConfig { bool enable = 1; double margin_ratio = 2; double min_margin_rad = 3; } message JointLimitAvoidanceConfig { bool enable = 1; double gain = 2; double margin_ratio = 3; double max_push = 4; double weight = 5; } message JointLimitPolicyConfig { JointLimitsConfig limits = 1; JointSoftLimitConfig soft_limit = 2; JointLimitAvoidanceConfig avoidance = 3; }