A Storm of Drones - Dennis Vredeveld
-
Author
nljug -
Category
Technology
-
view
114 -
download
1
Embed Size (px)
Transcript of A Storm of Drones - Dennis Vredeveld
-
Inleiding
Verdieping van Game of Drones Technische uitleg van het systeem
Frameworks, libraries, componenten Problemen en uitdagingen
Anders dan standaard JEE Besturing vereist AI
2
-
Artificial Intelligence 101
3
Nodig voor autonome drones
Basisopzet van een AI-systeem: Sensing: zintuigen,
aanvoelen van de omgeving
Interpreting: interpreteren van de waargenomen waardes, bepalen acties
Acting: uitvoeren van acties
Interpreting (Behaviors)
Acting(Drone
aansturing)
Sensing(Analyzers)
-
Subsumption architecture
4
Sens
ors'
Actuators'
Scenario'
Behaviour1'
Behaviour2'''''''
Besturing van meerdere drones en de presentatie Mastermind van het geheel
Besturing van een enkele drone, autonome operatie Directe interactie met een drone
Opdeling in herbruikbare tasks en behaviors die tasks combineren,
uitschakelen of benvloeden
-
Sensing: opzet
Verschillende sensoren Video, hoogte, gyroscoop
Analyzers Sensing implementatie o.b.v. sensordata drones Bv. patroonherkenning
Verschil tussen analyse van eigen sensoren en externe apparaten Eigen: continue stroom Extern: event gebaseerd
5
-
Sensing: blackboard pattern
6
Verzamelplek van featuresVerschillende analyzers als knowledge source die Features op het blackboard plaatsen
Interpretation deel: activeert Analyzers en interpreteert Features
-
Sensing probleem: lokalisering
Indoor == GPS onbruikbaar Geen absolute informatie behalve hoogte
Behaviors vereisen dit wel Relatieve informatie te onnauwkeurig Oplossing: patroonherkenning
Gezichtsdetectie: OpenCV Kleurherkenning: home made
Confidence Scale back
Focussen en details7
-
Interpreting - Behaviors
Interpreting: Goal - Sensing == ERROR
Behavior: autonoom stukje gedrag Bepaalt goal en daarmee besturing
Javascript/Java koppeling Scenarios en Behaviors zijn steeds
verschillend Realisatie veel trial-and-error Verkorten van de develop/build/run cycle
8
-
Demo
9
-
Interpreting probleem: stabiliteit
Automatische besturing noodzakelijk Geen menselijke correcties meer Wegregelen verstoringen en vertraging
Probleem: stabiliteit, overshoot Oplossing: betere feedback loop
Vele kleine correcties PID regelaar
10
-
Interpreting: PID
11
Proportioneel, integraal, afgeleide
Extra: reageren (I) en anticiperen (D)
Makkelijk te realiseren, moeilijk te configureren Trial & error
x,y-as, z-as, rotatie
-
Acting
Beperkte mogelijkheden Hardware constraints
Onnauwkeurigheid Extern (bv. wind) en intern (bv. wrijving) Sensing detecteert daadwerkelijke resultaat
Relatieve besturing Ga 0,5s naar rechts met 25% vermogen
12
-
Opzet
13
-
Componenten
14
-
Voorbeeld: Kong
15
1
2
Wijs drones toe aan teams
-
Voorbeeld: Kong
16
1, 2
Start Kong scenario
3
-
Voorbeeld: Kong
17
1, 5
Start game
2
3 4
-
Voorbeeld: Kong
18
1
Playing game
2 3
4
-
Voorbeeld: Kong
19
1
Einde scenario
2 3
4
-
Frameworks
20
YADrone: Java-implementatie van ARDrone SDK
Vert.X: Remoting, Eventing en Bus
OpenCV: Standaard Library voor implementatie computer vision
Augmenters & video streaming
Reveal.js, AngularJS HTML5 Presentatie framework
-
Vert.x
21
JVM/Vert.x Container
Bus (Hazelcast)
events
Verticle Behavior Verticle
Timer
Analyzer
new Thread() .start()
-
YADrone
100% java-based framework voor ARDrone Reverse engineered vanaf
ARDrone SDK Veel bugs
CommandManager, ConfigurationManager VideoManager, NavDataManager Listener-producer Vertaling naar AT-Commandos
22
-
Augmenters & Video streaming
Video pipeline implementatie Augmenters voor presentatie
23
Analyzers
Augmenters Encoder
-
Presentatie
Reveal.js als HTML5 presentatie framework Externe interactie > Integratie met
AngularJS Draait als verticle binnen Vert.x Interactie scenarios - presentatie
> Go to slide x > Start video stream > Start muziek
-
Problemen
25
-
dd Defcon
Video streaming
MJPEG stabiliteit Delay/encoding (RTMP) Latency
26
Stabiliteit: Socket timeouts (tickle) Video en navdata hick-ups Config aanpassingen
Latency in YADrone Bandbreedte bij meerdere
drones
-
Netwerk & Security Elke drone heeft eigen AP
unencrypted first come, first serve
ARDrone via WPA2 koppelen aan Airport firmware aanpassing noodzakelijk m.b.v. Android app
27
-
Vragen?
28
-
Links YADrone: http://vsis-www.informatik.uni-hamburg.de/oldServer/teaching//
projects/yadrone/ YADrone (Salves versie met bugfixes): https://github.com/ronsmits/YADrone ARDrone WPA: https://github.com/daraosn/ardrone-wpa2 ARDrone SDK: https://projects.ardrone.org/ Subsumption architecture: http://en.wikipedia.org/wiki/
Subsumption_architecture Java ScriptEngine: http://docs.oracle.com/javase/7/docs/api/javax/script/
ScriptEngine.html PID Controllers: http://en.wikipedia.org/wiki/PID_controller
MindWave - http://store.neurosky.com/products/mindwave-1 Reveal.JS: http://lab.hakim.se/reveal-js/#/ Vert.x: http://vertx.io/ OpenCV: http://opencv.org/
29
-
Backupslides
30
-
PID: Kp
31
-
PID: Ki
32
-
PID: Kd
33
-
Optioneel: YADrone opzet
34