ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Help me go open-source

Hello,

I am a 31 year old entrepreneur and engineer, and for the last five years I have been working on an autonomous system originally intended for underwater commercial implementation.

In this process I have covered some ground, ranging from turtlebot and rplidar to my current setup - a DJI m600 Pro equipped with a tiltable VLP16 sensor mounted upside down on a Dynamixel MX64, a slamdunk, lidarlite v3 through arduino/rosserial and Astra RGB-D camera mounted downwards. Earlier setups worth mentioning include DJI M100 with Hokuyo LX30 2D scanner, Upboard and Guidance (optical flow replacing GPS) - and of course my early tests using MAVROS and BlueRov2. All tests after 2018 have been completely autonomous - only switching on power at site (no pregenerated maps, ssh-logins or other preparations).

Software is my own amateur mix of octomap/EDTO, move_base,OpenCV and even some Tensorflow just for show. Different SLAM approaches have been incorporated, i.e Gmapping, LOAM, rtabmap etc - but don’t let it fool ya’. I really don’t know what I’m doing, and I need help.

Last week I finally made my own personal goals come true, and I can finally stop stroking my own ego and get on with my ambitions. My initial plan was to use my prototype to create some awareness, then letting the following (lack off) investor interest decide next course of action. I keep telling myself that I will fold and find a job if this fails, but I don’t know if I really have a choice on the matter.

After some deliberation, I have decided to go another way. I want to make this an at least partially open source project, but I don’t know how. I really don’t have a clue. I guess what I’m asking is if someone could have chat with me on Skype or Zoom or whatever’s hot now about how this could be done.

And btw, please disregard any earlier posts. That guy’s a ghost :wink:

1 Like

Technically all you need to do to make you project Open Source is choose a license and place the code on a public repository such as Github.

Which license depends on your goals. BSD lets anyone do anything with your code including claiming to have written it themselves and sell it. GPL is designed to make sure the code always remains free and open. There are others but you have to think about what is your goal first.

That is it.

But there is so much open source code that is licensed for public use and available to the world but remains forever “in the dark” and is unknown to anyone but its author. In fact this is the normal case.

If you want this to be popular and to gain a following you need to publicize it. Make videos and post to Youtube, post in various forums and write a blog. More then anything else SHOW IT WORKING. Almost all successful open source project need to be carried through to a working state by one or a few people and it has to solve some cool problem. People don’t jump on projects that are not yet working.

If you have CAD files and software for a low-cost underwater robot it could be popular. But not without some promotion.

1 Like

I second all the points, this is very solid advice. One reason you might choose GPL over BSD is that if anyone modifies your code and uses it in their product the licence requires them to make the code public. One thing to keep in mind though is that I can imagine Open Source might be a turn off for some of the investors.

If you decide to go Open Source with your project then I’ll be happy to review it for you. I would just suggest that you produce some documentation on how all the components work together.

I know you were not asking about funding but figured from your post that this might be on your mind. Here are some other thoughts on getting some funding in EU:

  • Digital Innovation Hubs: you can apply to them with small proposals for up to ~300k Euro in funding. Open Source is a good ‘selling’ points, usually the funding from these projects should allow you to jump some TRLs. Some projects I know of are ESMERA (no longer active as far as I know) and TRINITY but there are surely some more. It is very good idea to get a consortium for this kind of projects. At minimum including you and a stakeholder (someone who would potentially use your product).
  • Proper EU funding projects - These are much heavier than the DIHs above. You definitely need a consortium for this, proper company set up, clean accounting. Potentially you can get more funding but the bar is quite high. Expect a need to write 60+ page proposal for these
  • European Global Navigation Satellite Systems Agency is now hosting a challenge on integrating Galileo services on drones. Sounds like your idea might be a bit relevant here and you can win up to $100k Euro.
1 Like

Thank you both for swift and helpful responses!

The post I wrote on Saturday was awaiting approval, and in the meantime I thought things through and to some extend found a more “honest” angle. My question is not so much how to upload stuff on github and finding the right license; it’s more related to what Chris touches in his response: “…be carried through to a working state by one or a few people and it has to solve some cool problem”.

I really want to find out:

  1. Is there any possibility of this situation being created around my project.
  2. If there is - what are my options on how to proceed?

I’m posting the post I should have posted initially, don’t know if I should have edited my initial post, created a new one or just done this (I’m not well versed in this type of forum).

I have a kind of special problem. I don’t really know if I’ve wasted the last half of a decade or not.

My work began in 2015, but due to some unfortunate events things went south a few years later. Now I have tried to collect the pieces after fixing some personal stuff, and I really don’t know if there is any point in continuing.

Could someone please help me find out if this is just a waste of time? I have uploaded a short video of bag-playback on Linkedin/Facebook, should be open to public (name’s Tord Bjørlykke). It’s poor quality and more or less randomly pieced together, but I should be able to explain what’s going on to someone who’s seen it.

For context - I have created this prototype in order to find a feasible way to operate a fully autonomous vehicle in unknown, dynamic, 3D and GPS-denied environments. The project originated as a means to inspect aquaculture farms and developing AI enabled decision support for optimization of growth and efficiency. Another natural area of interest is pipeline inspection in the North Sea.

I am of course aware of the fact that everything I have done, someone else has done countless times better. I am also aware of the fact that it’s really basic and primitively coded. Still I would like to hear an informed opinion about this work, and if relevant, help me draw up some possible roadmaps for the future.

Preferably I would talk on video, I really don’t like writing. Never comes across as intended.

***Let me add; I am not comfortable with putting everything out there without an efficient and realistic plan to utilize it. This is 5 years of my life where I worked my ass of and literally lost everything. So if this can be salvaged I intend to do so; worst case I will use this to get a normal job.

Regarding funding:

I have acquired founds from both several private parties (personal loans) and two phases of public founds. I have also had office in two incubators in Norway. If this project is worth continuing I will acquire the needed funding, but I quickly realized that the main question for this kind of project always is - whether or not the tech can keep up with expectations.

I hope that I have managed to create a fundament and a philosophy guaranteeing that these criteria are met. If this is the case, it’s time to do this. If not, it’s time to fold.

EDIT: I try to see this from your point of view, and all I see is red flags. How come I’m broke and alone at this point, first and foremost. I have this urge to explain, but I know that it’s not relevant, not the right place and not the right time. Just please; give me the benefit of the doubt.

Wow, even by my standards, you have alot of expensive toys. Good for you :smile:

I’m sure we’d be happy to help! The first step like @Chris_Albertson mentions is to have a repo with the work you’d like to open up provisioned on probably github and pick a license. On that front I have some thoughts to add / clarify.

That is inaccurate. BSD does not allow someone to claim they wrote it, that’s copyright infringement no matter what the medium is (written word, poetry, music, even code). BSD is just the most permissive of the standard licenses for people to use. That, alongside Apache 2.0 (which the vast majority of ROS2 is) are permissive licenses and I would say is what you should use. Apache 2.0 has the added benefit of protecting your IP as your own so you could in concept patent it if you wanted to.

GPL is the absolute most extreme standard license and I caution you from using it. Most GPL projects companies and even academics will look at and then immediately move on. It’s so restrictive that functionally no company on Earth will allow them to use it unless its absolutely critical and there’s no way around it. Using GPL would make the community that could benefit from your work very small. L-GPL is a little better but similar issues. The L helps make it more reasonable and some companies will be open to using it if its really good but still not generally recommended unless its some seminal work that you would like to force companies and institutions to open source their changes. I’ve used this license sparingly on projects I wanted to enforce “good community behavior” on, but if you want users and make an impact, Apache 2.0 is my recommendation and in line with open robotics.

Sorry, what is “this situation” you refer to, specifically? You could take the suggestions Chris provided in having videos / documentation / announcing on Discourse / advertising. Those are all good steps to get users and disseminate knowledge about your work to get people involved and make it more impactful. I’d just mention quickly that at that point the license will matter alot - LGPL might be OK if its really impactful and people see the massive value it has, otherwise something like Apache 2.0 would be overall best to protect yourself and allow others to get involved and remix. If you make it too restrictive, you wont be able to build a community from it even if people know about it. Their bosses won’t let them use it.

I can say that me as a Navigation guy, that sparks my interest and if you’ve made some elements that are particularly unique, improved on existing, or new functionality, I’d be interested in hearing more about it and seeing where in the ROS ecosystem at least some of this work could live and be integrated into. We’re doing alot of really great work in Navigation2 these days.

Step 0 is to decide what you want to open up and dump it in a repo with a license. I think at that point the next steps are to build documentation, demonstrations, etc like Chris mentions so that if people want to use it, they can. Then advertising it.

3 Likes

Choosing a license is one of the primary things to do when open sourcing software. Please do read up exactly what they imply. A good resource is Choose A License which will give good comparisons. There are a lot of options and you should likely read through existing literature on them.

Historically we have suggested the BSD license, however more recently we’ve moved to suggesting the Apache 2.0 and using it as our default for new projects.

2 Likes

BSD is accuratly described here https://en.wikipedia.org/wiki/BSD_licenses
What I wrote applies only to the “zero clause” version.

What BSD really allows is for companies to make changes to your code and keep those changes for themselves. Apple did this with BSD UNIX and made MacOS. They are not giving the changes to the public. GPL forces a developer who modifies the code to make his changes public if he redistributes those changes.

My point was not to make specific points about the licenses but only to say they are DIFFERENT and you need to choose based on your goals.

The big thing is showing it off and showing that it works and is actually available NOW is is not vaporware. THere is so much good free software out there that simply making it free is not enough to make it noticed. You need a marketing campaign too.

Even with free software you can make money. In fact likely more money than if you tried to sell it. By making it free you might have 100X more users then if you sold it. Now you have 100X more opportunities to do paid consulting work. THAT is where the money is, not in sales but in services. If your software become an industry standard you can work full-time plus at $100+ per hour.

This is where the lincense matters. If you do consulting work for customer A, does Customer B also get you work? I would hope so. This way everyone becomes famiar with how smart you are, you are in even more demand and the quality if the product raises for everyone and you get a snowball effect. It also makes you life easier because you only have to maintain one mainline varsion of the code and not none per customer and you never get sued for leaking secrets.

Hmmm, I guess my biggest question is if licenses generally are complied with around the globe? How are they being respected across companies globally?

In principle, I’m not concerned about sharing code. I intend to use this system to provide domain-specific services, not sell hard- or software. The workflow and all the non-tech related work needed means that it’s possible to be extra open.

Thank you for an awesome response.

I think this pretty much sums up what I need to do.

First of all, I need to do what I have been doing this whole week without an answer; finish the “me”-part. I have done some pretty big changes to my system and have been saying all year that I need to get one test that shows where I got. I should have had the patience to wait this last week, but obviously I’m too sick of working alone to do so. So, sorry for the wait and the short response.

I had another test today, and it went ok. It was another fail, but I think I got it next time. Just need to find a window without rain…

I don’t know if I’m retarded or Linkedin really don’t provide URL’s, but you’ll have to look me up to find it. It should pe public both on Linkedin and facebook.

Thing is that I don’t really think that anything that I’ve done is especially great, or even worth mentioning. But I have had to do everything from getting funds to soft- and hardware, and there are some circumstances that make me believe that this could get somewhere in the right environment.

Let me get the next test properly demonstrated a few days from now, then I will focus everything on getting this ready. Just one or two more days now…

I understand that I have done a horrible job with this answer, but my head is fried. Will get back to you all properly in a few days time.

Tord, it sounds like you are stretched very thin. I’ve seen it in members of my own family before when they are starting a business. What I would say is, be careful about going down with the ship. You have to be realistic about financials and the chance of success. If things aren’t going well, perhaps get a normal job and make this your weekend/after hours project. That strategy worked well for somebody close to me.

Luckily you’re still young and the experience you got from this project is probably very valuable.

I don’t see any links where I could actually see what your project is. Can you post one? That would help.

1 Like

Yes, you are so very right.

I have promised myself and everyone who thinks it’s about time to fold that this will be my last push towards my ambitions. So while i appreciate your concern, please respect my choice not to ever engage in discussions around my life choices.

At this point I’m going all in, and there is no discussion on the matter. Don’t worry for me, I’ve had way worse.

I will get some help with uploading to github and will get around to documenting the last packages I have used. Try to show what it is I am trying to do and how it could be utilized by coders who actually can code.

So all packages are coming online this week, since I just spent an hour lumberjackin’ for my retarded drone. I have to get one without ducktape and superglue anyways.

Video of how my system should work and how it did work on my linkedin.

BTW; videos are public on linkedin. You don’t have to be my friend and I don’t care who visits my profile. Knock yourselves out. My hope is that the last video, the simulated one, best will describe the system to people familiar with ROS. I do of course not expect this to be the case, and will get on with documentation as mentioned. It’s not high level code, but it does integrate other high level tools that are both stable and flexible.

I finally got some intel on how to post linkedin links, so coming up.

I have a friend, Leif Gunnar, who will drop by when he has posted the first stuff on github. He’s going away for work this week so we’ll see when he finds the time. I have to go away for a few days.

As promised https://www.linkedin.com/posts/tord-bjørlykke-2b5a86b4_how-it-was-supposed-to-work-activity-6698715274562064384-Tozg

1 Like

I’ve had a short vacation this weekend, and I find it hard to boil things down. While I figure this out; if anyone has 6 minutes: Please let me know any first impressions, this is an incomplete attempt to summarize things:

1 Like

I understand that this might not be the best forum for such unfinished and fractured discussion. Everything here is so neat and complete.

Could someone point me to a more fitting place for my here-and-there-stuff? I’m sorry if this is just bothersome. Please feel free to delete this thread if I’m out of bounds, I understand completely and won’t take offense!

If anyone want to see code send me a PM. I have no license and there are no documentation, just unofficially through mail or something - I am still waiting for someone to advice on the matter of license and the document that tries to explain what I try to achieve is still a work in progress.

Videos should be available at the same place as the last linked youtube video, both recent tests and tests from 2018 with (DJI m100, upboard, hokuyo lx30, optical flow (guidance) and slamdunk embedded GPU/Camera combined to work impressively imo). Also worth checking out is some footage from tests with BlueRov2 - confirming that computer vision on an rpi3 along with unit lighting (complete darkness) can identify net structures at several meters without optimal configuration. Everything will work, all we need to do is complete the last piece of the puzzle. If someone invests time in this I will make sure that they get their own hardware to run tests on!

Mentioned tests - here you go!

Ofc the last test!

Hi.
I’m Leif, Tord’s friend.
I guess he jumped the gun a bit regarding timing. He is currently structuring his code, to make it more readable for posting on git hub. In the meantime, I’m posting the old workspaces on for those who are interested. These files were not meant for sharing, but since he said he would post them, here they are: https://github.com/ligatos/tords-workspace-2020.git

Cheers
Leif Gunnar

This is the current state.

What should I focus on improving / doing to make this something that’s tempting to work on?

I could either start documenting and cleaning things, or I can fix the targeting node and the edto-auto-side to demonstrate tracing of structure walls for inspection. Either one will take a few days.