MoveIt setup assistant
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="${PI/2.0} ${PI} 0"/>
<geometry>
<mesh filename="file:///finger1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="White"/>
</visual>
<collision>
<origin xyz="${tool_link_offset}" rpy="${PI/2.0} ${PI} 0"/>
<geometry>
<mesh filename="file:///finger1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="White"/>
</collision>
</link>
<joint name="finger_joint_2" type="prismatic">
<parent link="tool_link_ee" />
<child link = "finger_link_2" />
<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"/>
<mimic joint="finger_joint_1"/>
</joint>
<link name="finger_link_2">
<visual>
<origin xyz="${tool_link_offset}" rpy="${PI/2.0} ${PI} ${PI}"/>
<geometry>
<mesh filename="file:///finger1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="White"/>
</visual>
<collision>
<origin xyz="${tool_link_offset}" rpy="${PI/2.0} ${PI} ${PI}"/>
<geometry>
<mesh filename="file:///finger1.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="White"/>
</collision>
</link>
Thanks a lot! Michele
Asked by micheleep on 2020-10-30 04:19:04 UTC
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?Asked by fvd on 2020-10-31 12:13:58 UTC
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?Asked by fvd on 2020-11-02 03:17:09 UTC
I've added in the post the urdf.xacro definition. What do you mean what "is the finger_joint1 state being published?"'
Asked by micheleep on 2020-11-02 03:18:16 UTC
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.
Asked by micheleep on 2020-11-02 03:37:03 UTC
Did you define a planning group that includes
finger_joint1
?Asked by fvd on 2020-11-02 04:36:07 UTC
Yes, I've two planning group:
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)?
Asked by micheleep on 2020-11-02 05:47:55 UTC
Can you post your SRDF as well please?
Asked by fvd on 2020-11-02 05:52:14 UTC