Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependecy issues between tf2 and tf2_geometry_msgs #275

Open
Crusty82 opened this issue Dec 7, 2017 · 8 comments

Comments

Projects
None yet
5 participants
@Crusty82
Copy link

commented Dec 7, 2017

If you look closely, you can see that

tf2/include/tf2/impl/utils.h includes <tf2_geometry_msgs> and
tf2_geometry_msgs/include/tf2_geometry_msgs/tf2_geometry_msgs.h includes

So there is a cycle there.
I am forced to compile these packages via a different build system, and my system dies with a cyclic dependency error.
Also note how tf2 sneakily includes tf2_geometry_msgs without actually requiring the package in CMakeLists or package.xml. I fail to understand how this can build in the first place, but it surely doesn't build for me.

@tfoote

This comment has been minimized.

Copy link
Member

commented Dec 7, 2017

This was flagged in #170 There's a proposed fix to call it out specifically but that explicitly triggers the circular dependency in the main build. #170 so can't be merged. The main solution is that we need to move that implementation.

@Crusty82

This comment has been minimized.

Copy link
Author

commented Dec 7, 2017

Thanks for replying this quickly Tully, and sorry I missed issue #170. I will locally fix this then by moving functionality from tf2 into tf2_geometry_msgs. Thanks!

@tfoote

This comment has been minimized.

Copy link
Member

commented Dec 7, 2017

No problem. If you have a clean solution a PR would be appreciated. I think it it's likely that the template specializations in the impl can move to tf2_geometry_msgs and then anyone with that as a dependency could use them the same way they always have.

@tfoote tfoote added the bug label Mar 22, 2018

mikeferguson added a commit to ros-planning/navigation that referenced this issue Jul 30, 2018

fix rotate_recovery debian build
* add depend on tf2_geometry_msgs (due to ros/geometry2#275)
* add other hidden depends: angles, geometry_msgs, tf2

mikeferguson added a commit to ros-planning/navigation that referenced this issue Jul 31, 2018

fix depends for dwa_local_planner
* add tf2_geometry_msgs (due to ros/geometry2#275)
* add missing depends on angles, sensor_msgs, tf2

mintar added a commit to ros-planning/navigation_experimental that referenced this issue Sep 5, 2018

twist_recovery: Add missing dependency
Actually, this is a workaround for the following bug: ros/geometry2#275
@trainman419

This comment has been minimized.

Copy link
Contributor

commented Nov 5, 2018

I just ran into this too, and I also solved it by moving the functions that manipulate geometry_msgs types into tf2_geometry_msgs.

I can submit my changes as a PR if you'd like, but it's an API change and since I'm only testing against a small part of ROS and I'm not using cmake to build ROS, so I can't confirm that this fix is valid for the rest of the ROS ecosystem.

@tfoote

This comment has been minimized.

Copy link
Member

commented Nov 8, 2018

@trainman419 If you have the moved implementation could you add a backwards compatible API placeholder that forwards to the new location and gives a deprecation warning? That deprecated API will still cause the dependency issue, but we can remove it in a future rosdistro and we can put a very specific warning that hopefully people will find the workaround quickly if they run into it.

@mintar

This comment has been minimized.

Copy link

commented Nov 9, 2018

👍

we can remove it in a future rosdistro

That rosdistro better be Noetic, since it's the last one! :)

@jspricke

This comment has been minimized.

Copy link
Member

commented Dec 15, 2018

We got bugged by this in Debian as well: https://bugs.debian.org/916479.
@trainman419 do you plan to send the PR soon?

@trainman419

This comment has been minimized.

Copy link
Contributor

commented Jan 15, 2019

Looks like my changes didn't end up being necessary for our project, and didn't make it into our repository. I will not be submitting a PR for these changes (I don't have any way to test the changes requested by @tfoote , either).

jspricke added a commit to jspricke/geometry2 that referenced this issue Jan 25, 2019

Move tf2::impl::toQuaternion to tf2_geometry_msgs
Closes: ros#275

This breaks the cycle between tf2 and tf2_geometry_msgs.
I didn't add deprecated attributes for functions having
tf2_geometry_msgs in the method signature, as they would need to have
the right header imported anyhow.

@jspricke jspricke referenced a pull request that will close this issue Jan 25, 2019

Open

Move tf2::impl::toQuaternion to tf2_geometry_msgs #357

jspricke added a commit to jspricke/geometry2 that referenced this issue Jan 25, 2019

Move tf2::impl::toQuaternion to tf2_geometry_msgs
Closes: ros#275

This breaks the cycle between tf2 and tf2_geometry_msgs.
I didn't add deprecated attributes for functions having
tf2_geometry_msgs in the method signature, as they would need to have
the right header imported anyhow.

jspricke added a commit to jspricke/geometry2 that referenced this issue Jan 25, 2019

Move tf2::impl::toQuaternion to tf2_geometry_msgs
Closes: ros#275

This breaks the cycle between tf2 and tf2_geometry_msgs.
I didn't add deprecated attributes for functions having
tf2_geometry_msgs in the method signature, as they would need to have
the right header imported anyhow.

timonegk pushed a commit to bit-bots/dwa_local_planner that referenced this issue May 3, 2019

fix depends for dwa_local_planner
* add tf2_geometry_msgs (due to ros/geometry2#275)
* add missing depends on angles, sensor_msgs, tf2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.