Как настроить CLion для ROS?


13

Как я могу настроить C ++ IDE CLion для корректного отображения документации и автоматического завершения при работе с ROS?

Ответы:


11
  1. Запустите CLion из командной строки с вашим рабочим пространством ROS (т.е. после вызова source devel/setup.bash)
  2. Откройте проект CMakeLists.txt и скажите, чтобы он открывался как проект, а не как файл.
  3. Вот и все, ваше рабочее пространство интегрировано :)

Отладка:

  • Отладка встроенных файлов (через которые вы проходите rosrun) очень проста, вы просто запускаете их в IDE
  • Отладка файлов запуска более сложна, так как они не могут быть запущены IDE. Вы можете запустить файл запуска из командной строки, затем найти PID узла, который вы хотите отладить, и подключить к нему отладчик IDE («Выполнить -> Присоединить к локальному процессу»). Конечно, это трудно использовать для выявления ошибок инициализации.
  • Отладка узлов, которые являются сценариями оболочки или сценариями на неподдерживаемых языках, невозможна.

Есть еще несколько шагов, которые вы могли бы сделать, чтобы углубить интеграцию:

  • Задайте путь генерации CMake в «Build, ... -> CMake -> Generation Path» для каталога сборки вашего рабочего пространства, чтобы вы могли компилировать только один раз в IDE и иметь результаты, доступные в консоли (в противном случае вы получите две разные сборки, одна в IDE и одна в консоли). К сожалению, пока https://youtrack.jetbrains.com/issue/CPP-1887 не исправлен, вы не можете использовать какие-либо переменные в пути генерации по умолчанию, поэтому настройка макета сережки требует некоторой ручной работы.
  • Чтобы автоматически получать ROS при запуске CLion, вы можете добавить источник в ~/.xsessionrc. Это может, однако, иметь неожиданные последствия. Если вы не хотите этого делать, используйте следующий подход.
  • Создайте средство запуска на рабочем столе, которое запускает CLion из системного меню (панель инструментов, панель запуска и т. Д.) С правильной средой (если вы используете ROS в своем источнике .bashrc): я отредактировал файл рабочего стола, ~/.local/share/applications/jetbrains-clion.desktopчтобы он выглядел следующим образом. Вы также должны убедиться, что файл недоступен для записи для ваших скриптов обновлений / набора инструментов Jetbrains, иначе они будут перезаписывать его при каждом обновлении.

,

[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
  • Если вы используете набор инструментов Jetbrains для установки CLion (который должен быть IMO), путь к бинарному файлу меняется с каждым обновлением (пока не будет решен https://youtrack.jetbrains.com/issue/ALL-653 ), но вы можете используйте этот трюк, чтобы всегда запускать последнюю установленную версию:

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

  • Установите плагин поддержки Python, чтобы иметь возможность кодировать на C ++ и Python из единой IDE.


1
В качестве альтернативы, при автоматической загрузке Jetbrains Toolbox файл рабочего стола можно изменить на запуск панели инструментов с bash, и, таким образом, при открытии проектов или CLion через приложение Jetbrains Toolbox также будет настроена среда.
Стефан Фабиан

@StefanFabian Отличная идея. Не могли бы вы опубликовать путь к файлу рабочего стола панели инструментов, который запускается при запуске? Я даже не знал, что файлы рабочего стола могут быть запущены при запуске :)
Martin

2
Конечно! Файл рабочего стола - если автозапуск включен в настройках панели инструментов - должен находиться по адресу ~/.config/autostart/jetbrains-toolbox.desktop. Вы просто должны изменить строку Exec={TOOLBOX-COMMAND}на Exec=/bin/bash -i -c "{TOOLBOX-COMMAND}". Тем не менее, я думаю, что приложение панели инструментов перезаписывает это изменение (возможно, каждый раз, когда оно начинается). Итак, я бы рекомендовал сделать этот файл неизменным с помощью sudo chattr +i jetbrains-toolbox.desktop.
Стефан Фабиан

6

Интеграция CLion с ROS на самом деле проста и работает из коробки, если вы знаете, как это сделать:

  1. С вашей консолью перейдите в рабочее пространство ROS и создайте соответствующий setup.bashфайл.
  2. Перейдите в srcкаталог вашего рабочего пространства.
  3. Запустите CLion из консоли из вашего srcкаталога.
  4. Закройте все открытые проекты в CLion и выберите Import Project from Sources
  5. Выберите ТОЛЬКО в srcкаталог в вашем рабочем пространстве для импорта.
  6. Если CLion жалуется на CMakeList.txtуже существующее, просто нажмитеOpen Project
  7. CLion будет строить символы в течение нескольких минут, тогда вы должны быть готовы к работе.

Если это все еще не работает, убедитесь, что вы удалили все .ideaфайлы из вашей рабочей области, которые могли быть созданы в предыдущих попытках использования CLion с ROS.


Не могли бы вы указать, как запускать программы с файлами запуска и поддерживать отладку с помощью clion?
Эрик

Я использую CLion действительно только для написания кода. В остальном я использую инструменты командной строки ROS. Я не знаю, можно ли настроить CLion для работы с ROS в этом отношении.
Ярно

0

Настройка CLion с ROS

хорошее описание на Ответы ROS.

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


Добро пожаловать в робототехнику Макс. Спасибо за ваш ответ, но мы предпочитаем, чтобы ответы были автономными, где это возможно. Ссылки имеют тенденцию гнить, поэтому ответы, основанные на ссылке, могут оказаться бесполезными, если связанный контент исчезнет. Если вы добавите больше контекста по ссылке, более вероятно, что люди найдут ваш ответ полезным.
Марк Бут

0

Вы также можете запускать файлы roslaunch непосредственно из CLION, как указано здесь: http://wiki.ros.org/IDEs#CLion, однако, когда я запускаю свои файлы запуска в IDE, я получаю следующую ошибку: roslaunch: error: нет такого опция: -master-logger-level

Видимо плагин запускает файл запуска через:

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

Однако я не указал этот параметр сам. Кто-нибудь знает, почему это вводится?


0

Новый и самый простой подход:

  1. Установите ROS-Robot Operating Systemплагин на CLion:

    вам нужно открыть Настройки (из меню Файл); затем с левой панели выберите плагин, чтобы отобразить панель плагинов с правой стороны, и выберите вкладку рынка; Затем найдите плагин ROS-Robot Operating System и установите его.

  2. Импортируйте ros_workspace с помощью установленного плагина в меню «Файл»:

    Чтобы импортировать существующее рабочее пространство, вы должны использовать меню Import ROS workspace, выбрав папку рабочего пространства. В этом случае плагин будет искать в настроенных версиях ROS и настроит проект для разрешения зависимости ROS.


Ссылка

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.