ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

Why are ROS and Ignition/Gazebo diverging (or not converging)?

I’m preparing a presentation for novel ROS programmers, and during preparation of the presentation, I just started asking myself why doesn’t ROS integrate with Ignition at all?

If I get it right, both ROS and Ignition are developed by Open Robotics (and community!), and Ignition is a set of tools for roboticists. So why is it completely omitted in ROS?

I can see a lot of parallel implementations of basically the same stuff (Transport, Math, CMake, Rendering, Plugin, Msgs, Gui). Because the developers of both are more or less “under one roof”, I just don’t get it…

It would be super-nice to have e.f. ign-math used by basic ROS tools and readily available for anyone working in ROS. I can’t count how many times I’ve seen people converting quaternions to RPY angles by snippets of math they don’t understand… With Ignition, it’d be so much simpler…


A related question on ROS Answers: Why do we use Rviz when we have Gazebo ? (specifically about Gazebo vs RViz, but fits the issue raised here).

There is quite a bit of support for lin alg and the kind of conversions you mention in TF2, so I’m not sure Ignition math would be needed here, but that doesn’t change the validity of your question.

Being in need of a math-and-only-math library that I can potentially certify, I’ve had my eye on ignition-math for a little while now. It would be great to see it become the standard math-and-only-math library for ROS as well as Gazebo, and then for tf to use it.

Off-topic, but: tf2 (and tf before it) does not mandate using any math library per se. AFAIU the idea is to provide packages that support to-from conversion for specific libraries (potentially using type masquerading).

Compare tf2_eigen, tf2_bullet, etc.

Perhaps a tf2_ignition_math could be created, if that would be desirable, but I don’t necessarily see a need to standardise on ignition.

Even more off-topic: ignition math appears to contain concepts and functionality that many other libraries already support (Eigen, Bullet, RBDL, DART, KDL, MRPT and others). I fully understand the convenience of using your own library (in terms of control and development), but ignition math seems like “just-another-math-library”.

That’s already been asked: Ignition Math to TF? .

I did not know that.

From the point of view of certification, such a thing can be beneficial if it has just the stuff you need. I haven’t looked at if IM is that, though, and libraries like Eigen have the benefit of being extremely well used to balance out having more than you might need.

And I even replied!

Alas my head is too full of now to hold memories of 2017. :wink: Thanks for the pointer!