Why Luos and Robus are open source
We started a journey that has the potential to change the way we build robots. That journey will take time. Open source is the way to go, together. Let me tell you why.
I am writing these lines directly in my browser, adding images in seconds, and sharing my work with the entire world with the click of a button. That is pretty amazing! But it has not always been that way. Once upon a time, you had to know how to setup your own server, code your webpage in html and upload images remotely. Only a handful of experts were able to create and publish their own content.
It still pretty much feel like that with robots. So many people I talk to have an idea of a robot to build — not crazy humanoid robots but relatively simple contraptions to assist in their daily life. Most of them even know what is needed to test their idea, a motor here, a sensor there, and it should do the job. At least for a first creative and curious attempt.
The problem is that they can’t even try. And I can’t blame them, the barrier to entry in robotics is very high today given the tools available. This dramatically limits the potential for innovation, especially disruptive innovation that might come from domains far away from the daily preoccupation of robotic experts. But it does not have to be like that.
Our vision is to make robotic product development as accessible as online publishing is today.
Our team at Pollen Robotics has been working on this problem for years. It all started with the Poppy project we initiated while at Inria with the aim to make experimenting with robots much simpler. Thanks to the efforts of the whole team and an enthusiastic and supportive community, the Poppy robots were quickly used across the world in art, science and education.
Strong from this experience, we realised what exactly is missing in the robotic ecosystem today. We created Pollen Robotics to fulfil our vision and make robotic development more accessible, efficient and reliable.
The first step of this journey is to develop the tools we always needed, Luos and Robus:
- Luos is a set of hardware and software librairies, written in Rust, that orchestrates robotic systems.
- Robus is a lightweight & low-cost modular network made to unify communications between components in hardware electronics products.
We will write more about the guiding principles behind Luos and Robus in subsequent posts, but we believe that, together, Luos and Robus have the potential to change the way we build robots — enabling more people than ever before to build projects interconnecting sensors, actuators and programs in a modular and reliable way.
Nobody can do it all alone
But let’s be realistic, this cannot be done isolated from the world, the robotic community, and its potential users. It has been demonstrated in the past, especially in the development of the world wide web.
To go back to online publishing, an astonishing 30% of all websites are powered by WordPress, a free and open-source content management system. These websites are hosted on webservers, and more than 65% of all webservers on the planet are powered by Unix-like operating systems, the vast majority running Linux. And Linux is also powering Android smartphone and the rise of the internet of things. The vast majority of libraries that power the internet today are open-source frameworks developed in unison by thousands of engineers, most of which never met physically. Their work makes it possible for single developers, or small teams, to build complex websites quickly to test their innovative ideas; and even scale them painlessly when it becomes successful. Our dream is to be able to do the same for robotics.
The above examples are dreamed projects that needed great execution and maybe a touch of luck to become hugely dominant players. Luos and Robus are small projects for now and we decided to open-source all our tools because of the benefits it brings to the users and to the overall quality of the tools themselves.
Building open-source software is like that recipe passed down over generations in your family. With time and experience the recipe got better, you inherited that recipe, improved or adapted it, and you will transmit it to your children and friends. Open-source relies on the same philosophy, except that your family can be much bigger and iterations much, much, faster. Here are a few reasons why releasing our work in open-source will make it better for everyone:
- Usability. To be usable a technology needs to be used and criticized. Open sourcing a project for all to see, try and provide feedback on is a great sanity check that can avoid you working days and nights for a tool that nobody will know or want to use.
- Safety by transparency. If anyone can see your code, anyone can find bugs and raise security issues. It is a two sided blade of course because when the source is open it is also easier to design attacks. But overall open source software has fewer defects in its code than proprietary programs.
- Shared standard. Sure, there is a sample code somewhere on the internet for almost anything you want to do. But no two of them will work well together. Robotics needs common standards to enable efficient and productive collaboration. Enabling anyone interested to use, share and comments on APIs is an efficient way to converge on a standard and spread it.
- Built in diversity. To each his own field of interest and expertise. In robotics, there is a lot of sensors, actuators and algorithms, and not a single engineer can know how it all works. Allowing everyone to contribute from their own expertise makes it possible to expand the scope and diversity of a project.
- Proof by example. To promote a project and show its potential, one needs to be able to show what can be done with it. You need to convert potential into concrete examples and use cases. The easier and the faster people can get involved, the more examples will be generated and the more your project potential will be validated.
Many robotics projects already chose the open-source route for these reasons and have had a signifiant impact in how robots are built and used today. You certainly have heard about ROS, the robot operating system, along with many alternatives such as YARP, Aseba, or Urbi. Maybe not surprisingly, I would add Arduino to that list, even if it is not marketed for robots as such, it has probably been used to conceive more automated systems than all of the above frameworks. We will talk about that in upcoming articles, but our ambition for Luos and Robus is to fill the gap between ROS and Arduino.
Open means open
All our work is available at https://github.com/pollen-robotics for everyone to try, contribute, and share.
- Luos is licensed under the Apache Licence 2.0. This license is permissive, meaning you can reuse and fork the code as you please providing you respect the attribution condition.
- Robus network technology is patented, yet we decided to release it under the LGPLv3 License. You are free to use it as your own convenience for your project (even commercial ones), and share your improvements!
Join the community
Gathering an online community around an ambitious project takes a lot of time and effort. It is all about consistent progress. We strive to push updates every week, comprising small incremental changes aligned with our long term vision.
We would love you to join us on that journey.
The very first and simple way to take part in this is to send us an email at: email@example.com. We read and answer all emails. Constructive feedbacks and cheering messages are always appreciated, they put a smile on our face and keeps us going when this nasty low-level bug hits us by surprise.
If you want to join the community and follow the project more closely, there is many options available:
- We host a forum at https://forum.luos.io/ where you can present your project, discuss the latest developments, report issues and ask for advice. Every week we post a newsletter presenting the community progress.
- We have a github account where we share all our work. All contributions, from code to documentation, are welcomed. Issues and pull-requests are acted upon very quickly by the community.
- We host and update tutorials every week to move you up to speed, step by step, to all the tools that are developed by the community.
- Every month we ask the community to vote for the robot of the month. The aim is to gather efforts around a sizable project that is wished for by the community.
- Another way to contribute is to become a patron, which also gives you access to insider information and early prototypes.
It is risky for a start-up like us to release its key technology to the world, for free, forever. It is the ultimate leap of faith and a strong commitment to our long term vision. But we know that, at the end of the road, the entire world will be different — if not the entire universe of course.
It will just be more meaningful doing it together!