A tool to convert QGroundControl generated .kml files into DJI Fly ready .kmz files.
I've made a video tutorial that you can watch here.
- Download and install Python or a Python Interpreter (if on mobile devices)
- Download and install QGroundControl
- Create a dummy DJI Fly Waypoint Mission
- Create a mission using QGroundControl:
- To get an accurate Ground Resolution (pixel/centimeter) ratio and Photo Interval reading, use these settings:
- In the Mission Start tab, under Vehicle Info, set the desired Hover Speed (it has to match your Waypoint Mission Speed that has to be set in the DJI Fly App)
- (Only applicable to Mavic 3) In the Survey tab and in the Camera tab, use these settings for the Main Camera (Hasselblad):
- Sensor: 17.3 * 13 mm
- Image: 5290 * 3956 px
- Focal Length: 12.3 mm
- These for the Zoom Camera:
- Sensor: 6.4 * 4.8 mm
- Image: 4000 * 3000 px
- Focal Length: 29.85 mm
- Delete the Takeoff tab
- Select the Overlap Percentage or Ground Resolution
- IF you want the drone to stop and hover when taking every picture, click on Options and check Hover and Capture Image
- Change every other setting to fit your needs
- Click on File and select Save Mission Waypoints As KML…, choose the directory and save
- IF you are using an Android device AND the Android conversion script, by default you should save the KML file in "/storage/emulated/0/Downloads/"
- Run the Python script and follow its instructions:
- Drag & Drop the KML file (if you’re not using the Android script, in that case the script will automatically use the latest .kml file in the Downloads directory)
- Choose if every waypoint has to set Gimbal Pitch to -90° (Default behaviour) (Setting this to False is best for Photogrammetry/Structure Scan Missions)
- Choose if the drone has to take a picture for each waypoint (IT DOES NOT HOVER, more info at the "WORKAROUND TO HOVER AND TAKE PICTURE paragraph) (You may run into problem when RELOADING the mission, have a look at the Known Issues section)
- Choose if the script has to filter waypoints based on distance:
- Choose minimum distance (in meters) between two SUCCESSIVE waypoints
- Choose the Earth model that suits your geographic region best (or leave it at default)
- Copy the generated KMZ file to the last created folder in “/storage/emulated/0/Android/data/dji.go.v5/files/waypoint/” on Android or “FILES/DJI File/wayline_mission/” on IOS (I tried automating the Android script to copy and rename the file, but since Android 10, apps can’t access the Android/data folder anymore)
- Delete the previous KMZ file in the folder
- Copy the folder name
- Rename the new KMZ file to the folder name (maintain the “.kmz” file extension)
- Restart DJI Fly
- Select the last mission (the dummy mission) (The thumbnail is not updated yet)
- Set the correct Speed (the same as Hover Speed in QGroundControl)
- Make sure that the last waypoint's settings are as follows:
Action Value Camera Action None Altitude (Any Value) Speed Global Speed Heading Follow Course Gimbal Tilt Manual Zoom Manual Hover 0s - FLY
- Create the mission in QGroundControl using the Hover and Capture Image setting
- Run the python conversion script and choose to NOT set "Gimbal Pitch" and "Capture Image at each Waypoint" (press 'n')
- Replace the .kmz file
- Open the mission in the DJI Fly app
- Select ANY waypoint
- Change its Hover parameter to be higher than the Photo Interval you’re going to use for the mission
- While the Hover parameter is still highlighted, on the top right corner of the waypoint settings tab, click Apply to All
- Click Yes to the prompt
- Select the last waypoint
- Remove any action on it
- If you want you can save the mission - DONE!
- IF YOU EDIT THE MISSION IN ANY WAY, EVEN IF YOU DON’T SAVE THOSE CHANGES, ONCE YOU OPEN THE DJI FLY APP AGAIN YOU’LL PROBABLY SEE A GRAPHICS ISSUE. DO NOT WORRY, IT’S JUST A GRAPHICS BUG, THE MISSION WILL WORK AS INTENDED
- If you use the "Take Picture at each Waypoint" option, when you reload the mission (even if you don't change anything in it) DJI Fly will automatically add a "Take Photo" to the last waypoint. You MUST set that back to "None" and remove any other setting from the last waypoint before starting the mission
- Sometimes Waypoints may appear to be facing the wrong direction. It's just another graphics issue