This is an old revision of the document!
The Dronecode SDK WG is tasked to develop a Drone Application Development SDK. This SDK should allow developers to create drone “applications” that can run on mobile devices (tablets, phones) and on-board companion computers, and that can also seamlessly integrate drones with cloud-based services. The SDK should ideally support Python, C++ and Android Developer APIs, including options like ROS, Cloud etc., and also integration with any simulation environment.
Currently we are evaluating existing developer APIs.
Some requirements include:
Bi-weekly meeting: Tuesday 8 AM PST.
Join the call: www.uberconference.com/lf-dronecode Dial in number: 415-891-1494 No PIN needed
Note: Essentially Mobile SDK is same as onBoard SDK with an additional wrapper layer and remote connection support
Mobile SDKs:
Type | Features | DJI | Parrot | FlytOS | DroneKit |
---|---|---|---|---|---|
Flight | High and Low Level Flight Control | Yes | Yes | Yes | Yes |
Aircraft state through telemetry and sensor data | Yes | Yes | Yes | Yes | |
Obstacle Avoidance | Yes | No | Yes | No | |
Camera | Camera and gimbal control | Yes | Yes | Yes | Yes |
Live Video Feed | Yes | Yes | Yes | No | |
Remote access to media stored on Camera | Yes | Yes | Yes | Yes | |
Missions | Define custom missions | Yes | Yes | Yes | Yes |
Predefined Missions: Waypoint, HotPoint, FollowMe | Yes | No | Yes | Yes | |
Subsystems | State information and control of Battery and Remote Control | Yes | Yes | Yes | Yes |
VR Support | No | Yes | No | No | |
Cloud API Support | No | Yes | Yes | No |
OnBoard SDK:
Type | Features | DJI | Parrot | FlytOS | DroneKit | AirLib |
---|---|---|---|---|---|---|
Flight | High and Low Level Flight Control | Yes | NA | Yes | Yes | Yes |
Aircraft state through telemetry and sensor data | Yes | NA | Yes | Yes | Yes | |
Obstacle Avoidance | Yes | NA | Yes | No | Yes(minimal) | |
Camera | Camera and gimbal control | Yes | NA | Yes | Yes | No |
Live Video Feed | Yes | NA | Yes | No | No | |
Missions | Define custom missions | Yes | NA | No | Yes | No |
Predefined Missions: Waypoint, HotPoint, FollowMe | Yes | NA | Yes | No | No | |
Subsystems | State information and control of Battery and RemoteControl | Yes | NA | Yes | Yes | No |
Cloud API Support | No | No | No | No | No |
SDK WG Meeting Minutes - July 18th
o Lorenz - to share the User stories (PX4 user's feedback) o Anitha – has requested UX team to share the user's feedback on SDK expectations perspective, which would be shared by July 26th
Lorenz mentioned about DJI SDK, Currently DJI is leading market. So try to recreate the same user experience that DJI is providing - all SDK variants (mobile, onboard). → DJI SDK has been considered as one our reference SDKs during comparative analysis.
Next steps:
SDK WG - June 20th
→ Comparative analysis of existing SDKs (listed above) was discussed in brief
→ Mark:
→ AirLib → SDK from Microsoft
→ DroneLink - > CPP Library provided by PX4 (Julian)
Quick Observations/Issues DroneLink:
Plan/Next Steps:
Observations on Dronesmith SDK:
Observations from developers:
AirLib | DroneLink | Dronekit | |
---|---|---|---|
Setup/Infrastructure | Easy to setup. Just follow wiki instructions and the HelloDrone application will work. | Minor changes had to be done to setup (fixed now) | Easy setup |
Ease of use | Easy to use, as user needs to include RPC client and rest will happen in background. PythonClient provides RPC facilities without app's knowledge. Its free for Python apps! | APIs are well categorized and easy to use | Easy to use |
Extensibility | Easy to extend, could add mission planning feature easily | Uses compile-time plugs. Need to get more understanding | |
Feature Delta | |||
Language bindings | Cpp/Python | Cpp/Java/Objective-C | Python/Java |
Supported platforms | Windows/inux | Linux/Mac/Windows/iOS/Android | Linux/Mac OS/Windows |
Code Structure | Excellent | Simple and Good | Good |
Communication compatibility | Cross-protocol (as of now MavLink, ways to extend to other protocols) | MAVLink | MAVLink |
AutoPilot Compatibility | All AutoPilots that support MAVLink | PX4 | All AutoPilots that support MAVLink. Most compatible with ArduPilot, less to others. |
Cloud Support | No | No | Partial (Store, Share and access vehicle and flight log info) |
Features | More Navigation APIs | Comparatively less | Good |
Mission management | No | Yes | Yes |
Current Status: