ethz-asl / robot_control

1 stars 2 forks source link

Store all URDFs in a single place #18

Open fjulian opened 4 years ago

fjulian commented 4 years ago

I noticed that you are collecting some URDF files here.

https://github.com/ethz-asl/robot_control/blob/5f75f20ea2c15cb6371beac29ae5fa83f8d8624e/robot_control_assets/assets/arms/panda/panda.urdf.xacro#L1

In my opinion, it would be nice to keep all URDFs in one place, since this would simplify future integration efforts, keep our code base more maintainable and our projects better integratable.

For the demos we had until now, we kept everything here: https://github.com/ethz-asl/moma/tree/master/moma_description For example, for the franka arm, we created a fork of franka_ros (which includes franka_description) in the ethz-asl account to add some changes that are required to use the arm in gazebo. Then we built mobile manipulation systems on top of that, e.g. https://github.com/ethz-asl/moma/blob/master/moma_description/urdf/mopa.urdf.xacro Like this, we tried to keep URDF duplication to a minimum, reusing as much of the original franka URDF as possible and maintaining a pipeline that will make it easy to pull in changes that come from the upstream franka_ros repository.

Now my question: shall we move all description files to the moma repo to avoid ending up with different versions of the description files? What is your opinion on this? I'm very open to any solution, as long as it avoids unnecessary complexity.

kekeblom commented 4 years ago

The problem with storing in the moma repo is that eventually, that project will depend on this project. This will lead to a circular dependency.

One solution would be to create a separate project moma_descriptions upon which both can depend on.

fjulian commented 4 years ago

But isn't it unlikely that the package moma_description will depend on robot_control? And dependencies are handled per package and not for the whole repo, so e.g. moma_demos depending on robot_control wouldn't introduce a circular dep.

Currently moma_description just depends on other description packages:

<exec_depend>ridgeback_description</exec_depend>
<exec_depend>franka_description</exec_depend>
<exec_depend>yumi_description</exec_depend>
<exec_depend>realsense2_description</exec_depend>
kekeblom commented 4 years ago

Yeah that's fine unless you include it as a git submodule in which case it would blow up.

fjulian commented 4 years ago

You mean if we include robot_control as a submodule in moma? Should still be fine as long as we don't make moma_description dependent on robot_control or anything else that depends on robot_control (which would be a problem regardless of whether moma_decription lives in the moma repo or in a separate one, since moma itself is not a ROS package). Or what am I missing here? :smiley:

kekeblom commented 4 years ago

Yeah sure it works as a submodule if there isn't a circular dependency. You could also just manually clone the repos into the workspace and not do it as a submodule. That way there is no problem, just an extra step to do when installing.