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

Revision history [back]

click to hide/show revision 1
initial version

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.

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).

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.

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).

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)

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 is. It's a trade-off: at some point it starts to pay off to separate responsibilities a bit more, and using a single giant .launch file just becomes really annoying.