Big news: DroneKit-Python has just hit its next major release! 2.0 is now available via pip and Github. With 2.0, we took the time to do some major architecture changes targeting performance, extensibility, and ease of use. We have started internally testing and porting these enhancements to major projects that depend on DroneKit-Python.
Please report any bugs through Github or the DroneKit Forums. Also, please give us a shout if you are developing any projects using DroneKit-Python! We would love to hear about all the awesome projects you are working on.
Many thanks to all the people involved in creating and testing 2.0 (Sorry if we omit any!) @tcr3dr, @hamishwillee, @geeksville, @mrpollo, @will, @eliao, @djnugent, @squilter, @stephendade, @franknitty69, @mikerob, @atomictom, @jmachuca77
- Renamed the actual package name to “dronekit” (previously droneapi)
- Dronekit now runs standalone (removed MAVProxy dependency)
- Multiple vehicle support
- MAVLink message listeners
Major Feature Updates
- local_connect refactored as a single connect() method (can connect to multiple vehicles!)
- Removed .set_mavrx_callback in favor of the new on_message callbacks
- Moved RC channels to .channels object
- Split location information into local_frame, global_frame and global_relative_frame
- Removed need for .flush() for most commands (now renamed commands.upload())
- Renamed commands.goto and commands.takeoff to simple_goto and simple_takeoff
Lots of smaller new features and changes
The full list of changes is available through the Documentation Release Notes on the DroneKit docs site.
Migrating to 2.0
A migration guide is available that covers how to fix your code if you are depending on certain features that we removed. The migration guide is also available on the DroneKit docs site, just search for Migrating to DKPY 2.0
DroneKit-Python 1.5 EOL
Finally, with the 2.0 release we would like to address 1.5 EOL. We will no longer be shipping new features on the 1.5 branch, and are expecting to end support and maintenance updates on Q1 2016. Starting Q2 2016 the DroneKit Core Team can no longer guarantee any support for 1.5.
here's an intersteing read http://www.oreilly.com/programming/free/c++-today.csp With the IoT around the corner, optimized solutions are going to be key.
I definitely see the benefit for high order functions written using python, but to get the Image Processing and Machine Vision promises it's going to need to be written in C/C++ to target GPU as well as CPU (or as modules to extend python). Mavlink is a C/C++ native module used by DroneKit to improve performance on the companion computer.
But for experimenting python offers a easy access route.
There is something I wonder:
Why has Python been chosen for building companion computers? Is not the best possible/achievable performance crucial for typical use cases? And Python runs up to 50 times slower than e.g. Java?
Unless I miss something important, the pixhawk running with C++ firmware could perform similarily as a super duper companion computer running an python app?
Nice, Ramon! Can't wait to use this for the hackathon!
Nice to get rid of the mavproxy dependency, this makes it finally programmable without command line interface.
Are the new mavlink message listeners replacements for the former observers?
The multi-vehicle support sounds great!
Great work guys! This is a nice step forward for this easy to use SDK allowing fast and easy high level control over UAVs.