:curobo配置文件)
yaml配置文件完整定义了机器人的物理属性与规划规则。cuRobo 机器人配置主要包括以下几个方面资产路径 → 从哪加载模型URDF/mesh运动学链 → base_link / ee_link碰撞检测 → 碰撞 link / 球体近似 / 自碰撞忽略 / mesh 声明关节锁定 → 哪些关节固定不动虚拟扩展 → 附加夹具/抓取物的碰撞体C-space 参数 → 关节顺序 / 安全姿态 / 运动代价权重 / 平滑约束curobo官方配置说明Configuring a New Robot - cuRoborobot_cfg: kinematics: # 1. 资产路径 use_usd_kinematics: False # 是否使用 USD 文件进行运动学计算 usd_path: franka.usda # USD 场景文件路径 usd_robot_root: /World/robot3.usda # USD 中机器人根节点 isaac_usd_path: # Isaac Sim自带资产库里的USD路径 usd_flip_joints: {} # 用 USD 解析关节时常用用来指定某些关节轴向/方向需要翻转 usd_flip_joint_limits: [] # 翻转关节的 限制范围 urdf_path: franka.urdf # URDF 文件路径 asset_root_path: ${ASSETS_DIR}/miscs/curobo/robot3/meshes # 机器人 mesh 资源目录 external_asset_path: null # 外部资产路径 # 2. 运动学链定义 base_link: robot_base # 运动学计算的“根 link” ee_link: ee_left # 定义运动学求解的终点即末端执行器 # link_names: [ee_left] # 额外跟踪的 link # 3. 虚拟扩展夹具/工具/抓取物 # 作用 在运动学树上 虚拟增加 一个 link比如夹爪抓取的物体。这样 cuRobo 在做轨迹规划时会把被抓物体也纳入碰撞检测用 4 个球体近似避免规划出物体穿模的轨迹。 extra_links: { attached_object:{ parent_link_name: ee_left , link_name: attached_object, joint_name: attach_joint , fixed_transform: [0,0,0,1,0,0,0], # 零位移 单位四元数”即完全重合不偏移 joint_type:FIXED } } extra_collision_spheres: {attached_object: 4} # 生成4 个碰撞球用于碰撞检测 # 4. 碰撞检测 collision_link_names: # 参与碰撞检测的 link 列表 [ waist_link_1, waist_link_2, waist_link_3, body, neck_link, head, base_link_left, link1_left, link2_left, link3_left, link4_left, link5_left, link6_left, link7_left, ] collision_spheres: ${ASSETS_DIR}/miscs/curobo/robot3/spheres/collision_clean.yml collision_sphere_buffer: 0.005 # 碰撞裕量(buffer)碰撞球膨胀 5mm, 值越大越保守也越容易“无解” self_collision_ignore: # 自碰撞忽略,相邻 link需要忽略 { head: [ body,waist_link_3,waist_link_2,base_link_left,link1_left,link2_left,link3_left ], body: [ waist_link_3,waist_link_2,base_link_left,link1_left,link2_left,link3_left ], neck_link: [body, head, base_link_left], waist_link_3: [ waist_link_2 ], waist_link_2: [ waist_link_1 ], link1_left: [ link2_left,link3_left,link4_left,base_link_left,body,head,waist_link_3,waist_link_2 ], link2_left: [ link3_left,link4_left,link5_left,base_link_left,body,head,waist_link_3,waist_link_2 ], link3_left: [ link4_left,body,head,waist_link_3,waist_link_2 ], link4_left: [ link5_left,head,waist_link_2 ], link5_left: [ link6_left ], link6_left: [ link7_left,attached_object ], link7_left: [ ee_left, attached_object, ], ee_left: [attached_object] } self_collision_buffer: {} # 自碰撞的额外 buffer/阈值配置 use_global_cumul: True mesh_link_names: # 哪些 link 关联到 mesh 资产用于可视化/几何相关处理/某些工具链 [ waist_link_1, waist_link_2, waist_link_3, body, neck_link, head, link1_left,link2_left,link3_left,link4_left,link5_left,link6_left,link7_left,ee_left, ] # 5. 关节锁定 # 某些关节固定角度相当于从可动 DOF 中“移除”这些关节例如移动基座/躯干先固定一个姿态只规划手臂 lock_joints: { neck_yaw: 0, neck_pitch: -0.785, waist_pitch_1: -0.7, # 对应-30度(-0.52) 60度(1.05) waist_pitch_2: 1.22, # 对应60度(1.05) 70度(1.22) waist_pitch_3: -0.7, # 对应-40度(-0.7) waist_yaw: 0, # 腰部固定不动 } # 6、构型空间C-space参数 cspace: joint_names: # cuRobo “受控关节”的顺序列表 [ neck_yaw, neck_pitch, waist_pitch_1, waist_pitch_2, waist_pitch_3, waist_yaw, joint1_left, joint2_left, joint3_left, joint4_left, joint5_left, joint6_left, joint7_left, ] # List[str] retract_config: # 规划初始化姿态失败时的 安全 姿态 [ 0, -0.785, -0.7, 1.22, -0.7, 0, 0.523, -1.22, -2.7, -1.483, 2.355, 1, 0.49 ] # List[float] null_space_weight: # 越倾向于把该关节“拉回参考姿态” [ 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] # List[str] cspace_distance_weight: # 值越大更“难动”被强烈惩罚 [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 10, 10, 10, 7, 5, 5, 10.0 ] # List[str] max_jerk: 500.0 # 对“jerk加加速度”的约束/上限相关参数使轨迹更平滑 max_acceleration: 15.0 # 对“加速度”的约束/上限相关参数。