Come installare CLion per ROS?


13

Come posso configurare il Cion IDE C ++ per visualizzare correttamente la documentazione e il completamento automatico quando lavoro con ROS?

Risposte:


11
  1. Avviare CLion da una riga di comando con l'area di lavoro ROS di provenienza (ovvero dopo aver chiamato source devel/setup.bash)
  2. Apri un CMakeLists.txt di un progetto e digli di aprirlo come progetto anziché come file.
  3. Ecco fatto, hai integrato il tuo spazio di lavoro :)

Debug:

  • Il debug dei file creati (nodi che attraversi rosrun) è semplice, normalmente li esegui nell'IDE
  • Il debug dei file di avvio è più complicato, in quanto non possono essere avviati dall'IDE. È possibile avviare il file di avvio dalla riga di comando, quindi trovare il PID del nodo che si desidera eseguire il debug e collegare il debugger IDE ad esso ("Esegui -> Collega al processo locale"). Naturalmente questo è difficile da usare per catturare i bug di inizializzazione.
  • Il debug di nodi che sono script di shell o script in lingue non supportate è impossibile.

Ci sono molti altri passaggi che potresti fare per approfondire l'integrazione:

  • Imposta il percorso di generazione di CMake in "Build, ... -> CMake -> Path di generazione" sulla directory di build dello spazio di lavoro, in modo che tu possa compilare una sola volta nell'IDE e avere i risultati disponibili nella console (altrimenti, avrai due build diverse, una in IDE e una in console). Sfortunatamente, fino a quando https://youtrack.jetbrains.com/issue/CPP-1887 è stato risolto, non è possibile utilizzare alcuna variabile nel percorso di generazione predefinito, quindi l'impostazione del layout di catkin richiede un po 'di lavoro manuale.
  • Per generare automaticamente ROS all'avvio di CLion, è possibile aggiungere il sourcing a ~/.xsessionrc. Ciò potrebbe tuttavia avere conseguenze inattese. Se non vuoi farlo, usa il seguente approccio.
  • Crea un programma di avvio desktop che avvia CLion dal menu di sistema (Dash, pannello di avvio, ecc.) Con l'ambiente corretto (se hai origine ROS nel tuo .bashrc): ho modificato il file desktop ~/.local/share/applications/jetbrains-clion.desktopin modo che assomigli a quanto segue. Devi anche assicurarti che il file non sia scrivibile per i tuoi script di aggiornamento / toolbox Jetbrains, altrimenti lo sovrascriveranno ad ogni aggiornamento.

.

[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 stai usando la toolbox Jetbrains per installare CLion (che dovresti usare IMO), il percorso del binario cambia ad ogni aggiornamento (fino a quando https://youtrack.jetbrains.com/issue/ALL-653 viene risolto), ma puoi usa questo trucco per lanciare sempre l'ultima versione installata:

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

  • Installa il plug-in di supporto Python per poter codificare sia in C ++ che in Python dal singolo IDE.


1
In alternativa, con Jetbrains Toolbox all'avvio automatico, il file desktop può essere modificato per avviare toolbox con bash e quindi quando si aprono progetti o CLion tramite l'app Jetbrains Toolbox, anche l'ambiente sarà configurato.
Stefan Fabian,

@StefanFabian Ottima idea. Potresti pubblicare il percorso nel file desktop della casella degli strumenti, che viene avviato all'avvio? Non ero nemmeno a conoscenza del fatto che i file desktop possono essere avviati all'avvio :)
Martin Pecka il

2
Sicuro! Il file desktop - se l'avvio automatico è abilitato nelle impostazioni della casella degli strumenti - dovrebbe trovarsi in ~/.config/autostart/jetbrains-toolbox.desktop. Devi semplicemente cambiare la linea Exec={TOOLBOX-COMMAND}in Exec=/bin/bash -i -c "{TOOLBOX-COMMAND}". Tuttavia, penso che l'app Toolbox sovrascriva questa modifica (forse ogni volta che si avvia). Quindi, consiglierei di rendere quel file immutabile usando sudo chattr +i jetbrains-toolbox.desktop.
Stefan Fabian,

6

L'integrazione di CLion con ROS è in realtà semplice e pronta all'uso se si sa come farlo:

  1. Con la tua console, vai nell'area di lavoro ROS e dai il setup.bashfile corrispondente .
  2. Vai alla srcdirectory del tuo spazio di lavoro.
  3. Avviare CLion dalla console dalla propria srcdirectory.
  4. Chiudi tutti i progetti aperti in CLion e seleziona Import Project from Sources
  5. Seleziona SOLO la srcdirectory nell'area di lavoro per l'importazione.
  6. Se CLion si lamenta di CMakeList.txtgià esistenti, è sufficiente fare clicOpen Project
  7. CLion costruirà i simboli per diversi minuti, quindi dovresti essere pronto per partire.

Se il problema persiste, assicurarsi di eliminare tutti i .ideafile dall'area di lavoro, che potrebbero essere stati creati in precedenti tentativi di utilizzo di CLion con ROS.


Potresti includere anche come eseguire programmi con file di avvio e supporto per il debug con Clion?
Eric,

Sto usando CLion davvero solo per scrivere codice. Per il resto utilizzo gli strumenti da riga di comando ROS. Non so se sia possibile configurare CLion per lavorare con ROS anche sotto questo aspetto.
Jarno,

0

Setup CLion con ROS

è una bella descrizione delle risposte ROS.

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


Benvenuti in Robotica Max. Grazie per la tua risposta, ma preferiamo che le risposte siano autosufficienti ove possibile. I collegamenti tendono a marcire, quindi le risposte che si basano su un collegamento possono essere rese inutili se il contenuto collegato scompare. Se aggiungi più contesto dal link, è più probabile che le persone troveranno la tua risposta utile.
Mark Booth

0

Puoi anche eseguire i file di roslaunch direttamente da CLION come indicato qui: http://wiki.ros.org/IDEs#CLion tuttavia quando avvio i miei file di avvio nell'IDE, viene visualizzato il seguente errore: roslaunch: errore: no opzione: --master-logger-level

Apparentemente il plugin avvia il file di avvio tramite:

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

Tuttavia, non ho specificato questo parametro da solo. Qualcuno sa perché è stato introdotto?


0

Nuovo e più semplice approccio:

  1. Installa ROS-Robot Operating Systemplugin su CLion:

    devi aprire le Impostazioni (dal menu File); quindi dal pannello di sinistra selezionare plugin per mostrare il pannello di plugin nella parte destra e selezionare la scheda marketplace; quindi cerca il plugin ROS-Robot Operating System e installalo.

  2. Importa il tuo ros_workspace dal plug-in installato nel menu File:

    Per importare un'area di lavoro esistente, è necessario utilizzare il menu Importa area di lavoro ROS, selezionando la cartella dell'area di lavoro. In questo caso, il plug-in cercherà dalle versioni ROS configurate e imposterà il progetto al fine di risolvere la dipendenza ROS.


Riferimento

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.