autonomous-drone's People
autonomous-drone's Issues
Von der Bodenstation den Befehl zum Herbeirufen senden mit GPS
? Doku: Abstände zwischen den items wegmachen ?
RViz und Gazebo ausprobieren
Sie sollen funktionieren und wir sollen wissen, wie man sie öffnet, benutzt, etc.
virtuelle Sensoren verbinden
pySLAM einrichten
- installieren
- testen
- Output überprüfen
GPS Daten mit ROS Node bekommen
Für: #10
- Pi fordert GPS Daten an
- Pixhawk sendet
Beispiel ROS Dockerfile auf RasPi testen
Funktioniert auf meinem PC. Muss aber noch mit der ARM Version getestet werden
Pi mit Bodenstation verbinden
Ziel:
- eigene Befehle an den Pi senden
Ausrechnen, wie viel Byte alle Daten zusammen sind
ROS baut nicht
ros2 run demo_nodes_cpp talker
-bash: ros2: command not found
ROS2 Abstandssensoren-Node nicht kompatibel
Lösung
- Neues Package auf Raspi erstellen
- auf github pushen
- auf PC code vom alten Package einfügen
- pushen
- auf Raspi downloaden
GPS Daten vom Pixhawk bekommen
- Pi frägt Position an
- Pixhawk schickt Position
- Pi berechnet direkten Vektor da hin mit Richtung & Geschwindigkeit
- Pi schickt Flugbefehle an Pixhawk
Hindernisumgehung von Simulation auf Drohne übertragen
1. Meilenstein umschreiben, weil nur noch 1 Docker-Container benutzt wird
Test 4: Integration von echten Daten
Failsafe, womit jederzeit abgebrochen werden kann
vielleicht gibt es das auch schon in QGC oder so
Flug abbrechen mit Collision Detection
Harald Skript von den 4 Ultraschallsensoren in den aiohttp server von test2_2 einbinden
Docker in den Grundlagen beschreiben
- Blockschaltbild
- Dockerfile
- docker-compose
- Kommunikation: TCP, FIFO
Pi und Laptop müssen im gleichen WLAN sein, auch im Freien
- Pi sollte ein WLAN Netzwerk hosten
- Dann müssen noch die IP Adressen geändert werden
- bei GPS Server und Client
- in mavlink-router config
Informieren, wie Dockercontainer untereinander Daten austauschen können
eigene Ports festlegen?
pySLAM ausprobieren
funktioniert. sowohl VO als auch SLAM
Flugalgorithmus implementieren / testen
FollowMe mit MAVSDK: http://mavsdk-python-docs.s3-website.eu-central-1.amazonaws.com/plugins/follow_me.html
(alles ohne Docker)
oder mit Docker
- Input: GPS Zielkoordinate
- kontinuierlicher Input: aktuelle GPS Koordinate
- kontinuierlicher Output: Flugrichtung, Geschwindigkeit
- Hoch fliegen
- Richtungsvektor berechnen
- Flugbefehl für die Richtung senden
deterministischen Algorithmus testen
Zusammenfassung vom 1. Teil schreiben
Befehle vom Pi an Pixhawk senden
Simulationssoftware aussuchen
pySLAM bekommt Bilder von Kamera
- ROS listener, subscriber Node
pySLAM mit Simulator verbinden
testen, ob VO auch geht oder SLAM benutzt werden muss, was sehr langsam wäre
Docker Container für ROS und Pi GPIO erstellen
- Das ROS Image wird verwendet und um die GPIO Bibliothek erweitert.
- Dann wird testweise innerhalb des Containers eine LED blinken gelassen.
- Zum Schluss muss entweder mit dem Container von außen kommuniziert werden, oder man entwickelt einfach alles in diesem Container, was wahrscheinlich besser ist. Also ROS Nodes, #4 , #6 , #7 .
Collision prevention mit einbauen
- Kamera & Collision prevention
- Alg. entwerfen
- in Simulation implementieren
Ultraschallsensoren einlesen unter Raspbian OS
ToDo: Ultraschallsenoren zum Test einlesen
Mit folgendem Skript getestet:
import RPi.GPIO as GPIO
import time
#GPIO Modus (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
#GPIO Pins zuweisen
GPIO_TRIGGER = 23
GPIO_ECHO = 24
#Richtung der GPIO-Pins festlegen (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
def distanz():
# setze Trigger auf HIGH
GPIO.output(GPIO_TRIGGER, True)
# setze Trigger nach 0.01ms aus LOW
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
StartZeit = time.time()
StopZeit = time.time()
# speichere Startzeit
while GPIO.input(GPIO_ECHO) == 0:
StartZeit = time.time()
# speichere Ankunftszeit
while GPIO.input(GPIO_ECHO) == 1:
StopZeit = time.time()
# Zeit Differenz zwischen Start und Ankunft
TimeElapsed = StopZeit - StartZeit
# mit der Schallgeschwindigkeit (34300 cm/s) multiplizieren
# und durch 2 teilen, da hin und zurueck
distanz = (TimeElapsed * 34300) / 2
return distanz
if __name__ == '__main__':
try:
while True:
abstand = distanz()
print ("Gemessene Entfernung = %.1f cm" % abstand)
time.sleep(1)
# Beim Abbruch durch STRG+C resetten
except KeyboardInterrupt:
print("Messung vom User gestoppt")
GPIO.cleanup()
ROS2 Raspi Kamera testen
mit Python in dem IO Dockercontainer
testen, ob ein socket schneller ist als normale HTTP Server
für #24
deterministischen Hindernisumgehungsalgorithmus implementieren
- Output von pySLAM muss vorhanden sein
- Algorithmus aus Paper kopieren
Test 3: Kommunikation implementieren & Benchmarks durchführen
Virtuelle Räume einrichten
- fertige Lösungen aussuchen
Test 3 wiederholen mit richtiger Größe pro Datenpaket
benötigt #25
Pi mit Pixhawk verbinden
ROS Kompass Node für Rotation der Drohne
evtl gibt es eine fertige Node
ROS Node für Barometer Daten
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.