Bagaimana cara mengatur CLion untuk ROS?

13

Bagaimana saya bisa mengatur C ++ IDE CLion untuk menampilkan dokumentasi dan penyelesaian otomatis dengan benar ketika bekerja dengan ROS?

Jarno
sumber

Jawaban:

11
  1. Mulai CLion dari baris perintah dengan ruang kerja ROS bersumber Anda (yaitu setelah menelepon source devel/setup.bash)
  2. Buka CMakeLists.txt proyek, dan katakan untuk membukanya sebagai proyek, bukan sebagai file.
  3. Itu saja, Anda sudah terintegrasi ruang kerja Anda :)

Debugging:

  • Men-debug file yang dibangun (node ​​yang Anda jalankan rosrun) mudah, Anda biasanya menjalankannya di IDE
  • Debugging file peluncuran lebih rumit, karena tidak dapat diluncurkan oleh IDE. Anda dapat meluncurkan file peluncuran dari command-line, kemudian menemukan PID dari node yang ingin Anda debug, dan hubungkan debugger IDE ke sana ("Jalankan -> Lampirkan ke proses lokal"). Tentu saja ini sulit digunakan untuk menangkap bug inisialisasi.
  • Tidak mungkin melakukan debugging node yang merupakan skrip shell atau skrip dalam bahasa yang tidak didukung.

Ada beberapa langkah lagi yang bisa Anda lakukan untuk memperdalam integrasi:

  • Tetapkan jalur Generasi CMake di "Bangun, ... -> CMake -> Jalur Path" ke direktori build ruang kerja Anda, sehingga Anda bisa mengkompilasi hanya sekali di IDE dan mendapatkan hasilnya tersedia di konsol (jika tidak, Anda akan memiliki dua build berbeda, satu di IDE, dan satu di konsol). Sayangnya, hingga https://youtrack.jetbrains.com/issue/CPP-1887 diperbaiki, Anda tidak dapat menggunakan variabel apa pun di jalur pembuatan default, sehingga pengaturan tata letak catkin memerlukan kerja manual.
  • Untuk secara otomatis sumber ROS saat meluncurkan CLion, Anda dapat menambahkan sumber ke ~/.xsessionrc. Namun, ini mungkin memiliki konsekuensi yang tidak terduga. Jika Anda tidak ingin melakukan itu, gunakan pendekatan berikut.
  • Buat peluncur desktop yang meluncurkan CLion dari menu sistem (Dash, panel peluncur dll.) Dengan lingkungan yang benar (jika Anda sumber ROS di Anda .bashrc): Saya mengedit file desktop ~/.local/share/applications/jetbrains-clion.desktopagar terlihat seperti berikut. Anda juga harus memastikan file tidak dapat ditulisi untuk skrip updater / Jetbrains toolbox Anda, jika tidak mereka akan menimpanya dengan setiap pembaruan.

.

[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
  • Jika Anda menggunakan Jetbrains toolbox untuk menginstal CLion (yang harus Anda IMO), jalur ke biner berubah dengan setiap pembaruan (sampai https://youtrack.jetbrains.com/issue/ALL-653 diselesaikan), tetapi Anda bisa gunakan trik ini untuk selalu meluncurkan versi terbaru yang diinstal:

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

  • Instal plugin dukungan Python untuk dapat kode dalam C ++ dan Python dari IDE tunggal.

Martin Pecka
sumber
1
Atau, dengan Jetbrains Toolbox di autostart file desktop dapat diubah untuk memulai toolbox dengan bash dan dengan demikian ketika membuka proyek atau CLion melalui aplikasi Jetbrains Toolbox, itu juga akan memiliki lingkungan yang diatur.
Stefan Fabian
@StefanFabian Ide bagus. Bisakah Anda memposting path ke file desktop toolbox, yang diluncurkan saat startup? Saya bahkan tidak menyadari bahwa file desktop dapat diluncurkan saat startup :)
Martin Pecka
2
Tentu! File desktop - jika autostart diaktifkan di pengaturan toolbox - harus berada di ~/.config/autostart/jetbrains-toolbox.desktop. Anda hanya perlu mengubah jalur Exec={TOOLBOX-COMMAND}ke Exec=/bin/bash -i -c "{TOOLBOX-COMMAND}". Namun, saya pikir aplikasi toolbox menimpa perubahan ini (mungkin setiap kali dimulai). Jadi, saya akan merekomendasikan membuat file tersebut tidak dapat diubah menggunakan sudo chattr +i jetbrains-toolbox.desktop.
Stefan Fabian
6

Mengintegrasikan CLion dengan ROS sebenarnya lurus ke depan dan bekerja di luar kotak jika ada yang tahu bagaimana melakukannya:

  1. Dengan konsol Anda, masuk ke ruang kerja ROS Anda dan sumber setup.bashfile masing-masing .
  2. Buka srcdirektori ruang kerja Anda.
  3. Mulai CLion dari konsol dari srcdirektori Anda .
  4. Tutup semua proyek terbuka di CLion dan pilih Import Project from Sources
  5. Pilih HANYA dengan srcdirektori di ruang kerja Anda untuk impor.
  6. Jika CLion mengeluh tentang yang CMakeList.txtsudah ada cukup klikOpen Project
  7. CLion akan membangun simbol selama beberapa menit, maka Anda harus siap untuk pergi.

Jika masih tidak berfungsi, pastikan Anda menghapus semua .ideafile dari ruang kerja Anda, yang mungkin telah dibuat dalam upaya sebelumnya menggunakan CLion with ROS.

Jarno
sumber
Bisakah Anda memasukkan cara menjalankan program dengan meluncurkan file dan juga men-debug dukungan dengan clion?
Eric
Saya menggunakan CLion benar-benar hanya untuk menulis kode. Untuk sisanya saya menggunakan alat baris perintah ROS. Saya tidak tahu apakah Anda bisa mengonfigurasi CLion agar berfungsi dengan ROS dalam hal ini juga.
Jarno
0

Atur CLion dengan ROS

adalah deskripsi yang bagus tentang Jawaban ROS.

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

Maks
sumber
Selamat datang di Robotics Max. Terima kasih atas jawaban Anda, tetapi kami lebih memilih jawaban yang lengkap jika memungkinkan. Tautan cenderung membusuk sehingga jawaban yang mengandalkan tautan dapat dianggap tidak berguna jika konten yang ditautkan menghilang. Jika Anda menambahkan lebih banyak konteks dari tautan, kemungkinan besar orang akan menganggap jawaban Anda bermanfaat.
Mark Booth
0

Anda juga dapat menjalankan file roslaunch dari langsung dalam CLION seperti yang disebutkan di sini: http://wiki.ros.org/IDEs#CLion namun ketika saya memulai file peluncuran saya di IDE, saya mendapatkan kesalahan berikut: roslaunch: error: no sedemikian opsi: - tingkat master-logger

Rupanya plugin memulai file peluncuran melalui:

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

Namun saya sendiri tidak menentukan parameter ini. Adakah yang tahu mengapa ini diperkenalkan?

Franco
sumber
0

Pendekatan Baru dan Sederhana:

  1. Pasang ROS-Robot Operating Systemplugin di CLion:

    Anda harus membuka Pengaturan (dari menu File); kemudian dari plugin pilih panel kiri untuk menampilkan panel plugin di sisi kanan dan pilih tab marketplace; kemudian cari plugin ROS-Robot Operating System dan instal.

  2. Impor ros_workspace Anda dengan plugin yang terpasang di menu File:

    Untuk mengimpor ruang kerja yang ada, Anda harus menggunakan menu Impor ruang kerja ROS, memilih folder ruang kerja. Dalam hal ini, plugin akan mencari dari versi ROS yang telah dikonfigurasi dan itu akan mengatur proyek untuk menyelesaikan ketergantungan ROS.


Referensi

Benyamin Jafari
sumber