¿Cómo configurar CLion para ROS?

13

¿Cómo puedo configurar C ++ IDE CLion para mostrar la documentación y la finalización automática correctamente cuando trabajo con ROS?

Jarno
fuente

Respuestas:

11
  1. Inicie CLion desde una línea de comandos con su espacio de trabajo ROS de origen (es decir, después de llamar source devel/setup.bash)
  2. Abra el CMakeLists.txt de un proyecto y dígale que lo abra como un proyecto en lugar de como un archivo.
  3. Eso es todo, tienes tu espacio de trabajo integrado :)

Depuración

  • La depuración de archivos construidos (nodos por los que se ejecuta rosrun) es fácil, simplemente los ejecuta en el IDE
  • La depuración de los archivos de inicio es más complicada, ya que el IDE no puede iniciarlos. Puede iniciar el archivo de inicio desde la línea de comandos, luego encontrar el PID del nodo que desea depurar y conectar el depurador IDE ("Ejecutar -> Adjuntar al proceso local"). Por supuesto, esto es difícil de usar para capturar errores de inicialización.
  • La depuración de nodos que son scripts de shell o scripts en idiomas no compatibles es imposible.

Hay varios pasos más que puede seguir para profundizar la integración:

  • Establezca la ruta CMake Generation en "Build, ... -> CMake -> Generation Path" en el directorio de compilación de su espacio de trabajo, para que pueda compilar solo una vez en el IDE y tener los resultados disponibles en la consola (de lo contrario, tendrá dos compilaciones diferentes, una en IDE y otra en consola). Desafortunadamente, hasta que https://youtrack.jetbrains.com/issue/CPP-1887 se corrija, no puede usar ninguna variable en la ruta de generación predeterminada, por lo que configurar el diseño de Catkin requiere un trabajo manual.
  • Para obtener automáticamente ROS al iniciar CLion, puede agregar el abastecimiento a ~/.xsessionrc. Sin embargo, esto podría tener consecuencias inesperadas. Si no desea hacer eso, utilice el siguiente enfoque.
  • Cree un iniciador de escritorio que inicie CLion desde el menú del sistema (Tablero, panel de iniciador, etc.) con el entorno correcto (si obtiene ROS en su .bashrc): edité el archivo de escritorio ~/.local/share/applications/jetbrains-clion.desktoppara que se vea de la siguiente manera. También debe asegurarse de que el archivo no se pueda escribir para sus scripts de actualización / caja de herramientas de Jetbrains, de lo contrario lo sobrescribirán con cada actualización.

.

[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
  • Si está utilizando la caja de herramientas Jetbrains para instalar CLion (que debería IMO), la ruta al binario cambia con cada actualización (hasta que se resuelva https://youtrack.jetbrains.com/issue/ALL-653 ), pero puede usa este truco para lanzar siempre la última versión instalada:

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

  • Instale el complemento de soporte de Python para poder codificar tanto en C ++ como en Python desde el IDE único.

Martin Pecka
fuente
1
Alternativamente, con Jetbrains Toolbox en el inicio automático, el archivo de escritorio se puede cambiar para iniciar la caja de herramientas con bash y, por lo tanto, al abrir proyectos o CLion a través de la aplicación Jetbrains Toolbox, también tendrá configurado el entorno.
Stefan Fabian
@StefanFabian Gran idea. ¿Podría publicar la ruta al archivo de escritorio de la caja de herramientas, que se inicia al inicio? Ni siquiera sabía que los archivos de escritorio se pueden iniciar al inicio :)
Martin Pecka
2
¡Seguro! El archivo de escritorio, si el inicio automático está habilitado en la configuración de la caja de herramientas, debe ubicarse en ~/.config/autostart/jetbrains-toolbox.desktop. Simplemente tiene que cambiar la línea Exec={TOOLBOX-COMMAND}a Exec=/bin/bash -i -c "{TOOLBOX-COMMAND}". Sin embargo, creo que la aplicación de la caja de herramientas sobrescribe este cambio (tal vez cada vez que se inicia). Por lo tanto, recomendaría hacer que el archivo sea inmutable usando sudo chattr +i jetbrains-toolbox.desktop.
Stefan Fabian
6

Integrar CLion con ROS es realmente sencillo y funciona de manera inmediata si uno sabe cómo hacerlo:

  1. Con su consola, vaya a su espacio de trabajo ROS y obtenga el setup.basharchivo correspondiente .
  2. Vaya al srcdirectorio de su espacio de trabajo.
  3. Inicie CLion desde la consola desde su srcdirectorio.
  4. Cierre cualquier proyecto abierto en CLion y seleccione Import Project from Sources
  5. Seleccione SOLO el srcdirectorio en su espacio de trabajo para la importación.
  6. Si CLion se queja de que CMakeList.txtya existe, simplemente haga clic enOpen Project
  7. CLion creará símbolos durante varios minutos, luego debería estar listo para comenzar.

Si todavía no funciona, asegúrese de eliminar todos los .ideaarchivos de su espacio de trabajo, que podrían haberse creado en intentos anteriores de usar CLion con ROS.

Jarno
fuente
¿Podría incluir también cómo ejecutar programas con archivos de inicio y soporte de depuración con clion?
Eric
Estoy usando CLion realmente solo para escribir código. Por lo demás, uso las herramientas de línea de comandos ROS. No sé si también podría configurar CLion para trabajar con ROS a este respecto.
Jarno
0

Configurar CLion con ROS

es una buena descripción de ROS Answers.

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

Max
fuente
Bienvenido a Robotics Max. Gracias por su respuesta, pero preferimos que las respuestas sean autónomas siempre que sea posible. Los enlaces tienden a pudrirse, por lo que las respuestas que dependen de un enlace pueden volverse inútiles si el contenido vinculado desaparece. Si agrega más contexto desde el enlace, es más probable que las personas encuentren útil su respuesta.
Mark Booth
0

También puede ejecutar archivos roslaunch directamente desde CLION como se menciona aquí: http://wiki.ros.org/IDEs#CLion, sin embargo, cuando inicio mis archivos de inicio en el IDE, aparece el siguiente error: roslaunch: error: no such opción: - master-logger-level

Aparentemente, el complemento inicia el archivo de inicio a través de:

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

Sin embargo, no especifiqué este parámetro yo mismo. ¿Alguien sabe por qué se introduce?

Franco
fuente
0

Enfoque nuevo y más simple:

  1. Instalar el ROS-Robot Operating Systemcomplemento en CLion:

    tienes que abrir la Configuración (desde el menú Archivo); luego, desde el panel izquierdo, seleccione el complemento para mostrar el panel del complemento en el lado derecho y seleccione la pestaña del mercado; luego busque el complemento del sistema operativo ROS-Robot e instálelo.

  2. Importe su ros_workspace por el complemento instalado en el menú Archivo:

    Para importar un espacio de trabajo existente, debe utilizar el menú Importar espacio de trabajo ROS, seleccionando la carpeta del espacio de trabajo. En este caso, el complemento buscará desde las versiones de ROS configuradas y configurará el proyecto para resolver la dependencia de ROS.


Referencia

Benyamin Jafari
fuente