Greetings!
Some time ago we’ve released a new version of our Linux autopilot - Navio+. Main new feature is that Navio+ supports HAT standard and is compatible with Raspberry Pi models A+,B+ and also with… Odroid-C1. It is a new board from Hardkernel powered by quadcore 1.5GHz CPU with 1GB of RAM. Odroid-C1 sets a new standard for performance - it is fast, 10 times faster than Raspberry Pi and faster than most of the single-board computers on the market. It also features EMMC storage for high performance memory operations. Another benefit of Odroid C1 is that you can build APM on it in just 45 seconds.
Here are the benchmark results for Raspberry Pi B+ and Odroid-C1 made by intorobotics.com:
The full comparison article is here.
Besides DMIPS, very important improved metrics are system call overhead and context switching that will positively affect real-time capabilities.
We’ve added support for Navio+ and Odroid-C1 combo in APM. The porting was mostly straightforward thanks to the APM’s HAL and as we already had the drivers for Navio+. As Odroid-C1 is a new board, not all required system features were implemented and we had to do some tuning. Luckily, Hardkernel team is very responsive and great in communication and helped us solve the problems as we found them.
Most of the features are implemented for C1 such as toolchain configuration, build target, IMU, baro, GPIO driver, RGB LED etc.
But we won’t be kept without work, a couple of things are still left to do:
RT_PREEMPT kernel. The real-time patch doesn’t apply as smoothly as on Raspberry Pi’s Linux, so we’ll have to deal with that by manually applying the failed hunks.
RCInput. This is a tricky part on Linux, but on Raspberry Pi it was solved by using DMA. We can go that way too, but Amlogic S805 has quite a few other peripherals we can use - unlike BCM2835 it’s got a lot of spare timers that can generate 1us interrupts. Datasheet was only released a couple of days ago and we’re currently exploring the possibilities.
APM’s port for Odroid-C1 is available here:
https://github.com/emlid/ardupilot/commits/navio-odroid-c1
For now our main goal is to take Odroid-C1 into the air and we believe that many exciting projects will follow that will take advantage of incredible processing power.
Emlid team
Comments
Great! How do you handle priority between additional processing (like image processing) and flight controller? And if the additional processing crashes the system?
@Paul Meier
You are not alone.. I did just the same.. :)
LOL, bought Pi B+ two weeks ago, Odroid C1 last week.
So I decided to up it and ordered the Pi 2 today..
Dohhhhh! just bought the Pi B+. Oh well maybe I will not have to get a C1 after all.
@Fnoop Dogg
These are actually great news! Another platform to be supported by Navio. Also, the processor is highly compatible with the previous version, so we don't even have to do much.
This might shake things up a bit:
http://www.raspberrypi.org/raspberry-pi-2-on-sale/
Combined quad-core with the (relatively) open powerful gpu with hardware codecs and a cheap mipi csi camera, cheap and widely available with lots of peripherals and community. Healthy competition always benefits communities like us :)
@Julien Dubois
Some algorithms may be time-critical and it's very hard to properly use them on a companion computer because of the additional level of communication between two. There's no difference where you do image recognition - on a main unit or on companion, but the same can't be said for AHRS. System consisting of two units is always more complicated and prone to errors than a single-unit system.
Yeah, very interesting product. Arducopter do need more power but probably not at its current state.
High level algorithms and functions, independant from copter stab, could be developped on such companion computer as Randy did but it's important to keep the copter stab/attitude control at the lowest and safest level possible and ideally independant from other high level features.
Very excited about this one!