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

Still using Indigo instead of kinetic? Why?


My team is still using Indigo. being tied to Ubuntu 14.04 is start being a (minor) issue.
I wonder if there are still many people using Indigo for any technical reason and if someone wants to share those reasons (maybe because of packages which were not ported to kinetic).

Few months ago may be Moveit was the most compelling reason, but it is not the case anymore.




We’re still using Indigo for the majority of our projects. The major reason is simply because the clients we’re developing them for don’t see any benefit to upgrading to 16.04 / Kinetic and don’t want to pay for the time it would take to migrate and test everything.

As far as technical reasons go, the biggest obstacle is migrating from OpenCV 2 to OpenCV 3. There are enough API changes between versions that migrating is a significant task, especially if we want to maintain 14.04 / Indigo compatibility. Qt 4 / Qt 5 compatibility is a lesser issue but has also cropped up in a few places.


In Kinetic with Gazebo 7 the Laser Plugin (both - normal and GPU) crashes. That might be a reason to stay with Indigo.

As a co-maintainer of the robot (Nextage) api package that’s still running on Indigo and there’s no plan to port to uppper versions yet, I can share some of our experiences:

  • Simply the time (and its cost) to conduct a full test with the hardware.
  • The risk of any regression on the users end particular those who have built non-trivial size of applications over the last few years can be understandably hesitant for the platform change.

I do see the benefit of upper version. Not just because of the higher major version (Gazebo, Gazebo, and others) but smaller features additions to the ROS core libraries are not always ported backward by default AFAIK. On the other hand Ubuntu Trusty will still be supported for another 2 years so is Indigo. So advantage may not outweigh the disadvantages under limited resource in our particular case.

Because it is always fun to wait until last minute of a LTS distribution to migrate to the next LTS that is about to expire :smiley:


You can actually use a system lib instead of the ros library for opencv to continue to use opencv2 instead of 3. If I recall correctly, just add find_package(OpenCV 2) to your CMakeLists.txt and add the appropriate libs and headers via the usual methods (the variable names are OpenCV_LIBRARIES and OpenCV_INCLUDE_DIRS respectively).

1 Like

You can link against OpenCV 2 if you really need to, but that breaks down quickly if you try to link in libraries from any other ROS Kinetic packages that use OpenCV, since all of the official packages are on 3 now. In practice, working out the linker issues and/or re-implementing functionality is more work than just doing the API conversion, and neither of them are worth the time if there are no other compelling reasons to stop using Indigo.

Right, makes sense. The stuff I was porting over didn’t depend on any other opencv packages in ros. That being said there is a lot of code out there for opencv2 so I think it’s not a bad thing to at least make aware that it is possible. I think the “no other compelling reasons to stop using indigo” goes along with the notion of don’t fix it if it ain’t broke, which I think is maybe the strongest argument to still use indigo instead of kinetic.

The biggest reason for me is not the code migration so much as the OS migration. We have ~20 developers and many robots that would all have to move to 16.04 or Docker. That’s a lot of downtime for marginal benefit. Also, because we’re working many projects for many clients, we have to coordinate a migration like that very carefully. Again, Docker mitigates that headache, but only 2-3 people in the lab are comfortable with Docker at all, and using Docker for GUI applications requires some magic.

I also came to the conclusion that Docker is the lo hanging fruit for this kind of problems. There are a bunch of good tutorials about how to use them with ROS, but it is still not common to do that.

At my previous job the main reason to stick with indigo was also avoiding the OS upgrade.

Now that I switched to Ubuntu 16.04, I must say that it still feels a lot rougher than 14.04. Basic tools like gitg are unstable and crash a lot. flashback-compiz has issues with rendering of window borders, some tray items don’t work properly (dropbox…), apps using CSD are an aesthetical disaster (at least to my eye… I think its better using other desktops / themes…).

Haven’t encountered any issues with Kinetic though, but I don’t have much legacy code right now.

Sorry, but IMO

1 Like