Turtlebot(s) Evaluation, Programmierung und mehr Robotik FP SS2013 Felix Aller <felix.aller@iwr.uni-heidelberg.de> July 22, 2015 Felix Aller <felix.aller@iwr.uni-heidelberg.de> 1 / 25
Aufgabenstellung Ziel des Projektes war es, den TurtleBot zu evaluieren, programmieren und festzustellen, inwiefern er der Aufgabe eines Kaffee bringenden Roboters nachkommen kann. Zusätzlich sollten mögliche andere Einsatzgebiete gefunden werden. Felix Aller <felix.aller@iwr.uni-heidelberg.de> 2 / 25
Gliederung 1 Hardware 2 Robot Operating System ROS 3 Netzwerk 4 Anwendungen 5 Präsentation Felix Aller <felix.aller@iwr.uni-heidelberg.de> 3 / 25
Die Hardware: Kobuki Base [1] Brushed DC Motor 2 Akkus 3-Achsen Digital Gyrosensor Power Connectors 19V@2A: Laden von Netbooks 12V@5A: Accessories z.b. Roboter Arm 12V@1.5A: Kinect 5V@1A: Custom Boards (MC, RPi, Arduino) Felix Aller <felix.aller@iwr.uni-heidelberg.de> 4 / 25
Die Hardware: Kobuki Base [2] Felix Aller <felix.aller@iwr.uni-heidelberg.de> 5 / 25
Die Hardware: Acer Aspire ONE 756 Intel Pentium 1.1 GHz 2 GB RAM Intel HD GPU Ubuntu 12.04 Felix Aller <felix.aller@iwr.uni-heidelberg.de> 6 / 25
Die Hardware: Microsoft Kinect [1] FoV: 57 horz., 43 vert. Framerate: approx. 30 Hz Spatial Range: 640 x 480 (VGA) Nominal spatial resolution (2m): 3mm Nominal depth range: 0,8m - 3,5m Nominal depth resolution (2m): 1cm Connection: USB 2.0 (+ externes Netzteil) Felix Aller <felix.aller@iwr.uni-heidelberg.de> 7 / 25
Die Hardware: Microsoft Kinect [2] Probleme: Beschaffenheit mancher Objekte: Zu starke Reflektionen oder absorbierende Materialien werden nicht erkannt Alternative Distanzsensoren haben die gleichen Probleme IR Licht der Sonne limitiert Sensor Keine Outdoor Anwendung und Probleme Indoor bei zu starker Sonneneinstrahlung RGB Aufnahmen können Fehlverhalten von IR Sensor ausgleichen Felix Aller <felix.aller@iwr.uni-heidelberg.de> 8 / 25
Robot Operating System: Grundlagen Robot Operating System (ROS) ist eine Sammlung von libraries und tools um Roboteranwendungen zu programmieren. Nodes: Prozess welcher eine Operation durchrührt. Bspw. Node für Laser Scanner, Node welche Motor kontrolliert oder Node welche Pfadplanung durchfürt Topics: Bus mit Namen, über welchen Nodes Messages verschicken. Message: Simple ROS interne Datenstruktur (primitive Typen wie int, float, bool, sowie arrays). Können willkürlich verschachtelt sein bspw. wie C structs Service: Nodes werden veröffentlicht (publish) und aboniert (subscribe). Request und Reply Prinzip beinhaltet 2 Messages welche zusammen einen Service ergeben: ROS Node ruft Service auf durch request message und wartet auf Antwort einer anderen Node Felix Aller <felix.aller@iwr.uni-heidelberg.de> 9 / 25
Robot Operating System: Kobuki Base Node turtlebot node liefert Output des Turtlebot Treibers (modifierter irobot Create). Beinhaltet Diagnostics, Gyro Subcribed Topics: cmd vel - Zielgeschwindigkeit beider Motoren Published Topics: sensor state: Update aller Sensoren mit 10Hz odom: Odometrie des Roboters basierend auf Gyro imudata: Geschwindigkeit und integrierte Position des Gyros diagnostics: Roboterstatus Felix Aller <felix.aller@iwr.uni-heidelberg.de> 10 / 25
Robot Operating System: Kinect Stack Mögliche Treiber um Kinect zu betreiben: kinect stack: libfreenect Treiber freenect stack: Stets neuste Version des libfreenect Treibers openni kinect: OpenNi Treiber mit high level Bibliotheken für Skelett und Gestenerkennung OpenNi Stack: rgb/camera info: Metadaten und die Kamera Kalibration für RGB rgb/image raw: Raw Image im Bayer GRBG Format depth/camera info: Kamera Kalibration und Metadaten für IR depth/image raw: Raw Image Tiefeninformation in mm als uint16 Felix Aller <felix.aller@iwr.uni-heidelberg.de> 11 / 25
Robot Operating System: Programm Felix Aller <felix.aller@iwr.uni-heidelberg.de> 12 / 25
Robot Operating System: Programm Felix Aller <felix.aller@iwr.uni-heidelberg.de> 13 / 25
Robot Operating System: Pointcloud to Laserscanner Problem: Zu große Datenmengen für Netzwerkverkehr Reduktion der PointCloud Kinect Tiefenbild wird auf schmalen horizontalen Streifen reduziert Dadurch wird fixierter Laserscanner emuliert Kann die meisten Navigationsszenarien hinreichend gut erfüllen Pros: Netzwerklast minimiert. Ermöglicht verlagern von Berechnungen auf Netzwerk Cons: Zu tiefe oder hängende Objekte werden nicht erkannt Für zu tiefe Objekte helfen Kobuki Bumper Sensoren aus Felix Aller <felix.aller@iwr.uni-heidelberg.de> 14 / 25
Robot Operating System: Programm Felix Aller <felix.aller@iwr.uni-heidelberg.de> 15 / 25
Robot Operating System: Programm Felix Aller <felix.aller@iwr.uni-heidelberg.de> 16 / 25
Netzwerk Grundlagen [1] Eine gut programmierte node kümmert es nicht wo genau im Netzwerk sie ausgeführt wird. Berechnungen können zur Laufzeit bzgl. verfügbarer Ressourcen auf verschiedene Maschinen verteilt werden Ausnahme: Eine driver node die mit Hardware kommuniziert muss auf Rechner laufen, mit welchem sie physisch verbunden ist Felix Aller <felix.aller@iwr.uni-heidelberg.de> 17 / 25
Netzwerk Grundlagen [2] Vorraussetzungen: ROS MASTER URI: Einmalig vorhanden, Rechner auf dem alle Nodes zusammenlaufen, alle Nodes auf allen Rechnern haben selben Master Vollständige, bi-direktionale Netzwerkverbindung zwischen allen Paaren an Rechnern auf allen Ports Jeder Rechner repräsentiert durch eindeutigen Namen den jeder andere Rechner auflösen kann Felix Aller <felix.aller@iwr.uni-heidelberg.de> 18 / 25
Netzwerk Aufbau [1] Unser Szenario: Felix Aller <felix.aller@iwr.uni-heidelberg.de> 19 / 25
Netzwerk Aufbau [2] ssh tibia roscore ssh tibia export ROS MASTER URI=http://tibia:11311 rosrun rospy tutorials listener.py ssh turtlebot1 export ROS MASTER URI=http://tibia:11311 rosrun rospy tutorials talker.py ssh tibia rostopic list Felix Aller <felix.aller@iwr.uni-heidelberg.de> 20 / 25
Netzwerk Aufbau [3] Vorteile: pointcloud to lascerscan liefert geringe Datenmenge für Netzwerk Datenverkehr ROS MASTER ist leistungsstärker als Netbook um Daten zu interpretieren und Befehle an LISTENER Alle Programme können bequem auf ROS MASTER ausgeführt werden. Man muss Turtlebot nicht hinterherrennen Felix Aller <felix.aller@iwr.uni-heidelberg.de> 21 / 25
Anwendungen Keyboard und Joystick Steuerung Turtlebot Follower Demo Turtlebot Panorama Demo RViz: Grafische oberfläche und Kontrollplattform für WillowGarages PR2, sehr mächtig u.a. durch Laserscan Stack besitzt Turtlebot volle RViz Integration Interaktive Marker Steuerung Map Erzeugung und autonome Navigation bekannter Maps Felix Aller <felix.aller@iwr.uni-heidelberg.de> 22 / 25
Probleme ROS Updates während der Entwicklung Inkonsistenz der Treiber aufgrund des Sprungs von irobot Create auf Kobuki Bisher nur Steuerbar im Aktionsbereich eines Routers. Erneutes Einwählen in neues Netz nicht möglich Große Datenmengen führen zu maximaler Netzwerkauslastung Felix Aller <felix.aller@iwr.uni-heidelberg.de> 23 / 25
Ausblick ROS App Plattform Ermöglicht es Turtlebot Demos auf Android Geräten zu steuern und neue Apps zu entwerfen Roboterhand anbringen (Ansteuerung einfach, Montage trickreich) Programm zur erneuten Einwahl in weitere wireless Netzwerke um Aktionsradius zu erhöhen Felix Aller <felix.aller@iwr.uni-heidelberg.de> 24 / 25
Danke für die Aufmerksamkeit Fragen und Präsentation