鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    关节轨迹控制器加载yaml参数问题

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    ros2 humble 机械臂 ros2 control controller
    1
    1
    33
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 8
      848863325
      最后由 编辑

      机械臂关节采用JointTrajectoryController控制器,但是运行时总是无法加载yaml文件中相关参数

      controller_manager:
        ros__parameters:
          update_rate: 100  # Hz
      
          dm_joint_state_broadcaster: 
              type: joint_state_broadcaster/JointStateBroadcaster
      
          dm_arm_controller:
              type: joint_trajectory_controller/JointTrajectoryController
              joints:
                - joint1
                - joint2
                - joint3
                - joint4
                - joint5
                - joint6
      
              command_interfaces:
                - position
                - velocity
                
              state_interfaces:
                - position
                - velocity
      
              action_name: follow_joint_trajectory
              interpolation_method: splines
      
              constraints:
                stopped_velocity_tolerance: 0.05
                goal_time: 0.0
                joint1:
                  trajectory: 0.1
                  goal: 0.05
                joint2:
                  trajectory: 0.1
                  goal: 0.05
                joint3:
                  trajectory: 0.1
                  goal: 0.05
                joint4:
                  trajectory: 0.1
                  goal: 0.05
                joint5:
                  trajectory: 0.1
                  goal: 0.05
                joint6:
                  trajectory: 0.1
                  goal: 0.05
      
          dm_hand_controller:
              type: joint_trajectory_controller/JointTrajectoryController
              joints:
                - joint7
      
              command_interfaces:
                - position
                - velocity
      
              state_interfaces:
                - position
                - velocity
      
              action_name: follow_joint_trajectory
              interpolation_method: splines
              
              constraints:
                stopped_velocity_tolerance: 0.05
                goal_time: 0.0
                joint7:
                  trajectory: 0.1
                  goal: 0.05
      

      launch文件中加载参数

      controller_manager_node = launch_ros.actions.Node(
              package='controller_manager',
              executable='ros2_control_node',
              name='controller_manager',
              parameters=[
                  {'robot_description': robot_description_value}, 
                  ros2_control_yaml_path
              ],
              output='screen'
          )
      

      启动信息

      [INFO] [launch]: All log files can be found below /home/hizaml/.ros/log/2025-07-09-22-24-00-351696-Hizam-82561
      [INFO] [launch]: Default logging verbosity is set to INFO
      [INFO] [robot_state_publisher-1]: process started with pid [82563]
      [INFO] [rviz2-2]: process started with pid [82565]
      [INFO] [ros2_control_node-3]: process started with pid [82567]
      [robot_state_publisher-1] [INFO] [1752071040.539492469] [robot_state_publisher]: got segment base_link
      [robot_state_publisher-1] [INFO] [1752071040.539638296] [robot_state_publisher]: got segment dummy
      [robot_state_publisher-1] [INFO] [1752071040.539650469] [robot_state_publisher]: got segment link1
      [robot_state_publisher-1] [INFO] [1752071040.539655158] [robot_state_publisher]: got segment link2
      [robot_state_publisher-1] [INFO] [1752071040.539659015] [robot_state_publisher]: got segment link3
      [robot_state_publisher-1] [INFO] [1752071040.539662822] [robot_state_publisher]: got segment link4
      [robot_state_publisher-1] [INFO] [1752071040.539666589] [robot_state_publisher]: got segment link5
      [robot_state_publisher-1] [INFO] [1752071040.539670186] [robot_state_publisher]: got segment link6
      [robot_state_publisher-1] [INFO] [1752071040.539673713] [robot_state_publisher]: got segment link7_1
      [robot_state_publisher-1] [INFO] [1752071040.539677460] [robot_state_publisher]: got segment link7_2
      [robot_state_publisher-1] [INFO] [1752071040.539681137] [robot_state_publisher]: got segment link_hand
      [rviz2-2] QStandardPaths: wrong permissions on runtime directory /run/user/1000/, 0755 instead of 0700
      [ros2_control_node-3] [WARN] [1752071040.549684168] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use '~/robot_description' topic from 'robot_state_publisher' instead.
      [ros2_control_node-3] [INFO] [1752071040.550035775] [resource_manager]: Loading hardware 'DmArmHardware' 
      [ros2_control_node-3] [INFO] [1752071040.550712710] [resource_manager]: Initialize hardware 'DmArmHardware' 
      [ros2_control_node-3] [INFO] [1752071040.550881711] [DmArmHardware]: 对了,对了!!!关节数为:7
      [ros2_control_node-3] [INFO] [1752071040.553177870] [DmArmHardware]: hardware initialize successfully
      [ros2_control_node-3] [INFO] [1752071040.553246200] [resource_manager]: Successful initialization of hardware 'DmArmHardware'
      [ros2_control_node-3] [INFO] [1752071040.553414089] [resource_manager]: 'configure' hardware 'DmArmHardware' 
      [ros2_control_node-3] [INFO] [1752071040.553424699] [resource_manager]: Successful 'configure' of hardware 'DmArmHardware'
      [ros2_control_node-3] [INFO] [1752071040.553430690] [resource_manager]: 'activate' hardware 'DmArmHardware' 
      [ros2_control_node-3] [INFO] [1752071041.254576291] [DmArmHardware]: all motors enable successfully
      [ros2_control_node-3] [INFO] [1752071041.254646475] [resource_manager]: Successful 'activate' of hardware 'DmArmHardware'
      [ros2_control_node-3] [INFO] [1752071041.261977552] [controller_manager]: update rate is 100 Hz
      [ros2_control_node-3] [INFO] [1752071041.262037335] [controller_manager]: Spawning controller_manager RT thread with scheduler priority: 50
      [ros2_control_node-3] [WARN] [1752071041.262176690] [controller_manager]: No real-time kernel detected on this system. See [https://control.ros.org/master/doc/ros2_control/controller_manager/doc/userdoc.html] for details on how to enable realtime scheduling.
      [rviz2-2] [INFO] [1752071043.449363084] [rviz2]: Stereo is NOT SUPPORTED
      [rviz2-2] [INFO] [1752071043.449661230] [rviz2]: OpenGl version: 4.2 (GLSL 4.2)
      [rviz2-2] [INFO] [1752071043.506870636] [rviz2]: Stereo is NOT SUPPORTED
      [INFO] [spawner-4]: process started with pid [82676]
      [ros2_control_node-3] [INFO] [1752071044.152492026] [controller_manager]: Loading controller 'dm_joint_state_broadcaster'
      [ros2_control_node-3] [WARN] [1752071044.157073422] [rcl.logging_rosout]: Publisher already registered for provided node name. If this is due to multiple nodes with the same name then all logs for that logger name will go out over the existing publisher. As soon as any node with that name is destructed it will unregister the publisher, preventing any further logs for that name from being published on the rosout topic.
      [spawner-4] [INFO] [1752071044.202711759] [spawner_dm_joint_state_broadcaster]: Loaded dm_joint_state_broadcaster
      [ros2_control_node-3] [INFO] [1752071044.206101538] [controller_manager]: Configuring controller 'dm_joint_state_broadcaster'
      [ros2_control_node-3] [INFO] [1752071044.206280608] [controller_manager]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published
      [spawner-4] [INFO] [1752071044.244925844] [spawner_dm_joint_state_broadcaster]: Configured and activated dm_joint_state_broadcaster
      [INFO] [spawner-4]: process has finished cleanly [pid 82676]
      [INFO] [spawner-5]: process started with pid [82708]
      [ros2_control_node-3] [INFO] [1752071046.141788692] [controller_manager]: Loading controller 'dm_arm_controller'
      [ros2_control_node-3] [WARN] [1752071046.148223692] [rcl.logging_rosout]: Publisher already registered for provided node name. If this is due to multiple nodes with the same name then all logs for that logger name will go out over the existing publisher. As soon as any node with that name is destructed it will unregister the publisher, preventing any further logs for that name from being published on the rosout topic.
      [ros2_control_node-3] [WARN] [1752071046.163136248] [controller_manager]: [Deprecated]: "allow_nonzero_velocity_at_trajectory_end" is set to true. The default behavior will change to false.
      [spawner-5] [INFO] [1752071046.188710095] [spawner_dm_arm_controller]: Loaded dm_arm_controller
      [ros2_control_node-3] [INFO] [1752071046.190602551] [controller_manager]: Configuring controller 'dm_arm_controller'
      [ros2_control_node-3] [WARN] [1752071046.190727137] [controller_manager]: 'joints' parameter is empty.
      [ros2_control_node-3] [INFO] [1752071046.190740211] [controller_manager]: No specific joint names are used for command interfaces. Using 'joints' parameter.
      [ros2_control_node-3] [ERROR] [1752071046.190745992] [controller_manager]: 'command_interfaces' parameter is empty.
      [ros2_control_node-3] [ERROR] [1752071046.190754288] [controller_manager]: After configuring, controller 'dm_arm_controller' is in state 'unconfigured' , expected inactive.
      [spawner-5] [ERROR] [1752071046.191433815] [spawner_dm_arm_controller]: Failed to configure controller
      [ERROR] [spawner-5]: process has died [pid 82708, exit code 1, cmd '/opt/ros/humble/lib/controller_manager/spawner dm_arm_controller --controller-manager controller_manager --ros-args'].
      [INFO] [spawner-6]: process started with pid [82725]
      [ros2_control_node-3] [INFO] [1752071047.126284023] [controller_manager]: Loading controller 'dm_hand_controller'
      [ros2_control_node-3] [WARN] [1752071047.126583410] [rcl.logging_rosout]: Publisher already registered for provided node name. If this is due to multiple nodes with the same name then all logs for that logger name will go out over the existing publisher. As soon as any node with that name is destructed it will unregister the publisher, preventing any further logs for that name from being published on the rosout topic.
      [ros2_control_node-3] [WARN] [1752071047.140239527] [controller_manager]: [Deprecated]: "allow_nonzero_velocity_at_trajectory_end" is set to true. The default behavior will change to false.
      [spawner-6] [INFO] [1752071047.157263783] [spawner_dm_hand_controller]: Loaded dm_hand_controller
      [ros2_control_node-3] [INFO] [1752071047.159341579] [controller_manager]: Configuring controller 'dm_hand_controller'
      [ros2_control_node-3] [WARN] [1752071047.159564711] [controller_manager]: 'joints' parameter is empty.
      [ros2_control_node-3] [INFO] [1752071047.159711239] [controller_manager]: No specific joint names are used for command interfaces. Using 'joints' parameter.
      [ros2_control_node-3] [ERROR] [1752071047.159722059] [controller_manager]: 'command_interfaces' parameter is empty.
      [ros2_control_node-3] [ERROR] [1752071047.159741316] [controller_manager]: After configuring, controller 'dm_hand_controller' is in state 'unconfigured' , expected inactive.
      [spawner-6] [ERROR] [1752071047.160704752] [spawner_dm_hand_controller]: Failed to configure controller
      [ERROR] [spawner-6]: process has died [pid 82725, exit code 1, cmd '/opt/ros/humble/lib/controller_manager/spawner dm_hand_controller --controller-manager controller_manager --ros-args'].
      ^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
      [rviz2-2] [INFO] [1752071595.186616144] [rclcpp]: signal_handler(signum=2)
      [robot_state_publisher-1] [INFO] [1752071595.186621174] [rclcpp]: signal_handler(signum=2)
      [ros2_control_node-3] [INFO] [1752071595.186613069] [rclcpp]: signal_handler(signum=2)
      [ros2_control_node-3] [INFO] [1752071595.186994806] [controller_manager]: Shutdown request received....
      [ros2_control_node-3] [INFO] [1752071595.187377965] [controller_manager]: Shutting down all controllers in the controller manager.
      [ros2_control_node-3] [INFO] [1752071595.187514445] [controller_manager]: Deactivating controller 'controller_manager'
      [ros2_control_node-3] [INFO] [1752071595.187616679] [controller_manager]: Shutting down controller 'controller_manager'
      [ros2_control_node-3] [INFO] [1752071595.187846415] [controller_manager]: Shutting down controller 'controller_manager'
      [ros2_control_node-3] [INFO] [1752071595.187911499] [controller_manager]: Shutting down controller 'controller_manager'
      [ros2_control_node-3] [INFO] [1752071595.188175932] [resource_manager]: 'deactivate' hardware 'DmArmHardware' 
      [INFO] [robot_state_publisher-1]: process has finished cleanly [pid 82563]
      [INFO] [rviz2-2]: process has finished cleanly [pid 82565]
      [ros2_control_node-3] [INFO] [1752071595.889474691] [DmArmHardware]: all motors disable successfully
      [ros2_control_node-3] [INFO] [1752071595.889542410] [resource_manager]: Successful 'deactivate' of hardware 'DmArmHardware'
      [ros2_control_node-3] [INFO] [1752071595.889551787] [resource_manager]: 'shutdown' hardware 'DmArmHardware' 
      [ros2_control_node-3] [INFO] [1752071595.889557699] [resource_manager]: Successful 'shutdown' of hardware 'DmArmHardware'
      [ros2_control_node-3] [INFO] [1752071595.889590281] [controller_manager]: Shutting down the controller manager.
      [INFO] [ros2_control_node-3]: process has finished cleanly [pid 82567]```
      code_text
      
      1 条回复 最后回复 回复 引用 0
      • 第一个帖子
        最后一个帖子
      皖ICP备16016415号-7
      Powered by NodeBB | 鱼香ROS