-
Notifications
You must be signed in to change notification settings - Fork 546
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
54 changed files
with
3,487 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
<a href="https://www.openbot.org/" target="_blank"> | ||
<img align="center" alt="Banner" width="100%" src="docs/images/banner.jpg" /> | ||
</a> | ||
|
||
<h1 align="center"><a>Smartphones in Roboter verwandeln</a></h1> | ||
|
||
<p align="center"> | ||
<img alt="GitHub build" src="https://img.shields.io/github/actions/workflow/status/isl-org/OpenBot/gradle.yml?branch=master"></a> | ||
<img alt="GitHub issues" src="https://img.shields.io/github/issues/isl-org/OpenBot"></a> | ||
<img alt="GitHub pull requests" src="https://img.shields.io/github/issues-pr/isl-org/OpenBot"></a> | ||
<img alt="GitHub forks" src="https://img.shields.io/github/forks/isl-org/OpenBot"></a> | ||
<img alt="GitHub stars" src="https://img.shields.io/github/stars/isl-org/OpenBot"></a> | ||
<img alt="Github downloads" src="https://img.shields.io/github/downloads/isl-org/OpenBot/total"></a> | ||
<img alt="Github size" src="https://img.shields.io/github/repo-size/isl-org/OpenBot"></a> | ||
<img alt="Github license" src="https://img.shields.io/github/license/isl-org/OpenBot"></a> | ||
</p> | ||
|
||
<p align="center"> | ||
<a href="README.md">English</a> | | ||
<a href="README_CN.md">简体中文</a> | | ||
<span>Deutsch</span> | ||
</p> | ||
|
||
OpenBot nutzt Smartphones als Gehirn für kostengünstige Roboter. Wir haben ein kleines Elektrofahrzeug entworfen, das etwa 50 Dollar kostet und als Roboterkörper dient. Unser Software-Stack für Android-Smartphones unterstützt fortgeschrittene Robotikanwendungen wie Personenerkennung und Echtzeit-Autonomes Fahren. | ||
|
||
## Erste Schritte mit OpenBot | ||
- Baue deinen eigenen [Roboterkörper](body/README.md) | ||
- Flashe die [Arduino-Firmware](firmware/README.md) | ||
- Installiere die [Android-Apps](android/README.md) | ||
- Steuere den Roboter über einen [Controller](controller/README.md) | ||
- Trainiere deine eigene [Fahrstrategie](policy/README.md) | ||
|
||
## Quellcode erhalten | ||
|
||
- Du kannst das Repository als [Zip-Datei](https://github.com/intel-isl/OpenBot/archive/master.zip) herunterladen und in einen Ordner deiner Wahl extrahieren. | ||
- Du kannst das OpenBot-Repository von GitHub mit folgendem Befehl klonen: | ||
```bash | ||
git clone https://github.com/intel-isl/OpenBot.git | ||
``` | ||
- Du kannst das OpenBot-Repository forken und dann deine lokale Kopie klonen. Dies wird empfohlen, insbesondere wenn du [beitragen](CONTRIBUTING.md) möchtest. | ||
|
||
## Videos | ||
|
||
<a href="https://www.youtube.com/watch?v=RbzPXywJifA" > | ||
<img align="center" width="300" alt="youtube video" src="https://img.youtube.com/vi/RbzPXywJifA/hqdefault.jpg" /> | ||
</a> | ||
|
||
<a href="https://www.youtube.com/watch?v=qc8hFLyWDOM" > | ||
<img align="center" width="300" alt="youtube video" src="https://img.youtube.com/vi/qc8hFLyWDOM/hqdefault.jpg" /> | ||
</a> | ||
|
||
## Coole Projekte mit OpenBot | ||
|
||
Es gibt bereits viele coole Projekte, die OpenBot nutzen. Unten ist eine kleine Auswahl. Klicke auf die Bilder, um zu den jeweiligen Projekten weitergeleitet zu werden. | ||
|
||
<p float="left"> | ||
<a href="https://www.thingiverse.com/thing:4670884" target="_blank"> | ||
<img alt="Tank OpenBot" width="24%" src="docs/images/openbot_tank.jpg" /> | ||
</a> | ||
<a href="https://diyrobocars.com/2020/12/14/an-improved-version-of-the-intel-openbot" target="_blank"> | ||
<img alt="2WD OpenBot" width="24%" src="docs/images/openbot_2wd.jpg" /> | ||
</a> | ||
<a href="https://custom-build-robots.com/raspberry-pi-robot-cars/openbot-your-smartphone-controls-a-robot-car-introduction/13860?lang=en" target="_blank"> | ||
<img alt="Cardboard OpenBot" width="24%" src="docs/images/chassis_cardboard_1.jpg" /> | ||
</a> | ||
<a href="https://www.youtube.com/watch?v=PEj8jWapGt4" target="_blank"> | ||
<img alt="Baby Yoda OpenBot" width="24%" src="docs/images/openbot_yoda.jpg" /> | ||
</a> | ||
</p> | ||
|
||
## Kontakt | ||
|
||
- Trete unserem [Slack](https://join.slack.com/t/openbot-community/shared_invite/zt-jl8ygxqt-WNRNi9yzh7Lu60qui6Nh6w) Kanal bei, um dich mit der OpenBot-Community zu verbinden. | ||
- Kontaktiere uns per [E-Mail](mailto:openbot.team@gmail.com) | ||
|
||
## Beitrag leisten | ||
|
||
Bitte lies die [Beitragsrichtlinien](CONTRIBUTING.md). Wenn du nicht sicher bist, wo du anfangen sollst, wirf einen Blick auf die [offenen Issues](https://github.com/intel-isl/OpenBot/issues). | ||
|
||
## Zitieren | ||
|
||
Bitte zitiere unser [Paper](https://arxiv.org/abs/2008.10631), wenn du OpenBot verwendest. | ||
|
||
```bib | ||
@inproceedings{mueller2021openbot, | ||
title = {OpenBot: Turning Smartphones into Robots}, | ||
author = {M{\"u}ller, Matthias und Koltun, Vladlen}, | ||
booktitle = {Proceedings of the International Conference on Robotics and Automation (ICRA)}, | ||
year = {2021}, | ||
} | ||
``` | ||
|
||
<a href="https://www.openbot.org//" target="_blank"> | ||
<img align="center" alt="Footer" width="100%" src="docs/images/footer.gif" /> | ||
</a> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# Android Apps | ||
|
||
<p align="center"> | ||
<a href="README.md">English</a> | | ||
<a href="README_CN.md">简体中文</a> | | ||
<span>Deutsch</span> | ||
</p> | ||
|
||
## Funktionen | ||
|
||
Klicken Sie auf die untenstehenden Links, um mehr über die Funktionen der Apps zu erfahren. | ||
|
||
- [Robot App](robot/README.md) | ||
- [Controller App](controller/README.md) | ||
|
||
## Installation der Apps | ||
|
||
Der einfachste Weg, eine der Apps zu erhalten, ist, sie direkt auf das Telefon herunterzuladen, indem Sie den entsprechenden QR-Code verwenden. Wenn Sie den Browser auf Ihrem Telefon verwenden, können Sie auch einfach auf den QR-Code klicken. Sie können dann die APK auf Ihrem Telefon öffnen und [installieren](https://www.lifewire.com/install-apk-on-android-4177185). Beachten Sie, dass die APK nur mit einem Debug-Schlüssel signiert ist. | ||
|
||
<table style="width:100%;border:none;text-align:center"> | ||
<tr> | ||
<td> <a href="https://app.openbot.org/robot" target="_blank"> | ||
<img alt="🤖 App" width="50%" src="../docs/images/robot_app_qr_code.png" /> | ||
</a> | ||
</td> | ||
<td> | ||
<a href="https://app.openbot.org/controller" target="_blank"> | ||
<img alt="🎮 App" width="50%" src="../docs/images/controller_app_qr_code.png" /> | ||
</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>🤖 App</td> | ||
<td>🎮 App</td> | ||
</tr> | ||
</table> | ||
|
||
Alternativ können Sie die APKs aus den Assets einer beliebigen [Veröffentlichung](https://github.com/intel-isl/OpenBot/releases) herunterladen. Wenn Sie die neueste App aus dem Master-Branch möchten, können Sie sie auch aus den Build-Artefakten [hier](https://github.com/intel-isl/OpenBot/actions?query=workflow%3A%22Java+CI+with+Gradle%22) herunterladen. Beachten Sie, dass sie möglicherweise nicht stabil ist. Wenn Sie später Änderungen an der App vornehmen möchten, folgen Sie den untenstehenden Schritten, um die App zu kompilieren und auf Ihrem Telefon zu installieren. | ||
|
||
## Apps bauen | ||
|
||
### Voraussetzungen | ||
|
||
- [Android Studio Electric Eel | 2022.1.1 oder später](https://developer.android.com/studio/index.html) zum Bauen und Installieren der APKs. | ||
- Android-Gerät und Android-Entwicklungsumgebung mit mindestens API 21. | ||
- Derzeit verwenden wir API 33 als Compile-SDK und API 32 als Target-SDK. Es sollte automatisch installiert werden, aber falls nicht, können Sie das SDK manuell installieren. Gehen Sie zu Android Studio -> Einstellungen -> Erscheinungsbild & Verhalten -> Systemeinstellungen -> Android SDK. Stellen Sie sicher, dass API 33 aktiviert ist, und klicken Sie auf Anwenden. | ||
|
||
![Android SDK](../docs/images/android_studio_sdk.jpg) | ||
|
||
### Build-Prozess | ||
|
||
1. Öffnen Sie Android Studio und wählen Sie *Ein bestehendes Android Studio-Projekt öffnen*. | ||
2. Wählen Sie das Verzeichnis OpenBot/android und klicken Sie auf OK. | ||
3. Wenn Sie die [OpenBot-App](app/README.md) installieren möchten, stellen Sie sicher, dass die *app*-Konfiguration ausgewählt ist. Wenn Sie die [Controller-App](controller/README.md) installieren möchten, wählen Sie die *controller*-Konfiguration. Bestätigen Sie den Gradle-Sync, falls erforderlich. Um einen Gradle-Sync manuell durchzuführen, klicken Sie auf das Gradle-Symbol. | ||
![Gradle Sync](../docs/images/android_studio_bar_gradle.jpg) | ||
4. Verbinden Sie Ihr Android-Gerät und stellen Sie sicher, dass USB-Debugging in den [Entwickleroptionen](https://developer.android.com/studio/debug/dev-options) aktiviert ist. Abhängig von Ihrer Entwicklungsumgebung könnten [weitere Schritte](https://developer.android.com/studio/run/device) erforderlich sein. Sie sollten Ihr Gerät jetzt in der Navigationsleiste oben sehen. | ||
![Phone](../docs/images/android_studio_bar_phone.jpg) | ||
5. Klicken Sie auf die Schaltfläche Ausführen (der grüne Pfeil) oder wählen Sie Ausführen > 'android' ausführen aus dem oberen Menü. Möglicherweise müssen Sie das Projekt mit Build > Projekt neu erstellen neu erstellen. | ||
![Run](../docs/images/android_studio_bar_run.jpg) | ||
6. Wenn Sie gefragt werden, ob Sie Instant Run verwenden möchten, klicken Sie auf *Ohne Instant Run fortfahren*. | ||
|
||
### Fehlerbehebung | ||
|
||
#### Versionen | ||
|
||
Wenn Sie eine Nachricht wie `Das Projekt verwendet eine inkompatible Version (AGP 7.4.0) des Android Gradle-Plugins. Die neueste unterstützte Version ist AGP 7.3.0` erhalten, müssen Sie Android Studio aktualisieren oder Ihr Gradle-Plugin downgraden. Sie können mehr über die Versionskompatibilität zwischen Android Studio und dem Gradle-Plugin [hier](https://developer.android.com/studio/releases/gradle-plugin#android_gradle_plugin_and_android_studio_compatibility) lesen. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
# Controller App | ||
|
||
<p align="center"> | ||
<a href="README.md">English</a> | | ||
<a href="README.zh-CN.md">简体中文</a> | | ||
<span>Deutsch</span> | ||
</p> | ||
|
||
Diese Android-App dient als `Fernsteuerung` für das [OpenBot](https://www.openbot.org) Fahrzeug. Im Grunde erfüllt sie eine ähnliche Funktion wie ein PS3/4- oder Xbox-Controller, läuft jedoch auf einem anderen Android-Gerät. | ||
|
||
## Verbindung | ||
|
||
Wenn die Controller-App gestartet wird, versucht sie sofort, eine Verbindung zum Roboter herzustellen. Wir sehen den folgenden Bildschirm: | ||
|
||
<p float="left"> | ||
<img src="../../docs/images/controller_pre_connect.png" width="50%" /> | ||
</p> | ||
|
||
Um den Controller mit dem Roboter zu verbinden, stellen Sie die Steuerungseinstellung der Roboter-App auf den **Phone**-Modus. | ||
|
||
<p float="left"> | ||
<img src="../../docs/images/app_controller_settings_1.png" width="25%" /> | ||
<img src="../../docs/images/app_controller_settings_2.png" width="25%" /> | ||
</p> | ||
|
||
Sie können auch vom `FreeRoamFragment` aus eine Verbindung zum Controller herstellen, indem Sie das Telefon als Controller auswählen: | ||
|
||
<p float="left"> | ||
<img src="../../docs/images/free-roam-fragment-selection.png" width="50%" /> | ||
</p> | ||
|
||
Nach ein paar Sekunden hören Sie einen Piepton, und der Controller wechselt seinen Bildschirm zu: | ||
|
||
<p float="left"> | ||
<img src="../../docs/images/controller_command_buttons.png" width="50%" /> | ||
</p> | ||
|
||
Hier können Sie auswählen, ob Sie den Roboter durch Neigen des Telefons oder durch die Verwendung der Bildschirmsteuerung fahren möchten. | ||
|
||
***Hinweis:*** Dies sollte ausreichen, um eine Verbindung herzustellen, aber wenn die Verbindung nach 30 Sekunden nicht hergestellt werden kann, schalten Sie die `Control`-Einstellung in der Roboter-App auf `Gamepad` und dann wieder auf `Phone`, um die Verbindung erneut zu initiieren. Wenn das fehlschlägt, beenden Sie die Controller-App und starten Sie sie erneut. Schalten Sie den Steuerungsmodus erneut in der Roboter-App um. | ||
|
||
## Bedienung | ||
|
||
### Bildschirmsteuerung | ||
Dieser Modus ermöglicht es dem Benutzer, das Roboterauto über zwei Schieberegler im `Dual Drive`-Modus zu steuern. Sie können nach links/rechts lenken, indem Sie den Schieberegler auf jeder Seite nach oben und unten bewegen. Die Räder auf jeder Seite drehen sich vorwärts/rückwärts, wenn Sie den Daumen über/unter die Mitte des Schiebereglers bewegen. | ||
|
||
<p float="left"> | ||
<img src="../../docs/images/controller_main_screen.png" width="50%" /> | ||
</p> | ||
|
||
Sie können auch die Blinker links/rechts setzen | ||
<img src="../../docs/images/keyboard_arrow_left-24px.svg" height="24"/> | ||
<img src="../../docs/images/keyboard_arrow_right-24px.svg" height="24"/> | ||
indem Sie auf die Pfeile oben links auf dem Bildschirm klicken und den roten Knopf dazwischen, um abzubrechen. | ||
|
||
### Neigen zum Fahren | ||
Der Controller kann auch seinen Beschleunigungssensor verwenden, um den Roboter zu steuern. Wenn Sie diese Option auswählen, wechselt der Controller in einen Vollbildmodus (Zen-Modus), in dem nur das Video und die `Bremse` und `Gaspedal` angezeigt werden. Um diesen Modus zu verlassen, doppeltippen Sie auf den Bildschirm. | ||
|
||
Hier ist ein Bild des `Neigemodus`-Bildschirms: | ||
|
||
<p float="left"> | ||
<img src="../../docs/images/tilt-mode-controller.jpg" width="50%" /> | ||
</p> | ||
|
||
Verwenden Sie die `Gaspedal`- und `Bremse`-Tasten, um vorwärts/rückwärts zu fahren. | ||
|
||
- Durch Drücken des `Gaspedals` beschleunigt der Roboter innerhalb von 2 Sekunden auf volle Geschwindigkeit. Wenn Sie die Taste loslassen, verlangsamt der Roboter bis zum Stillstand (Stoppgeschwindigkeit auf 0% der Höchstgeschwindigkeit eingestellt, kann angepasst werden). | ||
- Durch Drücken der `Bremse`-Taste stoppt der Roboter sofort. Wenn wir die Bremse eine weitere Sekunde halten, beginnt der Roboter rückwärts zu fahren, bis er innerhalb einer Sekunde die maximale Rückwärtsgeschwindigkeit erreicht. Wenn wir die Bremse loslassen, kommt der Roboter zum Stillstand. | ||
- Wir lenken den Roboter, indem wir den Controller nach links oder rechts neigen. | ||
|
||
## Zukünftige Entwicklung | ||
|
||
Einige der Funktionen, die wir hinzufügen möchten, sind: | ||
|
||
- Hinzufügen von Informationen auf dem Controller für weitere Roboter-Sensoren, wie z.B. Batteriestand und Geschwindigkeit. | ||
- Video-Stream von der Kamera des Roboters zum Controller | ||
- Verwendung des Gyroskopsensors des Controllers zur Steuerung des Roboters | ||
- Senden von Crash- und Stoßereignissen vom Roboter zum Controller für ein realistischeres Erlebnis | ||
|
||
Hier ist eine [Technische Übersicht](../../docs/technical/OpenBotController.pdf) der Controller-App. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.