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

Use a GPL package in a proprietary licensed software

asked 2012-09-05 03:30:01 -0500

Pedro gravatar image

updated 2014-01-28 17:13:34 -0500

ngrennan gravatar image


if I need to include nodes from a GPL licensed package (e.g. ar_pose) in my application's launch file, can my software have a proprietary license and be commercialized? I'm not linking ar_pose to my own code, I'm just subscribing to its published topics. And if I make some changes to ar_pose, I would just have to publish ar_pose with my modifications, right?

Thanks in advance!

edit retag flag offensive close merge delete

5 Answers

Sort by ยป oldest newest most voted

answered 2012-09-05 05:01:28 -0500

IANAL, but from my understanding it's not that simple and seems to be pretty open for interpretation (which is why I try to stay away from GPL code as much as possible).

The official FAQ is incredibly vague:

The two programs have to remain well separated for one to use a GPL license and one to use a proprietary one. From my understanding this is why connecting to a GPL web server from a proprietary browser is ok (they are distinctly separate programs and the communications between them is common and generic). I don't think however you can write a wrapper for a GPL library that just translates the function calls into TCP messages and communicate with it from a proprietary program. They've essentially become one system at that point even though they don't actually link against one another. I'm not sure where ROS falls on that spectrum.

There was another good discussion on the topic here: and a good, but equally vague/consult your lawyer for a final answer explanation here:

edit flag offensive delete link more


Given the thread you linked, it sound to me like a "it depends on why the node is there".

dornhege gravatar image dornhege  ( 2012-09-05 05:29:14 -0500 )edit

answered 2012-09-05 06:39:53 -0500

jbohren gravatar image

updated 2012-09-05 06:56:34 -0500

IANAL, but I think normally these issues need to be dealt with on a case-by-case basis, and it's always better play on the safe side. It's also important to remember that if there's a chance that someone will take the time to sue you for violating copyright, it also means they should care enough to answer any licensing questions you may have.

I imagine ar_pose's license restrictions come from ARToolKit itself, and on their license page, they summarize the licensing terms by saying:

i.e. your software incorporating or linking to ARToolKit must also be open-source software, licensed under the GPL.

I think the above means that you cannot sell a product that uses the GPL-licensed ARToolKit, or at very least that they might pursue litigation if you do. However, there's good news, because they also have professional and commercial licenses:

In response to demand from toolkit users, the holders of the copyright on much of the ARToolKit version 1.0 - 2.x code have elected to make this code and other substantially advanced ARToolKit and AR code available under proprietary licenses for professional and commercial use by persons for whom the GPL license is not ideal. These license arrangements are managed by ARToolworks, Inc., Seattle, WA, USA. A variety of license types are available at reasonable cost. Please contact ARToolworks, Inc. directly for information on products, license terms, and pricing.

If ARToolKit is the only GPL restriction in that package, then I would suggest:

  1. Contact the maintainers of the CCNY ROS packages to privately release a version of their ROS interfaces under a BSD or commercial license.
  2. Contact ARToolworks to negotiate a commercial license.

If there are other GPL components, then I would suggest looking for similar solutions.

edit flag offensive delete link more

answered 2012-09-06 06:55:29 -0500

Mani gravatar image

updated 2012-09-06 06:58:07 -0500

This is not a direct answer to your question, but a possible improvement and workaround.

I have used both ar_pose (based on ar_toolkit) and ar_track_alvar based on alvar for a project. In my experience the latter one is far better than the former in any terms. Porting your code to use ar_track_alvar will likely take about a couple of hours. The stability, robustness and pose estimation accuracy of alvar library is not the only benefit you'll earn. The ROS driver is BSD licensed and the original library is LGPL* which will make it more appropriate to be used in a commercial product.

edit flag offensive delete link more


Thanks Mani, that seems to solve my problem!

Pedro gravatar image Pedro  ( 2012-09-06 21:31:01 -0500 )edit

You are welcome. I am glad that helped.

Mani gravatar image Mani  ( 2012-09-09 09:18:44 -0500 )edit

answered 2012-09-05 03:52:04 -0500

dornhege gravatar image

I am not a licensing expert in any way, but to my best knowledge the use case you describe is covered by the GPL. You would need to supply source code for you modified GPL code for free, but TCP/IP communications (ROS) with proprietary software should be OK.

I'd be interested in answers that could confirm/refute this in a better verified way.

edit flag offensive delete link more

answered 2012-09-06 05:19:36 -0500

Pedro gravatar image

updated 2012-09-06 05:24:06 -0500

Thanks all for the help! I guess I will have to contact the guys from ccny and ARToolkit directly for that then.

Just for reference, here says this: " The ROS packaging and communication system allows for fine-grained licensing. Because nodes communicate via ROS messages, code from multiple nodes is not linked together. Thus the package provides a kind of "license boundary." "

edit flag offensive delete link more

Question Tools


Asked: 2012-09-05 03:30:01 -0500

Seen: 6,280 times

Last updated: Sep 06 '12