That is consistent with my experience. My highlights:
- Current betaflight devevelopers and leaders are incompetent (They inherited the code base from others), and are slow, and varying degrees of willing, to add higher-level flight-control mechanics (semi-autonomous modes etc).
- The Ardupilot and PX4 configuration systems, and general experience, are user-hostile.
Note that the converses of these hold: Betaflight has a reasonably-good user experience, and Ardupilot and PX4 have extensive higher-level flight control mechanics. If only you could get the pros of both together!
Regarding hardware, frames generally accommodate flight controllers and ESCs elegantly, but other hardware like cameras, radios, and especially batteries, feel clumsy to assemble in a safe and consistent way.
I think to be fair BetaFlight is not aimed at autonomous flight, when I got into this stuff a few years ago I was told "BetaFlight is for FPV (acro mode?)" and "iNAV is for Autonomous" and after giving both a try I can say that my experience on iNAV was much better for what I wanted (autonomous). BetaFlight worked wonders for flying around (very low input delay, etc..) but it was pretty clear it barely had anything related to auto control. Hells, it didn't even have a reasonable return-to-home!!! It would just drift diagonally in the "home" direction and try to land when it felt it was close enough.
iNAV on the other hand REQUIRES a full gps suite for starters (which for me was REALLY expensive) but you can do full waypoint navigation with just that and a barometer.
Of course it's been at least 4 years but hey at least it was pretty good back then already on the iNAV side!
I haven't touched this stuff in 5+ years, but I wonder how iNav stacks up on your list? I was about 50% of the way through a 7" FPV build with a GPS receiver based on iNav when COVID hit, and between the supply shortages and general life shift, I stopped working on it.
I fly iNav on a couple planes. I havent updated to the latest version in a couple years but i find it works great. The electronics like gps modules and sensors are insanely cheap now if you go straight from china (aliexpress) - you can get an hglrc m100 gps for about $12 shipped now.
I'm curious too; of those it's the one I have the least experience with. It is currently not an option for me, as the aircraft I would use with it uses CAN perhipherals, which iNav doesn't support.
Interesting, I wanted to look into building a drone myself next year. Mostly to learn about tinkering with engineering and electronics. What are the issues with the codebases and their development?
This is a tough question to answer in detail: I encourage you to browse yourself. (They are all on Github) but: The BF code base in itself isn't too bad. The AP one is very complicated, and difficult to navigate. The names and organization are confusing. Compiling is finicky and slow due to the tool system they use, and it requires Linux (Note: The compile target is embedded!). I PRed an update to the build instructions, but it was rejected.
For all of these code bases, there is minimal or no documention: Neither guides, nor code comments. The functions, structs, fields, etc have no descriptions of their purpose or use. The modules, where you would expect a description of their purpose and use, instead includes the same license text at the top.
Sorry but the main dev of Inav is a very experienced dev with a lot of knowledge. He has many youtube videos about developing of drone software/hardware.
- Current betaflight devevelopers and leaders are incompetent (They inherited the code base from others), and are slow, and varying degrees of willing, to add higher-level flight-control mechanics (semi-autonomous modes etc).
- The Ardupilot and PX4 configuration systems, and general experience, are user-hostile.
Note that the converses of these hold: Betaflight has a reasonably-good user experience, and Ardupilot and PX4 have extensive higher-level flight control mechanics. If only you could get the pros of both together!
Regarding hardware, frames generally accommodate flight controllers and ESCs elegantly, but other hardware like cameras, radios, and especially batteries, feel clumsy to assemble in a safe and consistent way.