PX4 vs ArduPilot - when to choose what

totally unfair comparison between 2009 and 2017


I think there is a fundamental mindset difference between the two due to the license. With Ardupilot you are required to allow any improvements to the code to be shared with the community. With PX4 you are not. Hence PX4 is attractive to corporate developers who want a free base to work from and will encapsulate the result of their additions into a closed product.

Ardupliot by nature attracts people interested in growing and sharing the results of their work by adding back to the community.

Theoretically that should give Ardupilot a leg up in development for the end user.


That is wrong… It is not because ArduPilot is GPL that you need to share your developpement with the communauty… You only need to share your ArduPilot source and developpement if somebody buy your product and ask for it.
Most company just chose to hide they use ArduPilot. For PX4, it is different are you can relicense the code as your own and don’t need to share anything if you want.

That is the point if you are a corporation wanting to build a product, which most corporations then sell right? You get most of the work for free and you don’t have to share anything that you develop.

What I said is correct.

1 Like

Hi, I am following the discussion and I am highly interested in the difference between ardupilot and PX4. However, from the last posts, I got a bit confused.

What is the difference at the licensing side?

Regarding PX4 (License type: BSD 3-clause): I read this on the github page (https://github.com/PX4/Firmware/blob/master/LICENSE)

Regarding Ardupilot (License type: GPLv3) here is the information about the license:

I would like to ask you: what are the differences between Ardupilot and PX4 at the licensing level? I am not an expert in software licenses and it is not super easy to understand.

What I understood so far:
In both cases one can redistribute (as far as I understood in GPL you MUST redistribute while BSD is more permissive. The BSD basically says “here’s the source code, do whatever you want with it, but if you have problems, it’s your problem”. That means you can take BSD’ed code and turn it into a proprietary application if you so wish - there’s nothing saying you have to give the code back (although it is nice to do so).).

I suggest you read this article which clarified a bit the things for me (but maybe it is too old?)

Thanks for the help.

1 Like

Yes that is the bottom line. With BSD you can do what you want, including making your new product code based on PX4 code entirely proprietary and unavailable… With GPL if you incorporate the code into a product the buyer of that product has the right to demand to view the source code of the product.

Funny to see how the discussion has shifted from Features to Licence… incidentally this is what happened when ArduPilot and DroneCode splitted 2 years ago.

Personally, I still consider that ArduPilot has the best features and a great community of users and developers. PX4 is still leading in academic & research because of the high compatibility with ROS through MAVROS that offers an easy interface between both world. There is more and more interest now in ArduPilot community to interface using ROS-MAVROS with projects implementing scanning Lidars, Visual Odometry and SLAM. Take a look at these project and you will get a glimpse of what to come Congratulations, GSoC 2018 Ardupilot Students!


It is a point in comparing the two because as noted, the communities are quite different. Which is better depends on what you are after.

1 Like

The GUI in PX4 for calibrating is still more nice and clear.

Is there a way, to grab the nice features for ardupilot?
Or is it impossible, because of the small memory in some devices?

The flight software does not have a GUI.

Your choice of GCS has a GUI, and if you use a recent version of QGC the setup is graphically similar either when setting up PX4 or Ardupilot.

Why are you thinking to move to ardupilot? What is wrong with px4.
I am trying to compare both the system but not finding all the answers.
could you explain reliability of px4 and ardupilot?

Ardupilot runs in Real-Time on top of ChibiOS, a small RTOS.
PX4 runs mostly Real-Time on top of NuttX, a big POSIX compliant RTOS.

If stability in control loops is important for you, use ArduPilot, or wait for PX4 to fix their Real-Time issues (see their roadmap)

1 Like

@amilcarlucas, can you elaborate on the Real-Time issues with PX4 you’re referring to? I don’t see anything in their roadmap or developer issue logs. This is something I’m concerned about if it’s real but I’m unable to find anything that backs it up or describes the issue.

@Nik286 I’m sure that @amilcarlucas was referring to the fact that the underlying operating systems Chibios is a RTOS and Nuttx is almost RTOS

I’m not sure why you think NuttX isn’t an RTOS, but the bulk of the real time issues in PX4 were resolved earlier this year and stemmed from quite a bit of technical debt that dates back to the days of Ardupilot running on PX4 sharing the same drivers.
In PX4 the inner loop (gyro -> filter -> rate controller -> mixing -> output) is synchronized with the primary gyro to minimize end-to-end latency (rather than a set loop rate). Soon you’ll be able to run this at 1-4 kHz, or faster if justified (also depends on the particular sensor).

Feel free to message me directly if you have any specific questions.

1 Like

Thanks for chipping in Dan: it’s good to get up-to-date information and more than one viewpoint.
I think it’s fair to say that there is no defensible technical performance comparison of the two flight stacks on current releases (or Master) - just a variety of opinion with varying levels of knowledge and bias.
I don’t think that the dev teams see much value in such a comparison (both would rather just focus on making their own project the best they can), but if there is demand from the community it’s something we could perhaps consider.


@james_pattison . Yah . Please do a technical performance comparison between two flight stacks . I would like to get a clear, neutral perspective so that I can choose the right one . THANKS .


Some personal opinions on flight performance. I have flown both PX4 and ArduPilot on the same vehicle as I tried out the two flight stacks for a university drone team.

When well tuned, PX4 and Ardupilot vehicles fly almost equally well. But PX4’s lack of Autotune and InFlight Knob Tuning makes tuning a PX4 vehicle more challenging. PX4’s Airframe-specific Presets seems user-friendly, but is in fact counterproductive as the preset gains are specific to a certain payload and propulsion setup. PX4’s “Wind Problem” is not systemic, it only manifests when the Position Controller is not well tuned.


Hi! I just finished building a quadcopter which is relatively large to carry a gopro and I’ll mainly be using it for photography. I currently have the Arducopter software on it and the loiter isn’t too great since it wobbles which meses with the footage. I have tried autotune but unfortunately the wind randomly comes which leads to that failing. I have a couple questions.

  1. If I do get auto tune to work, will the quad fly much better?
  2. Is PX4 software better for loiter? (I have a Pixhawk flight controller)
  3. My center of gravity is not perfectly centered since I need the gopro a little further so the legs don’t get in the shot. Could this be what is causing the wobble? The reason I ask is because the wobble is not in the direction where the CG is a bit off, it is in the other direction.
    Thank you so much!!

Make a new thread under Copter 3.6 and give exact details of technical specs and post a link to a log.
I dont think PX4 will be any better without the same type of tuning and fixes, but I believe Ardupilot Copter will give you more in the long run and be more rewarding (since you already nearly finished)

1 Like