LinuxDrone Project Project progress

osnwt

www.LinuxDrone.org
Here is a short list of what we've been doing now:


  • [*=left]All OpenPilot legacy code was finally removed. We will create a new fresh repository with our code soon.
    [*=left]A work has been started on C++ system core classes for sensors, system bus, xenomai interfaces, etc.
    [*=left]We have started a work on javascript web-based GCS (eGCS™). As noted before, we will have embedded GCS, no extra software will be necessary to setup and tune.
    [*=left]Some work started on BSON and MongoDB integration for settings database.
    [*=left]New repository will have new build system based on cmake. This should make easier to create makefiles and IDE projects for everyone on all development platforms.
    [*=left]Now we can read and generate accurate PWM streams using PRU subsystem. This is the first step to offload the core processor and move some driver tasks to internal real-time units of Sitara processor.
 

Kilby

Active Member
Very cool stuff. I'll be keeping an eye on this project for sure. Please keep us updated. I'd love to grab the source at sometime and have a look around. I've been a dev for many years and love to see open source solutions like this come out to the public.
 

osnwt

www.LinuxDrone.org
Thank you for reply. Actually, more responses (not a lot yet) - more shared info.

We understand that visitors of this forum are mostly pilots, not coders. Thus, the project isn't ready to be used by them. From another side, we don't try to do it ASAP. We intentionally removed all legacy code which we used for the 1st take off. This means that we have to write all from the ground. And that's what we do, not being tied to legacy implementations and being free to do anything we want.

There is no doubt that the hardware is powerful enough to perform well. So we are focused on the development system (for those who want to join us - internal core, build system, interfaces, settings database), and on the user side (read: web UI). Today 2 professional javascript developers commited their first parts of code into our codebase. We are happy to see them around.

Again, thank you for your interest to the project. Even if we don't expect that lot of developers join us next day, any support or questions motivate us to share more info and work on that.
 

osnwt

www.LinuxDrone.org
Here is a video by Sami: two PRUs in action. One reads PWM inputs from receiver, another one controls servos. It doesn't seem to be a big step, but actually it is the basis for using real-time units of CPU to perform most of input/output, leaving to Linux/Xenomai the rest.

 
Last edited by a moderator:

osnwt

www.LinuxDrone.org
More progress: basic configuration editor.

Ignore that look'n'feel (now we need it working, not looking great - yet). But here's how we expect you to configure the system: web user interface. Getting to the eGCS, you take modules you want (for example, particluar input and output interfaces like PWM or S.Bus), connect them to the rest of the system (not shown yet), and connect their ports with the mouse. So you configure your system using WYSIWYG principle (What You See Is What You Get).

On the video below the PWM input module is connected to the PWM output module. So the servo signal is passed through. The 2nd servo is internally connected to the Test Output generating few steps per second, and it works independently.


Credits go to LinuxDrone Team, mainly to Alex (architecture, web editor draft), Voha (C++ base classes), Sami (PRU-based PWM input/output modules and the video).
 

Attachments

  • prupwm5.jpg
    prupwm5.jpg
    35.4 KB · Views: 384
Last edited by a moderator:

vmayoral

Member
Hi Guys!

Great project! I'm co-founder of Erle Robotics (http://erlerobot.com/) and this will fit perfectly with our open BB-based Linux robot.
Looks promising, I would like to collaborate with the code who should i get in touch with?

Regards,

Víctor.
 

osnwt

www.LinuxDrone.org
It depends on what you expect from us or where you see the best fit for you. Different people in our team are responsible for different parts of the system. So there is no simple answer to your question: it depends on particular area of interest. One of them could be misc. language/system bindings. Say, we have javascript as a scripting language now. But python or even ROS bindings could be nice to have. So one of tasks is to write interfaces between them and LinuxDrone system.

I see your hardware platfrom as a good fit for our firmware. At the moment we have no plans of producing hardware. But could be nice to have some hardware platform capable of running our system with no or minor changes.

I would recommend to post a new topic in our forum section with more details. Actually, this is the best way of talking to dev team. The development here is quite dynamic. We expect to improve our usage of task tracker soon, so everyone would be able to pick a task to implement or even file a suggestion or feature request. And THIS site is our forum. We don't have closed sections and private development (apart from some Skype calls/chats when necessary). So any questions is the best to ask on the forum. We will do our best to answer. And if we don't have it in FAQ - we will add it.

I should post a bit more about our development model at this stage, though.
 

vmayoral

Member
Thanks for your answer.

I've got experience with ROS (last summer did the Beagle-ROS project) so i could collaborate with that part. I've seen that you guys are quite active in GitHub (several branches moving fast). I'm guessing it's fine if grab a branch and create my fork in there, right?
Do you guys use IRC to communicate? I've seen that #linuxdrone at Freenode is not being used, i'd suggest the developers hang out there so that we can have direct connection.

I'll do as you ask regarding the hardware.
Bests,

Victor.
 

osnwt

www.LinuxDrone.org
1. GitHub is used as a read-only mirror of our primary development system. We use own gitolite-hosted repository. But realizing that a lot of users have accounts @GitHub, we set up an automatic one-way mirror to GitHub.

If you want to do own development - feel free to fork and author @GitHub. We can merge some interesting branches or commits if we like (according to CC-BY-SA license). But we do not accept GitHub pull requests, since the way they are implemented there is not convenient.

If you want to be a part of LinuxDrone dev team (now or later), then you can send us your public git key. We install it into our server, and you can push branches directly into our repository and use our code review system to discuss and merge it into main branches. They of course will be mirrored to GitHub in few minutes.

Such solution seems to be the best for us: powerful Atlassian development environment for active project developers and easy to use GitHub mirror for other people who haven't decided yet to join us.

2. IRC. No, we didn't use that mostly because it doesn't have a history of chats. Anyway, it probably is a good idea to hang out there. If you give me OP to that channel (I have joined it already), I will hang out there as well. You can also help us as OP since we have no resources yet to moderate the channel, and your help is much appreciated.
 
Last edited by a moderator:


osnwt

www.LinuxDrone.org
Obviously, the way you did won't work, since the tar archive contains few files, including *.img image, md5 checksum and README.txt.
 


osnwt

www.LinuxDrone.org
Some screenshots and a short video demostrating our web-based system configuration editor:

test-stab.png



test-attitude.png


Android:
web-editor-android.png


One of key ideas was to provide completely web-based system configurator. Here is a working prototype. White numbers on blue background are real-time data sent via web sockets. Note that all this runs in any modern web browser including Android and iOS native. Each green object represents a module. Modules can be connected using a mouse and configured using property fields on the right. All modules are weak-linked, and the configuration is read at startup.

Here is how it looks like. Ignore the camera "gimbal" - it uses very cheap servo and used as a test bench. But look at the idea:



Last but not least: the project slowly moves to a multy-purpose real-time platform, and flying applications are just an example of use.
 
Last edited by a moderator:

Top