15. Januar 2020

LIDAR löppt!

Moin Leute,

ich habe vor kurzer Zeit gewagt einen LIDAR-Sensor in Fern-Ost zu bestellen. Dieser kam dann auch promt nach einigen Wochen an. Ich konnt bei dem "günstigen" Kurs (~30€, ebay) nicht widerstehen.

Lidar-Sensor HLS-LFCD2



Bezeichnung ist HLS-LFCD2. Dies scheint ein baugleicher Sensor zu sein, wie die Sensoren, die auf dem TurtleBot verbaut werden. Leider kommt dieser Sensor nicht mit dem USB2LDS Adapter. Deshalb muss man ein wenig Recherche betreiben, um diesen Sensor erstmal zum Laufen zu bringen.

Ich habe einige Hilfe von der Webseite eines PIWARS-Bastlers gefunden. Hier ist dieser "günstige" Sensor auch gut beschrieben.
Webseite: BadPidea - Cheap Lidar Seite 1
Webseite: BadPidea - Cheap Lidar Seite 2

Und das Datenblatt des Sensors von dem TurtleBot-Sensor ist eine große Hilfe gewesen, um die Pin-Belegung zu finden.
Datenblatt Lidar von ROBOTIS

Auch eine Anleitung vom TurtleBot ist hilfreich gewesen. Unter dem Punkt "user guide for emdedded board" ist das Pin-Out dargestellt, welche auch zu diesem Sensor passt.
#user-guide-for-embedded-board

Zuerst habe ich den Sensor mit einem Bread-Board verbunden um dann mit Dupont-Kabeln die Verbindung zum FTDI-UART-USB-Adapter (war noch im Bestand) hergestellt. Damit kann dann das ROS-package "hls_lfcd_lds_driver" dann die Daten auslesen.

FTDI-UART-USB-Adapter
Durch einbinden der Launch-File des Treibers ist der Start dann relativ einfach, was ihr im Video sehen könnt.

Hier ein kleiner Test mit dem Raspberry Pi und Touch-Screen. Ihr könnt die Entferungsdaten in Form von "roten" Punkten in der RViz-Darstellung erkennen.

Übersicht vom Testaufbau

 

 So, das war es erstmal für heute. Jetzt muss ich noch den Roboter nach einer Demontage der "meisten" Bauteile wieder zusammenbauen. Danach erfolgt dann ein Test des Roboters mit hoffentlich erfolgreicher Karten-Erstellung.

Bis dann




30. Mai 2019

Status

Moin...

Ich will mich mal wieder zurückmelden.
Leider ist das mit der Entwicklung immer so eine Sache, die vorgenommenen Schritte passen im seltensten Fall zu der vorgegeben Zeit.
Das heißt, ich habe leider nicht all zuviel vorzuweisen.

Hier der aktuelle Status:

der Roboter ist mit folgenden Komponenten zusammengepfuscht:

  • Basis: wie im 1. Post, GMPD-Motoren + Encoder auf einer Runden Plattform (OD=500mm)
  • Ardumower Platine v1.2 mit Arduino MEGA
  • LC-Display 20x4 blau über I²C-Bus am Arduino
  • 1x Servo Motor (zu Testzwecken für evtl. Sensorführung TOF) 
  • 1x TOF-Laser-Abstandssensor VL53L0X I²C
  • 1x GY-80 - IMU I²C
  • Kinect Sensor von der X-Box 360

Die momentanen Spielereien begrenzen sich auf Dinge wie die LED der Kinect zu steuern, die Ausrichtung der Kinect mit der integrierten IMU auf dem Horizont bzw. vorgegebenen Winkelwert, Darstellung des verschiedenen Bilddarstellungen der Kinect-Kamera (IR, RGB, Mono, Depth,...), Plotting der Encoder-Ticks über die ROS-Serial Schnittstelle.

Die nächsten Schritte im Grundgerüst...
  • Implementierung vom differential_drive package. Dies dient zur geregelten Steuerung der Motoren mit Geschwindigkeitsbefehlen (/cmd_vel).
  • Die Steuerung des Roboters kann jetzt durch Twist-Messages geschehen.
  • Kartenerstellung durch gmapping-package anhand der 3D-Daten des Kinect Sensors, den Odometrie-Sensoren.

Auf dem Plan steht jetzt 
  • die Verbesserung der Karten-Daten
  • Roboter-Ortung anhand der aufgezeichneten Karte
  • Autonome Bewegung mit Hilfe von Wegpunkten (patrouillieren)




12. November 2018

Robot goes 3D...

Moin,

hier ein paar Impressionen über den weiteren Fortschritt...

Ich habe meinen Roboter mal mit SketchUp "gemalt" ;).

Um dieses Modell nun in die Visualisierung von ROS / RViz zu bekommen, waren einige Schritte nötig. Um flexibel zu sein, habe ich die einzelnen Komponenten des Roboters als 3D-Mesh (COLLADA-File; *.dae) exportiert.
Diese Komponenten mussten nun "virtuell" in der URDF bzw. XACRO -Datei zusammengebaut werden.
Mein erstes Ergebnis sieht nun wie folgt aus:


Es sind noch lange nicht alle Bauteile gezeichnet und hinzugefügt, aber so kann der Robi schon mal dargestellt werden.

Mit ein paar Anpassungen in der XACRO-File, kann man dieses Modell auch in Gazebo, dem Simulations-Tool von für ROS, einbinden bzw. "spawnen".
Hier ein Beispiel, wie sowas dann aussieht:


 
Dann war es ein durchlaufen von diversen Tutorials, um dieses Modell nun mittels folgendem Befehl

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

zum "laufen" zu bringen...









Mein nächster Step wird sein, den Kinect-Sensor virtuell einzubinden, und die Tiefendaten / PointCloud zu benutzen eine Karte erstellen zu lassen.

bit denn ...

8. November 2018

Erster Post

Hallo zusammen,
hier ist mein erster Post in meinem "neuen" Blog.

Hier werde ich beschreiben, was ich alles bei meinem "Hobby-DIY-Roboter" anstelle.

Im Moment bin ich allerdings in einer längeren Findungsphase, wie und welche Systeme alles mit eingebunden werden.

Erster Plan / erste Eckpunkte:

  • Framework: ROS - Robot Operating System link: www.ros.org 
  • Chassis: DIY (Rund)
  • Motoren: GMPL- Motoren von Pollin link: www.pollin.de
  • Basis-Board: PCB v1.2 von der DIY-Rasenmäher-Entwicklung ARDUMOWER link: www.ardumower.de
  • Microcontroller: ARDUINO Mega 2560 link: www.arduino.cc  
  • Rechner: Raspberry Pi 3 link: www.raspberrypi.org
  • Sensoren: 
    • X-Box 360 Kinect (Umbau auf USB + 12V)
    • Magnetic Encoder Pair Kit for Micro Metal Gearmotors, 12 CPR link: www.pololu.com
    • Adafruit VL53L0X Time of Flight Distance Sensor www.adafruit.com
Ich bin fleißig dabei mich in das Thema ROS einzulesen, bzw. diverse Tutorials durchzuarbeiten, soweit dies mit der vorhandenen Hardware zu bewerkstelligen ist.
 
Hier noch ein Bild vom Robi:
Roboter "noch" ohne Raspberry Pi und Kinect Sensor


Jetzt erstmal genug...