Skip to content
Snippets Groups Projects
Commit 660e56db authored by Sebastian Matz's avatar Sebastian Matz
Browse files

update

parent abc77c75
No related branches found
No related tags found
No related merge requests found
Showing
with 123 additions and 60 deletions
# Copyright 2015 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ament_copyright.main import main
import pytest
# Remove the `skip` decorator once the source file(s) have a copyright header
@pytest.mark.skip(reason='No copyright header has been placed in the generated source file.')
@pytest.mark.copyright
@pytest.mark.linter
def test_copyright():
rc = main(argv=['.', 'test'])
assert rc == 0, 'Found errors'
# Copyright 2017 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ament_flake8.main import main_with_errors
import pytest
@pytest.mark.flake8
@pytest.mark.linter
def test_flake8():
rc, errors = main_with_errors(argv=[])
assert rc == 0, \
'Found %d code style errors / warnings:\n' % len(errors) + \
'\n'.join(errors)
# Copyright 2015 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ament_pep257.main import main
import pytest
@pytest.mark.linter
@pytest.mark.pep257
def test_pep257():
rc = main(argv=['.', 'test'])
assert rc == 0, 'Found code style errors / warnings'
1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md)
2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
3. [ROS2 Basics](ROS2_Basics.md)
4. [Sensoren](Dokumentation/Sensoren.md)
5. [Navigation](Dokumentation/Navigation.md)
---
# Einführung & Infos
![Turtlebot](../Bilder/Turtlebot4.png)
*Turtlebot 4*
Ein **TurtleBot 4** ist ein robuster und vielseitiger mobiler Roboter, der speziell für Forschung, Lehre und Entwicklung im Bereich Robotik konzipiert wurde. Es handelt sich um eine der neuesten Versionen der TurtleBot-Serie, die auf dem ROS (Robot Operating System) basiert und für die Verwendung mit **ROS 2 Humble** optimiert ist. Der TurtleBot 4 ist auf einem **Raspberry Pi 4** aufgebaut und bietet eine Plattform für Experimente und Anwendungen in der Robotik.
# Hilfreiche Links
- [Offizielle Tutlebot 4 Dokumentation](https://turtlebot.github.io/turtlebot4-user-manual/)
- [Offizielle Create 3 Dokumentation](https://iroboteducation.github.io/create3_docs/)
- [Offizielle ROS2 Humble Dokumentation](https://docs.ros.org/en/humble/index.html)
# Komponenten des Turtlebot 4
- Create 3
- Raspberry Pi 4
- OAK-D Pro
- RPLIDAR
- etc.
1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md)
2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
3. [ROS2 Basics](ROS2_Basics.md)
4. [Sensoren](Dokumentation/Sensoren.md)
5. [Navigation](Dokumentation/Navigation.md)
1. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
2. [ROS Basics](Dokumentation/ROS2_Basics.md)
3. [Sensoren](Dokumentation/Sensoren.md)
4. [Navigation](Dokumentation/Navigation.md)
---
# Inbetriebnahme Turtlebot 4
......
1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md)
2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
3. [ROS2 Basics](ROS2_Basics.md)
4. [Sensoren](Dokumentation/Sensoren.md)
5. [Navigation](Dokumentation/Navigation.md)
1. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
2. [ROS Basics](Dokumentation/ROS2_Basics.md)
3. [Sensoren](Dokumentation/Sensoren.md)
4. [Navigation](Dokumentation/Navigation.md)
---
# Navigation
......
1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md)
2. [Inbetriebnahme Turtlebot 4](Inbetriebnahme_Turtlebot_4.md)
3. [ROS2 Basics](ROS2_Basics.md)
4. [Sensoren](Sensoren.md)
5. [Navigation](Navigation.md)
\ No newline at end of file
1. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
2. [ROS Basics](Dokumentation/ROS2_Basics.md)
3. [Sensoren](Dokumentation/Sensoren.md)
4. [Navigation](Dokumentation/Navigation.md)
\ No newline at end of file
1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md)
2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
3. [ROS2 Basics](ROS2_Basics.md)
4. [Sensoren](Dokumentation/Sensoren.md)
5. [Navigation](Dokumentation/Navigation.md)
1. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
2. [ROS Basics](Dokumentation/ROS2_Basics.md)
3. [Sensoren](Dokumentation/Sensoren.md)
4. [Navigation](Dokumentation/Navigation.md)
---
# ROS2 Basics
......@@ -16,6 +15,7 @@ Wir verwenden die Version ROS2 Humble*
- Liste aller Topics anzeigen lassen: `ros2 topic list`
- Topic-Details anzeigen: `ros2 topic info /hazard_detection`
- Message-Typ eines Topics anzeigen: `ros2 topic type /hazard_detection`
- Nachrichten eines Topics auslesen: `ros2 topic echo /topic`
- Checken welche Workspaces geladen sind: `ros2 pkg list`
- Das Shell-Skript [check_battery.sh](../Code/check_battery.sh) greift über ROS den Batterieladestand ab und zeigt diesen an
......@@ -40,7 +40,7 @@ Wir verwenden die Version ROS2 Humble*
#### Das Workspace bauen
- Zurück ins Stammverzeichnis des Workspaces wechseln: ```cd ~/turtlebot4_ws```
- Den Workspace bauen: ```colcon build```
- Den Workspace für ROS auffindbar machen: ```source install/setup.bash```
- Den Workspace für ROS auffindbar machen: ```source install/setup.bash``` **Das muss für jede Terminal Instanz separat gemacht werden.**
#### Eine Node ausführen
- Allgemein: ```ros2 run paketname nodename```
......
1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md)
2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
3. [ROS2 Basics](ROS2_Basics.md)
4. [Sensoren](Dokumentation/Sensoren.md)
5. [Navigation](Dokumentation/Navigation.md)
1. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
2. [ROS Basics](Dokumentation/ROS2_Basics.md)
3. [Sensoren](Dokumentation/Sensoren.md)
4. [Navigation](Dokumentation/Navigation.md)
---
# Boards
......@@ -231,4 +230,4 @@ percentage: 0.85
Um nicht die GPIO Pins des verbauten Pi belegen zu müssen bietet es sich an die externen Sensoren an einen Pico anzuschließen und diesen über USB mit dem Pi kommunizieren zu lassen.
#### Beispiel: zwei Liniensensoren auslesen und anzeigen
Mit [usb_communication.py](../Code/Pico(Micropython)/usb_communication.py) werden zwei Liniensensoren auf dem Pico ausgelesen und über die serielle USB Schnittstelle an den Pi weitergegeben. Damit dieser Code automatisch ausgeführt wird muss er allerdings als main.py auf dem Pico gespeichert werden. Mit [read_pico.py](../Code/RPi4(Python)/read_pico.py) lässt sich auf Seite des Pis das Signal dann auslesen.
Mit [sensor_bridge_1.py](../Code/Pico(Micropython)/sensor_bridge_1.py) werden zwei Liniensensoren auf dem Pico ausgelesen und über die serielle USB Schnittstelle an den Pi weitergegeben. Damit dieser Code automatisch ausgeführt wird muss er allerdings als main.py auf dem Pico gespeichert werden. Mit [read_pico.py](../Code/RPi4(Python)/read_pico.py) lässt sich auf Seite des Pis das Signal dann auslesen.
......@@ -2,6 +2,8 @@
- [*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)
- [*TCRT5000 Liniensensor*](https://grabcad.com/library/tcrt5000-infrared-tracking-sensor-module-1) *Vorsicht, die Dimensionen des Modells haben mit unserem Sensor teilweise nicht übereingestimmt*
- [*TCRT5000 Liniensensor*](https://grabcad.com/library/tcrt5000-2)
- [*Raspberry Pi Pico*](https://grabcad.com/library/raspberry-pi-pico-r3-1)
- [*HLK-LD2450* Radar Sensor](https://grabcad.com/library/radar-sensor-module-hlk-ld2450-human-presence-motion-1)
##### Im Verzeichnis Sensorgehäuse findet sich das von uns entworfene Gehäuse für die Sensoren und eine entsprechende Halterung
\ No newline at end of file
......@@ -9,8 +9,13 @@ Ziel ist es die fünf Liniensensoren und einen Ultraschallsensor mit einem Raspb
Platz finden. Dieses wird vorne an den Turtlebot angebracht. Der USB Port des Picos muss zugänglich bleiben.
![Explosionsdarstellung](/Bilder/explosionsdarstellung.wmv)
#### **Komponenten und Funktionen**
<img src="/Bilder/Sensoren.jpg" alt="Sensoren" width="600">
##### **1. Liniensensoren (TCRT5000)**
- Der Vorbau beherbergt **fünf TCRT5000-Liniensensoren**, die gleichmäßig im unteren Bereich positioniert sind.
......
File added
File added
File added
File added
File added
......@@ -6,11 +6,24 @@
Inbetriebnahme eines Turtlebot4 mit ROS2 Humble auf einem Ubuntu 22.04, Implementierung externer Sensoren und Ausführen eines Navigationsszenarios. Dieses Repository soll der Dokumentation unserer Arbeit dienen und sie für andere zugänglich machen.
### Struktur der Dokumentation
1. [Einführung & Infos](Dokumentation/Einführung_&_Infos.md)
2. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
3. [ROS Basics](Dokumentation/ROS2_Basics.md)
4. [Sensoren](Dokumentation/Sensoren.md)
5. [Navigation](Dokumentation/Navigation.md)
1. [Inbetriebnahme Turtlebot 4](Dokumentation/Inbetriebnahme_Turtlebot_4.md)
2. [ROS Basics](Dokumentation/ROS2_Basics.md)
3. [Sensoren](Dokumentation/Sensoren.md)
4. [Navigation](Dokumentation/Navigation.md)
### Der Turtlebot 4
![Turtlebot](/Bilder/Turtlebot4.png)
*Turtlebot 4*
Ein **TurtleBot 4** ist ein robuster und vielseitiger mobiler Roboter, der speziell für Forschung, Lehre und Entwicklung im Bereich Robotik konzipiert wurde. Es handelt sich um eine der neuesten Versionen der TurtleBot-Serie, die auf dem ROS (Robot Operating System) basiert und für die Verwendung mit **ROS 2 Humble** optimiert ist. Der TurtleBot 4 ist auf einem **Raspberry Pi 4** aufgebaut und bietet eine Plattform für Experimente und Anwendungen in der Robotik.
### GPT zu dieser Projektarbeit
ChatGPT ist sehr hilfreich bei der Arbeit mit dem Turtlebot. Wir haben ein GPT-Modell mit allen zu unserer Projektarbeit relevanten Daten trainiert und stellen das hier zur Verfügung: [Navigation mit dem Turtlebot 4](https://chatgpt.com/g/g-6768182420c0819180e9cc092e1ed888-navigation-mit-dem-turtlebot-4).
### Hilfreiche Links
- [Offizielle Tutlebot 4 Dokumentation](https://turtlebot.github.io/turtlebot4-user-manual/)
- [Offizielle Create 3 Dokumentation](https://iroboteducation.github.io/create3_docs/)
- [Offizielle ROS2 Humble Dokumentation](https://docs.ros.org/en/humble/index.html)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment