I started Smooth Operator because I wanted to plan DJI missions somewhere other than my phone. Smooth Operator is a native Mac OS and iOS mission planning application for DJI drones that use the DJI Fly app.
-
>
Visual mission planning — Place waypoints on an interactive map, drag to reposition
-
>
Per-waypoint configuration — Height, speed, heading, gimbal pitch, turn modes
-
>
Waypoint actions — Photo capture, video recording, gimbal rotation, hover
-
>
KMZ import & export — Works with the DJI Fly app for execution
-
>
Global mission settings — Fly-to mode, finish action, RC-lost behavior, takeoff safety
-
>
Native on both platforms — Built with SwiftUI, no ads or analytics
An ideal Smooth Operator workflow starts with your Mac. Using your mouse pointer you can create waypoints, add points of interest, verify your route with different map imagery and air space information. After a user completes planning their mission, he or she can save the mission to their iCloud. Saving the mission to your iCloud enables a user to load the mission onto their iPhone using Smooth Operator iOS. Smooth Operator iOS has almost feature parity with Mac OS, (plans to get to full parity are in work) and a user can verify any last details.
After you review the mission, you can save it to DJI Fly. First open the “Database” tab and set the launch altitude. DJI treats the launch point as zero feet. This can cause a problem if you launch from the fourth floor balcony that is 40 feet above the ground. The launch altitude adjustment accounts for this height and keeps the drone at the correct altitude along its route.
Then click Save. Smooth Operator writes the mission to the database and file location that DJI Fly uses. No manual file manipulation is needed.
Before Smooth Operator you had a few options to create a mission. Those include Litchi, Maven, Dronelink, and Rainbow. Typically in their workflow, you could create a mission but you would then have to manually change files on your iPhone for DJI Fly to recognize the new mission. DJI Fly is the only iOS app that can fly newer DJI consumer drones.
DJI Fly mission plans are recorded in two forms. First they are placed in a sqlite database for cataloging/metadata. But the full mission plans are saved as a KMZ file in a nearby directory. KMZ is the mission plan and the source of truth for the complete route. The database is located at, '<dji-fly-dir>/wayline_mission/mission_db/wpmz.sqlite3'. KMZ files are located at '<dji-fly-dir>/wayline_mission/<missionId>/<missionId>.kmz'. I don't know why there are two forms to save the same mission, but at a high level. The database holds the uuid of the KMZ file, its file path, and some of the data of the KMZ. And the KMZ holds the complete picture of the mission.
It was interesting to see that a DJI mission is simply two zipped up xml files. To add actions to the mission was to just add xml blocks to an xml file with appropriate values. So in all, this is just a fancy xml manipulator. But a useful one!
Rooster Labs