APM vs. PX4 – what to get?

What are the advantages and disadvantages or each?

 

The PX4 looks like the very old days when APM had many boards and no case. Just looking at the advertisement I have no idea why I would want to trade in my APM 2.5+ for a PX4?

 

.

 

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Which could allow some sort of failsafe app to keep an eye on things in conditions where logic breaks down? Correct?

    Right, but as we've talked about before, IMO, I'd rather not get to that point, through rigorous software engineering.  Because even if everything is compartmentalized in a RTOS, the lock up of any one sub-module is still quite likely to cause a crash anyway.

    I guess there is still room for some improvement in error handling.  But still, my main point is that probably 99% of the failures we have had, will NOT be solved by an RTOS.

    The flyaway of my Octo would not have been prevented.  It did exactly what it was told to do.  How to fix it?  Detect failing voltage and auto-land before the system starts flaking out due to low voltage.  That's not an OS thing.

  • MR60

    Hello Mike,

    to answer your initial question APM vs PX4, all we hear about in forums is about how the potential of PX4 would theoritically (remains to be seen in practice) be much higher based on its bigger processing capability.

    I would like to introduce other criteria than processing power. Indeed what makes practically today such a success of APM is its Arduino based origin. Arduino is the most versatile "system" that gives you today at practically no cost all sorts of interconnections with other devices : sensors, robotics items, other boards, all sorts of electronics to communicate, etc.

    I think this is a much bigger concrete advantage of APM2.5 versus PX4; indeed I'm afraid of the closed hardware of PX4.

    Also another huge asset in favour of APM is its HUGE helpful community. That is still to be built for PX4 : i would not have liked to build my new quad today on the basis of PX4, because when I observe the number of times I had to call for support on this forum, i'm glad there was a experienced and mature community to help me instantly. With PX4 I probably still would be waiting for answers...

    Just an opinion,

    Hugues

  • Developer

    I think I have to wrap up some of the speculations here and set some records straight, plus I think I've got a good answer for Mike.

    @Mike: The APM software runs already on PX4, and in this mode you can't tell if its APM 2.5 or PX4 as a user (same MissionPlanner interface, same behaviour). This is in beta testing, but works great so far for the APM devs, and we're jointly targeting a release, at which point you can flash your PX4 board like you're used to flash your APM 2.5. This is deliberately not supported right now, to not tease you into becoming a beta tester if you don't explicitely want to.

    APM on PX4 will benefit from the bigger processing performance in being able to support better filters and controllers and running at higher update rates. The ArduCopter codebase is by now maxing out the AVR and could do more with more processing. So I recommend to stick with APM 2.5 as long as you don't see official MissionPlanner support for PX4, but its not something that would be planned, but something that is actively test-flown now.

    Plus you have the option to run the PX4 native stack, which is right now still targeted towards developers and researchers, but this will gradually change. The gut feeling I have on your use case is however that you will want to wait until a PX4 with case and MP support shows up, which will indicate when the dev team feels its end-user ready.

    As for the hijack aspects on this thread: There is much speculation here still and little knowledge, and unless familiar with GIT even the provided links are not obvious at all. So let me start from scratch with a way simpler explanation in plain english:

    • PIXHAWK is a research project of the Swiss Federal Institute of Technology. Although the people in it contribute to PX4, its not the same thing, and PIXHAWK has its own codebase (called imu_autopilot), which exists since 2008. MAVLink exists since the same time, and I hope this makes it obvious that both is original work. PIXHAWK won 2009 the European Indoor Autonomy competition and we learnt a lot from Paparazzi, which clearly are the shoulders (and the only ones, since the other projects did not exist in a relevant shape in 2008) we're standing on.
    • We were at some point in 2011 considering to contribute a board + software to OpenPilot, but eventually (and we're still good friends with the OpenPilot dev team) decided, for purely technical reasons, that we want some things differently and started from scratch. We did contribute the Cortex M4 infrastructure to OpenPilot, which you can find here: STM32F2/F4 change set, we however did not take any code from OpenPilot into our repository.
    • For said technical reasons, work stopped there completely, we started from scratch and based our new effort on the NuttX OS, the codebase for this can be found here: PX4 Firmware
    • Completely unrelated to PX4, QGroundControl uses the really great OPMapControl library, which is (feel free to check that the credits are there for a very long time) clearly attributed here: QGroundControl Credits

    So despite that I think OpenPilot is a great project, calling PX4 a fork is just completely wrong, in every single aspect. You will not find any OpenPilot code in PX4, and since PX4 uses a completely different operating system, different middleware, different controllers and different communication protocol just shows that whoever makes that claim did not bother to quickly look at the two source trees (here vs. here), because if it were a fork, it would have to show some similarity. Just compare the two and check if you can find any remote similarity.

    As a last point I'd like to add that there is an established, respectful and good relationship between the developers of the various projects and the wild speculations and fights are amongst the fanboys, and we're not going to join this.

  • Well that was quite an interesting AP history lesson. Stuff I had no idea about.... Too bad it hijacked this thread.

    Mike, I though that by the time I got to this page that there would have been a good answer to your question.

    I can't answer your question directly, but....

    I've wondering about getting an APM2.5 vs. a PX4 too. I have 3 APM1.4's  & I gave my APM2.0 to a friend, (who broke his APM), before I got to try it out.)

    I will more than likely get the PX4.

    The PX4 offers a lot of improvements. The fact that it has a modular nature shouldn't be seen as a negative, but since the code is not all ironed out yet and that you are uncertain may suggest that you stick with the established APM2.5.

    As for the packaging, looks and neatness do count for a lot, a decent enclosure protects the contents and and can make it easier to see that the wiring is ok.

    I do feel sheepish showing the interior of my plane to others after I've had to remove the AP to dry it off because sometimes it can look like a messy high school electronic bread board project ...

  • Moderator

    Guys,

    I'm just an average joe here with no special skills when it comes to code or electronics, but I enjoy learning, and I enjoy building and flying model aircraft of all types. I've been here as a member since the days of the legacy Ardupilot and I have thouroughly enjoyed learing and challenging myself personnaly with all the new ideas and skills this aspect of my hobby provides. That said I must say that FAR TOO OFTEN I stand by and witness simple discussions or questions get hijacked by argumentative jibber jabber that have little or nothing to do with the original posters question.

    It seems to always be the same person or persons stirring up the pot with the same loud reteric clogging up these forums with their self imposed crusade to right some wrong. Flogging the horse until it's not oly dead, you can't even recognize it was a horse at all.

    It's really beginning to put a damper on my enthusiasm for this aspect of the hobby. If something bothers you so much about a group of people or an organization that you feel the need to repeat your compaints in every forum on every website that you come across I would suggest you move on and get over it, life is way to short to waste another minute of it reading another one of these poisinous threads that has strayed so far from it's original subject that it is nothing more than an oppertunity for cyber bullies to beat down the less agressive mainstream.

     

    On a personal note I am saddened by the tone of so many forums around the internet. The behavior I see exibited is the very problem with society today. Gone are the days of common courtesy, replaced by rude childish and obnoxios behavior.

     

    OK I'm done now, sorry to have taken this thread here and I apologize to you Mike for not having anything to contribute constructively to YOUR thread. I can only hope the course of the thread will return to YOUR objective and not theirs.

     

    Regards to all,

    Nathaniel ~KD2DEY

     

  • The problem with the APM is that they use a weak old processor instead of a cheaper and much faster modern one in order to make the programming easier.  Then they even used old analog methods like PPM for stuff it's not intended for like inter-processor communication so that they could borrow code from Paparazzi.

    To their credit, they made it work.  But what you have is a slow, old processor using old and inefficient analog techniques to do it's job.  Pile that on top of using a programmer's "training wheels" system like Arduino and you have the APM.

    I like my APM, and it works alright, but it is certainly a legacy device and not a modern design.  It's certainly not the future of autopilots. They took the easy path to getting an autopilot on the market and now the growing pains will certainly be the death of the APM as we know it today.  You can only take old processors and analog thinking so far, and waiting for Atmel to catch up to the rest of the processor market has already left them in the dust.

    The PX4 is a bunch of upstarts that rather rudely forked from the OpenPilot project, so I have no special love for them, but I imagine they have their reasons and if OP can't kick down the hardware then I suppose there's not much else you can do.

  • All indications are that 3DRobotics will build on the good shit in order to stay in the game. There is a fork out there with the name of Ardupilot, but with the contents of the the PX4. It looks like the PX4 guys and 3DR are working together but have decided to keep their code separate for whatever reason.  In essence it comes across as 3DR adding some development support to the PX4 team at the moment. If you buy the VRbrain or the 3DR board & put the PX4 software on it (either branch), you'll have a system that is competitive with OP, Autoquad, & Paparazzi. This could be wrong in the details--if anyone wants to jump in who knows the actual intentions, feel free to correct me.

  • 16 times faster 32 bit with FPU compare to 8 bit :-)

     

    APM 2.5+ processor - Atmel ATmega2560

    • 8-bit, 16MHz, 16 MIPS, AVR RISC-based microcontroller
    • 256KB ISP flash memory, 8KB SRAM, 4KB EEPROM

     

    PX4 Processor - ARM Cortex-M4F

    • 32-bit, 168MHz, 252 MIPS RISC ARM CortexM4F microcontroller with DSP and floating-point hardware acceleration (FPU).
    • 1024KB of flash memory, 192KB of RAM.
    • MEMS accelerometer and gyro, magnetometer and barometric pressure sensor.
    • Flexible expansion bus and onboard power options, SIMD extensions.

    The PX4’s much more advanced processor is 16 times faster than the APM 2.5+, but the software is somewhat experimental.

    I can use Eclipse to compile the PX4 firmware.

    If the ArduPilot would use the new Arduino Due (ARM CortexM3, 32-bit, 84 MHz, 100 MIPS, 512 KB Flash, 96 KBs of SRAM, 16 KB ROM) I would choose that.

    I am leaning toward the PX4.

  • I fly mostly airplanes (and one quad) so those features are of no interest to me. I am fairly happy with the current hardware. The firmware can always be better but it has come a long way in the past year.

     

    I think that in the future higher-powered processors will be the norm. When there are more compact single board autopilots that look professional like the APM 2.5 and appropriate firmware with increased capability is available then I might be interested. Just look at how fast we progressed from the APM1 to the APM 2.5+. Maybe this time next year it will be worth another look.

     

    .

  • Umm... maybe the modern 32-bit processor, instead of the 15 year old design the APM uses, or the orders of magnitude greater processing power?

    ARM cortex based processors are where everything is going.  No doubt about that, 3DR has already said they're switching over for the next version.  You can have one now or you can wait a few years until the APM3 comes out.

This reply was deleted.

Activity