Jak skonfigurować CLion dla ROS?

13

Jak mogę skonfigurować Cion IDE CLion, aby poprawnie wyświetlał dokumentację i automatyczne uzupełnianie podczas pracy z ROS?

Jarno
źródło

Odpowiedzi:

11
  1. Uruchom CLion z wiersza polecenia w swoim obszarze roboczym ROS (np. Po wywołaniu source devel/setup.bash)
  2. Otwórz plik CMakeLists.txt projektu i powiedz mu, aby otworzył go jako projekt, a nie jako plik.
  3. To wszystko, masz zintegrowany obszar roboczy :)

Debugowanie:

  • Debugowanie wbudowanych plików (węzłów, przez które biegniesz rosrun) jest łatwe, po prostu zwykle uruchamiasz je w IDE
  • Debugowanie plików uruchamiania jest bardziej skomplikowane, ponieważ nie można ich uruchomić w środowisku IDE. Możesz uruchomić plik uruchamiania z wiersza polecenia, a następnie znaleźć PID węzła, który chcesz debugować, i podłączyć do niego debuger IDE („Uruchom -> Dołącz do procesu lokalnego”). Oczywiście jest to trudne w użyciu do przechwytywania błędów inicjalizacji.
  • Debugowanie węzłów, które są skryptami powłoki lub skryptami w nieobsługiwanych językach, jest niemożliwe.

Istnieje kilka dodatkowych kroków, które możesz zrobić, aby pogłębić integrację:

  • Ustaw ścieżkę generowania CMake w „Kompilacji, ... -> CMake -> Ścieżka generacji” do katalogu kompilacji obszaru roboczego, abyś mógł kompilować tylko raz w IDE i mieć wyniki dostępne w konsoli (w przeciwnym razie będziesz mieć dwie różne wersje, jedna w IDE i jedna w konsoli). Niestety do https://youtrack.jetbrains.com/issue/CPP-1887 zostanie naprawiony, nie można używać żadnych zmiennych w domyślnej ścieżce generowania, więc skonfigurowanie układu catkin wymaga trochę pracy ręcznej.
  • Aby automatycznie pozyskiwać ROS podczas uruchamiania CLion, możesz dodać źródło do ~/.xsessionrc . Może to jednak mieć nieoczekiwane konsekwencje. Jeśli nie chcesz tego robić, zastosuj następujące podejście.
  • Utwórz program uruchamiający na pulpicie, który uruchamia CLion z menu systemowego (Dash, panel uruchamiania itp.) Z odpowiednim środowiskiem (jeśli źródłowy ROS znajduje się w twoim .bashrc): Edytowałem plik pulpitu, ~/.local/share/applications/jetbrains-clion.desktopaby wyglądał następująco. Musisz także upewnić się, że plik nie jest zapisywalny dla twoich skryptów aktualizujących / przybornika Jetbrains, w przeciwnym razie nadpisują go przy każdej aktualizacji.

.

[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
  • Jeśli używasz zestawu narzędzi Jetbrains do instalowania CLion (co powinieneś IMO), ścieżka do pliku binarnego zmienia się przy każdej aktualizacji (dopóki https://youtrack.jetbrains.com/issue/ALL-653 nie zostanie rozwiązany), ale możesz użyj tej sztuczki, aby zawsze uruchamiać najnowszą zainstalowaną wersję:

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

  • Zainstaluj wtyczkę obsługującą Python, aby móc kodować zarówno w C ++, jak i Python z jednego IDE.

Martin Pecka
źródło
1
Alternatywnie, przy Jetbrains Toolbox przy autostartie plik na pulpicie można zmienić, aby uruchomić Toolbox z bash, a zatem podczas otwierania projektów lub CLion za pomocą aplikacji Jetbrains Toolbox, będzie również skonfigurowane środowisko.
Stefan Fabian
@StefanFabian Świetny pomysł. Czy możesz podać ścieżkę do pliku na pulpicie zestawu narzędzi, który jest uruchamiany podczas uruchamiania? Nie wiedziałem nawet, że pliki na komputer można uruchomić przy starcie :)
Martin Pecka,
2
Pewnie! Plik na pulpicie - jeśli w ustawieniach Toolbox jest włączony autostart - powinien znajdować się na ~/.config/autostart/jetbrains-toolbox.desktop. Musisz po prostu zmienić linię Exec={TOOLBOX-COMMAND}na Exec=/bin/bash -i -c "{TOOLBOX-COMMAND}". Myślę jednak, że aplikacja przybornika zastępuje tę zmianę (być może za każdym razem, gdy się zaczyna). Polecam więc uczynić ten plik niezmiennym przy użyciu sudo chattr +i jetbrains-toolbox.desktop.
Stefan Fabian,
6

Integracja CLion z ROS jest naprawdę prosta i działa od razu po wyjęciu z pudełka, jeśli ktoś wie, jak to zrobić:

  1. Za pomocą konsoli przejdź do obszaru roboczego ROS i uzyskaj odpowiedni setup.bashplik.
  2. Przejdź do srckatalogu swojego obszaru roboczego.
  3. Uruchom CLion z konsoli z srckatalogu.
  4. Zamknij wszystkie otwarte projekty w CLion i wybierz Import Project from Sources
  5. Wybierz TYLKOsrc katalogu, w obszarze roboczym na przywóz.
  6. Jeśli CLion narzeka na CMakeList.txtjuż istniejące, po prostu kliknijOpen Project
  7. CLion będzie budował symbole przez kilka minut, a potem powinieneś być gotowy.

Jeśli nadal nie działa, upewnij się, że usunąłeś wszystkie .ideapliki z obszaru roboczego, które mogły zostać utworzone podczas poprzednich prób używania CLion z ROS.

Jarno
źródło
Czy możesz również podać, jak uruchamiać programy z plikami uruchamiania i obsługą debugowania za pomocą clion?
Eric
Używam CLion tak naprawdę tylko do pisania kodu. Do reszty używam narzędzi wiersza poleceń ROS. Nie wiem, czy możesz skonfigurować CLion do pracy z ROS również pod tym względem.
Jarno
0

Skonfiguruj CLion z ROS

to ładny opis na ROS Answers.

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

Max
źródło
Witamy w Robotics Max. Dziękuję za odpowiedź, ale wolimy, aby odpowiedzi były samodzielne tam, gdzie to możliwe. Linki mają tendencję do gnicia, więc odpowiedzi, które opierają się na łączu, mogą stać się bezużyteczne, jeśli połączona zawartość zniknie. Jeśli dodasz więcej kontekstu z linku, bardziej prawdopodobne jest, że inni uznają twoją odpowiedź za przydatną.
Mark Booth
0

Możesz także uruchamiać pliki roslaunch bezpośrednio z CLION, jak wspomniano tutaj: http://wiki.ros.org/IDEs#CLion, jednak kiedy uruchamiam pliki uruchamiania w IDE, pojawia się następujący błąd: roslaunch: error: no such opcja: - master-logger-level

Najwyraźniej wtyczka uruchamia plik uruchamiania przez:

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

Jednak sam nie określiłem tego parametru. Czy ktoś wie, dlaczego został wprowadzony?

Franco
źródło
0

Nowe i najprostsze podejście:

  1. Zainstaluj ROS-Robot Operating Systemwtyczkę na CLion:

    musisz otworzyć Ustawienia (z menu Plik); następnie z lewego panelu wybierz wtyczkę, aby wyświetlić panel wtyczek po prawej stronie i wybierz kartę marketplace; następnie wyszukaj wtyczkę systemu operacyjnego ROS-Robot i zainstaluj ją.

  2. Zaimportuj swój ros_workspace za pomocą zainstalowanej wtyczki w menu Plik:

    Aby zaimportować istniejący obszar roboczy, musisz użyć menu Importuj obszar roboczy ROS, wybierając folder obszaru roboczego. W takim przypadku wtyczka wyszuka skonfigurowane wersje ROS i skonfiguruje projekt w celu rozwiązania zależności ROS.


Odniesienie

Benyamin Jafari
źródło