Moveit错误:Controller xxx failed with error GOAL_TOLERANCE_VIOLATED

在使用Moveit的过程中,有时我们会看到机器人会报这个错:Controller xxx failed with error GOAL_TOLERANCE_VIOLATED。从报错上看是机器人没有到达指定位置,但是在Gazebo中能看到机器人已经到达指定位置,这是由于没有设置stopped_velocity_tolerance参数的原因,具体添加位置为gazebo端控制器配置:

    cog_controller:
        type:  position_controllers/JointTrajectoryController
        joints:
            - x_center_control_joint
            - y_center_control_joint
        gains:
            x_center_control_joint: {p: 100.0, i: 0.1, d: 1.0}
            y_center_control_joint: {p: 100.0, i: 0.1, d: 1.0}
        constraints:
            stopped_velocity_tolerance: 0.0
stopped_velocity_tolerance的初始值为0.01。moveit会在机器人速度小于0.01时就认定执行完成了。当真实位置和目标位置差值大于设定好的误差时,就会出现这个错误,所以我们可以选择将stopped_velocity_tolerance参数设置为0,这样报错就解决了。

你可能感兴趣的:(Moveit,机器人)