AMR: Aufbau und Weiterentwicklung eines Autonomen Mobilen Roboters

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autor: Niklas Heiber
Art: Praxissemester
Modul: ITD-B-2-4.01
Dauer: 13.03.2023 - 03.07.2023
Wöchentliche Arbeitszeit: 39,83 h
Betreuer: Prof. Schneider
Prüfungsform: Modulabschlussprüfung als Hausarbeit (Praxisbericht, Umfang 20 Seiten) und mündliche Prüfungsleistung (Präsentation, 15 Minuten)
Mitarbeiter: Marc Ebmeyer, Tel. 847

Datei:Ros2-Webots-SLAM-AlphaBot-Niklas-Heiber.mp4

Zielsetzung

Der Studierenden sollen Praxiserfahrungen im Bereich Robotik und Autonome Systeme sammeln und dabei aktiv an der Weiterentwicklung, am Aufbau und der Optimierung unserer Labore und Projekte mitwirken. Der Studierende soll das im Studium erworbene Wissen in der beruflichen Praxis anwenden.

Aufgabenstellung

  1. Einarbeitung in die Entwicklungsumgebung WeBots/ROS2
  2. Inbetriebnahme des AMR
  3. Einbindung des Bumper-Sensors
  4. Webmeeting mit Hanning
  5. Micro-Ros auf Embedded System

Arbeitsweise/Tätigkeitsbeschreibung

Der Studierenden sollen sich im Rahmen des Praxissemesters mit der Entwicklung und dem Aufbau von autonomen mobilen Robotern (AMR) beschäftigen. Dazu zählen Aufgaben aus den Bereichen:

  • Projektmanagement
  • Dokumentation
  • Forschung und Entwicklung
  • Mechanische Konstruktion und Aufbau des mobilen Roboters
  • Auswahl passender Sensoren und Aktoren
  • Elektrische Konstruktion, Aufbau und Verdrahtung des mobilen Roboters
  • Entwicklung der Schnittstelle zwischen Hardware und Software
  • Ansteuerung über das Robot Operating System (ROS 2)
  • Programmierung und Entwicklung der Software für die autonome Navigation
  • Simulation und Visualisierung des mobilen Roboters
  • Instandhaltung und Organisation der Labore

Getting Started

Als Einstieg sind folgende Artikel zu Empfehlen:

Allgemeine Anforderungen

Raspberry Pi

AlphaBot Ubuntu Server 20.04:

  Username: pi
Password: Hshl2021

AlphaBot Ubuntu Server 22.04:

  Username: pi
Password: Hshl2023

Um die Lichtschranken (Photo Interrupter Sensor) des AlphaBots nutzen zu können, muss raspi-config auf dem RPi installiert werden.
Mit sudo raspi-config die einstellungen ändern und SPI deaktivieren.

  sudo raspi-config

Interface Options -> SPI -> <no>

FTF Ubuntu Server 20.04:

  Username: ubuntu
Password: Hshl2021

FTF Ubuntu Server 22.04:

  Username: ftf
Password: Hshl2023

RPLidar

RPLidar kann über das Ros2 Paket rplidar_ros2 gestartet werden. Das Paket publiziert die Lidar-Daten standardmäßig unter dem Topic /scan. Dies kann entweder im Paket selbst oder mit Hilfe von launch parameters geändert werden. Bei einer Neuinstallation von Ubuntu muss das Lidar zunächst angeschlossen und dann der Port mit sudo chmod 666 /dev/ttyUSB0 freigegeben werden (je nachdem, welcher Port dem Lidar zugewiesen wurde, kann sich dies ändern).

RPLindar A1

  • Winkelbereich 360°
  • Reichweite von 12m
  • Messgenauigkeit 1%
  • Scanfrequenz 5.5Hz

RPLidar A2M8

  • Winkelbereich 360°
  • Reichweite von 12m
  • Messgenauigkeit 1%
  • Scanfrequenz 5 - 10Hz

Genutzte Ros2 Pakete

Alle hier aufgelisteten Pakete sind für Ros2 Humble. Viele der Pakete gibt es aber auch für andere Ros2-Versionen wie z.B. Ros2 Foxy.

Rviz2 ist ein in Ros2 integriertes Paket zur Visualisierung von Robotern, Sensordaten und Umgebungskarten.

SLAM-Toolbox ist ein SLAM-Paket, das mit Hilfe von Odometrie- und Lidardaten eine Umgebungskarte erstellt und die Position des Roboters auf dieser Karte anzeigt.

Nav2 wird zusammen mit der SLAM-Toolbox oder ähnlichen SLAM-Paketen verwendet, um den Roboter durch die generierte Umgebungskarte zu navigieren.

rplidar ros2 wird verwendet, um die Daten des Lidarsensors auszulesen und unter einem bestimmten Topic zu publizieren.

rf2o laser odometry wird verwendet, um genaue Odometriedaten und die Odometrie-Transformation aus den Lidardaten zu erstellen. Das Paket ist besonders nützlich, wenn keine anderen Sensoren vorhanden sind oder diese ungenaue Daten liefern.

webots_ros2 ist ein Paket, das die notwendigen Schnittstellen zur Simulation eines Roboters im Open-Source-3D-Robotersimulator Webots bereitstellt. Die angegebenen Beispiele (insbesondere webots_ros2_turtlebot) können den Einstieg in Ros2 mit Webots stark vereinfachen.

Bumper-Sensor

Der Bumper-Sensor wird mit Hilfe eines Spannungsteilers an den Raspberry Pi 4b angeschlossen und mit 3.3V betrieben.

Abb. 1: Schaltplan
Abb. 2: Steckplatine















Arbeitsunterlagen

Alle Arbeitsunterlagen sind im SVN hinterlegt.

AlphaBot

AlphaBot Simulation starten:

  • Zu \Niklas_Heiber_ws\src\webots_ros2-master Alphabot Projekt\alphabot_lidar_webots navigieren (aus SVN herunterladen).
  • Das Paket bauen und sourcen.
  • Das Paket über "ros2 launch alphabot_lidar_webots robot_launch" starten.

AlphaBot Labor starten:

Auf dem RPi:

  • Zu \Niklas_Heiber_ws\src\alphabot_lidar_labor\rplidar_ros2-ros2 navigieren (aus SVN herunterladen).
  • Das Paket bauen und sourcen (Readme file).
  • Das Paket über "ros2 launch rplidar_ros rplidar.launch" starten.
  • Zu \Niklas_Heiber_ws\src\alphabot_lidar_labor\rf2o_laser_odometry-master navigieren (aus SVN herunterladen).
  • Das Paket bauen und sourcen.
  • Das Paket über "ros2 launch rf2o_laser_odometry rf2o_laser_odometry.launch" starten.
  • Zu \Niklas_Heiber_ws\src\alphabot_lidar_labor\tf_and_mc_reverse navigieren (aus SVN herunterladen).
  • Das Paket bauen und sourcen.
  • Das Paket über "ros2 launch tf_and_mc_reverse robot_launch" starten.

Oder Remote Control, rf2o_laser_odometry auf dem PC und tf_and_mc_reverse und rplidar_ros2 auf dem RPi (Über ssh -X pi@hshl.local):

Auf dem PC:

  • Zu \Niklas_Heiber_ws\src\alphabot_lidar_labor\remote_control navigieren (aus SVN herunterladen).
  • Das Paket bauen und sourcen.
  • Das Paket über "ros2 launch remote_control robot_launch" starten.
  • Zu \Niklas_Heiber_ws\src\alphabot_lidar_labor\rf2o_laser_odometry-master navigieren (aus SVN herunterladen).
  • Das Paket bauen und sourcen.
  • Das Paket über "ros2 launch rf2o_laser_odometry rf2o_laser_odometry.launch" starten.

Auf dem RPi:

  • Zu \Niklas_Heiber_ws\src\alphabot_lidar_labor\rplidar_ros2-ros2 navigieren (aus SVN herunterladen).
  • Das Paket bauen (Readme file).
  • Das Paket über "ros2 launch rplidar_ros rplidar.launch" starten.
  • Zu \Niklas_Heiber_ws\src\alphabot_lidar_labor\tf_and_mc_reverse navigieren (aus SVN herunterladen).
  • Das Paket bauen und sourcen.
  • Das Paket über "ros2 launch tf_and_mc_reverse robot_launch_rc" starten.

Projektplan

Abb. 3: Projektplan