You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ROS2 Iron中Gazebo运行UR10e时gazebo_ros2_control参数解析失败求助

ROS2 Iron + Gazebo11中UR10e机械臂ros2_control启动报错解决

报错信息

[gazebo-1] [ERROR] [1689265614.750035709] [gazebo_ros2_control]: parser error Couldn't parse params file: '--params-file $(find sim)/Controller_config.yaml'. 
Error: Error opening YAML file, at ./src/parser.c:271, at ./src/rcl/arguments.c:406

我的配置片段

Setup.py片段

setup(
    name=package_name,
    version='0.0.0',
    packages=find_packages(exclude=['test']),
    data_files=[
        ('share/ament_index/resource_index/packages',
            ['resource/' + package_name]),
        ('share/' + package_name, ['package.xml', 'launch/simulation.launch.py']),
        ('share/' + package_name, ['package.xml', 'description/urdf/ur10e.urdf']),
        ('share/' + package_name, ['package.xml', 'description/urdf/config/Controller_config.yaml']),
    ],
)

Controller_config.yaml片段

controller_manager:
  ros_parameters:
    update_rate: 100 #Hz

    joint_trajectory_controller:
      type: joint_trajectory_controller/JointTrajectoryController  

    joint_state_broadcaster:
      type: joint_state_broadcaster/JointStateBroadcaster

joint_trajectory_controller:  
  ros_parameters:
    joints:
- base_joint
  - shoulder_pan_joint
  - shoulder_lift_joint
  - elbow_joint
  - wrist_1_joint
  - wrist_2_joint
  - wrist_3_joint
interface_name:
  - position
state_interfaces:
  - position
  - velocity 

URDF中gazebo_ros2_control插件片段

<gazebo>
  <plugin filename="libgazebo_ros2_control.so" name="gazebo_ros2_control">
    <parameters>$(find sim)/Controller_config.yaml</parameters>
  </plugin>
</gazebo>

解决步骤

1. 修复URDF路径解析问题

ROS2中URDF不支持$(find)命令,改用package://协议指定文件路径,路径需与Setup.py中YAML的安装位置对应。

2. 调整Setup.py的文件安装结构

移除重复的package.xml条目,将不同类型文件分类安装到对应子目录,避免路径混乱:

setup(
    name=package_name,
    version='0.0.0',
    packages=find_packages(exclude=['test']),
    data_files=[
        ('share/ament_index/resource_index/packages',
            ['resource/' + package_name]),
        ('share/' + package_name, ['package.xml']),
        ('share/' + package_name + '/launch', ['launch/simulation.launch.py']),
        ('share/' + package_name + '/urdf', ['description/urdf/ur10e.urdf']),
        ('share/' + package_name + '/config', ['description/urdf/config/Controller_config.yaml']),
    ],
)

调整后,URDF中的路径需改为:

<parameters>package://sim/config/Controller_config.yaml</parameters>

3. 修正YAML语法错误

YAML对缩进要求严格,修复嵌套层级和缩进问题:

controller_manager:
  ros_parameters:
    update_rate: 100 #Hz

    joint_trajectory_controller:
      type: joint_trajectory_controller/JointTrajectoryController  

    joint_state_broadcaster:
      type: joint_state_broadcaster/JointStateBroadcaster

joint_trajectory_controller:  
  ros_parameters:
    joints:
      - base_joint
      - shoulder_pan_joint
      - shoulder_lift_joint
      - elbow_joint
      - wrist_1_joint
      - wrist_2_joint
      - wrist_3_joint
    interface_name:
      - position
    state_interfaces:
      - position
      - velocity 

4. 重新编译并测试

执行以下命令完成编译与启动:

colcon build --packages-select sim
source install/setup.bash
ros2 launch sim simulation.launch.py

内容的提问来源于stack exchange,提问作者Fischdog24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 13:32:53