Comments (8)
According to the GPL FAQ, a three-clause BSD license is compatible:
Because it imposes a specific requirement that is not in the GPL; namely, the requirement on advertisements of the program. Section 6 of GPLv2 states:
You may not impose any further restrictions on the recipients' exercise of the rights granted herein.
GPLv3 says something similar in section 10. The advertising clause provides just such a further restriction, and thus is GPL-incompatible.
The revised BSD license does not have the advertising clause, which eliminates the problem.
Do I understand from this that it would be acceptable to link to GPLv3-licensed shared objects from my otherwise 3-clause BSD-licensed robot software?
@tfoote Do you have an understanding of this? Is there an official OSRF policy on linking to GPL software?
from imu_tools.
From the GNU quick summary of GPLv3 https://www.gnu.org/licenses/quick-guide-gplv3.html says that it's fine for all the shortened BSD licenses. Just not the original with the advertising.
"""
However, some licenses had requirements that weren't really restrictive, because they were so easy to comply with. For example, some licenses say that they don't give you permission to use certain trademarks. That's not really an additional restriction: if that clause wasn't there, you still wouldn't have permission to use the trademark. We always said those licenses were compatible with GPLv2, too.
Now, GPLv3 explicitly gives everyone permission to use code that has requirements like this. These new terms should help clear up misunderstandings about which licenses are GPL-compatible, why that is, and what you can do with GPL-compatible code.
""""
As a policy we generally try to avoid all copyleft licenses due to their viral and invasive nature. If there's something you need from GPL I would definitely suggest isolating it in a node and not building a nodelet for it.
from imu_tools.
This seems contradictory— the GNU summary is asserting that GPLv3 and three-clause BSD are "compatible", but you're still counselling to avoid linking to GPLv3 code.
In the case I'm considering, imu_filter_madgwick
is the GPLv3 package, and a separate package would have a build/run depend on it, and link to the shared object supplied. This dependent package would be three-clause BSD.
from imu_tools.
Compatibilty means that they can be used together. Compatibility does not mean that the requirements for redistribution of the source of other linked resources are removed. It is just true that you can release them under a more permissive license such as the New-BSD license, not just the GPL.
Your original guideline should read more like "no static or dynamic linking to it, except from other open source code which is GPL or more permissively licensed"
from imu_tools.
Okay, I think I've got it. The license compatibility article from Wikipedia was helpful to me (emphasis mine):
Many of the most common free software licenses ... are "GPL-compatible". That is, their code can be combined with a program under the GPL without conflict (the new combination would have the GPL applied to the whole). When it comes to copyleft software licenses, they are not inherently GPL-compatible, even the GPLv2 is, by itself, not compatible with GPLv3.
So it's a one-way street. Linking to imu_filter_madgwick
means everything else in that binary is distributed under GPL. Will stick to the node usage; perhaps in the fullness of time someone can create a BSD implementation based on the original paper.
from imu_tools.
Interestingly enough, the original Madwick AHRS filter code (https://code.google.com/p/imumargalgorithm30042010sohm/downloads/list) was distributed under LGPL. This should make it possible to do a straightforward wrapper nodelet under LGPL that could be integrated with BSD components.
from imu_tools.
Hmm, where's the statement that it's LGPL? Can't find it in the google code repo you linked to. Anyway, the original code used here comes from this website: http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/
... and there, it says:
Open-source resources available on this website are provided under the GNU General Public Licence unless an alternative licence is provided in source.
from imu_tools.
In the Project Home, the release is licensed LGPL. I believe he re-licensed the code after it was moved to x-io.
from imu_tools.
Related Issues (20)
- Yaw Angle in ENU HOT 1
- Unable to visualise `/camera/imu` in Rviz HOT 2
- CMakeLists / findpackage improvements HOT 1
- How to get x, y, z values from IMU? HOT 3
- Problem with magnetic use complementary filter HOT 2
- Transform between IMU data and Mag data HOT 2
- Unstable and slowly changing output data in madgwick filter HOT 3
- Unable to set ~publish_debug_topics to True for imu_complementary_filter HOT 1
- Confusion in filtered quaternion results HOT 1
- Make "do_bias_estimation" reconfigurable during runtime
- output of imu_filter_madgwick is skewed over time HOT 2
- how can solve this problem? HOT 1
- Yaw offset compared to Ignition Gazebo IMU System HOT 1
- Incorrect variance calculation HOT 2
- rviz2 visualization unstable
- Is it normal to get these errors using Madgwick filter?
- Relsense Depth camera imu data filtering using mdgwick filter but its not giving stable and correct values HOT 1
- "odom" passed to lookupTransform argument target_frame does not exist. HOT 3
- Issue with imu_filter_madgwick in slope when using a magnetometer HOT 6
- 亲测可用,只是要从cpp中修改订阅的imu话题
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from imu_tools.