3 ms·
There is nothing that comes close to DJI for a flying camera, and I don't say this as a fanboy but rather as someone who has been in this industry in various ca
by bri3d 3y ago
There is nothing that comes close to DJI for a flying camera, and I don't say this as a fanboy but rather as someone who has been in this industry in various capacities for a long time.
Ardupilot and PX4 are great projects, but they're just a basic ingredient in making a drone with good autonomy. They handle the basics of stabilizing a multicopter or plane (with a lot of tuning required) and have some rudimentary range finding and optical flow support, but don't offer much in the way of state-of-the-art vision based autonomy for position hold, obstacle avoidance, or route planning. Even in the commercial space (where a lot of stuff is based on PX4, it's BSD licensed so products don't need to be source-available), nothing really gets close to DJI. On the other end of the hobby drone space, INAV and Betaflight are fun, but they're mostly for FPV which is a completely different ball game.
The gaps for full open source _and_ non-DJI commercial drones are numerous. Really they're pretty much end-to-end:
* Vision autonomy. There are a _ton_ of UAV vision autonomy projects on GitHub, mostly because it's a popular thesis project. Unfortunately, none of them have taken off as a practical, well-maintained thing you can integrate into normal drone hardware and use. In the commercial space, Skydio finally got a good win here, but they've given up on the consumer market. This isn't just a critical feature for whiz-bang inside-out pathing like Skydio do, it's an important fundamental for strong position hold (called visual odometry) as GPS is drift-prone and traditional low resolution optical flow struggles once a drone is at a higher altitude.
* Camera image sensor quality. This is the place where Skydio really fell behind DJI in the consumer market. This is a highly proprietary, closely guarded space. It's almost impossible to find a good image sensor plus the parameters to make it look good (ISP firmware / sensor parameterization) that's not locked under 100 levels of NDA. Add on the need for specialized optics and you're in for a really tall order. Even the Pi Foundation essentially gave up on this and ship a DRMed camera with proprietary ISP parameterization.
* Video downlink. This is a big one too, and one of the other big places where Skydio fell behind. DJI and Autel have access to modified mobile phone IP via China. Everyone else is using either analog video or WiFi and it just isn't good.
* Camera gimbal quality. Ardupilot did a GSoC project around this recently. This space is really underinvested too. Making a good gimbal is _hard_, and it goes hand-in-hand with the camera sensor issue in some ways because making a gimbal which is weight/balance-matched to a specific camera is a lot easier than a general purpose one. Also, most open source projects spent a long time focused on on bottom-facing survey / photogrammetry use cases because they were easier, so basic features like "aim/zoom to a tapped point on a video" aren't fully baked at all.
* Battery quality and parameters. Open source / hobby drones tend to use either polymer-electrolyte prismatic pouch packs with extremely high instantaneous discharge but comparatively low overall capacity (FPV drones) or round-cell lithium ion batteries with good overall capacity, but poor instantaneous discharge and poor packaging. The optimal battery for a small camera drone is right between these two extremes.
Even in the commercial space, I'd recommend DJI. Autel is basically one generation behind DJI at a higher price point. Skydio drones were cool but they exited the consumer market, and they were loud and had bad cameras and a weak video link compared to their contemporary DJI rivals. Parrot are interesting as a non-Chinese option, but they're about two generations behind DJI, also at an even higher price point.
If you want a camera drone today, buy a DJI drone with a standalone remote controller (the one with a screen). That way, you don't need to install their sketchy app on your phone, you can firewall the controller however you'd like, and you only need to give up limited information as part of the initial activation/login process and then you're good to go.
- mcculley 3y agoWow. Thanks for all of this. I am really interested in being able to remotely command the drone to navigate to waypoints sequentially and semi-autonomously. My understanding is that the low end of DJI drones do not support this. Do you have recommendations there for specific DJI models?
- bri3d 3y agoYes, it is extremely annoying. Since there isn't a lot of competition left in the prosumer space, DJI are shifting their autonomy SDK features upmarket into their "Enterprise" series drones. But! There are workarounds. You can backdoor upload waypoints in DJI WPML / KMZ format to the Air 3 and Mavic 3 consumer drone series. Here's the waypoint XML format: https://developer.dji.com/doc/cloud-api-tutorial/en/api-reference/dji-wpml/overview.html https://developer.dji.com/doc/cloud-api-tutorial/en/api-refe... . This is actually surprisingly effective and works really well. https://www.litchiutilities.com/litchiToM3.php https://www.litchiutilities.com/litchiToM3.php offers an interesting workflow for this, creating flight paths using the Litchi app that's generally used for controlling drones that _do_ support the SDK and then importing them. This page also has the best documentation I've seen for the backdoor upload method.
- mcculley 3y agoThank you for this.