JetRacer Inbetriebnahme: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 78: Zeile 78:
==Kommunikation Zwischen den Systemen==
==Kommunikation Zwischen den Systemen==
:'''Einleitung'''
:'''Einleitung'''
:*Before configuring multi-machine communication, you need to understand the following three systems:
:*Bevor Sie die Multi-Maschinen-Kommunikation konfigurieren, müssen Sie die folgenden drei Systeme verstehen:
:*PC host: It is generally our commonly used computer, and the system is generally Windows system, which is mainly used to remotely log in to jetson nano via SSH to start the robot control node.
:*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: The Ubuntu system virtual machine installed by VMware software on our PC host mainly realizes ROS graphical display and remote control of the robot, which is more intuitive and convenient.
:*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: This is our JetRacer. It adopts jetson nano as the main control and is also an ubuntu system. It is mainly used to realize various nodes such as robot cameras, lidar, and chassis control.
:*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 installs the ROS robot system and sets it as the host. The Ubuntu virtual machine is also installed in the ROS robot system and set as a slave machine.
:*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.
:*<span style="color:red">We need to ensure that the above three systems are connected to the same LAN, and the IP addresses are on the same network segment, otherwise normal communication cannot be performed.</span>
:*<span style="color:red">Wir 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.</span>
:*<span style="color:red">In the following tutorials, the default virtual machine refers to the Ubuntu virtual machine, and the robot refers to the jetson nano robot.</span>
:*<span style="color:red">In den folgenden Anleitungen bezieht sich die virtuelle Standardmaschine auf die virtuelle Ubuntu-Maschine, und der Roboter bezieht sich auf den jetson nano Roboter.</span>
:'''Variablen setzen'''
:'''Variablen setzen'''
:*In the previous tutorial, we supported the IP address and hostname of the robot and virtual machine. If you are not sure, you can run the following command to check.
:*In der vorherigen Anleitung haben wir die IP-Adresse und den 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      #Get the IP address of the virtual machine
  ifconfig      #Gibt die IP-Adresse des Hosts aus
  hostname      #Get the hostname of the virtual machine
  hostname      #Gibt den Hostnamen aus
:*Using our image, the robot hostname is nano-4gb-jp451, and the virtual machine hostname is ubuntu.
:*Mit unserem Image lautet der Hostname des Roboters nano-4gb-jp451 und der Hostname der virtuellen Maschine ubuntu.
:*We need to add environment variables to the robot and the virtual machine respectively and set the robot as the host. The virtual machine is set as a slave.
:*Wir 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.
:*<span style="color:red">The environment variables have been added using the image we have configured and do not need to be added again; this step is what you need to add when you configure the image yourself.</span>
:*<span style="color:red">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.</span>
::*ROS_MASTER_URI changes to point to the ROS host, running the roscore master node independently.
::*ROS_MASTER_URI - weist auf den ROS Host auf dem der Master läuft
::*ROS_HOSTNAME variable is the current ROS hostname.
::*ROS_HOSTNAME - Ist der derzeitige ROS Hostname
:*【The editor can be nano or vim, just choose one of them according to your preference.】
:*【Der Editor kann nano oder vim sein, wählen Sie einfach einen von beiden, je nachdem, was Sie bevorzugen.】
  sudo apt install nano  #install nano editor
  sudo apt install nano  #installiert den nano editor
:''Roboter''
:''Roboter''
:*On the robot side, add the following text at the end of the ~/.bashrc file, and replace nano-4gb-jp451 if the actual hostname is another name.
:*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
  sudo nano ~/.bashrc
  Add at the end:
  Am Ende hinzufügen:
  export ROS_MASTER_URI=http://nano-4gb-jp451:11311 #Set the robot as the host
  export ROS_MASTER_URI=http://nano-4gb-jp451:11311 #Setzt den Roboter als Host
  export ROS_HOSTNAME=nano-4gb-jp451
  export ROS_HOSTNAME=nano-4gb-jp451
  After the addition is complete, run the following command to take effect:
  Nachdem das Hinzufügen abgeschlossen ist, führen Sie den folgenden Befehl aus, damit es wirksam wird:
  source ~/.bashrc
  source ~/.bashrc
:''Virtuelle Maschine''
:''Virtuelle Maschine''
:*On the virtual machine side, add the following text at the end of the ~/.bashrc file, ROS_MASTER_URI is set to point to the robot as the host, and ROS_HOSTNAME is set to the virtual machine hostname.
:*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
  sudo nano ~/.bashrc
  Add at the end:
  Am Ende hinzufügen:
  export ROS_MASTER_URI=http://nano-4gb-jp451:11311    #Point to the robot host
  export ROS_MASTER_URI=http://nano-4gb-jp451:11311    #Weist auf den Roboter Host
  export ROS_HOSTNAME=ubuntu
  export ROS_HOSTNAME=ubuntu
  After the addition is complete, run the following command to take effect:
  Nachdem das Hinzufügen abgeschlossen ist, führen Sie den folgenden Befehl aus, damit es wirksam wird:
  source ~/.bashrc
  source ~/.bashrc
:'''Hostdatei bearbeiten'''
:'''Hostdatei bearbeiten'''
:*Under normal circumstances, after adding environment variables, ROS should be able to communicate normally online. If there are multiple devices with the same name in the LAN, there may be problems such as failure to connect normally or to view topics but not receive topic information. At this point, you need to add hosts to specify the address.
:*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.
:*We need to add honst file settings to the robot and the virtual machine respectively. <span style="color:red">Please fill in the following settings according to your actual IP address and hostname.</span>
:*Wir müssen dem Roboter und der virtuellen Maschine jeweils Einstellungen in der Hostdatei hinzufügen.<span style="color:red">Bitte geben Sie die folgenden Einstellungen entsprechend Ihrer aktuellen IP-Adresse und Ihrem Hostnamen ein.</span>
:''Roboter''
:''Roboter''
:*Open the terminal on the robot and enter the following command, add the IP address and hostname of the Ubuntu virtual machine to the /etc/hosts file of jetson nano, the password is jetson.
:*Ö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     
  sudo nano /etc/hosts     
:*As shown in the figure below, modify the line below 127.0.1.1 nano-4gb-jp451.localdimain nano-4gb-jp451 to the IP address and hostname of the Ubuntu virtual machine 【if this line is commented out, you need to uncomment.】
:*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".】
:[[Datei:Jetracer_Kommunikation_Verbindung_Host_Step01.png|Step01]]
:[[Datei:Jetracer_Kommunikation_Verbindung_Host_Step01.png|Step01]]
:*After changing, press Ctrl + x, exit by y, enter, and save it to exit.
:*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''
:''Virtuelle Maschine''
:*Open the terminal on the virtual machine and enter the following command to open the /etc/hosts file and add the robot IP address.
:*Ö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     
  sudo nano /etc/hosts     
:*As shown in the figure below, change the line below 127.0.1.1 ubuntu to the IP and hostname of jetson nano. If this line is commented out, it needs to be uncommented.
:*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.
:[[Datei:Jetracer_Kommunikation_Verbindung_Host_Step02.png|Step02]]
:[[Datei:Jetracer_Kommunikation_Verbindung_Host_Step02.png|Step02]]
:*After modification, press Ctrl+x, exit y, press Enter, save changes, and exit.
:*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'''
:'''Kommunikation überprüfen'''
:*Connect the robot to open the terminal by SSH, and enter the following command to start the robot master node.
:*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        #Start the robot master node
  roscore        #Startet den Rovoter-Masterknoten
:[[Datei:Jetracer_Kommunikation_Verbindung_Check_Step01.jpg|Step01]]
:[[Datei:Jetracer_Kommunikation_Verbindung_Check_Step01.jpg|Step01]]
【The following roslaunch command will also automatically start the master node, but the purpose of starting the master node alone here is to keep connected to the virtual machine all the time, otherwise the master node will be automatically closed when the chassis node is closed, resulting in the virtual machine being disconnected.】
【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.
:*Open the Ubuntu virtual machine terminal, and enter the following command in the terminal.
  rostopic list
  rostopic list
:*The following normally shows that the two nodes are likely to be able to communicate normally online.
:*Das folgende Beispiel zeigt, dass die beiden Knoten wahrscheinlich in der Lage sind, normal online zu kommunizieren.
:[[Datei:Jetracer_Kommunikation_Verbindung_Check_Step02.png|Step02]]
:[[Datei:Jetracer_Kommunikation_Verbindung_Check_Step02.png|Step02]]
:*<span style="color:red">The robot side saves the startup state of the master node and does not close it. Open a new terminal to run the example receiving node.</span>
:*<span style="color:red">Die Roboterseite speichert den Startzustand des Masterknotens und schließt ihn nicht. Öffnen Sie ein neues Terminal, um den Tutorial-Empfangsknoten auszuführen.</span>
  rosrun rospy_tutorials listener
  rosrun rospy_tutorials listener
:*Run the following command on the virtual machine side to start the example sending node.
:*Führen Sie den folgenden Befehl auf der Seite der virtuellen Maschine aus, um den Tutorial-Sendeknoten zu starten.
  rosrun rospy_tutorials talker
  rosrun rospy_tutorials talker
:[[Datei:Jetracer_Kommunikation_Verbindung_Check_Step03.png|Step03]]
:[[Datei:Jetracer_Kommunikation_Verbindung_Check_Step03.png|Step03]]
:*After the virtual machine sends the program. The robot side will receive the sent data.
:*Nachdem die virtuelle Maschine das Programm gesendet hat, empfängt der Roboter die Daten.
:[[Datei:Jetracer_Kommunikation_Verbindung_Check_Step04.jpg|Step04]]
:[[Datei:Jetracer_Kommunikation_Verbindung_Check_Step04.jpg|Step04]]
:'''Bevorzugtes Netzwerk'''
:'''Bevorzugtes Netzwerk'''

Version vom 6. Februar 2025, 14:50 Uhr

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 [[1]] für den SSH-Login herunter.
  • Open MobaXterm, click "Session -> SSH", fill in the IP address displayed by the car in the host, and press Enter to open the terminal; the login name and password are jetson.
Step01
  • It is easy to transfer the files by MobaXterm.
  • To transfer files from Windows to Raspberry Pi simply drag the files to the left directory of MobaXterm.
  • Similarly, to transfer Raspberry Pi files to Windows, just drag the files in the left directory of MobaXterm to Windows.
Step02
NoMachine Login
  • Compared with SSH and VNC, you may not know much about Nomachine. Nomachine is a free remote desktop software.
  • NoMachine basically covers all major major operating systems, including Windows, Mac, Linux, iOS, Android and Raspberry, etc.
  • Install On Jetson Nano
  • Download and unzip the Nomachine
  • After unzipping, you can copy the ".deb file" to the Jetson Nano by the U disk driver or MobaXterm File Transmission.
  • Install command:
sudo dpkg -i nomachine_7.10.1_1_arm64.deb
  • Install On the Windows Computer
  • Download [[2] and open it to install. After clicking Finish, you also need to restart the computer.
Step01
  • Verbinden zum Jetson Nano
1. Open NoMachine and enter the IP address of the Jetson Nano. For example 192.168.15.100
  • Please refer to the IP address displayed by the OLED on your car or from the ifconfig command.
Step02
2. Click Connect to new host 192.168.15.100, enter the name and password of the Jetson Nano, and then click to log in.
  • Use the configured image provided by Waveshare. The name and password are jetson.
Step03
3. After downloading, there will display the software introduction, just click "ok".
Step04
4. Now we can successfully log in to the Jetson Nano.
Step05
IP & Hostname
  • Open the robot terminal and enter the following command, check the IP and hostname of the Jetson Nano and remember that it will be used for subsequent multi-machine communication.
ifconfig #Get the IP address of the virtual machine
hostname #Get the hostname of the virtual machine
Step01
  • Enter the command to check the WiFi name that Jetson Nano is connected to, and make the PC also connect to the same WiFi.
iwconfig wlan0 #View WiFi name
Step02

Inbetriebnahme Virtuelle Maschine

Virtuelle Maschine installieren
The robot uses the ubuntu virtual machine as the remote control terminal, and it is more convenient and intuitive to control the robot by using various graphical tools of ROS. Here, open the Ubuntu image by VMware. VMware version should be not lower than 16.
  • Download [VMware 16]
  • Click to download the configured Ubuntu virtual machine image file below; if you want to configure the Ubuntu ROS system by yourself, you can refer to the advanced tutorial. It is recommended to use our configured image for the first time to avoid various problems when configuring the image yourself.
  • Download [Ubuntu VM Image]
  • Install and run the VMware software, click "File -> Open -> Open the downloaded <Ubuntu JetRacer.vmx>", click "Start this virtual machine" and log in, where the username and password are: jetson.
Step01
Step02
Step03
IP & Hostname
Open the terminal or press Ctrl+Alt+t, enter the following commands to obtain the IP address and hostname of the virtual machine, and remember, the subsequent multi-machine communication will use 【Note: At this time, we need to ensure that the PC and jetson nano is connected to the same WiFi. The Ubuntu image file and PC we configured are in bridge network mode, under the same WiFi, and the virtual machine and jetson nano is in the same network segment.】
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.
  • Wir 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 haben wir die IP-Adresse und den 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.
  • Wir 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.
  • Wir 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.