MoveIt setup assistant

asked 2020-10-30 04:19:04 -0500

micheleep gravatar image

updated 2020-11-02 02:15:51 -0500

Hi, I'm trying to create a new definition of my robot with MoveIt wizard. The robot definitionis ok bu the EE has an hand and two prismatic fingers. If I use the "prismatic" tag in urdf.xacro definition this error appears:

The complete state of the robot is not yet known. Missing finger_joint1

The same error appears if I set it as revolute joint, but If it's a fixed joint this error doesn't appear.

<!-- Import Rviz colors -->
<xacro:include filename="$(find iiwa_description)/urdf/materials.xacro" />
<!--Import the iiwa7 macro -->
<xacro:include filename="$(find iiwa_description)/urdf/iiwa14.xacro"/>
<xacro:arg name="hardware_interface" default="PositionJointInterface"/>
<xacro:arg name="robot_name" default="iiwa"/>

<link name="world"/>

<gazebo reference="world">
    <static>true</static>
</gazebo>

<!-- Here we insert an iiwa7 robot in the scene, it's origin is just on top of the box previously defined. You can use 0,0,0 if you don't have that. -->
<xacro:iiwa14 hardware_interface="$(arg hardware_interface)" robot_name="$(arg robot_name)" parent="world">
    <origin xyz="0 0 0" rpy="0 0 0"/>
</xacro:iiwa14>

<!-- Tool properties -->
<property name="tool_mass" value="1.5" />
<property name="tool_joint_offset" value="0.00 0.00 0.00" />
<property name="tool_link_offset" value="0.00 0.00 0.1187" />
<property name="tool_link_rpy" value="${PI/2.0} ${PI} 0" />
<property name="tool_ee_offset" value="0.00 0.00 0.00" />

<!-- =================================================== -->

<joint name="tool_joint" type="fixed">
    <parent link="iiwa_link_ee" />
    <child link = "tool_link" />
    <origin xyz="${tool_joint_offset}" rpy="0 0 0" />  
</joint>

<link name="tool_link">
    <visual>
        <origin xyz="${tool_link_offset}" rpy="${tool_link_rpy}"/>
        <geometry>
            <mesh filename="file:///base.stl" scale="0.001 0.001 0.001"/>
        </geometry>
        <material name="White"/>
    </visual>

    <collision>
        <origin xyz="${tool_link_offset}" rpy="${tool_link_rpy}"/>          
        <geometry>
            <mesh filename="file:///base.stl" scale="0.001 0.001 0.001"/>
        </geometry>         
        <material name="White"/>
    </collision>
</link>

<!-- =================================================== -->

<joint name="tool_tip_joint" type="fixed">
    <parent link="tool_link" />
    <child link = "tool_link_ee" />
    <origin xyz="${tool_ee_offset}" rpy="0 0 0" />   
</joint>

<!--  The TCP frame is here defined -->
<link name="tool_link_ee">
    <visual>
        <origin xyz="${tool_link_offset}" rpy="${tool_link_rpy}"/>
        <geometry>
            <mesh filename="file:///tool_no_finger.stl" scale="0.001 0.001 0.001"/>
        </geometry>
        <material name="Green"/>
    </visual>

    <collision>
        <origin xyz="${tool_link_offset}" rpy="${tool_link_rpy}"/>          
        <geometry>
            <mesh filename="file:///tool_no_finger.stl" scale="0.001 0.001 0.001"/>
        </geometry>         
        <material name="Green"/>
    </collision>
</link>

<!-- =================================================== -->

<joint name="finger_joint_1" type="prismatic">
    <parent link="tool_link_ee" />
    <child link = "finger_link_1" />
    <origin xyz="-0.015 0.00 0.00" rpy="0 0 0" />   
    <axis xyz="1 0 0"/>
    <limit effort="20" lower="0.0" upper="0.015" velocity="0.2"/>
    <dynamics damping="500.0" friction="0.0"/>
</joint>


<link name="finger_link_1">
    <visual>
        <origin xyz="${tool_link_offset}" rpy ...
(more)
edit retag flag offensive close merge delete

Comments

As explained on Github already, this needs more information. Is the finger_joint1 state being published, e.g. by a gripper driver? What does your URDF look like? What have you tried to solve the problem?

fvd gravatar image fvd  ( 2020-10-31 12:13:58 -0500 )edit

You added the URDF, but what about the driver publishing that joint's state? Can you start up roslaunch your_moveit_config demo.launch? Does it work as expected?

fvd gravatar image fvd  ( 2020-11-02 02:17:09 -0500 )edit

I've added in the post the urdf.xacro definition. What do you mean what "is the finger_joint1 state being published?"'

micheleep gravatar image micheleep  ( 2020-11-02 02:18:16 -0500 )edit

Yes, I can start up roslaunch iiwa_tool_moveit demo.launch and move finger_joint1 from rviz.

But the problem with roslaunch iiwa_tool_moveit moveit_planning_execution.launch still exists.

micheleep gravatar image micheleep  ( 2020-11-02 02:37:03 -0500 )edit

Did you define a planning group that includes finger_joint1?

fvd gravatar image fvd  ( 2020-11-02 03:36:07 -0500 )edit

Yes, I've two planning group:

  1. manipualtor (all joints of the robot)
  2. endeffector (finger_joint_1 and dummy joints).

A question: when I declare the chain from iiwa_link_ee to tool_link_ee it cannot create the chain. Is it an issue because the last link has two childs (finger_link_1, finger_link_2)?

micheleep gravatar image micheleep  ( 2020-11-02 04:47:55 -0500 )edit

Can you post your SRDF as well please?

fvd gravatar image fvd  ( 2020-11-02 04:52:14 -0500 )edit