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 Bi-Weekly Meeting Minutes
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 |