osnwt
www.LinuxDrone.org
Hi guys,
we are happy to introduce this new project created by a group of former OpenPilot developers. You can read more info about us on our web site.
What the LinuxDrone is? It is an attempt to create a really open source and open hardware autopilot/UAV system based on Linux with real-time Xenomai co-kernel. The goal is to use the same processor for all tasks including hard real-time ones, not like a Linux as a governor for another flight board.
Why Linux? It opens doors to a lot of possibilities. Say, do you know AR Drone with its onboard video-based position hold? Imagine the same but completely open source, running on $35-45 board.
Why we do that? Just for fun. We have no commercial interests behind.
At the first stage to proof the concept we play with the OpenPilot project software fork, porting it to Linux as a native Xenomai real-time application. Below you can see the OP Revo software running under Linux on BeagleBone Black board. It uses only 10% of CPU time. Note that the board is running full blown Ubuntu Linux with active TCP/IP stack, Apache web server, USB serial port, USB mass storage and USB TCP/IP connection active (the latter is used to connect to the GCS). On this video you can see the native linux fw_beaglebone.elf process running. It connects to the original OpenPilot GCS which is being temporarily used for first tests.
Ok, the next step was to actually make it flying. And that's done. On the next video there is the Alex's milestone: the first flight of the penguin.
Please don't complain yet that it flies ugly. The person who piloted it has no any multirotor flying experience. Moreover, this was actually the first ever flight without any PID tuning. We used defaults from Revo board which obviously has different timings. And beyond, it contained wrong timebase and used non-realtime Linux native i2c driver which does not guarantee any timings at all. Anyway, it flies and not so bad for a new platform assuming the first take-off.
What's inside? Actually, just a retail linux board. For initial development we took easily accessible hardware:
We used i2c for a reason: to proof the concept of the system and simplify connections.
The connection diagram is as follows (wiki link):
View attachment 15638
We have no plans to produce any proprietary hardware. But in case of success and interest to the project it is expected to see some 3rd-party manufacturers to provide ready to use systems.
OK, what's next?
Our next step is to get rid of legacy OpenPilot code (both GCS and firmware) and replace it by own, written specifically for this application. And we have a lot of plans and some project roadmap.
Some of plans are:
How can you help us?
We are a group of skilled people, and we can implement all of above. But the more people join us - the better. At the moment we run own git repository, but there are no any releases yet, and new code is not stable or nice to look at. We plan to mirror the sources to a github as well as to Atlassian fisheye web site for easy guest access. It may take some time, but if you are interested in authoring, please send us your public git keys, and we will add them into our repository ASAP.
Tasks waiting for developers: anyone can find a task. Some of them are:
- RTDM I2C driver for Xenomai;
- TI Sitara PRU drivers for PWM/PPM;
- Javascript coding including server-side node.js scripting and client-side web application.
- a lot of other tasks.
We don't invite testers YET, but if you want to build your own system and try it - there is some info on our wiki, and more will be added soon. We will provide Linux+Xenomai images, built firmware, sources, give advices for development environment. But some Linux background is desired at this stage. When we make a final release, it will NOT be necessary like it is not necessary to run, say, your home router or SmartTV. That's the goal of the project.
Last but not least. Running own forum isn't an easy task. We decided don't do that at this stage having more time for development. I wish to thank Bart for providing us with this place to talk. Thank you!
And finally. The more feedback we see - the more info we share here. So don't hesitate to ask any questions, even stupid ones. We like questions, we like learning to new things, and we like healthy community around.
we are happy to introduce this new project created by a group of former OpenPilot developers. You can read more info about us on our web site.
What the LinuxDrone is? It is an attempt to create a really open source and open hardware autopilot/UAV system based on Linux with real-time Xenomai co-kernel. The goal is to use the same processor for all tasks including hard real-time ones, not like a Linux as a governor for another flight board.
Why Linux? It opens doors to a lot of possibilities. Say, do you know AR Drone with its onboard video-based position hold? Imagine the same but completely open source, running on $35-45 board.
Why we do that? Just for fun. We have no commercial interests behind.
At the first stage to proof the concept we play with the OpenPilot project software fork, porting it to Linux as a native Xenomai real-time application. Below you can see the OP Revo software running under Linux on BeagleBone Black board. It uses only 10% of CPU time. Note that the board is running full blown Ubuntu Linux with active TCP/IP stack, Apache web server, USB serial port, USB mass storage and USB TCP/IP connection active (the latter is used to connect to the GCS). On this video you can see the native linux fw_beaglebone.elf process running. It connects to the original OpenPilot GCS which is being temporarily used for first tests.
Ok, the next step was to actually make it flying. And that's done. On the next video there is the Alex's milestone: the first flight of the penguin.
Please don't complain yet that it flies ugly. The person who piloted it has no any multirotor flying experience. Moreover, this was actually the first ever flight without any PID tuning. We used defaults from Revo board which obviously has different timings. And beyond, it contained wrong timebase and used non-realtime Linux native i2c driver which does not guarantee any timings at all. Anyway, it flies and not so bad for a new platform assuming the first take-off.
What's inside? Actually, just a retail linux board. For initial development we took easily accessible hardware:
- BeagleBone Black board running Linux with Xenomai (source: a lot of distributors worldwide, $45)
- GY-87 10DoF i2c sensor board (source: DealExtreme and others)
- 4 x AfroESC 30A (source: HobbyKing) reflashed to use i2c bus
- Orange OpenLRS receiver (source: HobbyKing) reflashed to use i2c bus
- Orange OpenLRS module (source: HobbyKing)
- 3A UBEC (source: HobbyKing)
We used i2c for a reason: to proof the concept of the system and simplify connections.
The connection diagram is as follows (wiki link):
View attachment 15638
We have no plans to produce any proprietary hardware. But in case of success and interest to the project it is expected to see some 3rd-party manufacturers to provide ready to use systems.
OK, what's next?
Our next step is to get rid of legacy OpenPilot code (both GCS and firmware) and replace it by own, written specifically for this application. And we have a lot of plans and some project roadmap.
Some of plans are:
- web-based LinuxDrone EmbeddedGCS™ (eGCS™), which will run directly onboard. For users it means that you can connect to the board via WiFi from any device: PC with any operating system, laptop, iPhone/iPad, Android phone/tablet, etc. And configure or tune board without any software or special hardware.
- javascript scripting. Scripting was one of goals of the OpenPilot, still unreached. For instance, you may write a script to take a 360 pano photo from a POI and return home with a click of a switch. We are making new system completely scriptable. The base scripting language will be javascript, running onboard under node.js, popular platform for high-performance web applications. Its Google V8 engine provides all necessary power for that.
- Linux userland: any software, applications, scripting languages can run directly onboard.
- C++ for firmware development. Yes, it should be used carefully for embedded applications, but in the end it can be as good for that as plain old C, but with few advantages.
- Open CC-BY-SA source code license. No hidden tags attached. Use if for any kind of applications, even commercial ones. Just reference us and contribute changed code back to the project.
- Free and available hardware. Unlike some other projects, we decided to use commodity hardware boards like BeagleBone Black and Raspberry Pi. There are a lot of owners of such boards, and everyone can add few components to it and start flying his LinuxDrone. Moreover, we do not use yet any specific hardware features of particular board. Yes, we can or maybe should do that (say, use both 200MHz PRU units on the TI chip of BBB to run PWM acquisition/generation), but as an alternative it could run i2c or CAN bus devices, board-independent. So any Linux board which runs Xenomai-enabled kernel should be OK. But we will provide firmware images for BeagelBone Black and Raspberry Pi only yet.
How can you help us?
We are a group of skilled people, and we can implement all of above. But the more people join us - the better. At the moment we run own git repository, but there are no any releases yet, and new code is not stable or nice to look at. We plan to mirror the sources to a github as well as to Atlassian fisheye web site for easy guest access. It may take some time, but if you are interested in authoring, please send us your public git keys, and we will add them into our repository ASAP.
Tasks waiting for developers: anyone can find a task. Some of them are:
- RTDM I2C driver for Xenomai;
- TI Sitara PRU drivers for PWM/PPM;
- Javascript coding including server-side node.js scripting and client-side web application.
- a lot of other tasks.
We don't invite testers YET, but if you want to build your own system and try it - there is some info on our wiki, and more will be added soon. We will provide Linux+Xenomai images, built firmware, sources, give advices for development environment. But some Linux background is desired at this stage. When we make a final release, it will NOT be necessary like it is not necessary to run, say, your home router or SmartTV. That's the goal of the project.
Last but not least. Running own forum isn't an easy task. We decided don't do that at this stage having more time for development. I wish to thank Bart for providing us with this place to talk. Thank you!
And finally. The more feedback we see - the more info we share here. So don't hesitate to ask any questions, even stupid ones. We like questions, we like learning to new things, and we like healthy community around.
Attachments
Last edited by a moderator: