That’s impressive!
What does your programming environment look like? I’m retiring in a few years from programming and thought it would be fun to write my own autonomous flying app.
Best,
Jim
Hi Jim!
I'm so glad you are interested. I'm working on an app that makes everything scriptable in python. The java-api that dji makes available is a nightmare. I tried to simplify everything into a python api. Kind of small plugins that can be connected to each other for specific task, like a block diagram.
My plan is to make these plugins opensource, but my time is limited. I've been looking for someone like you, but I havn't got any interest at all here, which suprises me

. It's the most fun programming I ever done!!
My most advanced plugins so far is a followme mission that waits until a tracker phone is 800m from the remote, and then starts and follow it. While it's waiting on the ground it follows the tracker with the gimbal.
I'm the one that kitesurf, drone is fully autonomous. Using 4G, fused GPS, deadreckoning and UDP. I never crashed a drone in the water yet!! Less than 300lines of code.
I also done some reverse engineering, and these functions is exported to the python api. Like hidden features and faster speeds than dji allows, hidden info parameters and so on. These functions are not in the normal dji api.
Here is what the ground follow plugin looks like. It's using pythons built in pid-regulator and is running in a python executor in my app. Pretty short if I must say

. The pid regulator makes it following slopes as well.
pid = simple_pid.PID() # From pip install
pid.output_limits=(-0.5, 1)
while True:
height = api.drone.get_key_value(api.key.FlightController.ULTRASONIC_HEIGHT_IN_METERS)
pid.setpoint=Changeable.terrain_follow_height.get_value() #Desired height from ground, changleable in GUI
pid.tunings=(Changeable.p.get_value(), Changeable.i.get_value(), Changeable.d.get_value())
altitude_speed = pid(height)
api.drone.set_speed_xy_body_heading_speed_raw(altitude_speed=altitude_speed)
I you would do the same in java and with dji's api it would be so much code. The nice thing is that this plugin can later be used in other flightmodes, and follow modes, just through connecting them together.
If you willing to help with the opensource plugins I would be so glad
Link to DJI api called MSDK for android:
It took me many hours before I even manage to do anything with it. With my python solution you can run your first script from a browser within 5minutes!
Let me know if you're interested!!