Como configurar o CLion for ROS?

13

Como posso configurar o C ++ IDE CLion para exibir a documentação e a conclusão automática corretamente ao trabalhar com o ROS?

Jarno
fonte

Respostas:

11
  1. Inicie o CLion a partir de uma linha de comando com o espaço de trabalho do ROS de origem (ou seja, após a chamada source devel/setup.bash)
  2. Abra o arquivo CMakeLists.txt de um projeto e diga para abri-lo como um projeto, e não como um arquivo.
  3. É isso aí, você tem seu espaço de trabalho integrado :)

Depuração:

  • Depurando arquivos criados (nós pelos quais você executa rosrun ) é fácil, você normalmente os executa no IDE
  • A depuração de arquivos de inicialização é mais complicada, pois eles não podem ser iniciados pelo IDE. Você pode iniciar o arquivo de inicialização na linha de comando, encontrar o PID do nó que deseja depurar e conectar o depurador IDE a ele ("Executar -> Anexar ao processo local"). É claro que isso é difícil de usar para capturar erros de inicialização.
  • A depuração de nós que são scripts de shell ou scripts em idiomas não suportados é impossível.

Existem várias etapas a serem seguidas para aprofundar a integração:

  • Defina o caminho de geração do CMake em "Build, ... -> CMake -> Path da geração" para o diretório de construção do seu espaço de trabalho, para que você possa compilar apenas uma vez no IDE e ter os resultados disponíveis no console (caso contrário, você terá duas compilações diferentes, uma no IDE e outra no console). Infelizmente, até que https://youtrack.jetbrains.com/issue/CPP-1887 seja corrigido, você não pode usar nenhuma variável no caminho de geração padrão, portanto, a configuração do layout catkin requer algum trabalho manual.
  • Para gerar automaticamente o ROS ao iniciar o CLion, você pode adicionar o sourcing a ~/.xsessionrc. Isso pode, no entanto, ter consequências inesperadas. Se você não quiser fazer isso, use a seguinte abordagem.
  • Crie um iniciador de área de trabalho que inicie o CLion no menu do sistema (Dash, painel do iniciador etc.) com o ambiente correto (se você fornecer o ROS no seu .bashrc): Editei o arquivo da área de trabalho ~/.local/share/applications/jetbrains-clion.desktoppara se parecer com o seguinte. Você também deve garantir que o arquivo não seja gravável para os scripts de atualização / caixa de ferramentas Jetbrains, caso contrário, eles serão substituídos a cada atualização.

.

[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
  • Se você estiver usando a caixa de ferramentas Jetbrains para instalar o CLion (que você deve IMO), o caminho para o binário muda a cada atualização (até https://youtrack.jetbrains.com/issue/ALL-653 ser resolvido), mas você pode use este truque para sempre ativar a versão mais recente instalada:

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

  • Instale o plug-in de suporte do Python para poder codificar em C ++ e Python a partir do IDE único.

Martin Pecka
fonte
1
Como alternativa, com o Jetbrains Toolbox na inicialização automática, o arquivo da área de trabalho pode ser alterado para iniciar o toolbox com bash e, assim, ao abrir projetos ou CLion através do aplicativo Jetbrains Toolbox, ele também terá o ambiente configurado.
Stefan Fabian
@StefanFabian Great idea. Você poderia postar o caminho para o arquivo da área de trabalho da caixa de ferramentas, que é iniciado na inicialização? Eu nem estava ciente de que arquivos do desktop pode ser lançado no arranque :)
Martin Pecka
2
Certo! O arquivo da área de trabalho - se a inicialização automática estiver ativada nas configurações da caixa de ferramentas - deve estar localizado em ~/.config/autostart/jetbrains-toolbox.desktop. Você simplesmente tem que mudar a linha Exec={TOOLBOX-COMMAND}para Exec=/bin/bash -i -c "{TOOLBOX-COMMAND}". No entanto, acho que o aplicativo da caixa de ferramentas substitui essa alteração (talvez toda vez que é iniciada). Então, eu recomendo tornar esse arquivo imutável usando sudo chattr +i jetbrains-toolbox.desktop.
Stefan Fabian
6

A integração do CLion ao ROS é realmente simples e funciona imediatamente, se alguém souber como fazê-lo:

  1. Com seu console, entre na área de trabalho do ROS e obtenha os respectivos setup.bash arquivo.
  2. Vou ao src diretório do seu espaço de trabalho.
  3. Inicie o CLion no console a partir do seu src diretório.
  4. Feche todos os projetos abertos no CLion e selecione Import Project from Sources
  5. Selecione SOMENTE osrc diretório no seu espaço de trabalho para a importação.
  6. Se o CLion se queixar de CMakeList.txtjá existir, basta clicar emOpen Project
  7. O CLion criará símbolos por vários minutos, então você deve estar pronto para começar.

Se ainda assim não funcionar, exclua todos os .ideaarquivos do seu espaço de trabalho, que podem ter sido criados nas tentativas anteriores de usar o CLion com o ROS.

Jarno
fonte
Você poderia incluir como executar programas com arquivos de inicialização e suporte à depuração com o clion também?
19717 Eric Eric
Estou usando o CLion realmente apenas para escrever código. De resto, uso as ferramentas de linha de comando do ROS. Não sei se você também pode configurar o CLion para funcionar com o ROS nesse aspecto.
Jarno
0

Configurar CLion com ROS

é uma boa descrição no ROS Answers.

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

Máx.
fonte
Bem-vindo ao Robotics Max. Obrigado pela sua resposta, mas preferimos que as respostas sejam independentes sempre que possível. Os links tendem a apodrecer, de modo que as respostas que dependem de um link podem se tornar inúteis se o conteúdo vinculado desaparecer. Se você adicionar mais contexto a partir do link, é mais provável que as pessoas considerem sua resposta útil.
Mark Booth
0

Você também pode executar arquivos roslaunch diretamente do CLION, conforme mencionado aqui: http://wiki.ros.org/IDEs#CLion, no entanto, quando inicio meus arquivos de inicialização no IDE, recebo o seguinte erro: roslaunch: error: no opção: --master-logger-level

Aparentemente, o plugin inicia o arquivo de inicialização via:

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

No entanto, eu não especifiquei esse parâmetro pessoalmente. Alguém sabe por que é introduzido?

Franco
fonte
0

Abordagem nova e mais simples:

  1. Instale o ROS-Robot Operating Systemplugin no CLion:

    você precisa abrir as configurações (no menu Arquivo); depois, no painel esquerdo, selecione o plug-in para mostrar o painel do plug-in no lado direito e selecione a guia marketplace; procure o plug-in ROS-Robot Operating System e instale-o.

  2. Importe seu ros_workspace pelo plug-in instalado no menu Arquivo:

    Para importar um espaço de trabalho existente, é necessário usar o menu Importar espaço de trabalho do ROS, selecionando a pasta do espaço de trabalho. Nesse caso, o plug-in procurará nas versões ROS configuradas e configurará o projeto para resolver a dependência do ROS.


Referência

Benyamin Jafari
fonte