diff --git a/Code/Pico(Micropython)/led.py b/Code/Pico(Micropython)/externe_led.py similarity index 100% rename from Code/Pico(Micropython)/led.py rename to Code/Pico(Micropython)/externe_led.py diff --git a/Code/Pico(Micropython)/interne_led.py b/Code/Pico(Micropython)/interne_led.py new file mode 100644 index 0000000000000000000000000000000000000000..a923c8d6decef1adabd757d17abcebec62530819 --- /dev/null +++ b/Code/Pico(Micropython)/interne_led.py @@ -0,0 +1,14 @@ +# Dieser Code in Micropyhton ist für den Raspberry Pi Pico gedacht +# und lässt die interne LED des Picos (auf GPIO 25) blinken. + +import machine +import time + +# Initialisiere den GPIO-Pin 25 (eingebaute LED) +led = machine.Pin(25, machine.Pin.OUT) + +while True: + led.value(1) # LED einschalten + time.sleep(0.5) # 500 ms warten + led.value(0) # LED ausschalten + time.sleep(0.5) # 500 ms warten diff --git "a/Dokumentation/Einf\303\274hrung_&_Infos.md" "b/Dokumentation/Einf\303\274hrung_&_Infos.md" index c548483eb8810edef06e224211183aea338eae7e..f028d644b8c058fd127dcb8ba4e82114f2271949 100644 --- "a/Dokumentation/Einf\303\274hrung_&_Infos.md" +++ "b/Dokumentation/Einf\303\274hrung_&_Infos.md" @@ -1,6 +1,6 @@ 1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md) 2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md) -3. [ROS Basics](ROS2_Basics.md) +3. [ROS2 Basics](ROS2_Basics.md) 4. [Sensoren](Dokumentation/Sensoren.md) 5. [Navigation](Dokumentation/Navigation.md) diff --git a/Dokumentation/Inbetriebnahme_Turtlebot_4.md b/Dokumentation/Inbetriebnahme_Turtlebot_4.md index ff4ac01daf651623c85e1061fb5104460e3a6ec5..9d5a1f2dae106ed4ca1a29f562d2649c933d54e7 100644 --- a/Dokumentation/Inbetriebnahme_Turtlebot_4.md +++ b/Dokumentation/Inbetriebnahme_Turtlebot_4.md @@ -1,6 +1,6 @@ 1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md) 2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md) -3. [ROS Basics](ROS2_Basics.md) +3. [ROS2 Basics](ROS2_Basics.md) 4. [Sensoren](Dokumentation/Sensoren.md) 5. [Navigation](Dokumentation/Navigation.md) @@ -17,7 +17,9 @@ Hierzu sollte man den [Raspberry Pi Imager](https://www.raspberrypi.com/software - mit Benutzernamen `turtlebot` und Passwort `turtlebot4` - und auf welchem SSH aktiviert ist -Wir haben manuell einmal die Umgebung für einen Turtlebot 4 aufgesetzt und haben davon ein Image erstellt. Dieses findet sich **[hier](../Code/turtlebot.zip)** und kann mit dem Raspberry Pi Imager auf eine SD Karte kopiert werden. Alternativ werden auf der ROS Seite auch fertige Images zum [Download](http://download.ros.org/downloads/turtlebot4/) angeboten, dieses hat bei uns aber nicht funktioniert. +Wir haben manuell einmal die Umgebung für einen Turtlebot 4 aufgesetzt und haben davon ein Image erstellt. Dieses findet sich **[hier](../Code/turtlebot.zip)** und kann mit dem Raspberry Pi Imager auf eine SD Karte kopiert werden. + +Alternativ werden auf der ROS Seite auch fertige Images zum [Download](http://download.ros.org/downloads/turtlebot4/) angeboten, dieses hat bei uns aber nicht funktioniert. Die Anmeldedaten sind hier `ubuntu` und `turtlebot4`. ###### Manuell selbst aufsetzen - Im Raspberrry Pi Imager als Betriebssystem `Ubuntu Server 22.04.05 LTS (64-bit)` unter `Other general-purpose OS` -> `Ubuntu` auswählen diff --git a/Dokumentation/Navigation.md b/Dokumentation/Navigation.md index cad88d36ed5555f0178a2a4aae880f26a549cc4d..13dbd8df6780ff0938bd5e31e6496e0d1778b830 100644 --- a/Dokumentation/Navigation.md +++ b/Dokumentation/Navigation.md @@ -1,6 +1,6 @@ 1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md) 2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md) -3. [ROS Basics](ROS2_Basics.md) +3. [ROS2 Basics](ROS2_Basics.md) 4. [Sensoren](Dokumentation/Sensoren.md) 5. [Navigation](Dokumentation/Navigation.md) @@ -9,7 +9,7 @@ ## Einer Linie folgen mit zwei Liniensensoren -Dieses Navigationsszenario ermöglicht einem TurtleBot, einer Linie auf dem Boden zu folgen. Die Umsetzung erfolgt durch eine Kombination von Hardware (TurtleBot 4, Raspberry Pi Pico, und TCRT5000-Liniensensoren) und einer Softwareintegration unter Verwendung von ROS 2. Nachfolgend wird der Prozess detailliert beschrieben: +Dieses Navigationsszenario ermöglicht einem TurtleBot, einer Linie auf dem Boden zu folgen. Die Umsetzung erfolgt durch eine Kombination von Hardware (TurtleBot 4, Raspberry Pi Pico, und TCRT5000-Liniensensoren) und einer Softwareintegration unter Verwendung von ROS 2 Humble. Nachfolgend wird der Prozess detailliert beschrieben: ###### Hardwareaufbau @@ -20,7 +20,7 @@ Dieses Navigationsszenario ermöglicht einem TurtleBot, einer Linie auf dem Bode - Der Pico fungiert als Mittler, der die Sensordaten von den TCRT5000-Sensoren aufnimmt. - Die Verarbeitung der Daten erfolgt in Echtzeit, und die relevanten Informationen werden über eine **serielle USB-Schnittstelle** an den Hauptrechner des TurtleBot weitergeleitet. 3. **Raspberry Pi auf dem TurtleBot**: - - Der Hauptrechner des TurtleBot empfängt die Sensordaten über die USB-Verbindung und integriert diese in das Robot Operating System (ROS 2). + - Der Hauptrechner des TurtleBot empfängt die Sensordaten über die USB-Verbindung und integriert diese in das Robot Operating System (ROS 2 Humble). ###### Software-Integration diff --git a/Dokumentation/README.md b/Dokumentation/README.md index 3e2f14c08dc6f914d4d1551606aa68e5938849c3..eeaf32e91a7a935f7deebd515c6e72ffb532e7f4 100644 --- a/Dokumentation/README.md +++ b/Dokumentation/README.md @@ -1,5 +1,5 @@ 1. [Einführung & Infos](Einführung_&_Infos.md) 2. [Inbetriebnahme Turtlebot 4](Inbetriebnahme_Turtlebot_4.md) -3. [ROS Basics](ROS2_Basics.md) +3. [ROS2 Basics](ROS2_Basics.md) 4. [Sensoren](Sensoren.md) 5. [Navigation](Navigation.md) \ No newline at end of file diff --git a/Dokumentation/ROS2_Basics.md b/Dokumentation/ROS2_Basics.md index 4000354c97f63f72346ac39d3c8eff5adcaae208..f80a8ff26dc721466abe2e3d742373244d48fb07 100644 --- a/Dokumentation/ROS2_Basics.md +++ b/Dokumentation/ROS2_Basics.md @@ -1,13 +1,15 @@ 1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md) 2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md) -3. [ROS Basics](ROS2_Basics.md) +3. [ROS2 Basics](ROS2_Basics.md) 4. [Sensoren](Dokumentation/Sensoren.md) 5. [Navigation](Dokumentation/Navigation.md) --- -# ROS Basics +# ROS2 Basics -***ROS (Robot Operating System)** ist ein Framework zur Entwicklung von Software für Roboter. Es bietet eine Reihe von Tools, Bibliotheken und Konventionen, die Entwicklern dabei helfen, komplexe und robuste Roboteranwendungen zu erstellen. Obwohl der Name "Operating System" impliziert, dass es sich um ein Betriebssystem handelt, ist ROS tatsächlich eine Middleware, die auf einem bestehenden Betriebssystem läuft (normalerweise Linux, wie Ubuntu).* +***ROS (Robot Operating System)** ist ein Framework zur Entwicklung von Software für Roboter. Es bietet eine Reihe von Tools, Bibliotheken und Konventionen, die Entwicklern dabei helfen, komplexe und robuste Roboteranwendungen zu erstellen. Obwohl der Name "Operating System" impliziert, dass es sich um ein Betriebssystem handelt, ist ROS tatsächlich eine Middleware, die auf einem bestehenden Betriebssystem läuft (normalerweise Linux, wie Ubuntu). + +Wir verwenden die Version ROS2 Humble* #### Häufig genutzte Befehle - Liste aller Nodes anzeigen lassen: `ros2 node list` @@ -30,6 +32,7 @@ #### Erstellen einer Node - In dem gerade erstellten Paket findet sich ein Ordner mit dem selben Namen des Pakets. Hier werden die Nodes gespeichert. So kann beispielsweise die Ordnerstruktur eines Pakets aussehen: +  - In der `setup.py` ist es außerdem wichtig unter `entry_ponts` die Nodes anzugeben. Hier ein Beispiel: diff --git a/Dokumentation/Sensoren.md b/Dokumentation/Sensoren.md index a2f0109a4460f7fde3a9181d81518a0d6405cad6..a564c80ce7a23a8e007c17d92b0cb3efbd6ab701 100644 --- a/Dokumentation/Sensoren.md +++ b/Dokumentation/Sensoren.md @@ -1,6 +1,6 @@ 1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md) 2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md) -3. [ROS Basics](ROS2_Basics.md) +3. [ROS2 Basics](ROS2_Basics.md) 4. [Sensoren](Dokumentation/Sensoren.md) 5. [Navigation](Dokumentation/Navigation.md) @@ -28,15 +28,19 @@ ### Raspberry Pi Pico (Pico) -*Der **Raspberry Pi Pico** ist ein Mikrocontroller-Board, das auf dem speziell entwickelten **RP2040-Chip** basiert und ideal für Elektronik-, IoT- und Robotikprojekte ist. Es verfügt über einen **Dual-Core ARM Cortex-M0+ Prozessor**, 264 KB SRAM und 2 MB Flash-Speicher. Mit 26 GPIO-Pins, die Schnittstellen wie **I2C**, **SPI**, **UART** und **PWM** unterstützen, sowie einem **ADC** für analoge Eingaben, bietet der Pico vielseitige Anwendungsmöglichkeiten. Er wird über USB oder eine externe Stromquelle betrieben und kann mit **MicroPython** oder **C/C++** programmiert werden.* +*Der **Raspberry Pi Pico** ist ein Mikrocontroller-Board, das auf dem speziell entwickelten **RP2040-Chip** basiert und ideal für Elektronik-, IoT- und Robotikprojekte ist. Es verfügt über einen **Dual-Core ARM Cortex-M0+ Prozessor**, 264 KB SRAM und 2 MB Flash-Speicher. Mit 26 GPIO-Pins, die Schnittstellen wie **I2C**, **SPI**, **UART** und **PWM** unterstützen, sowie einem **ADC** für analoge Eingaben, bietet der Pico vielseitige Anwendungsmöglichkeiten. Er wird über USB oder eine externe Stromquelle betrieben und kann mit **MicroPython** oder **C/C++** programmiert werden. +Wir verwenden **Micropython** * + +- Micropython auf dem PICO installieren: [Anleitung + Download](https://www.raspberrypi.com/documentation/microcontrollers/micropython.html) - Micropython IDE für den PICO: [Thonny](https://thonny.org/) - In Thonny unter `Werkzeuge` -> `Optionen` -> `Interpreter` 'MicroPython (Raspberry Pi)' auswählen  -- Micropython auf dem PICO installieren: [Anleitung + Download](https://www.raspberrypi.com/documentation/microcontrollers/micropython.html) - Damit Code automatisch ausgeführt wird muss dieser auf dem Pico als `main.py` gespeichert werden -Beispiel: LED blinken lassen mit dem Pico [led.py](../Code/Pico(Micropython)/led.py) + [Visualisierung des Aufbaus](https://wokwi.com/projects/418450844568127489) +Beispiele: +- Die interne LED des Picos blinken lassen [interne_led.py](../Code/Pico(Micropython)/interne_led.py) +- Eine externe LED blinken lassen mit dem Pico [externe_led.py](../Code/Pico(Micropython)/externe_led.py) + [Visualisierung des Aufbaus](https://wokwi.com/projects/418450844568127489) ###### GPIO Belegung: <img src="../Bilder/pico-gpio.png" alt="GPIO Belegung" width="500"> diff --git a/Komponenten/README.md b/Komponenten/README.md index 80c5f028d439314abf5e82ac641a8efa6aa9f17c..0b1d6edcd6d4f06340aa24c965cc84472ad60c7e 100644 --- a/Komponenten/README.md +++ b/Komponenten/README.md @@ -1,4 +1,4 @@ -## CAD Dateien der einzelnen Komponenten: +## Quellen zu den CAD Dateien der einzelnen Komponenten: - [*Tutlebot4*](https://github.com/turtlebot/turtlebot4-hardware/tree/master) - [*HC-SR04* Ultraschall Sensor](https://grabcad.com/library/hc-sr04-13) - [*HW-006-v1.3* Liniensensor](https://grabcad.com/library/reference-board-assembly-for-tcrt5000-infrarot-line-tracking-modul-hw-006-v1-3-1) diff --git a/Komponenten/inventor/OldVersions/assm.0003.iam b/Komponenten/inventor/OldVersions/assm.0005.iam similarity index 51% rename from Komponenten/inventor/OldVersions/assm.0003.iam rename to Komponenten/inventor/OldVersions/assm.0005.iam index 26d26493e0458900e381c2e6be58fd9ec26c89ed..d55aea16331563b1e0109ee062665d42a6ae86ec 100644 Binary files a/Komponenten/inventor/OldVersions/assm.0003.iam and b/Komponenten/inventor/OldVersions/assm.0005.iam differ diff --git a/Komponenten/inventor/Sensoreinhausung/OldVersions/arm 2.0002.ipt b/Komponenten/inventor/Sensoreinhausung/OldVersions/arm 2.0002.ipt deleted file mode 100644 index 24149f43205ae48696ad8db933dc612611e32c85..0000000000000000000000000000000000000000 Binary files a/Komponenten/inventor/Sensoreinhausung/OldVersions/arm 2.0002.ipt and /dev/null differ diff --git a/Komponenten/inventor/Sensoreinhausung/OldVersions/arm 2.0006.ipt b/Komponenten/inventor/Sensoreinhausung/OldVersions/arm 2.0006.ipt new file mode 100644 index 0000000000000000000000000000000000000000..0af59369dbec97a3ce8b37963d56e416dce91dd0 Binary files /dev/null and b/Komponenten/inventor/Sensoreinhausung/OldVersions/arm 2.0006.ipt differ diff --git a/Komponenten/inventor/Sensoreinhausung/OldVersions/base.0021.ipt b/Komponenten/inventor/Sensoreinhausung/OldVersions/base.0021.ipt deleted file mode 100644 index 491a9775cea68609c7fcfbb344f5d0b936a2ca36..0000000000000000000000000000000000000000 Binary files a/Komponenten/inventor/Sensoreinhausung/OldVersions/base.0021.ipt and /dev/null differ diff --git a/Komponenten/inventor/Sensoreinhausung/OldVersions/base.0023.ipt b/Komponenten/inventor/Sensoreinhausung/OldVersions/base.0023.ipt new file mode 100644 index 0000000000000000000000000000000000000000..67ca5949d72f534ed8099a0522cb5360917fdbd3 Binary files /dev/null and b/Komponenten/inventor/Sensoreinhausung/OldVersions/base.0023.ipt differ diff --git a/Komponenten/inventor/Sensoreinhausung/OldVersions/deckel.0001.ipt b/Komponenten/inventor/Sensoreinhausung/OldVersions/deckel.0001.ipt new file mode 100644 index 0000000000000000000000000000000000000000..98498ae3f03d7f6a3909b26c0129bb2233b2265b Binary files /dev/null and b/Komponenten/inventor/Sensoreinhausung/OldVersions/deckel.0001.ipt differ diff --git a/Komponenten/inventor/Sensoreinhausung/OldVersions/sensoreinhausung assm.0009.iam b/Komponenten/inventor/Sensoreinhausung/OldVersions/sensoreinhausung assm.0009.iam deleted file mode 100644 index 4c6f642d7f6189be3ca8ded933790a1d48f86d5d..0000000000000000000000000000000000000000 Binary files a/Komponenten/inventor/Sensoreinhausung/OldVersions/sensoreinhausung assm.0009.iam and /dev/null differ diff --git a/Komponenten/inventor/Sensoreinhausung/OldVersions/sensoreinhausung assm.0012.iam b/Komponenten/inventor/Sensoreinhausung/OldVersions/sensoreinhausung assm.0012.iam new file mode 100644 index 0000000000000000000000000000000000000000..b7ecbde12e3f44d61a21976500ed6dc341e6829c Binary files /dev/null and b/Komponenten/inventor/Sensoreinhausung/OldVersions/sensoreinhausung assm.0012.iam differ diff --git a/Komponenten/inventor/Sensoreinhausung/arm 2.ipt b/Komponenten/inventor/Sensoreinhausung/arm 2.ipt index 9da0ee940afc6527cd97e9bb73d4994a2ad4c568..8d587c30512ca698bf9d813dd82fc872438276d1 100644 Binary files a/Komponenten/inventor/Sensoreinhausung/arm 2.ipt and b/Komponenten/inventor/Sensoreinhausung/arm 2.ipt differ diff --git a/Komponenten/inventor/Sensoreinhausung/base.ipt b/Komponenten/inventor/Sensoreinhausung/base.ipt index df35b834a0d79e1fe128187a5e89b37742113543..855bdd2a9ed72a81631a0623568ecfbfef490e9b 100644 Binary files a/Komponenten/inventor/Sensoreinhausung/base.ipt and b/Komponenten/inventor/Sensoreinhausung/base.ipt differ diff --git a/Komponenten/inventor/Sensoreinhausung/deckel.ipt b/Komponenten/inventor/Sensoreinhausung/deckel.ipt new file mode 100644 index 0000000000000000000000000000000000000000..01f5b2926b40da5e5f1db7f27d57720fff457f2c Binary files /dev/null and b/Komponenten/inventor/Sensoreinhausung/deckel.ipt differ diff --git a/Komponenten/inventor/Sensoreinhausung/sensoreinhausung assm.iam b/Komponenten/inventor/Sensoreinhausung/sensoreinhausung assm.iam index 7b964c12ecf94a243614a71e8d77f9214bdc8308..61d22c5d959013500e7b6b55200db0c8e6bf29b9 100644 Binary files a/Komponenten/inventor/Sensoreinhausung/sensoreinhausung assm.iam and b/Komponenten/inventor/Sensoreinhausung/sensoreinhausung assm.iam differ diff --git a/Komponenten/inventor/Sensoreinhausung/spacer.ipt b/Komponenten/inventor/Sensoreinhausung/spacer.ipt new file mode 100644 index 0000000000000000000000000000000000000000..6fbb296799e776df24684f1d1618e7b954004ce0 Binary files /dev/null and b/Komponenten/inventor/Sensoreinhausung/spacer.ipt differ diff --git a/Komponenten/inventor/Turtlebot4/OldVersions/Turtlebot4.0001.iam b/Komponenten/inventor/Turtlebot4/OldVersions/Turtlebot4.0001.iam deleted file mode 100644 index 9ca87828b33c4fc7a0f4cf4a31e32f7fcfc5bd63..0000000000000000000000000000000000000000 Binary files a/Komponenten/inventor/Turtlebot4/OldVersions/Turtlebot4.0001.iam and /dev/null differ diff --git a/Komponenten/inventor/Turtlebot4/OldVersions/Turtlebot4.0003.iam b/Komponenten/inventor/Turtlebot4/OldVersions/Turtlebot4.0003.iam new file mode 100644 index 0000000000000000000000000000000000000000..43f9efdaed2adb346eb92640f2ca7269dc2282a6 Binary files /dev/null and b/Komponenten/inventor/Turtlebot4/OldVersions/Turtlebot4.0003.iam differ diff --git a/Komponenten/inventor/Turtlebot4/Turtlebot4.iam b/Komponenten/inventor/Turtlebot4/Turtlebot4.iam index 7914d5e3dbe0b759db3e27220f3b3e229ad10e5c..2949c1f810d4bb342e278349681730e9aa79640a 100644 Binary files a/Komponenten/inventor/Turtlebot4/Turtlebot4.iam and b/Komponenten/inventor/Turtlebot4/Turtlebot4.iam differ diff --git a/Komponenten/inventor/assm.iam b/Komponenten/inventor/assm.iam index fbf7c1993f667fd612e509a6c227bd6ff1583251..66b6e47ca21cbcca7d549a150ab3e97cb4fd1e1a 100644 Binary files a/Komponenten/inventor/assm.iam and b/Komponenten/inventor/assm.iam differ