PyCon ID
2018
Enhancing Drone Application
Development using Python and
Dronekit.io
Dony Riyanto
• Application Section Head of World UAV Federation (WUAVF) chapter Indonesia
• Initiator of “Asosiasi Sistem dan Technologi Tanpa Awak” - ASTTA
National Unmanned System & Technology Association
• Founder of 4Drone Asia
• Founder of Xentinel Indonesia (homeland security & cyber security)
• CTO of Meeber Technology Indonesia (PT)
Why drone?
It's a “tomorrow's
technology today”
It's implemented
from now for at
least to 5-10 years
next and more
It is always on Gartner's Emerging Technology Hype Cycle 2017-2018 report
It's becoming an
innovation trigger
sooner, even faster
and better than IoT
Why drone?
• Everybody talks about it:
• Computer Electronic Show (CES Last vegas)
• Gartners Emerging and Technology Trends
• Industry
• Military
• Photography/Videography
Drone is result of complex skill combination
• Electronics science
• Mechanical science
• Control System science
• Aeronautics science
• Computer science
• Computer Imaging/Vision
• Informatics science
• Geographics / Geoinformatics science
• Data science
• Design science
• Agriculture technology
• Military technology
• many more
people think about this
but the best portion is there
How drone works?
How drone works? (jokes)
How drone moves?
How drone moves?
That's all? No. Fix wings also a drone
A Predator is also a drone
Even Boeing develops drone
• Boeing Phantom Eye. Cute right?
It's much bigger than ur though
Even boat, ROV, AGV is drone
James Gosling (java father) also make drone
Deep Condolence
of Lion JT610
Salute to Syachrul Anto
a Real Super Hero
Enough about drone. So why Python?
• About 5-7 years ago, theres a popular drone named
AR Drone
• Made by a French company, Parrot
• They made SDK for its drone with C++
• But a Javascript communities made a conference
back in 2012-2015, to make drone application easier
• Nodecopter (nodecopter.com) published an SDK that
make javascript programmers can control their own
drone and make many application
• But, Parrot doen't make it
• Goodbye Parrot
DIYdrone continue to make progress
• Chris Anderson (former 'The Economist' writer, former Editor in Chief of
'Wired Managize') initiate diydrones.com.
• Co-founding so called Ardupilot (or APM), a simple made drone flight
controller with Arduino
• And then he started a company, 3D Robotics (3DR) (also failed...)
• Involved the next-gen FC, the so called Pixhawk
• And continues as founder and chairman of the Linux Foundation's Dronecode
Project, with help of some biggest tech company including Intel
Oh, BTW...Intel make a beautiful drone swarm
dronecode founded
dronecode
dronekit and pymavlink
made with python
Diagram
Main Ground Control Apps
Your own GC Apps
MavProxy
(python)
dronekit library
pymavlink library
Telemetry device
Radio Remote
Control
Image Proccessing/Algo.
BIM integration.
Video processing.
AI / CV / ML / DL
Big Data
Autopilot
embedded
PC with apps
Wifi/Telemetry
RTK application
Simulator
Let's get started
Unfortunely (we need you guys)
Install dronekit-sitl
Install dronekit-sitl (contd.)
Install a Ground Controller
Install a Ground Controller (contd.)
Install a Ground Controller (contd.)
Install mavproxy
Install mavproxy (contd.)
Install mavproxy (contd.)
Install mavproxy (contd.)
Additional, install jmavsim
Install jmavsim (contd.)
Install jmavsim (contd.)
Or, you can connecting it with Microsoft AirSim
Microsoft
drone (and github) :D
Alright, connecting...
1. Run dronekit-sitl
2. Run mavproxy on opened port and define proxy port
3. Run main ground control (e.g QGroundControl)
4. An extra port will be opened from mavproxy
5. Open your favorit Python IDE
6. Code...
Running dronekit-sitl
Running mavproxy
Run and settingup QGroundControl
Code
A simple 'Go To' example
The code libraries
arming
taking off
check altitude and fly to
Running the example
Yeay, I've made my first drone apps!
What's next?
Objective?
• Military purpose
• Agriculture purpose
• Homeland security purpose
• High-risk Inspection purpose
• GIS/Mapping purpose
• etc
Integration?
• ROS Robotic Operating System
• FlightGear
• AI (follow me, follow object, etc)
• Redudancy (switching FC)
• Integration to Map Server / library
• DashWare (OSD)
• Swarming
• Distance Piloting
• Autonomous level 2 to 5
• Onboard realtime processing
• Indoor mapping
• Web based GCS
• etc
Vehicle?
• Military Target Drone
• Special purpose drone (remote sensing)
• ROV
• Rover
• AGV
• Boat
My Poject: TDLT
• Target Drone Laser Trainer
Target Drone Laser Trainer
Attitude status
Gunnary status Missed Distance Indicator
Enemy flying object position
Target Drone Laser Trainer
Target Drone Laser Trainer
Target Drone Laser Trainer
Made with:
• Python (of course)
• Libraries: dronekit, pymavlink, mavelous
• Lot and lot of codes
About Me
My name is Dony Riyanto, and
I would like to learn any
technology I could.
Please contact me via:
Whatsapp +62 896 9109 8829
Telegram @donyriyanto
Slideshare:
slideshare.net/donyriyanto
Email:
dony.riyanto@xentinel.net
Thank You

Enhancing drone application development using python and dronekit

  • 1.
    PyCon ID 2018 Enhancing DroneApplication Development using Python and Dronekit.io Dony Riyanto • Application Section Head of World UAV Federation (WUAVF) chapter Indonesia • Initiator of “Asosiasi Sistem dan Technologi Tanpa Awak” - ASTTA National Unmanned System & Technology Association • Founder of 4Drone Asia • Founder of Xentinel Indonesia (homeland security & cyber security) • CTO of Meeber Technology Indonesia (PT)
  • 2.
    Why drone? It's a“tomorrow's technology today” It's implemented from now for at least to 5-10 years next and more It is always on Gartner's Emerging Technology Hype Cycle 2017-2018 report It's becoming an innovation trigger sooner, even faster and better than IoT
  • 3.
    Why drone? • Everybodytalks about it: • Computer Electronic Show (CES Last vegas) • Gartners Emerging and Technology Trends • Industry • Military • Photography/Videography
  • 4.
    Drone is resultof complex skill combination • Electronics science • Mechanical science • Control System science • Aeronautics science • Computer science • Computer Imaging/Vision • Informatics science • Geographics / Geoinformatics science • Data science • Design science • Agriculture technology • Military technology • many more people think about this but the best portion is there
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
    That's all? No.Fix wings also a drone
  • 10.
    A Predator isalso a drone
  • 11.
    Even Boeing developsdrone • Boeing Phantom Eye. Cute right?
  • 12.
    It's much biggerthan ur though
  • 13.
    Even boat, ROV,AGV is drone
  • 14.
    James Gosling (javafather) also make drone
  • 17.
    Deep Condolence of LionJT610 Salute to Syachrul Anto a Real Super Hero
  • 18.
    Enough about drone.So why Python? • About 5-7 years ago, theres a popular drone named AR Drone • Made by a French company, Parrot • They made SDK for its drone with C++ • But a Javascript communities made a conference back in 2012-2015, to make drone application easier • Nodecopter (nodecopter.com) published an SDK that make javascript programmers can control their own drone and make many application • But, Parrot doen't make it • Goodbye Parrot
  • 19.
    DIYdrone continue tomake progress • Chris Anderson (former 'The Economist' writer, former Editor in Chief of 'Wired Managize') initiate diydrones.com. • Co-founding so called Ardupilot (or APM), a simple made drone flight controller with Arduino • And then he started a company, 3D Robotics (3DR) (also failed...) • Involved the next-gen FC, the so called Pixhawk • And continues as founder and chairman of the Linux Foundation's Dronecode Project, with help of some biggest tech company including Intel
  • 20.
    Oh, BTW...Intel makea beautiful drone swarm
  • 21.
  • 22.
  • 23.
  • 24.
    Diagram Main Ground ControlApps Your own GC Apps MavProxy (python) dronekit library pymavlink library Telemetry device Radio Remote Control Image Proccessing/Algo. BIM integration. Video processing. AI / CV / ML / DL Big Data Autopilot embedded PC with apps Wifi/Telemetry RTK application Simulator
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
    Install a GroundController
  • 30.
    Install a GroundController (contd.)
  • 31.
    Install a GroundController (contd.)
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
    Or, you canconnecting it with Microsoft AirSim Microsoft drone (and github) :D
  • 40.
    Alright, connecting... 1. Rundronekit-sitl 2. Run mavproxy on opened port and define proxy port 3. Run main ground control (e.g QGroundControl) 4. An extra port will be opened from mavproxy 5. Open your favorit Python IDE 6. Code...
  • 41.
  • 42.
  • 43.
    Run and settingupQGroundControl
  • 44.
  • 45.
    A simple 'GoTo' example
  • 46.
    The code libraries arming takingoff check altitude and fly to
  • 47.
  • 48.
    Yeay, I've mademy first drone apps!
  • 49.
    What's next? Objective? • Militarypurpose • Agriculture purpose • Homeland security purpose • High-risk Inspection purpose • GIS/Mapping purpose • etc Integration? • ROS Robotic Operating System • FlightGear • AI (follow me, follow object, etc) • Redudancy (switching FC) • Integration to Map Server / library • DashWare (OSD) • Swarming • Distance Piloting • Autonomous level 2 to 5 • Onboard realtime processing • Indoor mapping • Web based GCS • etc Vehicle? • Military Target Drone • Special purpose drone (remote sensing) • ROV • Rover • AGV • Boat
  • 50.
    My Poject: TDLT •Target Drone Laser Trainer
  • 51.
    Target Drone LaserTrainer Attitude status Gunnary status Missed Distance Indicator Enemy flying object position
  • 52.
  • 53.
  • 54.
    Target Drone LaserTrainer Made with: • Python (of course) • Libraries: dronekit, pymavlink, mavelous • Lot and lot of codes
  • 55.
    About Me My nameis Dony Riyanto, and I would like to learn any technology I could. Please contact me via: Whatsapp +62 896 9109 8829 Telegram @donyriyanto Slideshare: slideshare.net/donyriyanto Email: dony.riyanto@xentinel.net
  • 56.