Basierend auf der seltsamen Idee, dass ich ROS wirklich in Java schreiben möchte, unterstützt es eine Umgebung, in der die Formel auch in Java namens Rosjava entwickelt werden kann, und es war die beste Verwendung (es gibt individuelle Unterschiede), daher werde ich sie hier zusammenfassen. Masu
Ich möchte, dass sich mehr ROS Java-Entwicklung verbreitet!
Dies ist die Umgebung, die ich benutze. Bitte als Referenz ubuntu16.04 (japanische Version) ROS ( kinetic ) java8 (Es scheint, dass java9 es nicht unterstützt?) Gradle (wahrscheinlich benötigt)
Bei der Installation von ROS und Java wird davon ausgegangen, dass die Installation bereits abgeschlossen ist. Wenn Sie dies nicht getan haben, schließen Sie die Installation ab. Ich denke, dass die Installationsmethode auch auf der offiziellen Seite ist
Installieren Sie zuerst Rosjava selbst
python
sudo apt-get install ros-kinetic-rosjava
Installieren Sie Rosjava mit
Vielleicht finden diejenigen, die ROS bereits verwenden, catkin_ws im Home-Verzeichnis Es gibt kein Problem, wenn Sie es zusammen machen, aber ein kleines Problem wird später auftreten, also werde ich es hier separat machen. Erstellen Sie es hier mit dem Namen catkin_ws_java
Unter dem Home-Verzeichnis
python
mkdir catkin_ws_java
cd catkin_ws_java
mkdir src
cd src
catkin_init_workspace
So erstellen Sie einen Arbeitsbereich für Rosjava, indem Sie ihn nacheinander ausführen
Als nächstes machen Sie ein Paket für Rosjava
Hier können Pakete und Projekte erstellt werden, indem Sie Folgendes eingeben.
python
catkin_create_rosjava_pkg beliebiger Paketname
python
catkin_create_rosjava_Projekt Beliebiger Projektname
(Es scheint, dass Großbuchstaben nicht in jedem beliebigen Namen verwendet werden können.)
Im Folgenden wird davon ausgegangen, dass der beliebige Paketname test_pkg und der beliebige Projektname test_pj lautet.
Kehren Sie erneut zum Home-Verzeichnis zurück
python
cd catkin_ws_java/src
Bewegen Sie sich mit
python
catkin_create_rosjava_pkg test_pkg
Wenn der folgende Befehl ausgegeben wird, ist die Paketerstellung erfolgreich.
python
BUILD SUCCESSFUL
Total time: 8.479 secs
Damit ist die Paketerstellung abgeschlossen Bewegen Sie sich in das Projekt, das so erstellt wurde, wie es ist
python
cd test_pkg
Dann erstellen Sie ein Projekt
python
catkin_create_rosjava_project test_pj
Wenn der folgende Befehl ausgegeben wird, ist die Projekterstellung erfolgreich. rosjava ist eine anfängerfreundliche Spezifikation, die jedes Mal, wenn Sie ein Projekt erstellen, eine Tutorial-ähnliche Basisdatei erstellt Hierbei werden hauptsächlich Talker und Listener verwendet.
python
Creating rosjava project
Name : test_pj
File : build.gradle
File : settings.gradle
File : Talker.java
File : Listener.java
File : CMakeLists.txt (gradle task update)
Die Dateistruktur von Rosjava ist übrigens
python
src ┳ Projekt A.
┃┣ Paket B.
┃┗Paket C.
┃
┗Projekt E.
┣ Paket F.
┗ Paket G.
Kann in Form von erweitert werden
Bisher habe ich gerade ein Paket und ein Projekt erstellt und es kann nicht so verwendet werden, wie es ist, also catkin_make Rosjavas catkin_make ist jedoch eine traurige Spezifikation, die nur online verwendet werden kann. Dies kann jedoch vermieden werden und wird in einem anderen Artikel beschrieben.
python
cd ~/catkin_ws_java
Kehren Sie mit zum Arbeitsbereich zurück
python
catkin_make
Es gibt kein Problem, wenn die folgende Ausgabe ausgegeben wird
python
[100%] Built target gradle-test_pkg
Selbst wenn die folgende Ausgabe ausgegeben wird, gibt es kein Problem, sodass Sie sie ignorieren können. Es ist möglich, solange es keinen Wortlaut gibt, dass sie fehlgeschlagen ist.
python
Warnung: [options]Bootstrap-Klassenpfad-source 1.Nicht mit 7 eingestellt
Alles was Sie tun müssen, ist Rosjava auszuführen Führen Sie Rosjava aus einer Shell-Datei aus, nicht aus einer Startdatei
Bewegen Sie sich zuerst an den Ort, an dem sich das Shell-Skript befindet
python
cd ~/catkin_ws_java/src/test_pkg/test_pj/build/install/test_pj/bin
Hier ist die Shell- und Bat-Datei Lassen Sie uns mit dem Befehl ls überprüfen
Entscheiden Sie, welcher Knoten als nächstes gestartet werden soll Dieses Mal hat dieses Projekt einen Sprecher und einen Zuhörer Starten Sie zuerst Listener
Wenn roscore nicht gestartet wird, können Sie zunächst nichts tun. Starten Sie es also in einem anderen Terminal
python
roscore
Starten Sie als Nächstes Listner (das Ausführungsverzeichnis ist das bin-Verzeichnis).
python
bash test_pj com.github.rosjava.test_pkg.test_pj.Listener
Starten Sie dann Talker in einem anderen Terminal (gehen Sie auch mit dem Befehl cd zu bin).
python
bash test_pj com.github.rosjava.test_pkg.test_pj.Listener
Jetzt am Terminal auf der Listner-Seite
python
5 10, 2018 8:20:38 Uhr org.ros.internal.node.RosoutLogger info
Information: I heard: "Hello world! 3"
5 10, 2018 8:20:39 Uhr org.ros.internal.node.RosoutLogger info
Information: I heard: "Hello world! 4"
5 10, 2018 8:20:40 Uhr org.ros.internal.node.RosoutLogger info
Information: I heard: "Hello world! 5"
5 10, 2018 8:20:41 Uhr org.ros.internal.node.RosoutLogger info
Information: I heard: "Hello world! 6"
Die Kommunikation ist abgeschlossen, wenn angezeigt wird als
Vielen Dank, dass Sie lange bei uns geblieben sind
Von nun an möchte ich eine ausführliche Erklärung zu jedem einzelnen, etwas ausführlicher und zur Vereinfachung der Verwendung von Rosjava schreiben.
Es scheint, dass es Orte gibt, an denen es je nach Person auftritt In gradle-bezogen, z. B. als das erste Paket erstellt wurde
python
Exception in thread "main" java.lang.RuntimeException
java.util.zip.ZipException: error in opening zip file
Wenn Sie eine Fehlermeldung erhalten, versuchen Sie bitte die folgenden Methoden
Zeigen Sie versteckte Dateien mit Strg + H im Ausgangsverzeichnis an Dann denke ich, dass es eine .gradle-Datei gibt Lassen Sie uns unsere Herzen loswerden und werfen Sie einfach den .gradle-Ordner in den Mülleimer
Dies ist wahrscheinlich die Lösung. Danke für deine harte Arbeit.
Recommended Posts