Inhaltsverzeichnis:

Bauen Sie Ihren eigenen Turtlebot-Roboter! - Gunook
Bauen Sie Ihren eigenen Turtlebot-Roboter! - Gunook

Video: Bauen Sie Ihren eigenen Turtlebot-Roboter! - Gunook

Video: Bauen Sie Ihren eigenen Turtlebot-Roboter! - Gunook
Video: ROS Crashkurs 001 - Was ist ROS und wie fange ich an? - German / Deutsch - Einsteiger-Tutorial 2024, Juli
Anonim
Baue deinen eigenen Turtlebot-Roboter!
Baue deinen eigenen Turtlebot-Roboter!
Baue deinen eigenen Turtlebot-Roboter!
Baue deinen eigenen Turtlebot-Roboter!
Baue deinen eigenen Turtlebot-Roboter!
Baue deinen eigenen Turtlebot-Roboter!

BEARBEITEN:

Weitere Informationen zu Software und Steuerung finden Sie unter diesem Link:

hackaday.io/project/167074-build-your-own-turtlebot-3-backbone

Der direkte Link zum Code lautet:

github.com/MattMgn/foxbot_core

Warum dieses Projekt?

Turtlebot 3 ist die perfekte Plattform, um tief in Elektronik, Robotik und sogar KI einzutauchen! Ich schlage Ihnen vor, Ihren eigenen Turtlebot Schritt für Schritt mit erschwinglichen Komponenten zu bauen, ohne auf Funktionen und Leistung zu verzichten. Mit einem im Hinterkopf: Das Beste aus dem ersten Roboter, seiner Modularität, Einfachheit und der großen Anzahl von Paketen für autonome Navigation und KI aus der Open-Source-Community zu behalten.

Dieses Projekt bietet Anfängern die Möglichkeit, sich Kenntnisse über Elektronik, Mechanik und Informatik anzueignen, und für Fortgeschrittene, eine leistungsstarke Plattform zum Testen und Entwickeln von Algorithmen für künstliche Intelligenz zu erhalten.

Was werden Sie in diesem Projekt entdecken?

Sie sind dabei herauszufinden, welche wesentlichen mechanischen und elektronischen Teile vom Original-Bot ferngehalten werden müssen, um eine vollständige Kompatibilität zu gewährleisten.

Der gesamte Bauprozess wird detailliert beschrieben: vom 3D-Drucken von Teilen über das Zusammenbauen und die verschiedenen Komponenten, das Löten und die Integration der Elektronik bis hin zur Codekompilierung auf Arduino. Dieses instructable wird auf einem "Hallo Welt" -Beispiel schließen, um Sie mit ROS vertraut zu machen. Wenn etwas unklar erscheint, können Sie gerne Fragen stellen!

Lieferungen

Elektronik:

1 x Single Board Computer zum Ausführen von ROS, könnte zum Beispiel ein Raspberry Pi oder ein Jetson Nano sein

1 x Arduino DUE, Sie können auch eine UNO oder eine MEGA verwenden

1 x Proto-Board passend für Arduino DUE Pinbelegung hier erhältlich

2 x 12-V-DC-Motoren mit Encodern (Option 100 U/min)

1 x L298N Motortreiber

2 x 5V-Regler

1 x Akku (3S/4S LiPo-Akku zum Beispiel)

2 x EIN/AUS-Schalter

2 x LED

2 x 470kOhm Widerstände

3 x 4-polige JST-Anschlüsse

1 x USB-Kabel (mindestens eines zwischen dem SBC und dem Arduino)

Sensoren:

1 x Stromsensor (optional)

1 x 9 Freiheitsgrade IMU (optional)

1 x LIDAR (optional)

Chassis:

16 x Turtlebot modulare Platten (die auch 3D-gedruckt werden können)

2 x Räder 65 mm Durchmesser (Option 6 mm Breite)

4 x Nylon-Abstandshalter 30mm (optional)

20 x M3-Einsätze (optional)

Andere:

Drähte

M2,5 und M3 Schrauben und Einsätze

3D-Drucker oder jemand, der die Teile für Sie drucken kann

Eine Handbohrmaschine mit einem Satz Bohrer wie dieser

Schritt 1: Beschreibung

Beschreibung
Beschreibung
Beschreibung
Beschreibung

Bei diesem Roboter handelt es sich um einen einfachen Differentialantrieb, der 2 direkt an ihrem Motor montierte Räder und eine hinten angebrachte Rolle verwendet, um ein Umfallen des Roboters zu verhindern. Der Roboter ist in zwei Schichten unterteilt:

die untere Schicht: mit der Antriebsgruppe (Batterie, Motorcontroller und Motoren) und der 'Low-Level'-Elektronik: Arduino-Mikrocontroller, Spannungsregler, Schalter…

die obere Schicht: mit der "High-Level"-Elektronik, nämlich dem Single Board Computer und dem LIDAR

Diese Schichten werden mit gedruckten Teilen und Schrauben verbunden, um die Robustheit der Struktur zu gewährleisten.

Elektronischer Schaltplan

Der Schaltplan kann etwas unordentlich erscheinen. Es ist eine schematische Zeichnung und stellt nicht alle Drähte, Anschlüsse und das Proto-Board dar, kann aber wie folgt gelesen werden:

Ein 3S Litihum Ion Polymer Akku mit 3000mAh Kapazität versorgt den ersten Stromkreis, er versorgt sowohl die Motorsteuerplatine (L298N) als auch einen ersten 5V Regler für Motorencoder und Arduino. Diese Schaltung wird durch einen Schalter mit einer LED aktiviert, die seinen EIN/AUS-Zustand anzeigt.

Die gleiche Batterie versorgt einen zweiten Stromkreis, die Eingangsspannung wird in 5V umgewandelt, um den Single Board Computer mit Strom zu versorgen. Auch hier wird die Schaltung über einen Schalter und eine LED aktiviert.

Zusätzliche Sensoren wie ein LIDAR oder eine Kamera können dann direkt auf dem Raspberry Pi über USB oder den CSI-Port hinzugefügt werden.

Mechanische Konstruktion

Der Roboterrahmen besteht aus 16 identischen Teilen, die 2 quadratische Schichten (28 cm Breite) bilden. Die vielen Löcher ermöglichen die Montage von Zusatzteilen, wo immer Sie es benötigen, und bieten ein komplettes modulares Design. Für dieses Projekt habe ich mich für die originalen TurtleBot3-Platten entschieden, aber Sie können sie auch in 3D drucken, da ihr Design Open Source ist.

Schritt 2: Motorblockmontage

Motorblockbaugruppe
Motorblockbaugruppe
Motorblockbaugruppe
Motorblockbaugruppe
Motorblockbaugruppe
Motorblockbaugruppe

Motorvorbereitung

Der erste Schritt besteht darin, jeden Motor mit 1 mm dickem Schaumstoffband zu versehen, um Vibrationen und Geräusche beim Drehen des Motors zu vermeiden.

Gedruckte Teile

Der Motorhalter ergibt zwei Teile, die den Motor wie ein Schraubstock greifen. 4 Schrauben erreicht, um den Motor in der Halterung festzuziehen.

Jeder Halter besteht aus mehreren Löchern, die M3-Einsätze aufnehmen, die an der Struktur montiert werden sollen. Es gibt mehr Löcher als tatsächlich benötigt werden, die zusätzlichen Löcher könnten schließlich verwendet werden, um ein zusätzliches Teil zu montieren.

3D-Druckereinstellungen: Alle Teile werden mit den folgenden Parametern gedruckt

  • Düse mit 0,4 mm Durchmesser
  • 15% Materialfüllung
  • 0,2 mm hohe Schicht

Rad

Die ausgewählten Räder sind mit Gummi überzogen, um die Haftung zu maximieren und einen rutschfreien Rollzustand zu gewährleisten. Eine Klemmschraube hält das Rad auf der Motorwelle montiert. Der Durchmesser des Rades sollte groß genug sein, um kleinere Stufen und Bodenunebenheiten zu überwinden (diese Räder haben einen Durchmesser von 65 mm).

Fixierung

Wenn Sie mit einem Motorblock fertig sind, wiederholen Sie die vorherigen Schritte und befestigen Sie sie dann einfach mit M3-Schrauben in der Schicht.

Schritt 3: Schalter und Kabelvorbereitung

Schalter und Kabelvorbereitung
Schalter und Kabelvorbereitung
Schalter und Kabelvorbereitung
Schalter und Kabelvorbereitung
Schalter und Kabelvorbereitung
Schalter und Kabelvorbereitung

Vorbereitung des Motorkabels

Im Allgemeinen wird der Motor-Encoder mit einem Kabel geliefert, das auf einer Seite einen 6-Pin-Stecker enthält, der die Rückseite der Encoder-Platine verbindet, und blanke Drähte auf der anderen Seite.

Sie haben die Möglichkeit, diese direkt auf Ihrem Proto-Board oder sogar Ihrem Arduino zu löten, aber ich empfehle Ihnen, stattdessen Buchsenleisten und JST-XH-Steckverbinder zu verwenden. So können Sie sie auf Ihrem Proto-Board ein- und ausstecken und Ihre Montage erleichtern.

Tipps: Sie können um Ihre Drähte und Schrumpfschlauchstücke in der Nähe von Steckverbindern ein dehnbares Ummantelungsgeflecht hinzufügen, um ein "sauberes" Kabel zu erhalten.

Schalter und LED

Um die beiden Stromkreise zu aktivieren, bereiten Sie 2 LED- und Schalterkabel vor: Löten Sie zuerst einen 470kOhm-Widerstand auf einen der LED-Pins, dann löten Sie die LED auf einen der Schalterpins. Auch hier können Sie den Widerstand im Inneren mit einem Stück Schrumpfschlauch verstecken. Achten Sie darauf, die LED in die richtige Richtung zu löten! Wiederholen Sie diesen Vorgang, um zwei Schalter-/LED-Kabel zu erhalten.

Montage

Montieren Sie die zuvor hergestellten Kabel auf dem entsprechenden 3D-gedruckten Teil. Verwenden Sie eine Mutter, um den Schalter zu halten, die LEDs benötigen keinen Kleber, nur Kraft genug, um sie in das Loch zu passen.

Schritt 4: Verdrahtung der elektronischen Platinen

Verkabelung der elektronischen Platinen
Verkabelung der elektronischen Platinen
Verkabelung der elektronischen Platinen
Verkabelung der elektronischen Platinen
Verkabelung der elektronischen Platinen
Verkabelung der elektronischen Platinen

Board-Layout

Ein Proto-Board passend zum Arduino-Board-Layout wird verwendet, um die Anzahl der Drähte zu reduzieren. Auf der Oberseite des Proto-Boards ist der L298N mit Dupont-Buchsenleisten gestapelt (Dupont sind 'Arduino-ähnliche' Header).

L298N-Vorbereitung

Ursprünglich wird die L298N-Platine nicht mit einem entsprechenden männlichen Dupont-Header geliefert, Sie müssen eine 9-Pin-Reihe unter der Platine hinzufügen. Sie müssen 9 Löcher mit einem Bohrer von 1 mm Durchmesser parallel zu den vorhandenen Löchern herstellen, wie Sie auf dem Bild sehen können. Verbinden Sie dann die entsprechenden Pins der 2 Reihen mit Lötmaterial und kurzen Drähten.

L298N-Pin-Belegung

Der L298N besteht aus 2 Kanälen zur Geschwindigkeits- und Richtungssteuerung:

Richtung über 2 digitale Ausgänge, genannt IN1, IN2 für den ersten Kanal und IN3 und IN4 für den zweiten

Geschwindigkeit über 1 digitale Ausgänge, genannt ENA für den ersten Kanal und ENB für den zweiten

Ich habe beim Arduino folgende Pinbelegung gewählt:

linker Motor: IN1 an Pin 3, IN2 an Pin 4, ENA an Pin 2

rechter Motor: IN3 an Pin 5, IN4 an Pin 6, ENB an Pin 7

5V-Regler

Auch wenn der l298N normalerweise 5V liefern kann, füge ich noch einen kleinen Regler hinzu. Es versorgt den Arduino über den VIN-Port und die 2 Encoder an den Motoren. Sie können diesen Schritt überspringen, indem Sie direkt den eingebauten L298N 5V-Regler verwenden.

JST-Anschlüsse und Encoder-Pin-Belegung

Verwenden Sie 4-polige JST-XH-Steckeradapter, jeder Stecker wird dann verbunden mit:

  • 5V vom Regler
  • ein Boden
  • zwei digitale Eingangsports (zum Beispiel: 34 und 38 für den rechten Encoder und 26 und 30 für den linken)

Zusätzliches I2C

Wie Sie vielleicht bemerkt haben, befindet sich auf der Proto-Platine ein zusätzlicher 4-Pin-JST-Anschluss. Es wird zum Anschließen von I2C-Geräten wie einer IMU verwendet. Sie können dasselbe tun und sogar Ihren eigenen Port hinzufügen.

Schritt 5: Motorgruppe und Arduino auf der unteren Schicht

Motorgruppe und Arduino auf der untersten Ebene
Motorgruppe und Arduino auf der untersten Ebene
Motorgruppe und Arduino auf der untersten Ebene
Motorgruppe und Arduino auf der untersten Ebene
Motorgruppe und Arduino auf der untersten Ebene
Motorgruppe und Arduino auf der untersten Ebene

Fixierung der Motorblöcke

Sobald die untere Schicht mit den 8 Turtlebot-Platten zusammengebaut ist, verwenden Sie einfach 4 M3-Schrauben direkt in den Einsätzen, um die Motorblöcke zu erhalten. Dann können Sie die Motorstromkabel an die L298N-Ausgänge und die zuvor hergestellten Kabel an die JST-Anschlüsse der Proto-Platine anschließen.

Machtverteilung

Die Energieverteilung wird einfach mit einer Barriereklemme realisiert. An einer Seite der Schranke ist ein Kabel mit einer XT60-Buchse zum Anschluss an den LiPo-Akku angeschraubt. Auf der anderen Seite werden unsere beiden zuvor verlöteten LED/Schalterkabel verschraubt. Somit könnte jeder Stromkreis (Motor und Arduino) mit einem eigenen Schalter und der entsprechenden grünen LED aktiviert werden.

Kabelmanagement

Schnell müssen Sie mit vielen Kabeln umgehen! Um den unordentlichen Aspekt zu reduzieren, können Sie die zuvor in 3D gedruckte "Tabelle" verwenden. Bewahren Sie Ihre elektronischen Boards auf dem Tisch mit doppelseitigem Klebeband auf und lassen Sie die Drähte unter dem Tisch frei fließen.

Batteriewartung

Um das Herausschleudern des Akkus beim Fahren Ihres Roboters zu vermeiden, können Sie einfach ein Haargummiband verwenden.

Rollenrolle

Nicht wirklich eine Rollenrolle, sondern eine einfache Halbkugel, die mit 4 Schrauben an der unteren Schicht befestigt ist. Es reicht aus, um die Stabilität des Roboters zu gewährleisten.

Schritt 6: Single Board Computer und Sensoren auf der oberen Schicht

Single Board Computer und Sensoren auf der oberen Schicht
Single Board Computer und Sensoren auf der oberen Schicht
Single Board Computer und Sensoren auf der oberen Schicht
Single Board Computer und Sensoren auf der oberen Schicht
Single Board Computer und Sensoren auf der oberen Schicht
Single Board Computer und Sensoren auf der oberen Schicht

Welchen Single Board Computer soll man wählen?

Den berühmten Raspberry Pi brauche ich nicht vorzustellen, seine Anwendungsfälle gehen weit über den Bereich der Robotik hinaus. Aber es gibt einen viel stärkeren Herausforderer für den Raspberry Pi, den Sie möglicherweise ignorieren. Tatsächlich integriert der Jetson Nano von Nvidia neben seinem Prozessor eine leistungsstarke 128-Kern-Grafikkarte. Diese spezielle Grafikkarte wurde entwickelt, um rechenintensive Aufgaben wie Bildverarbeitung oder neuronale Netzinferenz zu beschleunigen.

Für dieses Projekt habe ich mich für den Jetson Nano entschieden und Sie finden das entsprechende 3D-Teil unter den angehängten Dateien, aber wenn Sie mit dem Raspberry Pi gehen möchten, gibt es hier viele bedruckbare Gehäuse.

5V-Regler

Für welches Board Sie sich auch immer für Ihren Roboter entschieden haben, Sie benötigen einen 5-V-Regler. Der neueste Raspberry Pi 4 benötigt maximal 1,25 A, aber Jetson Nano benötigt bis zu 3 A bei Belastung, daher habe ich mich für den Pololu 5V 6A entschieden, um eine Leistungsreserve für zukünftige Komponenten (Sensoren, Lichter, Stepper…) zu haben, aber jeder billige 5V 2A sollte es tun die Arbeit. Der Jetson verwendet einen 5,5-mm-DC-Barrel und der Pi einen Micro-USB, schnappen Sie sich das entsprechende Kabel und löten Sie es an den Reglerausgang.

LIDAR-Layout

Der hier verwendete LIDAR ist der LDS-01, es gibt verschiedene andere 2D-LIDARs, die verwendet werden könnten, wie RPLidar A1/A2/A3, YDLidar X4/G4 oder sogar Hokuyo-LIDARs. Die einzige Voraussetzung ist, dass es über USB eingesteckt und mittig über der Struktur platziert werden muss. Wenn das LIDAR nicht gut zentriert ist, kann die vom SLAM-Algorithmus erstellte Karte die geschätzte Position von Wänden und Hindernissen von ihrer tatsächlichen Position verschieben. Auch wenn Hindernisse des Roboters den Laserstrahl kreuzen, wird die Reichweite und das Sichtfeld verringert.

LIDAR-Montage

Der LIDAR wird auf einem 3D-gedruckten Teil montiert, das seiner Form folgt, das Teil selbst wird auf einer rechteckigen Platte gehalten (eigentlich aus Sperrholz auf dem Bild, könnte aber auch 3D-gedruckt werden). Ein Adapterteil ermöglicht dann die Befestigung des Ensembles auf der oberen Turtlebot-Platte mit Nylon-Abstandshaltern.

Kamera als zusätzlicher Sensor oder LIDAR-Ersatz

Wenn Sie nicht zu viel Geld für einen LIDAR (der etwa 100 $ kostet) ausgeben möchten, entscheiden Sie sich für eine Kamera: Es gibt auch SLAM-Algorithmen, die nur mit einer monokularen RGB-Kamera laufen. Beide SBC akzeptieren USB- oder CSI-Kameras.

Darüber hinaus können Sie mit der Kamera Computer Vision- und Objekterkennungsskripte ausführen!

Montage

Führen Sie vor dem Schließen des Roboters die Kabel durch die größeren Löcher in der oberen Platte:

  • das entsprechende Kabel vom 5V-Regler zu Ihrem SBC
  • das USB-Kabel vom Programmieranschluss des Arduino DUE (der dem DC-Fass am nächsten liegt) zu einem USB-Anschluss Ihres SBC

Halten Sie dann die obere Platte mit einem Dutzend Schrauben in Position. Ihr Roboter ist jetzt bereit für die Programmierung, GUT DONE!

Schritt 7: Bewegen Sie es

Kompilieren Sie das Arduino

Öffnen Sie Ihre bevorzugte Arduino-IDE und importieren Sie den Projektordner mit dem Namen own_turtlebot_core, wählen Sie dann Ihr Board und den entsprechenden Port aus. Sie können sich auf dieses hervorragende Tutorial beziehen.

Passen Sie die Core-Einstellungen an

Das Projekt besteht aus zwei Dateien, von denen eine an Ihren Roboter angepasst werden muss. Lassen Sie uns also own_turtlebot_config.h öffnen und herausfinden, welche Zeilen unsere Aufmerksamkeit erfordern:

#define ARDUINO_DUE // ** KOMMENTIEREN SIE DIESE ZEILE, WENN SIE KEINE FÄLLIG VERWENDEN **

Sollte nur mit Arduino DUE verwendet werden, wenn die Zeile nicht kommentiert wird.

#define RATE_CONTROLLER_KP 130.0 // ** DIESEN WERT ABSTIMMEN **

#define RATE_CONTROLLER_KD 5000000000000.0 // ** DIESEN WERT EINSTELLEN ** #define RATE_CONTROLLER_KI 0,00005 // ** DIESEN WERT EINSTELLEN **

Diese 3 Parameter entsprechen den vom PID verwendeten Ratenreglerverstärkungen, um die gewünschte Geschwindigkeit aufrechtzuerhalten. Abhängig von der Batteriespannung, der Masse des Roboters, dem Raddurchmesser und dem mechanischen Getriebe Ihres Motors müssen Sie deren Werte anpassen. PID ist ein klassischer Regler und Sie werden hier nicht detailliert beschrieben, aber dieser Link sollte Ihnen genügend Eingaben geben, um Ihren eigenen abzustimmen.

/* Pins definieren */

// Motor A (rechts) const Byte motorRightEncoderPinA = 38; // ** ÄNDERN MIT IHRER PIN NB ** const byte motorRightEncoderPinB = 34; // ** ÄNDERN MIT IHREM PIN NB ** const byte enMotorRight = 2; // ** ÄNDERN MIT IHREM PIN NB ** const byte in1MotorRight = 4; // ** ÄNDERN MIT IHRER PIN NB ** const byte in2MotorRight = 3; // ** ÄNDERN MIT IHREM PIN NB ** // Motor B (links) const byte motorLeftEncoderPinA = 26; // ** ÄNDERN MIT IHREM PIN NB ** const byte motorLeftEncoderPinB = 30; // ** ÄNDERN MIT IHREM PIN NB ** const byte enMotorLeft = 7; // ** ÄNDERN MIT IHRER PIN NB ** const byte in1MotorLeft = 6; // ** ÄNDERN MIT IHREM PIN NB ** const byte in2MotorLeft = 5; // ** ÄNDERN MIT IHRER PIN NB **

Dieser Block definiert die Pinbelegung zwischen dem L298N und dem Arduino, ändern Sie einfach die Pinnummer so, dass sie Ihrer entspricht. Wenn Sie mit der Konfigurationsdatei fertig sind, kompilieren Sie den Code und laden Sie ihn hoch!

ROS installieren und konfigurieren

Sobald Sie diesen Schritt erreicht haben, sind die Anweisungen genau die gleichen wie im ausgezeichneten Handbuch des TurtleBot3, die Sie gewissenhaft befolgen müssen

Gut gemacht TurtleBot 3 gehört jetzt Ihnen und Sie können alle vorhandenen Pakete und Tutorials mit ROS ausführen.

Ok, aber was ist ROS?

ROS steht für Robots Operating System, es mag auf den ersten Blick recht komplex erscheinen, ist es aber nicht, stellen Sie sich einfach eine Art der Kommunikation zwischen Hardware (Sensoren und Aktoren) und Software (Algorithmen für Navigation, Steuerung, Computer Vision…) vor. Sie können beispielsweise Ihren aktuellen LIDAR problemlos mit einem anderen Modell austauschen, ohne Ihr Setup zu unterbrechen, da jeder LIDAR dieselbe LaserScan-Nachricht veröffentlicht. ROS ist weit verbreitet in der Robotik, Führen Sie Ihr erstes Beispiel aus

Das "Hallo Welt"-Äquivalent für ROS besteht darin, Ihren Roboter über den Remote-Computer zu teleoperieren. Was Sie tun möchten, ist, Geschwindigkeitsbefehle zu senden, um die Motoren zum Drehen zu bringen. Die Befehle folgen dieser Pipe:

  • ein Turtlebot_teleop-Knoten, der auf dem Remote-Computer ausgeführt wird, ein "/cmd_vel"-Thema mit einer Twist-Nachricht veröffentlichen
  • diese Nachricht wird über das ROS-Nachrichtennetzwerk an den SBC weitergeleitet
  • ein serieller Knoten ermöglicht den Empfang von "/cmd_vel" auf dem Arduino
  • Der Arduino liest die Nachricht und stellt die Winkelgeschwindigkeit an jedem Motor so ein, dass sie der gewünschten Linear- und Winkelgeschwindigkeit des Roboters entspricht

Diese Operation ist einfach und kann durch Ausführen der oben aufgeführten Befehlszeilen erreicht werden! Wenn Sie genauere Informationen wünschen, schauen Sie sich einfach das Video an.

[SBC]

roscore

[SBC]

rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200

[Entfernter Computer]

TURTLEBOT3_MODEL=${TB3_MODEL} exportieren

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

Um weiter zu gehen

Sie müssen eine letzte Sache wissen, bevor Sie alle offiziellen Beispiele im Handbuch jedes Mal ausprobieren, wenn Sie diesem Befehl begegnen:

roslaunch turtlebot3_bringup turtlebot3_robot.launch

Sie müssen stattdessen diesen Befehl auf Ihrem SBC ausführen:

rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200

Und wenn Sie einen LIDAR haben, führen Sie den zugehörigen Befehl auf Ihrem SBC aus, in meinem Fall führe ich einen LDS01 mit der folgenden Zeile aus:

roslaunch hls_lfcd_lds_driver hlds_laser.launch

Und das ist alles, Sie haben definitiv Ihren eigenen Turtlebot gebaut:) Sie sind bereit, die fantastischen Fähigkeiten von ROS zu entdecken und Vision- und Machine-Learning-Algorithmen zu programmieren.

Empfohlen: