Das Robot Operating System (ROS) ist ein im Bereich der Forschung und Entwicklung weit verbreitetes Framework zur Programmierung von Robotern unter der Verwendung von verschiedenen Linux Distributionen. Das Ziel dieser Arbeit ist der Einsatz eines PCs mit einem Linux-Kernel mit präemptiven Echtzeit Patch zur Implementierung der Bewegung und Odometry des mobilen Roboters LeoBot unter der Verwendung von ROS und Überprüfung der omnidirektionalen Bewegung der Mecanumräder mittels Messdaten. Der Roboter wurde an der Leopold-Franzens-Universität Innsbruck parallel zu dieser Arbeit als Studentenprojekt entwickelt, geplant und gefertigt. Die Einleitung enthält einen Überblick über das mechatronische System und dessen Struktur, um den nötigen Kontext zu liefern. Die Vorwärtskinematik sowie inverse Kinematik des Roboters auf Ebene der Mecanumräder sowie der Motoren wird eingeführt und die Odometrie hergeleitet. Zur Erfüllung der Echtzeitanforderungen wird der unterbrechende (präemptive) Echtzeitscheduler eingeführt und Statistiken zur Schedulerlatenz werden dargestellt. Die Interaktion mit dem ROS System wird zusammen mit der Sicherheits-SPS, welche dem System übergeordnet ist, vorgestellt. Im darauf folgenden Kapitel wird die Echtzeitkommunikation dargestellt basierend auf dem CanOpen over EtherCAT Protokoll. Die Struktur der Kommunikation unter Verwendung der C Bibliothek Simple Open EtherCAT Master (SOEM) wird gezeigt, gefolgt von der konkreten Implementierung im ROS System mit der Programmiersprache C++. Ein vereinfachtes 2D-Modell zur Berechnung möglicher Positionierungen eines redundanten mobilen Roboters mit 5 Freiheitsgraden in der Ebene zur Manipulation eines oder mehrerer Ziele wird vorgestellt und die Erstellung einer inversen Erreichbarkeitskarte gezeigt. Die Arbeit schließt mit der Evaluierung der implementierten Kinematik und Odometrie ab. Der Roboter wird in einer Laborumgebung angesteuert und die Trajektorie mit dem Motion Tracking System Vicon vermessen. Die gewonnenen Daten werden aufbereitet und dargestellt. Der Schwerpunkt des Roboters ist bei diesen Messungen nicht im geometrischen Mittelpunkt der Plattform, sondern weicht deutlich ab, was sich auf die Dynamik der seitlichen Bewegung auswirkt. Dieser Effekt wird in der C++ basierten Python Bibliothek Exudyn weiter untersucht, indem der Roboter als Mehrkörpersystem mit einem vereinfachten Modell der Mecanumräder implementiert wird. Die im Labor aufgenommenen Daten werden mit der Simulation verglichen und eine Variation wird durchgeführt, um die Reibwerte zu bestimmen. Verschiedene Anordnungen der Mecanum Räder werden mithilfe dieser Simulation verglichen. Die weitgehende Übereinstimmung von Modell und Versuch lässt vermuten, dass ein geeigneter Ansatz gewählt wurde.
Titelaufnahme
- TitelRealtime movement of a mecanum wheeled robot using the robot operating system ROS / Peter Manzl, BSc
- verfasst von
- betreut von
- ErschienenInnsbruck, September 1, 2020
- Umfangxii, 107 Seiten : Illustrationen
- Datum der AbgabeSeptember 2020
- SpracheEnglisch
- DokumenttypMasterarbeit
- Schlagwörter
- Schlagwörter (DE)
- Schlagwörter (EN)
- URN
- Das Dokument ist online verfügbar
- Nachweis
In the field of robotics and mobile robotics the Robot Operating System (ROS) framework is widely used in research and development applications under various Linux-distributions. The aim of this work is to use a PC with a realtime patched Linux kernel to implement the movement and odometry of the mobile robot LeoBot using ROS and to test the quality of omnidirectional movement using Mecanum wheels. LeoBot is designed, developed and manufactured at the University of Innsbruck as a student project parallel to this work. The thesis opens with an introduction chapter containing the mechatronic system overview and structure to provide the context of the work. The forward and inverse kinematics for the robot are described on wheel and motor level and the odometry is derived. For the realtime demands the preemptive realtime scheduler under the preempt_rt patched linux kernel is introduced together with scheduling statistics. The interaction with the ROS system is presented together with the overlying safety system based on a separate Safety-PLC. In the following chapter the realtime communication is presented. The CANopen over EtherCAT protocol is introduced and the structure of the communication using the Simple Open EtherCAT Master (SOEM) is shown. This is followed by the specific implementation in C++ for the ROS system. A simplified 2D-model to decide where a mobile robot with 5 degrees of freedom (DoF) in the plane can be positioned to reach one or more tool center point configurations is introduced and the inverse reachability map is shown. The thesis closes with the evaluation of the implemented kinematics and odometry. The robot moves in a laboratory environment and is monitored with the motion tracking system vicon while moving and the obtained data are displayed. Because of a non ideal center of mass the omnidirectional movement differs from the wished kinematics. This effect is explored in a simulation using the C++ based Python library Exudyn, where the robot’s base is reproduced as a multibody system with a simplified Mecanum wheel model. The data obtained in the laboratory is compared with the simulation. Different arrangements of the Mecanum wheels are compared using the simulation. Simulation and experiment show good agreement, thus it can be assumed that the methods have been chosen properly.
- Das PDF-Dokument wurde 1578 mal heruntergeladen.