JetRacer Inbetriebnahme

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Inbetriebnahme des Roboters

Um diesen Schritt durchzuführen muss eine SD-Karte mit einem Jetson Nano Image vorhanden sein, falls dies nicht der Fall ist wird im Abschnitt "[]" erklärt wie das Image auf der SD-Karte installiert werden kann.
Wifi verbinden
  • Schließen Sie hier Peripheriegeräte wie z.B. Monitore an, um sich schnell und einfach mit dem WiFi zu verbinden.
  • Stecken Sie die SD-Karte in den Jetson Nano ein (der SD-Kartensteckplatz befindet sich auf der Rückseite des Jetson Nano-Moduls).
  • Bereiten Sie Maus, Tastatur und Monitor vor und schließen Sie sie an die Jetson Nano-Platine an.
  • Schalten Sie den Netzschalter ein, um den Jetson Nano zu starten, und loggen Sie sich ein, nachdem das Display normal leuchtet, wobei der Benutzername und das Passwort "jetson" sind.
Step01
  • Nachdem erfolgreichen Login können sie das Wifi auswählen und sich verbinden. Vergewissern Sie sich, dass der jetson nano und der PC mit demselben Netzwerk verbunden sind, da sonst die weitere Kommunikation fehlschlägt.
Step02
  • Nach erfolgreicher Verbindung mit dem WiFi zeigt der OLED-Bildschirm des JetRacer automatisch die IP-Adresse des WiFi an.
Step03
Login per Fernzugriff
  • In den vorherigen Schritten haben wir den jetson nano und den PC-Host mit demselben WiFi verbunden, und nach dem Neustart bleibt der jetson nano im Allgemeinen mit dem ursprünglichen WiFi verbunden, und die IP bleibt unverändert.
  • In den folgenden Vorgängen verwenden wir SSH-Fernanmeldung, um den Roboterknoten zu starten.
  • Wenn der jetson nano eingeschaltet wird, zeigt der OLED-Bildschirm des Fahrzeugs die IP-Adresse des zuletzt verbundenen WiFi an. Wenn das WiFi nicht verbunden ist, wird die IP-Adresse des kabelgebundenen Netzwerkanschlusses angezeigt.
Step01
MobaXTerm
  • Laden sie [| MobaXterm] für den SSH-Login herunter.
  • Öffnen Sie MobaXterm, klicken Sie auf „Session-> SSH“, geben Sie die IP-Adresse ein, die der Roboter als Host anzeigt, und drücken Sie die Eingabetaste, um das Terminal zu öffnen; der Anmeldename und das Passwort sind "jetson".
Step01
  • Die Übertragung von Dateien mit MobaXterm ist einfach.
  • Um Dateien von Windows auf den Raspberry Pi zu übertragen, ziehen Sie die Dateien einfach in das linke Verzeichnis von MobaXterm.
  • Um Raspberry Pi-Dateien auf Windows zu übertragen, ziehen Sie die Dateien im linken Verzeichnis von MobaXterm einfach auf Windows.
Step02
NoMachine Login
  • Im Vergleich zu SSH und VNC wissen Sie vielleicht nicht viel über Nomachine. Nomachine ist eine kostenlose Remote-Desktop-Software.
  • NoMachine deckt grundsätzlich alle wichtigen Betriebssysteme ab, einschließlich Windows, Mac, Linux, iOS, Android und Raspberry usw.
  • Install On Jetson Nano
  • Laden Sie NoMachine herunter und entpacken Sie sie
  • Nach dem Entpacken können Sie die ".deb-Datei" mit dem U-Disk-Treiber oder MobaXterm File Transmission auf den Jetson Nano kopieren.
  • Befehl zum Installieren:
sudo dpkg -i nomachine_7.10.1_1_arm64.deb
  • Auf dem Windows Computer installieren
  • Laden sie [Nomachine herunter und installieren sie es. Nachdem dies beendet ist müssen sie ihren Computer neustarten.
Step01
  • Verbinden zum Jetson Nano
1. Öffnen Sie NoMachine und geben Sie die IP-Adresse des Jetson Nano ein. Zum Beispiel 192.168.15.100
  • Beziehen Sie sich bitte auf die IP-Adresse, die auf dem OLED-Display Ihres Fahrzeugs angezeigt wird, oder auf den Befehl ifconfig.
Step02
2. Klicken Sie auf "Connect to new Host 192.168.15.100", geben Sie den Namen und das Passwort des Jetson Nano ein und klicken Sie dann auf Anmelden.
  • Verwenden Sie das von Waveshare bereitgestellte konfigurierte Image. Der Name und das Passwort lauten jetson.
Step03
3. Nach dem Herunterladen wird die Software-Einführung angezeigt, klicken Sie einfach auf „ok“.
Step04
4. Jetzt können wir uns erfolgreich beim Jetson Nano anmelden.
Step05
IP & Hostname
  • Öffnen Sie das Roboterterminal und geben Sie den folgenden Befehl ein. Überprüfen Sie die IP und den Hostnamen des Jetson Nano und denken Sie daran, dass dieser für die spätere Kommunikation verwendet wird.
ifconfig #Gibt die IP-Adresse der VM aus.
hostname #Gibt den Hostnamen der VM aus.
Step01
  • Geben Sie den Befehl ein, um den WiFi-Namen zu überprüfen, mit dem der Jetson Nano verbunden ist, und stellen Sie sicher, dass der PC ebenfalls mit demselben WiFi verbunden ist.
iwconfig wlan0 #Gibt den Wifi Namen
Step02

Inbetriebnahme Virtuelle Maschine

Virtuelle Maschine installieren
Der Roboter verwendet die virtuelle Ubuntu-Maschine als Fernsteuerungsterminal, und es ist bequemer und intuitiver, den Roboter mit den verschiedenen grafischen Werkzeugen von ROS zu steuern. Öffnen Sie hier das Ubuntu-Image von VMware. Die VMware-Version sollte nicht niedriger als 16 sein.
  • Laden sie [VMware 16] herunter.
  • Klicken Sie hier, um die konfigurierte Ubuntu-Image-Datei für die virtuelle Maschine herunterzuladen. Wenn Sie das Ubuntu-ROS-System selbst konfigurieren möchten, können Sie sich auf die Anleitung für Fortgeschrittene beziehen. Es wird empfohlen, das konfigurierte Image zum ersten Mal zu verwenden, um verschiedene Probleme bei der Konfiguration des Images selbst zu vermeiden.
  • Laden sie [Ubuntu VM Image] herunter.
  • Installieren und starten Sie die VMware-Software, klicken Sie auf „Datei -> Öffnen -> Öffnen Sie die heruntergeladene Datei <Ubuntu JetRacer.vmx>“, klicken Sie auf „Start this virtuell Machine“ und melden Sie sich an, wobei der Benutzername und das Passwort "jetson" lauten.
Step01
Step02
Step03
IP & Hostname
Öffnen Sie das Terminal oder drücken Sie Strg+Alt+t, geben Sie die folgenden Befehle ein, um die IP-Adresse und den Hostnamen der virtuellen Maschine zu erhalten, merken sie sich diese für die nachfolgende Kommunikation 【Zu diesem Zeitpunkt müssen wir sicherstellen, dass der PC und der jetson nano mit demselben WiFi verbunden sind. Die Ubuntu-Image-Datei und der PC, den wir konfiguriert haben, befinden sich im Bridge-Netzwerkmodus unter demselben WLAN, und die virtuelle Maschine und der jetson nano befinden sich im selben Netzwerksegment.】
ifconfig # Gibt die IP-Adresse der virtuellen Maschine aus
hostname # Gibt den Hostnamen der virtuellen Maschine aus
Step04
VM Programm wechseln
  • In der obigen Anleitung wird erklärt wo man das Image für den Ubuntu Controller herunterladen kann, und wie man dieses dann im Programm VMware Workstation in Betrieb nimmt. Da dies allerdings nur für einen Monat kostenlos getestet werden kann, sollte besser das kostenlose Oracle VM Virtualbox Programm genutzt werden. Dieses kann hier heruntergeladen werden. Allerdings muss damit es genutzt werden kann, das Image zu einem anderen Datei Typen, von .vmx auf .vdi, konvertiert werden. Diese Konvertierung kann in folgenden zwei Schritten durchgeführt werden:
  • Zuerst muss in der Testversion von VMware das .vmx File ausgewählt und dann über das Menü zu einem .ovf File exportiert werden.
  • Danach kann man in Oracle Virtualbox das .ovf File importieren und es wird automatisch zu einem .vdi File konvertiert welches dann benutzt werden kann.

Kommunikation Zwischen den Systemen

Einleitung
  • Bevor Sie die Multi-Maschinen-Kommunikation konfigurieren, müssen Sie die folgenden drei Systeme verstehen:
  • PC-Host: Es ist im Allgemeinen unser verwendeter Computer, und das System ist in der Regel ein Windows-System, das hauptsächlich verwendet wird, um sich aus der Ferne über SSH bei jetson nano anzumelden und den Roboterkontrollknoten zu starten.
  • Ubuntu Virtual Machine: Die virtuelle Maschine des Ubuntu-Systems, die von der VMware-Software auf unserem PC-Host installiert wird, ermöglicht hauptsächlich die grafische Anzeige von ROS und die Fernsteuerung des Roboters, was intuitiver und bequemer ist.
  • jetson nano robot: Dies ist unser JetRacer. Er verwendet jetson nano als Hauptsteuerung und ist auch ein Ubuntu-System. Er wird hauptsächlich zur Realisierung verschiedener Knotenpunkte wie Roboterkameras, Lidar und Fahrgestellsteuerung verwendet.
  • jetson nano robot installiert das ROS-Robotersystem und legt es als Host fest. Die virtuelle Ubuntu-Maschine wird ebenfalls auf dem ROS-Robotersystem installiert und als zugehörige Maschine eingestellt.
  • Sie müssen sicherstellen, dass die drei oben genannten Systeme an dasselbe LAN angeschlossen sind und die IP-Adressen sich im selben Netzwerksegment befinden, da sonst keine normale Kommunikation möglich ist.
  • In den folgenden Anleitungen bezieht sich die virtuelle Standardmaschine auf die virtuelle Ubuntu-Maschine, und der Roboter bezieht sich auf den jetson nano Roboter.
Variablen setzen
  • In der vorherigen Anleitung wurde die IP-Adresse und die Hostnamen des Roboters und der virtuellen Maschine gecheckt und eingetragen. Wenn Sie sich nicht sicher sind, können Sie den folgenden Befehl zur Überprüfung ausführen.
ifconfig       #Gibt die IP-Adresse des Hosts aus
hostname       #Gibt den Hostnamen aus
  • Mit unserem Image lautet der Hostname des Roboters nano-4gb-jp451 und der Hostname der virtuellen Maschine ubuntu.
  • Sie müssen dem Roboter und der virtuellen Maschine jeweils Umgebungsvariablen hinzufügen und den Roboter als Host festlegen. Die virtuelle Maschine wird als untergeordnete Maschine festgelegt.
  • Die Umgebungsvariablen wurden mit Hilfe des vom Hersteller konfigurierten Images hinzugefügt und müssen nicht erneut hinzugefügt werden; diesen Schritt müssen Sie nur ausführen, wenn Sie das Abbild selbst konfigurieren.
  • ROS_MASTER_URI - weist auf den ROS Host auf dem der Master läuft
  • ROS_HOSTNAME - Ist der derzeitige ROS Hostname
  • 【Der Editor kann nano oder vim sein, wählen Sie einfach einen von beiden, je nachdem, was Sie bevorzugen.】
sudo apt install nano  #installiert den nano editor
Roboter
  • Fügen Sie auf der Roboterseite den folgenden Text am Ende der Datei ~/.bashrc ein und ersetzen Sie nano-4gb-jp451, wenn der tatsächliche Hostname ein anderer Name ist.
sudo nano ~/.bashrc
Am Ende hinzufügen:
export ROS_MASTER_URI=http://nano-4gb-jp451:11311 #Setzt den Roboter als Host
export ROS_HOSTNAME=nano-4gb-jp451
Nachdem das Hinzufügen abgeschlossen ist, führen Sie den folgenden Befehl aus, damit es wirksam wird:
source ~/.bashrc
Virtuelle Maschine
  • Auf der Seite der virtuellen Maschine fügen Sie den folgenden Text am Ende der Datei ~/.bashrc ein, wobei ROS_MASTER_URI auf den Roboter als Host verweist und ROS_HOSTNAME auf den Hostnamen der virtuellen Maschine.
sudo nano ~/.bashrc
Am Ende hinzufügen:
export ROS_MASTER_URI=http://nano-4gb-jp451:11311     #Weist auf den Roboter Host
export ROS_HOSTNAME=ubuntu
Nachdem das Hinzufügen abgeschlossen ist, führen Sie den folgenden Befehl aus, damit es wirksam wird:
source ~/.bashrc
Hostdatei bearbeiten
  • Unter normalen Umständen sollte ROS nach dem Hinzufügen von Umgebungsvariablen in der Lage sein, normal online zu kommunizieren. Wenn mehrere Geräte mit demselben Namen im LAN vorhanden sind, kann es zu Problemen kommen, wie z. B. dass keine normale Verbindung hergestellt werden kann oder dass Themen angezeigt, aber keine Themeninformationen empfangen werden. An diesem Punkt müssen Sie Hosts hinzufügen, um die Adresse anzugeben.
  • Sie müssen dem Roboter und der virtuellen Maschine jeweils Einstellungen in der Hostdatei hinzufügen.Bitte geben Sie die folgenden Einstellungen entsprechend Ihrer aktuellen IP-Adresse und Ihrem Hostnamen ein.
Roboter
  • Öffnen Sie das Terminal auf dem Roboter und geben Sie den folgenden Befehl ein, fügen Sie die IP-Adresse und den Hostnamen der virtuellen Ubuntu-Maschine in die Datei /etc/hosts von jetson nano ein, das Passwort ist jetson.
sudo nano /etc/hosts    
  • Wie in der Abbildung unten gezeigt, ändern Sie die Zeile unter 127.0.1.1 nano-4gb-jp451.localdimain nano-4gb-jp451 auf die IP-Adresse und den Hostnamen der virtuellen Ubuntu-Maschine 【Wenn diese Zeile auskommentiert ist, müssen Sie sie "einkommentieren".】
Step01
  • Nach der Änderung drücken Sie "Strg + x", um die Datei zu schließen. Außerdem müssen sie "y" drücken um zu speichern.
Virtuelle Maschine
  • Öffnen Sie das Terminal auf der virtuellen Maschine und geben Sie den folgenden Befehl ein, um die Datei /etc/hosts zu öffnen und die IP-Adresse des Roboters hinzuzufügen.
sudo nano /etc/hosts    
  • Wie in der Abbildung unten gezeigt, ändern Sie die Zeile unter 127.0.1.1 ubuntu in die IP und den Hostnamen von jetson nano. 【Wenn diese Zeile auskommentiert ist, muss sie "einkommentiert" werden.】
Step02
  • Nach der Änderung drücken Sie "Strg + x", um die Datei zu schließen. Außerdem müssen sie "y" drücken um zu speichern.
Kommunikation überprüfen
  • Verbinden Sie sich mit dem Roboter, um das Terminal per SSH zu öffnen, und geben Sie den folgenden Befehl ein, um den Roboter-Masterknoten zu starten.
roscore        #Startet den Rovoter-Masterknoten
Step01

【Der folgende roslaunch-Befehl startet ebenfalls automatisch den Masterknoten, aber der Zweck des alleinigen Starts des Masterknotens besteht darin, die Verbindung zur virtuellen Maschine ständig aufrechtzuerhalten, da der Masterknoten sonst automatisch geschlossen wird, wenn der Chassis-Knoten geschlossen wird, was dazu führt, dass die virtuelle Maschine nicht mehr verbunden ist.】

  • Öffnen Sie das Terminal der virtuellen Ubuntu-Maschine, und geben Sie den folgenden Befehl in das Terminal ein.
rostopic list
  • Das folgende Beispiel zeigt, dass die beiden Knoten wahrscheinlich in der Lage sind, normal online zu kommunizieren.
Step02
  • Die Roboterseite speichert den Startzustand des Masterknotens und schließt ihn nicht. Öffnen Sie ein neues Terminal, um den Tutorial-Empfangsknoten auszuführen.
rosrun rospy_tutorials listener
  • Führen Sie den folgenden Befehl auf der Seite der virtuellen Maschine aus, um den Tutorial-Sendeknoten zu starten.
rosrun rospy_tutorials talker
Step03
  • Nachdem die virtuelle Maschine das Programm gesendet hat, empfängt der Roboter die Daten.
Step04
Bevorzugtes Netzwerk
  • In der obigen Anleitung ist beschrieben wie man die Verbindung zwischen der Virtuellen Maschine und dem Roboter aufbaut. Wichtig zu beachten ist hierbei das beide Parteien im gleichen WLAN sein müssen.
  • Im Labor bedeutet dies, das der PC am besten per LAN Kabel mit dem Router für das "Autonome Systeme" Netzwerk verbunden ist. Und außerdem der Roboter per WLAN mit demselben Netzwerk verbunden ist.
  • Ebenfalls ist zu beachten das sich die auf beiden Seiten im /etc/hosts File eingetragenen IP Adressen ändern können, jenachdem welche Geräte mit dem Netzwerk noch verbunden sind. Nach dem Hochfahren der beiden Systeme sollten, mit dem ifconfig Befehl, die aktuellen IP Adressen gecheckt, und falls nötig im File geändert, werden.