Eine Geschichte über die Entwicklung von ROS namens Rosjava mit Java

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!

Nutzungsumgebung

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)

0. Über die Voreinführung

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

1. Einleitung

1.1 Rosjava installieren

Installieren Sie zuerst Rosjava selbst

python


sudo apt-get install ros-kinetic-rosjava

Installieren Sie Rosjava mit

1.2 Erstellen eines Arbeitsbereichs

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

1.3 Erstellen eines Projekts oder Pakets

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

1.4 catkin_make

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

2. Führen Sie Rosjava aus

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.

* Ergänzung

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

Eine Geschichte über die Entwicklung von ROS namens Rosjava mit Java
[Hinweis] Eine Geschichte über das Ändern von Java-Build-Tools mit VS-Code
Eine Geschichte über das Erreichen der League Of Legends-API mit JAVA
Eine Geschichte über die Java 11-Unterstützung für Webdienste
Eine Geschichte über das JDK in der Java 11-Ära
Die Geschichte des Versuchs, JAVA File zu bedienen
[PHP] Geschichte der Ausgabe von PDF mit TCPDF + FPDI
Eine Geschichte über den Versuch, mit Mockito auszukommen
Eine Geschichte über die Reduzierung des Speicherverbrauchs auf 1/100 mit find_in_batches
Eine Geschichte darüber, wie catkin_make von Rosjava offline kompatibel gemacht wird
Hinweise zu Java GC
Eine Geschichte, die bei NotSerializableException steckt
Die Geschichte der Erstellung einer Task-Management-Anwendung mit Swing, Java
Informationen zum Verhalten beim Erstellen einer Dateizuordnung mit Java
Eine verwirrte Geschichte über einen ternären Operator mit mehreren bedingten Ausdrücken
Eine Geschichte über Missverständnisse im Umgang mit Java-Scannern (Memo)
Eine Geschichte, die ich mit Java nur schwer herausfordern konnte
Erfahren Sie mehr über Transaktionssicherungspunkte (mit Java)
Wirklich beängstigende (Java Anti-Pattern) Geschichte
Informationen zur Signaturauthentifizierung mit Java Time 1
Die Geschichte eines Game Launcher mit automatischer Ladefunktion [Java]
Die Geschichte der Schaffung eines Dienstes, der die Geschichte des Portfolios erzählt, indem er sich allein entwickelt
Eine Geschichte über ein in Java geschriebenes Spring Boot-Projekt, das Kotlin unterstützt
[Anfänger] Geschichte über das Studium von Java für die Jobsuche ~ 2. Monat ~
[Anfänger] Eine Geschichte über das Studium von Java für die Jobsuche ~ 3. Monat ~
[Anfänger] Eine Geschichte über das Studium von Java für die Jobsuche ~ 1. Monat ~
[Anfänger] Eine Geschichte über das Studium von Java für die Jobsuche ~ 5. Monat ~
[Anfänger] Eine Geschichte über das Studium von Java für die Jobsuche ~ 4. Monat ~
Informationen zum Zurückgeben einer Referenz in einem Java Getter
[Erstellen] Ein Memorandum über das Codieren in Java
Eine kleine süchtig machende Geschichte mit def initialize
Teilen Sie eine Zeichenfolge in Java mit ". (Dot)"
Lesen Sie eine Zeichenfolge in einer PDF-Datei mit Java
Über das Erhalten einer Zehnerstelle mit "(zweistellige Ganzzahl) / 10% 10"
Erstellen Sie eine CSR mit erweiterten Informationen in Java
Erstellen Sie mit Java + MySQL ein einfaches Bulletin Board
[Windows] [IntelliJ] [Java] [Tomcat] Erstellen Sie mit IntelliJ eine Umgebung für Tomcat 9
Lassen Sie uns mit Javas Timer einen zeitgesteuerten Prozess erstellen! !!
Eine sehr nützliche Geschichte über Rubys Struct-Klasse
[Java] Erstellen Sie eine Sammlung mit nur einem Element
Eine Geschichte über das Erstellen eines Builders, der den Builder erbt
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
Die Geschichte eines neuen Ingenieurs, der einen leidenschaftlichen Programmierer liest
Versuchen Sie, ein Java-Programm mit VS-Code zu debuggen
Ich habe versucht, den Block mit Java zu brechen (1)
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
[Jackson] Eine Geschichte über das Konvertieren des Rückgabewerts des Big Decimal-Typs mit einem benutzerdefinierten Serializer.
Eine Geschichte über die Erstellung von PKIX-Pfaden schlug fehl, als versucht wurde, mit Jenkins eine Tomcat-Bereitstellung durchzuführen
Bei der Installation von npm auf Laravel Homestead ist beim Abgleichen des Prüfsummenwerts ein Fehler aufgetreten.