MCB: Inter Copter Detection - maxct/paparazzi GitHub Wiki
Introduction
Beim Einsatz von mehr als einem Copter ist es nicht zu vermeiden, dass ungewollte Störungen der Sensoren auftreten. Die Sensorstörungen machen sich vor allem bei den eingesetzten Ultraschallsensoren bemerkbar. Diese werden bei den verwendeten Coptern zur Ermittlung der Distanzen in front, left, right und back genutzt. Das autonome Fliegen im "wall_avoidance" Modus ist von diesen Distanzen direkt abhängig. Im Folgenden wird das Verhalten mehrerer Copter auf deren Einflüsse untereinander beschrieben und analysiert. Um zu detektieren, welche Distanz die Sensoren gemessen haben, wurden Videos von den Versuchen gemacht und zur Auswertung genutzt. Um das charakteristische Verhalten zu beschreiben werden exemplarisch typische Szenarios beschrieben und besondere observations beschrieben.
###Scenario 1: both copters in wall_avoidance
Description of executed scenario
In diesem Szenario wurden beide Copter mittig in der Arena platziert. (0.5m Abstand zur Wand und 2.0m Abstand zueinander) Anschließend wurden beide Copter im "wall_avoidance" Modus autonom geflogen.
Motivation of executed scenario
Die Untersuchung dieses Szenarios dient dazu die Beeinflussungen der Sensoren in einem realen Szenario zu testen.
Data plots and observated behavior
Observated behavior Copter A
Copter A nahm den Copter B des Öfteren mit seinem front-Sensor wahr. An Position 1, 2 und 3 wurde eindeutig die Distanz zum anderen Copter gemessen, oder stark von dessen Sensor beeinflusst. Die Besonderheit dieser kurzen aber intensiven Störungen ist, dass der Copter B den zum Zeitpunkt der Störungen den Boden noch nicht verlassen hat. Der Ultraschallsensor misst nicht in Form eines optimalen Strahls, sondern stattdessen in einer ~30° "Cone"-Form, was zur Folge hat, dass ein am Boden befindlicher Copter einen fliegenden Copter unter Umständen stören kann. Ab dem Zeitpunkt 4 befand sich Copter B in der Luft und störte Copter A von dort an bis Zeitpunkt 5 beträchtlich. Dabei wurde jedoch vom Copter A nicht der korrekte Abstand zu Copter B ermittelt, sondern ein kleinerer Wert. Zum Zeitpunkt 5 flog Copter B in den front-Sichtbereich von Copter A, der dort in etwa die korrekte Distanz zum anderen Flugobjekt maß. Beginnend mit den Oszillationen (left, right and back) in einer "Save Corner" zum Zeitpunkt 6 wurden gute Entfernungswerte ermittelt. Besonders hervorzuheben ist, dass die Copter in diesem Zeitraum maximal voneinander entfernt waren (opposite corners). Beim Zeitpunkt 7 (still oscillating) wurde der right Sensor von Copter A so sehr gestört, dass er nach links ausglich und in die Wand flog.
Observated behavior Copter B
Auch Copter B nahm Copter A einige Male wahr oder wurde durch die Wellen des Copters B beeinflusst. Zu den Zeitpunkten 1, 2, 3 und 4 kam es zu einem Abfall der right-Distanz, weil sich Copter A im Blickfeld befand. Dabei wurde die tatsächliche Entfernung zu Copter A vergleichsweise akkurat gemessen. Anschließend kam es zu einem starken Abfall der front-Distanz (Zeitpunkt 5), weil sich Copter A im Bereich des front-Sensor befand. Dieser Abstand entspricht jedoch nicht dem tatsächlichen Abstand zwischen den beiden Coptern zu diesem Zeitpunkt. Etwa weitere 6 Sekunden lang blieb die front-Distanz auf einem deutlich kleinerem Wert als erwartet.
Conclusions
Beim ausgeführten Szenario sind verschiedene Störungen der Sensoren wahrgenommen worden. Diese werden in der folgenden Tabelle festgehalten und verglichen:
copter | feature | matches expected value | other copter within own cone | within other copters cone |
---|---|---|---|---|
A | 1 | no, value is lower | yes | yes |
2 | yes | yes | no | |
3 | no, value is lower | yes | yes | |
4 | no, value is lower | yes, partly | yes | |
5 | yes | yes | no | |
7 | no, value is lower | yes | yes | |
B | 1 | no, value is lower | yes | yes |
2 | yes | yes | yes | |
3 | yes | yes | yes | |
4 | yes | yes | yes | |
5 | no, value is lower | yes | yes |
Es fällt auf, dass der gemessene Wert entweder kleiner oder gleich der tatsächlichen Distanz zwischen den beiden Coptern war. Bei jeder Störung befand sich der jeweils andere Copter immer in der Cone des gestörten Copters. Außerdem ist auffällig, dass, wenn sich der gestörte Copter außerhalb der Cone des anderen Copters befand, gute Distanzwerte ermittelt wurden. Demzufolge besteht nicht eine Abhängigkeit von Störung und Richtung des gestörten Sensors, sondern eine Abhängigkeit zwischen Störung und Richtung des anderen Copters.
###Scenario 2: both copters not flying
Description of executed scenario
In diesem Szenario wurde Copter B in der Mitte der Arena auf einer Box platziert. Copter A wurde 0.5 Meter vor der Wand platziert und der front-Sensor auf Copter B gerichtet. Während der Aufnahme wurde Copter B per Hand um 360 Grad gedreht (clockwise).
Motivation of executed scenario
Die Untersuchung dieses Szenarios dient dazu die Störungen der Ultraschallsensoren in einem kontrollierten, idealisierten Szenario zu testen.
Data plots and observated behavior
In den folgenden Plots wurden die Augenblicke, in denen einer der Ultraschallsensoren von Copter B auf Copter A ausgerichtet ist, durch gestrichelte Linien gekennzeichnet. Da Copter B im Uhrzeigersinn gedreht wurde, entspricht die erste Linie dem back-Sensor, die zweite dem right-Sensor und so weiter.
Observated behavior Copter A
Obwohl Copter A in diesem Experiment nicht bewegt wurde, konnten starke Beeinflussungen durch Copter B detektiert werden. Je nach Drehwinkel von Copter B wurden verschiedene Sensoren von Copter A beeinflusst. Daraus ergeben sich verschiedene Phasen, in denen ein Sensor von Copter B genau auf Copter A ausgerichtet war und deren Zwischenphasen, in denen zwei Sensoren zu 45 Grad zu Copter A ausgerichtet waren. Zuerst fällt auf, dass der front-Sensor, der einen konstanten Wert von etwa 150 cm als Erwartungswert über das gesamte Experiment hat, anders auf verschiedene Phasen reagiert. In den "back-Phasen" wurde ein sehr geringer Wert gemessen. In der right- und front-Phase trat vermehrt Rauschen auf und die Werte sind ein wenig geringer als der Erwartungswert. In der Übergangsphase von right zu front wurden fehlerhafte/ungültige Werte aufgenommen. Lediglich in der left-Phase wurde der Erwartungswert in etwa bestätigt. Auch die anderen Sensoren von Copter A wiesen ein charakteristisches Verhalten abhängig der jeweiligen Phase auf. Left- und back-Sensor wiesen in der Überlagerungsphase von right- und front-Sensor Ausschläge nach unten auf. Der right-Sensor nahm in der front-Phase und den beiden angrenzenden Überlagerungsphasen deutlich zu kleine Werte auf.
Observated behavior Copter B
Beim Versuch traten folgende Auffälligkeiten auf: Zum jeweiligen Zeitpunkt, an dem ein Sensor von Copter B auf Copter A gerichtet war, maß der jeweilige Sensor zwar einen zu kleinen Wert, aber der Wert entsprach jedes Mal fast der tatsächlichen Distanz von 150cm. Außerdem wurde zum Zeitpunkt eines ausgerichteten Sensors beim jeweils im Uhrzeigersinn nächsten Sensor ein sehr kleiner Wert gemessen. Neben den Regelmäßigkeiten traten über den gesamten Zeitraum des Experimentes unregelmäßige und unterschiedlich große Störungen bei allen Sensoren auf.
Conclusions
Die gemessenen Daten aus diesem multi-copter Experiment unterscheiden sich stark von dem idealisierten Experiment aus dem single-copter Kapitel. Der Vergleich der Daten zeigt, dass im Versuch mit zwei Coptern bei beiden Coptern starke Abweichungen vom erwarteten Wert auftraten. Die front-Messwerte von Copter A zeigen, dass die Störungen nicht hauptsächlich von der Richtung der eigenen Sensoren abhängt, sondern von der Ausrichtung der Sensoren des anderen Copters. Dabei können Abweichungen sowohl bei exakter Ausrichtung eines Ultraschallsensors auf den betreffenden Copter, als auch bei 45 Grad Ausrichtungen von zwei Sensoren. In den Messdaten von Copter B trat außerdem ein Muster auf. Ein Sensor wird immer besonders stark von einem auf ihn gerichteten Sensor beeinflusst, sodass immer zwei Copter in ihren Störungen gekoppelt sind. Dabei muss nicht zwangsläufig der zugewandte Sensor, sondern auch ein anderer Sensor (phasenverschoben) beeinflusst werden. Im Experiment wurde dabei immer der um 90 Grad versetzte (clockwise) Sensor gestört.