0
$\begingroup$

Rosanswers logo

Hi, I am trying to set up a python interface for communication with Moveit, but I fail while setting a pose goal. The error message is:

Fail: ABORTED: No motion plan found. No execution attempted.

I guess this is because I haven't set up an end effector. But when I try to set up the last link in kinematic chain as the EEF, the warning message is :

Could not identify parent group for end-effector 'eef'

And I can't set up its own motion group to be it's own parent, since then it gives me an error message. Do I need to create another link, just for it to be a dummy link for the Moveit? This is kind of weird for me, since I can plan the poses in Moveit just fine.

EDIT I attach some of the files:

-srdf

<?xml version="1.0" ?>
<!--This does not replace URDF, and is not an extension of URDF.
    This is a format for representing semantic information about the robot structure.
    A URDF file must exist for this robot as well, where the joints and the links that are referenced are defined
-->
<robot name="Kuka_kr3">
    <!--GROUPS: Representation of a set of joints and links. This can be useful for specifying DOF to plan for, defining arms, end effectors, etc-->
    <!--LINKS: When a link is specified, the parent joint of that link (if it exists) is automatically included-->
    <!--JOINTS: When a joint is specified, the child link of that joint (which will always exist) is automatically included-->
    <!--CHAINS: When a chain is specified, all the links along the chain (including endpoints) are included in the group. Additionally, all the joints that are parents to included links are also included. This means that joints along the chain and the parent joint of the base link are included in the group-->
    <!--SUBGROUPS: Groups can also be formed by referencing to already defined group names-->
    <group name="kuka">
        <chain base_link="dummy" tip_link="link6" />
    </group>
    <group name="eef">
        <link name="link6" />
    </group>
    <!--GROUP STATES: Purpose: Define a named state for a particular group, in terms of joint values. This is useful to define states like 'folded arms'-->
    <group_state name="all_zeros" group="kuka">
        <joint name="joint0" value="-1.0433" />
        <joint name="joint1" value="0.5178" />
        <joint name="joint2" value="-2.1456" />
        <joint name="joint3" value="0" />
        <joint name="joint4" value="-0.5563" />
        <joint name="joint5" value="0.863" />
    </group_state>
    <group_state name="home" group="kuka">
        <joint name="joint0" value="-1.0433" />
        <joint name="joint1" value="0.5178" />
        <joint name="joint2" value="-2.1456" />
        <joint name="joint3" value="0" />
        <joint name="joint4" value="-0.909" />
        <joint name="joint5" value="0" />
    </group_state>
    <!--END EFFECTOR: Purpose: Represent information about an end effector.-->
    <end_effector name="eef" parent_link="link6" group="eef" parent_group="kuka" />
    <!--VIRTUAL JOINT: Purpose: this element defines a virtual joint between a robot link and an external frame of reference (considered fixed with respect to the robot)-->
    <virtual_joint name="fixed_joint" type="fixed" parent_frame="world" child_link="dummy" />
    <!--DISABLE COLLISIONS: By default it is assumed that any link of the robot could potentially come into collision with any other link in the robot. This tag disables collision checking between a specified pair of links. -->
    <disable_collisions link1="dummy" link2="link0" reason="Adjacent" />
    <disable_collisions link1="dummy" link2="link1" reason="Never" />
    <disable_collisions link1="dummy" link2="link2" reason="Never" />
    <disable_collisions link1="dummy" link2="link3" reason="Never" />
    <disable_collisions link1="dummy" link2="link4" reason="Never" />
    <disable_collisions link1="dummy" link2="link5" reason="Never" />
    <disable_collisions link1="dummy" link2="link6" reason="Never" />
    <disable_collisions link1="link0" link2="link1" reason="Adjacent" />
    <disable_collisions link1="link0" link2="link2" reason="Never" />
    <disable_collisions link1="link0" link2="link3" reason="Never" />
    <disable_collisions link1="link0" link2="link4" reason="Never" />
    <disable_collisions link1="link0" link2="link5" reason="Never" />
    <disable_collisions link1="link0" link2="link6" reason="Never" />
    <disable_collisions link1="link1" link2="link2" reason="Adjacent" />
    <disable_collisions link1="link1" link2="link3" reason="Never" />
    <disable_collisions link1="link1" link2="link4" reason="User" />
    <disable_collisions link1="link1" link2="link5" reason="User" />
    <disable_collisions link1="link1" link2="link6" reason="User" />
    <disable_collisions link1="link2" link2="link3" reason="Adjacent" />
    <disable_collisions link1="link2" link2="link4" reason="User" />
    <disable_collisions link1="link2" link2="link5" reason="User" />
    <disable_collisions link1="link2" link2="link6" reason="User" />
    <disable_collisions link1="link3" link2="link4" reason="Adjacent" />
    <disable_collisions link1="link3" link2="link5" reason="Never" />
    <disable_collisions link1="link3" link2="link6" reason="Never" />
    <disable_collisions link1="link4" link2="link5" reason="Adjacent" />
    <disable_collisions link1="link4" link2="link6" reason="Never" />
    <disable_collisions link1="link5" link2="link6" reason="Adjacent" />
</robot>

moveit_group_python_interface(I changed the robot name and some of the coordinates)

-Launch demo

<launch>
    
    <rosparam command="load" file="$(find kuka_kr3_moveit)/config/joint_names.yaml"/>
    
    <include file="$(find kuka_kr3_moveit)/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">[/kuka_kr3/joint_states]</rosparam>
    </node>
    
    <include file="$(find kuka_kr3_moveit)/launch/move_group.launch">
        <arg name="allow_trajectory_execution" value="true"/>
        <arg name="info" value="true"/>
    </include>
    
    <include file="$(find kuka_kr3_moveit)/launch/moveit_rviz.launch">
        <arg name="config" value="true"/>
    </include>
    
</launch>

-Console output from console that runs the python interface

============ Starting tutorial setup
[ INFO] [1507806292.427314754]: Loading robot model 'Kuka_kr3'...
[ INFO] [1507806292.571546842, 10141.948000000]: Loading robot model 'Kuka_kr3'...
[ INFO] [1507806293.757659329, 10143.132000000]: Ready to take commands for planning group kuka.
============ Waiting for RVIZ...
============ Starting tutorial 
============ Reference frame: /dummy
============ End effector: link6
============ Robot Groups:
['eef', 'kuka']
============ Printing robot state
joint_state: 
  header: 
    seq: 0
    stamp: 
      secs: 0
      nsecs:         0
    frame_id: /dummy
  name: ['joint0', 'joint1', 'joint2', 'joint3', 'joint4', 'joint5']
  position: [2.9144022048449703, -0.17187757794471814, -2.0477713376403415, -3.140345238786707, 1.0336596392875919, 2.8271657129073855]
  velocity: []
  effort: []
multi_dof_joint_state: 
  header: 
    seq: 0
    stamp: 
      secs: 0
      nsecs:         0
    frame_id: /dummy
  joint_names: []
  transforms: []
  twist: []
  wrench: []
attached_collision_objects: []
is_diff: False
============
============ Generating plan 1
[ WARN] [1507806309.084839313, 10158.391000000]: Fail: ABORTED: No motion plan found. No execution attempted.
============ Waiting while RVIZ displays plan1...
============ Visualizing plan1
============ Waiting while plan1 is visualized (again)...
[ INFO] [1507806319.147427098, 10168.397000000]: ABORTED: Solution found but controller failed during execution
============ STOPPING

-Moveit console output

[ INFO] [1507806491.615414267, 10340.228000000]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[ERROR] [1507806491.615564404, 10340.228000000]: Found empty JointState message
[ERROR] [1507806491.615598985, 10340.228000000]: Found empty JointState message
[ERROR] [1507806491.615654576, 10340.228000000]: Found empty JointState message
[ERROR] [1507806491.615780480, 10340.228000000]: Found empty JointState message
[ WARN] [1507806491.615849484, 10340.228000000]: Orientation constraint for link 'link6' is probably incorrect: 0.000000, 0.000000, 0.000000, 0.900000. Assuming identity instead.
[ WARN] [1507806491.615916079, 10340.228000000]: Orientation constraint for link 'link6' is probably incorrect: 0.000000, 0.000000, 0.000000, 0.900000. Assuming identity instead.
[ INFO] [1507806491.615999233, 10340.228000000]: Planner configuration 'kuka' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1507806491.616101504, 10340.228000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ERROR] [1507806496.618312676, 10345.224000000]: RRTConnect: Unable to sample any valid states for goal tree
[ INFO] [1507806496.618348464, 10345.224000000]: RRTConnect: Created 1 states (1 start + 0 goal)
[ INFO] [1507806496.618374516, 10345.224000000]: No solution found after 5.002313 seconds
[ INFO] [1507806496.619549817, 10345.225000000]: Unable to solve the planning problem
[ INFO] [1507806501.629195420, 10350.226000000]: Execution request received for ExecuteTrajectory action.
[ WARN] [1507806501.629237577, 10350.226000000]: The trajectory to execute is empty

The move_group python interface is taken straight from the tutorial (of course I changed the group name). The rest io the path planning methods execute just fine, but I need to use the first one, since I want to get the coordinates from gazebo simulation. I am wondering also, if the coordinates are might be incorrect, but I don't know how to get coordinates of a pose from moveit rviz interface.


Originally posted by Fiddle on ROS Answers with karma: 64 on 2017-10-11

Post score: 1


Original comments

Comment by v4hn on 2017-10-11:
Sorry, but this is like saying "My airplane does not fly, it's probably due to the fuel pump". Please provide (if possible) the moveit configuration, the concrete code you use to request the motion and the full command line output during the request...

Comment by Fiddle on 2017-10-12:
Sorry, you are correct, I attached parts of the code to the original post.

Comment by gvdhoorn on 2017-10-12:
Please include the contents of those files directly in the question. Pastebin does not have infinite retention, so those links will go dead at which point your question loses much of its value.

Copy-paste the contents, select it, then press the Preformatted Text button (with 101010 on it).

Comment by gvdhoorn on 2017-10-12:
Also: if you're using tutorial code, please just link to the tutorial, instead of copy-pasting it verbatim.

Comment by Fiddle on 2017-10-12:
Ok, sorry, I corrected everything according to your suggestions.

Comment by gvdhoorn on 2017-10-12:
No need to apologise. Thanks for updating the question.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

[ WARN] [1507806491.615849484, 10340.228000000]: Orientation constraint for link 'link6' is probably incorrect: 0.000000, 0.000000, 0.000000, 0.900000. Assuming identity instead.

This looks very much like you specified an invalid rotation goal. (rotation quaternions have to be normalized to 1) In that case it is not unlikely that the specified pose goal can't be solved by the ik solver and/or is unreachable.


Originally posted by v4hn with karma: 2950 on 2017-10-15

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by Fiddle on 2017-10-18:
That was the case, I didn't get it from the tutorial, what the quaternions were about, and so I needed to fully describe the quaternion.

  pose_target.orientation.x = 0.0
  pose_target.orientation.y = 1.0
  pose_target.orientation.z = 0.0
  pose_target.orientation.w = 0.0
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.