北京建设信源公司网站,提供设计的的网站,可以免费注册的网站,企业短视频广告UR机械臂学习#xff08;5-3#xff09;#xff1a;驱动ur机械臂实物——问题及解决_error: 鈥榰r_msgs::setpayloadrequest {aka struct ur__冰激凌啊的博客-程序员宝宝 - 程序员宝宝 (cxybb.com) 问题5 Action client not connected: scaled_pos_traj_controller/follow_j…UR机械臂学习5-3驱动ur机械臂实物——问题及解决_error: 鈥榰r_msgs::setpayloadrequest {aka struct ur__冰激凌啊的博客-程序员宝宝 - 程序员宝宝 (cxybb.com) 问题5 Action client not connected: scaled_pos_traj_controller/follow_joint_trajectory [ WARN] [1624863539.203489625, 57.864000000]: Waiting for scaled_pos_joint_traj_controller/follow_joint_trajectory to come up
[ WARN] [1624863545.212986404, 63.864000000]: Waiting for scaled_pos_joint_traj_controller/follow_joint_trajectory to come up
[ERROR] [1624863551.221038108, 69.865000000]: Action client not connected: scaled_pos_joint_traj_controller/follow_joint_trajectory解决
这个是个很大的坑。
首先要确定的是在/home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/config下的ros_controllers.yaml里 name需要为scaled_pos_traj_controller因为如果不是这个名字是无法驱动实物机械臂的。
下面说原因 看下面这张图bringup启动的时候他启动的是scaled_pos_traj_controller控制器 然后再回来说为什么启动gazebo然后再启动moveit的时候会报这个错
看下面这张图
/home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/config下的ros_controllers.yaml 和/home/guyue/ur_ws/src/fmauch_universal_robot/ur_gazebo/config下的ur3_controllers.yaml
这两个文件夹对这个控制器的名字不一样 现在有两种思路 一种是把这两个文件里关于控制器的名称改为一样的另一种是在某个文件里把这两个控制器连接在一起 先说第一种思路
如果把moveit下面的ros_controllers.yaml里的scaled_pos_traj_controller改为pos_traj_controller
gazebo和所有仿真都正常但在驱动实物时又会出现问题因为ur_ros_driver驱动里面所有控制器的名字都是scaled_pos_traj_controller 而如果把gazebo下面的ur3_controllers.yaml里的pos_traj_controller改为scaled_pos_traj_controller 在启动gazebo时就会报错因为/home/guyue/ur_ws/src/fmauch_universal_robot/ur_gazebo/launch文件夹下的ur3_bringup.launch也同样将这个控制器的名字命名为pos_traj_controller
如果说ur3_controllers.yaml和ur3_bringup.launch里的名字都修改启动gazebo是不报错了但启动moveit时还是会报最开始的那个错误。
所以我们因当采取的是第二种思路
也就是修改两者的连接文件
我们在moveit中启动的是ur3_moveit_planning_execution.launchl文件所以从这个文件开始看起。 在这个里面就提到了如果sim参数为true就连接两个控制器但是这里面对于gazebo的名字为arm_controller而不是现在所使用的pos_traj_controller所以问题应该就出现在这里了。
所以最后应该是修改/home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/launch下的ur3_moveit_planning_execution.launchl
修改后应该如下图所示 因为gazebo和moveit里的分别是
# moveit
controller_list:
- name: scaled_pos_joint_traj_controlleraction_ns: follow_joint_trajectorytype: FollowJointTrajectoryjoints:- shoulder_pan_joint- shoulder_lift_joint- elbow_joint- wrist_1_joint- wrist_2_joint- wrist_3_joint# gazebo
pos_joint_traj_controller:type: position_controllers/JointTrajectoryControllerjoints: robot_joints- shoulder_pan_joint- shoulder_lift_joint- elbow_joint- wrist_1_joint- wrist_2_joint- wrist_3_joint所以修改ur3_moveit_planning_execution.launchl为
remap if$(arg sim) from/scaled_pos_joint_traj_controller/follow_joint_trajectory to/pos_joint_traj_controller/follow_joint_trajectory/最后因为ur的安装包和驱动一直在更新所以如果这种方法也没用了可以注意下面几个文件里控制器的名称是否一致 gazebo里的文件 /home/guyue/ur_ws/src/fmauch_universal_robot/ur_gazebo/config文件夹下的ur3_controllers.yaml/home/guyue/ur_ws/src/fmauch_universal_robot/ur_gazebo/launch文件夹下的ur3_bringup.launch moveit的文件 /home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/config文件夹下的ros_controllers.yaml/home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/launch文件夹下的ur3_moveit_planning_execution.launch
最后的最后2021年6月下载的fmauch版moveit的部分不需要修改只需要修改gazebo部分也就是说只驱动真实机械臂不仿真是没有任何问题的不需要任何修改