ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

correct model design for grasping (Moveit)

asked 2021-09-27 02:34:26 -0500

nicob gravatar image

updated 2021-09-28 06:07:18 -0500

Hi!

I am relative new to ROS and Moveit. I am using ROS noetic. For a research project, I want to realize automated trajectory planning for an FANUC industrial robot for handling pipes with high variation of geometry. In the last weeks it was possible for me to build up a basic model:

image description

In python I calculate the grasp points and targets for the trajectories based on a bracket, which position the tube on a table. After that I start planning and execution. All this works awesome fine for me. But grasping with pre grasp approach and post grasp retreat is not working. I get the error message "Fail: ABORTED: Must specify group in motion plan request". I think the reason for this is an inelegantly builded model. I am thinking the grasp msg is correct defined.

I think this is the main problem for the grasping error, I modified the fanuc pkg by adding a new link/joint in the cr7ial_macro.xacro to simulate the gripper (distance flange/TCP). I do not need to add the geometry of the gripper to the collision control because a collision is physical impossible. So, (pre) grasp posture is also not nessesary. I tried to modify the xacro-file by creating a new xacro file, but it was not possible for me just with the information of the tutorials.

Main reason is, I do not understand the interaction of the launch files of the fanuc pkg, an own launch file and an addition xacro script:

  • Own launch file to start all the stuff incl RviZ
  • Own xacro script to create gripper
  • Own xacro script to modify robot (add gripper)
  • Moveit launch file of the FANUC robot (moveit_planning_execution.launch)
  • cr7ial_macro.xacro

image description

Can you explain the interaction of the files of an existing industrial robot pkg? Do you need further information? Please feel free to answer. At the moment I am not feeling certain how to move further with the model creation. Thanks and best regards!

nico

edit retag flag offensive close merge delete

Comments

I understand why you did it, but could you please try to avoid including multiple questions in a single post?

Contrary to a forum, ROS Answers is a Q&A site (similar to Stack Overflow/Exchange) and works best with a 1-to-1 ratio of questions to answers.

Multiple questions in a single post have very poor visibility (as the relation to the question title is limited).

Please identify which question is your main one and update your post to focus on that one. You can use the edit button/link.

gvdhoorn gravatar image gvdhoorn  ( 2021-09-27 04:12:51 -0500 )edit

I understand... I modified my post. The key question at the moment is the interaction between the files.

nicob gravatar image nicob  ( 2021-09-27 04:17:46 -0500 )edit

Could you clarify what you mean by "interaction"? All those files make sense to me, and their interaction can typically be deduced by following the various include statements in them.

What is specifically unclear to you? Could you give an example?

gvdhoorn gravatar image gvdhoorn  ( 2021-09-27 10:05:02 -0500 )edit

I added a picture of the schematic interaction of the mentioned files in my question.

My missunderstanding is marked with flashs:

The cr7ial_macro.xacro would be included by my own xaxro-file for modifing the robot (add a gripper). But the cr7ial_macro.xacro is also referred by moveit_planning_execution.launch file which is included in my own launch file to start everything, but I have to include my own xacro-file also in my launch file, right? So, the definition of the robot is "presented" two times in my launch file?

nicob gravatar image nicob  ( 2021-09-28 06:14:18 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2021-09-28 08:29:20 -0500

gvdhoorn gravatar image

updated 2021-09-28 08:57:25 -0500

The cr7ial_macro.xacro would be included by my own xaxro-file for modifing the robot (add a gripper). But the cr7ial_macro.xacro is also referred by moveit_planning_execution.launch file which is included in my own launch file to start everything, but I have to include my own xacro-file also in my launch file, right? So, the definition of the robot is "presented" two times in my launch file?

Ah, that clears things up.

It might already be sufficient to tell you "do not reuse the generic MoveIt configuration package with your very specific workcell". See #q386473 for a previous discussion about this.

You will probably find other (MoveIt) devs who don't agree with this, but following that advice has always worked well for me, so I'm sticking to it.

The cr7ial_macro.xacro would be included by my own xaxro-file for modifing the robot (add a gripper)

this will be pedantic, but: you're not "modifying the robot". You're creating a composite object, of which the robot is one part (the other is the gripper). The generic MoveIt configuration does not know about the composite, as it's been created to use the robot model proper. That's probably what you refer to when you say

But the cr7ial_macro.xacro is also referred by moveit_planning_execution.launch file which is included in my own launch file to start everything, but I have to include my own xacro-file also in my launch file, right? So, the definition of the robot is "presented" two times in my launch file?

This is one of those things which will immediately be fixed once you create your own, specialised, MoveIt configuration package. You'd point the MoveIt Setup Assistant at your composite, top-level, .xacro file, instead of the .xacro of the robot model proper.

So the only thing you reuse in this case would be cr7ial_macro.xacro. Everything else is "created by [yourself] and stored in additional pkg" (as you describe it yourself).

(you can of course base your MoveIt package on the provided one, including files like moveit_planning_execution.launch. But you'd still update them to work with your setup)


Edit:

To wrap it up: I should create all the stuff as I mention before, but I have to write only one launch file?

You could write a single .launch file which starts your entire application, yes. That's not a requirement though.

Than, the robot component is included just by the xacro file which combine robot and gripper?

Exactly. Like what is shown in Working with ROS-Industrial Robot Support Packages: Example: adding an end-effector to a robot.

Don't forget to make the _support package an exec_depend of your own package of course.

Is it a good starting point to copy the moveit_planning_execution.launch to my own pkg and modify it as the one and only launch file?

Well, you could do that. I can't give you a simple yes-or-no answer here, as it depends a bit on how extensive your application ... (more)

edit flag offensive delete link more

Comments

Thanks for your detailed answer!

this will be pedantic, but: you're not "modifying the robot". You're creating a composite object, of which the robot is one part (the other is the gripper).

I understand... It was not possible for me to describe it as clear as you did it.

To wrap it up: I should create all the stuff as I mention before, but I have to write only one launch file? Than, the robot component is included just by the xacro file which combine robot and gripper?

Is it a good starting point to copy the moveit_planning_execution.launch to my own pkg and modify it as the one and only launch file?

Thanks in advance!

nico

nicob gravatar image nicob  ( 2021-09-28 08:43:45 -0500 )edit

Please try to avoid posting answers, unless you are answering your own question. For everything else, use comments or update your original question text.

gvdhoorn gravatar image gvdhoorn  ( 2021-09-28 08:53:00 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2021-09-27 02:34:26 -0500

Seen: 279 times

Last updated: Sep 28 '21