HACKING THE ROBOMASTER
Wie der DJI Robomaster ROS 2 fähig gemacht wird.

Fraunhofer
Quelle: Fraunhofer
IML IML
Seite 1

17.12.23© Fraunhofer IML

Problemstellung

••

ODYN

Entwicklung und Fertigung neuer Robotersysteme
ist mit hohen Kosten verbunden.

EvoBotProblemstellungen wie Regelung, Lokalisierung
und Fahrplanung auf allen Systemen vorhanden.

Ø Kostengünstige, schnelle und ungefährliche ROS2
fähige Plattform wünschenswert.

EMILI

Loadrunner

RAIFLIP
Quelle: Fraunhofer IMLSeite 2

17.12.23© Fraunhofer IMLMulti Shuttle Move

Robomaster S1 und EP

DJI hat 2019 den Robomaster herausgebrachtParameter• 3,3kg Gewicht• 3,5 m/s (vorwärts)• 2,5 m/s (rückwärts)• 2,8 m/s (seitwärts)• 600 °/s Radumdrehung• Batteriezustand auslesbar
DJI RoboMaster SDK hat viele Anhängigkeiten und geht nur
mit der teureren EP-Version.

Quelle:dji.com
Seite 317.12.23© Fraunhofer IML

Aufbau Robomaster•App verbindet sich mit dem Intelligent Controller, auf deneine Android System läuft.

•Intellicontroller kommuniziert mit der Motion ControllerEinheit per CAN.

•

Fahrbefehle sowie Odometrie und Batterie werden perCAN ausgetauscht.

•

Was wäre wenn man die RoboMaster-Basis direkt per CAN
steuern kann ?

Quelle: dji.com
Seite 417.12.23© Fraunhofer IMLRückblick CAN Bus am Beispiel Robomaster
Aufbau Signalübertragung•

Bussystem mit mehreren Teilnehmern.

•

Entwickelt 1983 von Bosch und Intel zur
Fahrzeugkommunikation BUS System.

•

Datenrate von bis zu 1 Mbit/s.

•

Differentielle Signale.

•

Linux Anbindung mittels SocketCAN.

Quelle: https://de.wikipedia.org/wiki/Controller_Area_Network
Seite 517.12.23© Fraunhofer IML

Reverse Engineering Schritt 1
Datenfluss/odom/cmd_velmsg
CAN MSG0CAN MSG1CAN MSG2

Quelle: dji.com
Seite 617.12.23© Fraunhofer IML

Reverse Engineering Schritt 2
Was bedeutet welches Bytes Beispiel RPM setzen.

Seite 717.12.23© Fraunhofer IML

Reverse Engineering Schritt 3•

Befehle vom DJI RoboMaster SDK gesendet und über den
CAN BUS ausgelesen.

•Entwicklung der C++/Python Bibliothek
robomaster_can_controller.

•Funktionen:•••

Ansteuerung der Motoren und der LED
Auslesen der Sensordaten mittels callbackfunction:
IMU, Batterie, Motoren und Odometrie

Ros2 Node wird noch nachgereicht

Github Repository:

github.com/iml130/robomaster_can_controller
Seite 817.12.23© Fraunhofer IML

Reverse Engineering Schritt 4
Hardware Setup Xavier NX•

1 Kabel muss angepasst werden!

•Xavier NX und Can Transceiver•

CAD-Dateien wurde erstellt (Open Source Stellung folgt)•

Lidar Support RpLidar A1,A3 oder S2•

BN085 IMU in der Rotationsachse

Quelle: Fraunhofer IML
Seite 917.12.23© Fraunhofer IML

Beispiel 1 Nav2

Seite 1017.12.23© Fraunhofer IML

Beispiel 2 Vicon

Seite 1117.12.23© Fraunhofer IML

Beispiel 3 Deep Reinforcement Learning

Seite 12

17.12.23© Fraunhofer IML

LIVE DEMO
Wenn's schiefgeht liegts am WLAN.

Seite 13

17.12.23© Fraunhofer IMLKontakt
Christian Jestel, M.Sc.
Fraunhofer-Institut für Materialfluss und Logistik
KI und Autonome Systeme
Joseph-von-Fraunhofer-Str. 2-4
D-44227 Dortmund
Mail: christian.jestel@iml.fraunhofer.de
Jan Finke, M.Sc.
Fraunhofer-Institut für Materialfluss und LogistikRobotik und Kognitive Systeme
Joseph-von-Fraunhofer-Str. 2-4
D-44227 Dortmund
Mail: jan.finke@iml.fraunhofer.deUnterstützt von Karol Rösner, Niklas Dietz, Adrian Schmelter und Janosch
Quint (Studentische und wissenschaftliche Hilfskräfte am Fraunhofer
IML)