Wie richte ich CLion für ROS ein?

13

Wie kann ich C ++ IDE CLion so einrichten , dass die Dokumentation und die automatische Vervollständigung bei der Arbeit mit ROS korrekt angezeigt werden?

Jarno
quelle

Antworten:

11
  1. Starten Sie CLion über eine Befehlszeile mit Ihrem ROS-Arbeitsbereich (dh nach dem Aufruf source devel/setup.bash)
  2. Öffnen Sie die Datei CMakeLists.txt eines Projekts und teilen Sie ihr mit, dass sie als Projekt und nicht als Datei geöffnet werden soll.
  3. Das war's, du hast deinen Arbeitsbereich integriert :)

Debugging:

  • Das Debuggen erstellter Dateien (Knoten, die Sie durchlaufen rosrun) ist einfach, Sie führen sie normalerweise nur in der IDE aus
  • Das Debuggen von Startdateien ist komplizierter, da sie von der IDE nicht gestartet werden können. Sie können die Startdatei über die Befehlszeile starten, dann die PID des zu debuggenden Knotens ermitteln und den IDE-Debugger damit verbinden ("Ausführen -> An lokalen Prozess anhängen"). Natürlich ist dies für die Erfassung von Initialisierungsfehlern schwierig.
  • Das Debuggen von Knoten, die Shell-Skripte oder Skripte in nicht unterstützten Sprachen sind, ist nicht möglich.

Es gibt mehrere weitere Schritte, mit denen Sie die Integration vertiefen können:

  • Legen Sie den CMake-Generierungspfad in "Build, ... -> CMake -> Generierungspfad" auf das Buildverzeichnis Ihres Arbeitsbereichs fest, damit Sie nur einmal in der IDE kompilieren können und die Ergebnisse in der Konsole verfügbar sind (andernfalls haben Sie zwei verschiedene Builds (eines in IDE und eines in Console). Leider können Sie im Standard-Generierungspfad keine Variablen verwenden , bis https://youtrack.jetbrains.com/issue/CPP-1887 behoben ist. Das Einrichten des Catkin-Layouts erfordert daher einige manuelle Arbeit.
  • Um ROS beim Starten von CLion automatisch zu beziehen, können Sie das Sourcing zu hinzufügen ~/.xsessionrc. Dies kann jedoch unerwartete Folgen haben. Wenn Sie das nicht möchten, gehen Sie wie folgt vor.
  • Erstellen Sie einen Desktop-Launcher, der CLion über das Systemmenü (Dash, Launcher-Panel usw.) mit der richtigen Umgebung startet (wenn Sie ROS in Ihrem Quellcode verwenden .bashrc): Ich habe die Desktop-Datei ~/.local/share/applications/jetbrains-clion.desktopfolgendermaßen bearbeitet . Sie müssen auch sicherstellen, dass die Datei für Ihre Updater-Skripte / Jetbrains-Toolbox nicht beschreibbar ist, da sie sonst bei jedem Update überschrieben werden.

.

[Desktop Entry]
Version=1.0
Type=Application
Name=CLion
Icon=/home/peci1/bin/jetbrains/apps/CLion/.icon.svg
Exec=bash -i -c "/path/to/clion/bin/clion.sh" %f
Comment=A smart cross-platform IDE for C and C++
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-clion
  • Wenn Sie zur Installation von CLion die Jetbrains-Toolbox verwenden (die Sie IMO sollten), ändert sich der Pfad zur Binärdatei mit jedem Update (bis https://youtrack.jetbrains.com/issue/ALL-653 aufgelöst ist), aber Sie können Verwenden Sie diesen Trick, um immer die aktuellste installierte Version zu starten:

    Exec=bash -i -c "$(ls -td /path/to/jetbrains/apps/CLion/ch-0/*/ | head -n1)/bin/clion.sh" %f

  • Installieren Sie das Python-Support-Plug-in, um sowohl C ++ als auch Python von der einzelnen IDE aus codieren zu können.

Martin Pecka
quelle
1
Alternativ kann mit Jetbrains Toolbox beim Autostart die Desktop-Datei so geändert werden, dass die Toolbox mit Bash gestartet wird. Wenn Sie also Projekte oder CLion über die Jetbrains Toolbox-App öffnen, wird auch die Umgebung eingerichtet.
Stefan Fabian
@StefanFabian Tolle Idee. Könnten Sie bitte den Pfad zur Desktop-Datei der Toolbox posten, die beim Start gestartet wird? Mir war nicht einmal bewusst, dass Desktop-Dateien beim Start gestartet werden können :)
Martin Pecka
2
Sicher! Die Desktop-Datei sollte sich - falls Autostart in den Toolbox-Einstellungen aktiviert ist - unter befinden ~/.config/autostart/jetbrains-toolbox.desktop. Sie müssen lediglich die Zeile Exec={TOOLBOX-COMMAND}in ändern Exec=/bin/bash -i -c "{TOOLBOX-COMMAND}". Ich denke jedoch, dass die Toolbox-App diese Änderung überschreibt (möglicherweise bei jedem Start). Daher würde ich empfehlen, diese Datei mit unveränderlich zu machen sudo chattr +i jetbrains-toolbox.desktop.
Stefan Fabian
6

Die Integration von CLion in ROS ist eigentlich unkompliziert und funktioniert sofort, wenn man weiß, wie es geht:

  1. Gehen Sie mit Ihrer Konsole in Ihren ROS-Arbeitsbereich und geben Sie die entsprechende setup.bashDatei als Quelle ein .
  2. Wechseln Sie in das srcVerzeichnis Ihres Arbeitsbereichs.
  3. Starten Sie CLion von der Konsole aus Ihrem srcVerzeichnis.
  4. Schließen Sie alle geöffneten Projekte in CLion und wählen Sie Import Project from Sources
  5. Wählen Sie NUR das srcVerzeichnis in Ihrem Arbeitsbereich für den Import aus.
  6. Wenn sich CLion über CMakeList.txtbereits bestehende beschwert, klicken Sie einfach aufOpen Project
  7. CLion erstellt einige Minuten lang Symbole, dann sollten Sie einsatzbereit sein.

Wenn dies immer noch nicht funktioniert, stellen Sie sicher, dass Sie alle .ideaDateien aus Ihrem Arbeitsbereich löschen , die möglicherweise in früheren Versuchen erstellt wurden, CLion mit ROS zu verwenden.

Jarno
quelle
Könnten Sie einschließen, wie Programme mit Startdateien ausgeführt und die Unterstützung für das Debuggen mit clion ebenfalls unterstützt werden?
Eric
Ich benutze CLion wirklich nur zum Schreiben von Code. Für den Rest benutze ich die ROS-Kommandozeilen-Tools. Ich weiß nicht, ob Sie CLion auch in dieser Hinsicht für die Zusammenarbeit mit ROS konfigurieren können.
Jarno
0

Richten Sie CLion mit ROS ein

ist eine nette Beschreibung auf ROS Answers.

https://answers.ros.org/question/284786/setup-clion-with-ros/

Max
quelle
Willkommen bei Robotics Max. Vielen Dank für Ihre Antwort, aber wir bevorzugen Antworten, die möglichst in sich geschlossen sind. Links neigen dazu zu verrotten, so dass Antworten, die auf einem Link beruhen, unbrauchbar werden können, wenn der verlinkte Inhalt verschwindet. Wenn Sie über den Link mehr Kontext hinzufügen, ist es wahrscheinlicher, dass Personen Ihre Antwort als hilfreich empfinden.
Mark Booth
0

Sie können Roslaunch-Dateien auch direkt in CLION ausführen, wie hier erwähnt: http://wiki.ros.org/IDEs#CLion. Wenn ich meine Startdateien in der IDE starte, wird jedoch die folgende Fehlermeldung angezeigt: roslaunch: error: no such Option: --master-logger-level

Anscheinend startet das Plugin die Startdatei über:

/opt/ros/kinetic/bin/roslaunch --master-logger-level=info FOLDERNAME/FILENAME

Diesen Parameter habe ich jedoch nicht selbst angegeben. Weiß jemand, warum es eingeführt wird?

Franco
quelle
0

Neuer und einfachster Ansatz:

  1. ROS-Robot Operating SystemPlugin auf CLion installieren :

    Sie müssen die Einstellungen öffnen (aus dem Menü Datei); Wählen Sie dann im linken Fenster das Plugin aus, um das Plugin-Fenster auf der rechten Seite anzuzeigen, und wählen Sie die Registerkarte marketplace aus. Suchen Sie dann nach dem ROS-Robot Operating System Plugin und installieren Sie es.

  2. Importieren Sie Ihren ros_workspace über das installierte Plugin im Menü Datei:

    Um einen vorhandenen Arbeitsbereich zu importieren, müssen Sie das Menü ROS-Arbeitsbereich importieren verwenden und den Arbeitsbereichsordner auswählen. In diesem Fall sucht das Plugin anhand der konfigurierten ROS-Versionen und richtet das Projekt ein, um die ROS-Abhängigkeit aufzulösen.


Referenz

Benyamin Jafari
quelle