move group with ur5, pos_based_pos_traj_controller FAILED

asked 2020-02-02 06:56:17 -0500

zahid990170 gravatar image

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

edit retag flag offensive close merge delete

Comments

Not an answer, but:

roslaunch ur_modern_driver [..]

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.

gvdhoorn gravatar image gvdhoorn  ( 2020-02-02 10:12:52 -0500 )edit

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.

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.

gvdhoorn gravatar image gvdhoorn  ( 2020-02-02 10:14:34 -0500 )edit

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 use ur_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.

zahid990170 gravatar image zahid990170  ( 2020-02-03 05:14:52 -0500 )edit
1

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 over ur_modern_driver.

gvdhoorn gravatar image gvdhoorn  ( 2020-02-03 05:41:45 -0500 )edit