TurtleBot 2

Der TurtleBot 2

Beschreibung und Eigenschaften

 






















TurtleBot 2 ist ein mobiles Roboterkit mit Open-Source-Software, der mit einer Blackboard Architektur namens ROS (Robot Operating System) gesteuert wird. Durch diese Architektur können verschiedene Programmiersprachen im selben Projekt genutzt werden. Diese sind vorwiegend Python und C++. Durch seinen flexiblen Baustil können ebenso diverse Komponenten ergänzt werden, damit auch mehr Funktionalitäten hinzugefügt werden können.

Im Rahmen eines Projektes wurde er von Studenten liebevoll zu Botty McTurtleFace getauft oder kurz Botty.

Videos

Botty fährt vorwärts und umgeht ein Objekt.

 

Botty fährt ein Viereck.

 

 

Ausstattung

Im Auslieferungszustand besaß der Turtlebot 2 mehrere Hardware Komponenten, um seine Umgebung wahrzunehmen und mit ihr interagieren zu können. Alle sind mit einem NUC PC mit Ubuntu 16.04 verbunden, der sich direkt als Onboard PC auf dem TurtleBot 2 befindet. Folgende Komponenten besitzt er:

  • Greifarm PhantomX Reactor
    Der PhantomX Reactor Arm ist ein ROS-kompatibler Greifarm. Der Greifarm wird über einen Arbotix-M gesteuert, welches ein modifiziertes Arduino-Board zur Ansteuerung von Servo-Motoren ist. Auf dem NUC des TurtleBot kann eine ROS Anwendung gestartet werden, welche Positionierungsbefehle für den Greifarm annimmt und diese Befehle dann an das Arduino-Board weiterleitet. Hierfür befindet sich ein Arduino-Image auf dem Arbotix-M, welches die ROS-Befehle interpretiert und entsprechend die Servo-Motoren ansteuert. 
  • Lidar Hokuyo URG-04LX-UG01
    Es handelt sich hierbei um einen Laserscanner zur Berechnung von Distanzen auf einer horizontalen Ebene. Der Wahrnehmungswinkel beträgt 240° und die Wahrnehmungsreichweite ist bis zu ca. 4 Meter.
  • 3D-Kamera Orbbec Astra
    Die Orbbec ist eine 3D-Kamera mit einem Sichtfeld von 60° horizontal und 49,5° vertikal. Dazu hat sie eine Reichweite von bis zu 8 meter.
  • Kobuki-Base
    Die Kobuki-Base macht den TurtleBot 2 mobil und beinhaltet die benötigte Lithium-Ionen Batterie. Daneben stellt die Basis auch Tasten, LEDs und Bumpers, zur Kollisionserkennung, zur Verfügung.

Allerdings erlaubt seine besondere Baustruktur durch Halterungen und Platten mehrere Etagen über der Kobuki-Base zu stapeln, um auf diese Weise mehr Platz für weitere Komponenten hinzuzufügen. Daher wurden zu den ursprünglichen Komponenten noch ein Mikro für Spracherkennung und Sprachausgabe hinzugefügt. Ebenso wurde die 3D-Kamera ummontiert und an der Unterseite einer der Platten angebracht, damit sie ein besseres Sichtfeld hat.

Arbeiten mit Turtlebot 2
Programmierung

Die Programmierung ist einfacher als man denkt. Wie bereits erwähnt unterstützt ROS sowohl Python, wie auch C++. Im folgenden wird ein Python Beispiel betrachtet, mit dem der TurtleBot 2 ein Viereck fahren soll. Ein Video davon ist weiter oben zu finden.

def drive(meter): # starte den Motor Service, um mit ihm kommunizieren zu können rospy.wait_for_service('motor') job = rospy.ServiceProxy('motor', call) # Die Nachricht ist in diesem Fall ein Objekt "call" # erzeuge die Nachricht param=[] param.append(meter) command=call() command.call="forwardByMeters" # die vom Motor erwünschte Aktion command.param=param # die zurück zu legende Distanz #sende die Nachricht response=job(command.call,command.param) # Übermittelung der Nachricht return response # Ausgabe der zurück erhaltenen Antwort def turn(angle): # starte den Motor Service, um mit ihm kommunizieren zu können rospy.wait_for_service('motor') job = rospy.ServiceProxy('motor', call) # Die Nachricht ist in diesem Fall ein Objekt "call" # erzeuge die Nachricht param=[] param.append(angle) command=call() command.call="turnRigthByAngle" # die vom Motor erwünschte Aktion command.param=param # die zurück zu legende Distanz in Gradzahl #sende die Nachricht response=job(command.call,command.param) # Übermittelung der Nachricht return response # Ausgabe der zurück erhaltenen Antwort if __name__ == "__main__": for x in range (0,4): print("Going Forward to "+str(drive(1.0))) sleep(0.1) print("Turning around to: "+str(turn(90))) sleep(0.1) Weiterlesen

Hackathon

HS KL Hackathon 2019

“für Techies und Nicht-Techies”

Schirmherr: Prof. Dr. Hans-Joachim Schmidt, Präsident der HS KL

Der Arbeitskreis Smart Machines lädt alle Studierenden und Mitarbeiter der Hochschule herzlich ein, am Hackathon 2019 teilzunehmen!

Steckbrief

  • Was: Kooperatives Arbeiten an interdisziplinären Projekten mit Hochschul- und Industriepaten
  • Wer: Studierende und Mitarbeiter der Hochschule in fachbereichs-übergreifenden Teams (3-7 Personen), Projektpaten, Industriepartner
  • Wann:
    • Beginn Marketing (für Studierende, Industriepaten) im Dezember
    • Projekteinreichungen bis Ende Januar
    • Hackathon Mo. 25.Februar 2019 – Sa. 2. März/ Teamprojekte Mo-Fr / Abschluss, Presse am Sa.

    =&4=&: Hochschule Kaiserslautern / Campus Zweibrücken / Aula, Teamräume, Sportbereiche
    =&5=&: Tagesauftakt ist das Frühstück im Gemeinschaftsraum. Danach eine kurze Tagesplanung in den Projekten, mit anschließenden Arbeitsphasen vor- und nachmittags in ruhigen Arbeitsräumen, Mittagspause und Abendessen wieder gemeinsam – mit ausreichend Zeit für Austausch zwischen den Teams
    =&6=&: Chill-Out-Lounge, Snacks, Obst und Getränke im Gemeinschaftsraum, Sportangebot
    =&7=&

Thymio II

Thymio II

Typ, Ausstattung, Fähigkeiten, kurze Beschreibung

Der Thymio ist ein kleiner, programmierbarer Lernroboter, der perfekt für Programmiereinsteiger geeignet ist.

Er besitzt 2 Antriebsmotoren (Heckantrieb und Bug-Sporn), 5 IR Abstandssensoren, 2 Helligkeitssensoren (Boden), weitere Sensoren (s. Grafik), on-top,  Bedienpanel, Multi-color LED, Lautsprecher und USB. Zudem ist er Lego-kompatibel (andere Reifen, Anbauten).

Dieses Werk unter liegt dem © der Webseite https://www.thymio.org/de:thymio und ist im Original lizenziert unter einer Creative Commons Attribution-ShareAlike 3.0 License

Basisfunktionen

Der Thymio besitzt standardmäßig mehrere Modi, wie z.B. Line-follower Bot, Hindernis Vermeidung oder Verfolger. Desweiteren ist er selbst programmierbar und verfügt über Bot-zu-Bot Kommunikation im API (ohne Wifi)

Preis: Basisgerät 139,- opt. Varianten: Wifi (189,- ) IR Fernsteuerung (12,-)

Thymio II ist ein Open Source und Open Hardware Projekt. Das vollständige 3D-Design des Roboters Thymio II ist frei verfügbar, wie auch der Source Code und die Programmierumgebung. Diese Dokumente sind unter der Creative Commons Lizenz veröffentlicht und als LGPL erhältlich.

Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung – Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.

Programmierung und IDE
  • Für Anfänger und Schüler: Visual Programming Language (VPL): https://www.thymio.org/de:visualprogramming
  • Mittleres Niveau: Google Blockly: https://www.thymio.org/de:blocklyprogramming
  • Programmiersprache Aseba: http://wiki.thymio.org/de:asebalanguage
    Die Syntax der Programmiersprache Aseba gleicht derjenigen von Matlab (verbreitete wissenschaftliche Programmiersprache). Dies ermöglicht Programmierern mit Vorkenntnissen sich schnell zu orientieren und Aseba in Kürze zu erlernen. Semantisch gesehen, ist Aseba eine einfache, imperative Programmierung mit einem einzelnen Datentyp (16 Bit Ganzzahlen mit Vorzeichen) und Vektoren davon.
  • Aseba besitzt eine ereignisbasierte (event-based) Architektur, was eine asynchrone Ereignisauslösung ermöglicht. Extern können Ereignisse zum Beispiel von einem anderen Aseba-Netzwerkelement ausgelöst werden. Intern können Ereignisse zum Beispiel von einem Sensor mit aktualisierten Daten ausgelöst werden.

=&1=&

var run = 0

onevent start

#falls das Ereignis ‘start’ eintritt, starte

run = 1

onevent stop

#falls das Ereignis ‘stop’ eintritt, halte an

run = 0

onevent ir_sensors

if run == 1 then

#wenn==1, dann

   emit sensors_values proximity_sensors_values

   #Gib das Ereignis ‘sensors_values’ aus mit den Variablen ‘proximity_sensors_values’

end  

#Ende des ‘if’ blocks

# Blinken beim Steuern nach rechts, links und hinten:

onevent timer0

   if turnleft==1 then

       if yellowl==0 then

           yellowl=1

           call leds.bottom.left(32,32,0)

       else

           yellowl=0

           call leds.bottom.left(32,0,0)            

       end

   else

       call leds.bottom.left(32,32,0)

   end

[…]

=&2=&

B.O.T. Challenge 2019

Was ist die B.O.T. Challenge 2019?

Die Wettbewerber schicken selbst programmierte Roboter in (mindestens) einer von zwei Disziplinen („Challenges“) gegeneinander ins Rennen. In der ersten Disziplin („Line Follower“) müssen die Roboter einer schwarzen Linie durch einen Rundkurs folgen. In der zweiten Disziplin („Maze“) müssen sie den Weg durch ein Labyrinth finden. Bewertet werden Zeit, Qualität der Programmierung und Anzahl der Fehler. Weiterlesen