Potential for a highly simplified version of ArduPilot

Have been using Ardupilot since the days of APM… and it is really incredible how far we have gotten from those days. That said, as someone who mentors undergraduate teams, I’ve often found ArduPilot a bit overwhelming for newcomers. There’s just a LOT going on, for example, the RTOS (while obviously being miles better than the 8bit Arduino-based APMs) is still quite complex to understand at a fundamental level. Another example here would be the attitude estimation (sensor fusion EKFs) that we have.

A potential ‘AP Lite’ version, with JUST the bare-minimum for simple waypoint flight (Attitude, GNSS, Altitude) could potentially become a great student tool.

1 Like

I would recommend using onboard Lua for interacting with Ardupilot. When using SITL you can do live updates (requiring only scripting restart) (on realvehicle too though the process is more involved, and you should test in SITL first anyway).

If you want you can create your own fork of Ardupilot that contains only the minimal set of libraries. Though some Ardupilot systems are interwoven and may require careful untangling for that.

Betaflight is a viable alternative.

But I’m confused as to the reason college students shouldn’t be exposed to a well integrated control system or why they’d have trouble understanding it, especially with a capable mentor.

2 Likes

There are no beginners using ardupilot. just search ardupilot on youtube and sort by upload date, there are no videos like “flying with friends” or “first flight” or anything like that, its almost all VTOls and Rovers that look like university projects. go on any of the fpv groups like reddit or rcgroups, there is no one talking about ardupilot. literally the last post in /fpv with ardupilot was over a month ago asking why it wouldnt work. do the same search with inav or betalight and there are new users uploading everyday.

joshua bardwell (very famous youtuber) with a long video about a year ago on ardupilot and he couldnt get it to just loiter. so if he cant make it work then what beginner is going to try ardupilot after watching that.

bottom line is no new users means no new devs..

This campaign that devs are on to rid the world of f4 controllers has not helped. it’s just stopping new users from ever trying ardupilot. saying you need a h7 for all the features doesnt make people buy a h7, they just install inav or betaflight instead and will get all the features that they need. literally we are driving Inav adoption their whole sales pitch is that they arent as complicated as ardupilot and they dont need expensive controllers and setting it up is similar to betaflight, it now has mavlink support and has far more people working on it, the number of things that you NEED ardupilot for is shrinking rapidly.

ardupilot has very limited vehicle support. if its not a predefined vehicle it just doesnt work. inav has a fully customisable mixer the same as you find on a transmitter handset you can make it it fly or drive anything it also has logical switches and special functions like a handset so you dont ever need to type any code, you dont need to learn lua to make it do something new, this is how i had to do my submarine as ardupilot couldnt do it, then there are the things that just dont work..like omni vehicles, a custom mixer is something I suggested in an ardupilot issue around 10 years ago instead we went with lua a language that only a few experts know how to code and that only works on the most expensive controllers, even then its very memory and cpu limited.

99.99% of users dont need things like

copter-slung-payload.lua
winch-control.lua
follow-target-send.lua

So insisting everyone buys a controller capable of those functions is ridiculous. Most beginners would be more than happy if it only had the capabilities of an APM. it’s not until you get into professional applications that you need those features. So ardupilot devs have stopped people flying ardupilot with f4 controllers but they have done that by stopping all new users flying ardupilot.

2 Likes

@geofrancis
Sadly, I must agree… the problem is not the fact that complex features exist in Ardupilot, the problem is that understanding that at the firmware level (not just the configuration/commands over MAVLink/LUA) these functions are practically impossible to learn for most undergrads.

@LupusTheCanine I agree that LUA is great, but that only allows you to interact with Ardupilot, NOT understand the features you are using.

To sum it up, my frustration is with the fact that the firmware is incredibly complex and tough to understand. Undergrads can easily be taught how to use Ardupilot, but I bet that they couldn’t even describe mathematically how the EKF actually fuses gyro, accel and magneto data.

There is no “campaign” here, its just the reality of a evolving code base. We strive to never remove core features from boards, so if you have a setup that works and you update it still works. Taking GPS as a example, if you plug in a 10 year old GPS from the APM2 days it will still work. Every couple of years manufactures come out with the latest modules, M9M, F9P, M10Q ect. We add support for those too, all the flash costs add up and we simply cannot fit all the features on f4 boards any more. Because we try not to remove existing features the only option is to not add new features.

In the last few years we have changed to not adding new “professional” features to all boards, instead allowing such functionality to be added using the custom build server, or with scripting.

The reason we tend to not recommend F4 boards is because we know that at some point we will have to start removing some of the features they have now in order for the firmware to still fit. A more powerful flight controller will also give the user the option to try out some of the more advanced features in the future.

This is not a unique problem to ArduPilot of course. Betaflight had dropped support for STM32F1 and STM32F3 in the past.

Things like the custom build server are a potential solution, that would allow each user to pick exactly what they need and drop everything they don’t. That should keep F4 boards viable for many years to come.

As ever the problem is simply lack of dev time, everyone has been very busy, just look at the release notes for 4.6. There are lots of things we know we could improve, were doing our best. New contributions, especially on the documentation side are most welcome.

8 Likes

I have been saying this for years now. yet its treated like some kind of dirty hack to get ardupilot running, the only things cheap f4 controllers cannot do compared to a h743 is inverted serial, lua and canbus. everything else will work as long as you just add what you need in the firmware builder so why does every developer immediately tell anyone looking at an Ardupilot build that they need to get a h743. Sure I would recommend one for professional work, or RTK or companion computers or a developer, but for someone just wanting to build their first quad to fly something FPV it is totally unnecessary.

regardless of the intentions behind the decision, the result is there are no first time fliers using ardupilot. just do some searches on different fpv groups. ardupilot is just seen as an overcomplicated system that people can’t get to work.

1 Like

It’s not unless used that way (for example, stripping an F4 board of nearly all functionality just to get scripting to run poorly).

It’s a great way to get a bespoke version of the firmware to suit exact needs, and it probably isn’t used or mentioned often enough.

2 Likes

As a post-secondary educator, I’m going to disagree with you. Every year I have dozens of students build and fly drones that are working with the current full versions of Ardupilot. The build starts simple and introduces more complicated features as we progress. Giving students a light or stripped down version of AP would be doing them a disservice, because anyone using it professionally outside of their studies is going to be using the full version.

4 Likes

In my opinion, the decisive factor is not how many first-time pilots use Ardupilot, but what percentage of first-time pilots switch to Ardupilot after a more or less short time :wink:

Rolf

2 Likes

I post first flight videos if not under NDA from Ardupilot and Realflight.

1 Like

the sad fact is most just go and buy a DJI machine if they are struggling.

3 Likes

I think possibly you miss the point that a lot of people like to customize and build their own. I make Guitars for the fun of it because i want to on my CNC. I own a DJI but it not that fun to fly. I much rather fly a craft that does not track or make me upgrade firmware in China. I am a free agent and feel no one can tell me how or what to do.

I worked at one of the largest drone retailers selling quad parts and quad kits directly to beginners for over 5 years, I also ran a drone club with over 200 members, where i spend most of my time helping members with their builds, I rented an ice rink every week so we could fly indoors all year round.

I am very aware of how beginners start out flying.

your missing the point that you are not a beginner.

I sure some wanted more than DJI. When I think back on my work I always wanted to hot rod my stuff let it be dirt bikes, guitars, drones, skateboards, even shop tools. I sure you know what your talking about but sounds a little sad.

Brandon.

“your missing the point that you are not a beginner.” you would not say that if you saw my first guitar is was really bad. lol

1 Like

Most beginners are wanting to fly because they saw some cool video on youtube or read about it somewhere, they dont NEED ardupilot, they want to spend the minimum amount with the least effort to get something working that way they can see if they actually like flying, figure out how it all works and try and get some cool videos.

Back in the day hobbyists were the vast majority of ardupilot users in the beginning I would say it was about even between ardupilot and cleanflight in our club as Ardupilot was the only one that could use a GPS, after 5 years there was a few big hexacopters with pixhawks but the rest were all racing quads on betaflight and dji phantoms. These days now even betaflight can fly RTL and loiter with a GPS, they can then instal inav that will work almost exactly the same as betaflight but with waypoints so what reason is there for a beginner to use ardupilot?

1 Like

Yup. why I moved from the NAZE to AP, I did give GPS a go but it was a odd ride. :slight_smile:

1 Like

Honest question, how many of those students understand intuitively how the AHRS EKF fusion works? Or how the GNSS is fused with the EKF to get more accurate fixes?

It would be good for an instructor to touch on that without going into a full series of lectures.

Devils advocate:
I find that question mute in relation to a simplified version of AP since either all the parameters are exposed and usable, or they are not - but the EKF is still there under the covers. Generally we dont get into changing EKF parameters unless you want to modify how GPS, RTL or rangefinder data is weighted (for example).

Come to think of it, the MissionPlanner / Config / Extended Tuning screen has just about everything most people would need.
Maybe we should just make that more prominent, along with highlighting (some more) the battery monitor setup and initial parameters.
We could probably use a couple more sliders on the Basic Tuning screen, but it is very easy to make a workable copter completely unflyable with the click of a mouse.

1 Like

Speaking about adoption of ArduPilot, there are few factors for the general public adoption that are not mentioned above, though probably just as important if not more.

  1. Whoops. An increasing number of non-DJI-craft pilots fly whoops only, with characteristic prop sizes often less than 2" and most often flying with 1S batteries. There are few all-in-one boards that have a F405-based flight controller and are supported by ArduPilot (I am using one of these), but this is only as much as one can get, because there is no market for H743-based whoops.
  2. Loop rates vs build quality requirements. From what I see, Betaflight and friends, due to them being quad-oriented and needing no complex frame logic and no things like EKF, can afford very high loop rates (4K, 8K) very easily - and this appears to be very forgiving for build quality. For the common quad sizes even above the whoops, it seems as if it is much more difficult to build something that would fly reasonably well (especially FPV with stronger limits to high-freq oscillations) with ArduPilot than with Betaflight. The recent loop-rate thread development aims to address that, but for the same rate, this still requires a lot more resources than Betaflight (e.g. only H743 even for 4K rate) and is definitely advanced and even much more dangerous stuff.
  3. Versatility. I have a strong impression that the Betaflight side of the market is strongly dominated by few guys who basically tell their followers which components to buy for which genre of drones, and everyone having even minor problems are bullied by the community towards buying the parts currently in fashion. As a result, only a few presets are needed, which effectively eliminates the need for user-side tuning. ArduPilot supports everyone generously saying you can tune everything (and here is the autotune procedure for that), but it is the same as with *nix operating systems - you can tune everything, hence you have to tune everything. Not bad for guys building non-standard stuff like me, but not so good for the ordinary layman user who wants simplicity.

So I’m not sure there is a possibility (or need, for that matter) to make ArduPilot really beginner-friendly, because when it comes to mass market, versatility and beginner-friendliness cannot be optimized together.

For the educational context, this is different I think. Here, in my opinion, the codebase need not be simplistic overall in order to support education. It should have well-isolated parts which can be understood independently, and I think ArduPilot satisfies this requirement well, likely better than some other firmware available. Student projects don’t - and shouldn’t - have to be about rewriting half the firmware to suit their needs. Rather something which touches one or two subsystems at once: like support a new frame, or add a new flight mode, or support a custom-made rangefinder. This will still require some understanding of subsystems nearby and of general principles, but because of the software design, this will likely not overburden the students.

3 Likes