move group with ur5, pos_based_pos_traj_controller FAILED
Hi,
I am using MoveIt!
and move_group_interface
. I am trying to send simple motion plans to a ur5
robotic arm. I use the ros_control
based approach. Even, when I specify very simple motions, i.e., joint-space goal in which I change the position of only a single joint by 10 degrees. I keep getting the following error:
[ WARN] [1580647394.704165459]: Controller pos_based_pos_traj_controllerfailed with error INVALID_GOAL:
[ WARN] [1580647394.704218950]: Controller handle pos_based_pos_traj_controller reports status FAILED
[ INFO] [1580647394.704250449]: Completed trajectory execution with status FAILED ...
[ INFO] [1580647394.704309009]: Execution completed: FAILED
[ INFO] [1580647394.704494557]: ABORTED: Solution found but controller failed during execution
Here is my launch file smp_on_arm.launch
.
<launch>
<include file="$(find ur5_moveit_path_planner)/launch/planning_context.launch" >
<arg name="load_robot_description" value="true" />
</include>
<node
name="joint_state_publisher"
pkg="joint_state_publisher"
type="joint_state_publisher">
<param name="/use_gui" value="false"/>
<!-- <rosparam param="/source_list">[/joint_states]</rosparam> -->
<rosparam param="source_list">[joint_state_controller/JointStateController/joint_states]</rosparam>
</node>
<node
name="robot_state_publisher"
pkg="robot_state_publisher"
type="state_publisher"
/>
<include file="$(find ur5_moveit_path_planner)/launch/moveit_rviz.launch"/>
<!-- Run the main MoveIt! executable with trajectory execution -->
<include file="$(find ur5_moveit_path_planner)/launch/move_group.launch">
<arg name="allow_trajectory_execution" value="true"/>
<arg name="fake_execution" value="false"/>
<arg name="publish_monitored_planning_scene" value="true" />
<arg name="info" value="true"/>
<arg name="debug" value="false"/>
</include>
<include file="$(find ur5_moveit_path_planner)/launch/trajectory_execution.launch.xml" />
<!-- including our own planner -->
<arg
name="option"
default="1"
/>
<node
name="ur5"
pkg="ur5_moveit_path_planner"
type="ur5"
respawn="false"
output="screen"
args="$(arg option)"
/>
</launch>
I use the following launch sequence to send motion plans to the real robotic arm.
roslaunch ur_modern_driver ur5_ros_control.launch robot_ip:="192.168.0.103"
roslaunch ur5_moveit_path_planner smp_on_arm.launch option:="2"
and, the controller.yaml
is as follows.
controller_list:
- name: pos_based_pos_traj_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
joints:
- shoulder_pan_joint
- shoulder_lift_joint
- elbow_joint
- wrist_1_joint
- wrist_2_joint
- wrist_3_joint
what is that I am missing here. thanks for your help.
zahid
Not an answer, but:
Is this a CB3 controller? If so: please migrate to the ur_robot_driver, as
ur_modern_driver
is deprecated and should not be used any longer.It does not matter how "simple" the goal is. The goal is invalid, hence the controller reports that error. Whether it's a crazily complex trajectory or a single point one makes no difference.
You'll have to figure out why your goal is invalid.
hi thank you @gvdhoorn, it is CB3 controller with Polyscope version 3.4.0. I have a certain confusion, on this link here, it says users with Polyscope versions <= 1.8.x could still consider using
ur_modern_driver
. Users with CB3 or e-Series controllers must useur_robot_driver
instead. But, when I check the page for ur_robot_driver, it says: Make sure the controller runs v3.7 or newer for CB3. What about my CB3 controller, version 3.4.0.Upgrading from 3.4 to 3.7 or newer should be possible with any CB3 controller. Unless you have very hard requirements to stay on 3.4, you could consider upgrading to a newer Polyscope version.
Personally I would really recommend using
ur_robot_driver
, as it includes a nr of big improvements overur_modern_driver
.