ROS के लिए CLION कैसे सेटअप करें?


13

जब मैं ROS के साथ काम कर रहा हूं, तो मैं डॉक्यूमेंटेशन और ऑटो कम्प्लीट करने के लिए C ++ IDE CLION को कैसे सेटअप कर सकता हूं ?

जवाबों:


11
  1. अपने खट्टे आरओएस कार्यक्षेत्र के साथ एक कमांडलाइन से सीएलियन शुरू करें (यानी कॉल करने के बाद source devel/setup.bash)
  2. किसी प्रोजेक्ट के CMakeLists.txt को खोलें, और इसे एक फाइल के बजाय एक प्रोजेक्ट के रूप में खोलने के लिए कहें।
  3. यही है, आपने अपना कार्यक्षेत्र एकीकृत कर लिया है :)

डिबगिंग:

  • निर्मित फ़ाइलों को डीबग करना (नोड्स जिसके माध्यम से आप चलते हैं rosrun) आसान है, आप बस सामान्य रूप से आईडीई में चलाते हैं
  • लॉन्च फ़ाइलों को डीबग करना अधिक जटिल है, क्योंकि वे आईडीई द्वारा लॉन्च नहीं किए जा सकते हैं। आप लॉन्च फ़ाइल को कमांड-लाइन से लॉन्च कर सकते हैं, फिर उस नोड के पीआईडी ​​को खोजें जिसे आप डीबग करना चाहते हैं, और आईडीई डीबगर को इससे कनेक्ट करें ("रन -> स्थानीय प्रक्रिया से संलग्न करें")। बेशक यह इनिशियलाइज़ेशन बग्स को कैप्चर करने के लिए उपयोग करना मुश्किल है।
  • असमर्थित भाषाओं में शेल स्क्रिप्ट या स्क्रिप्ट को डिबगिंग नोड्स असंभव है।

एकीकरण को गहरा करने के लिए कई और कदम उठाए जा सकते हैं:

  • अपने कार्यस्थान की बिल्ड निर्देशिका में "निर्माण, ... -> CMake -> जनरेशन पथ" में CMake जनरेशन पथ सेट करें, ताकि आप IDE में केवल एक बार संकलन कर सकें और परिणाम कंसोल में उपलब्ध हों (अन्यथा, आपके पास होगा दो अलग-अलग बिल्ड, आईडीई में एक, और कंसोल में एक)। दुर्भाग्य से, जब तक https://youtrack.jetbrains.com/issue/CPP-1887 तय हो जाता है, आप डिफ़ॉल्ट पीढ़ी पथ में किसी भी चर का उपयोग नहीं कर सकते हैं, इसलिए कैटकिन लेआउट सेट करने के लिए कुछ मैनुअल काम की आवश्यकता होती है।
  • CLion लॉन्च करते समय ROS को स्वचालित रूप से स्रोत करने के लिए, आप सोर्सिंग को इसमें जोड़ सकते हैं ~/.xsessionrc। हालाँकि, इसके अप्रत्याशित परिणाम हो सकते हैं। यदि आप ऐसा नहीं करना चाहते हैं, तो निम्नलिखित दृष्टिकोण का उपयोग करें।
  • एक डेस्कटॉप लॉन्चर बनाएं जो सही वातावरण के साथ सिस्टम मेनू (डैश, लॉन्चर पैनल आदि) से CLion लॉन्च करता है (यदि आप अपने स्रोत आरओएस करते हैं .bashrc): मैंने ~/.local/share/applications/jetbrains-clion.desktopनिम्नलिखित की तरह दिखने के लिए डेस्कटॉप फ़ाइल को संपादित किया । आपको यह भी सुनिश्चित करना होगा कि फ़ाइल आपके updater स्क्रिप्ट / 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
  • यदि आप CLION स्थापित करने के लिए Jetbrains टूलबॉक्स का उपयोग कर रहे हैं (जिसे आपको 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

  • एक ही IDE से C ++ और Python दोनों में कोड करने में सक्षम होने के लिए पायथन सपोर्ट प्लगइन स्थापित करें।


1
वैकल्पिक रूप से, ऑटोस्टार्ट पर Jetbrains टूलबॉक्स के साथ डेस्कटॉप फ़ाइल को bash के साथ टूलबॉक्स शुरू करने के लिए बदला जा सकता है और इस प्रकार Jetbrains टूलबॉक्स ऐप के माध्यम से प्रोजेक्ट या CLion खोलते समय, इसमें पर्यावरण सेट अप भी होगा।
स्टीफन फेबियन

@StefanFabian महान विचार। क्या आप टूलबॉक्स की डेस्कटॉप फ़ाइल के लिए पथ पोस्ट कर सकते हैं, जिसे स्टार्टअप पर लॉन्च किया गया है? मुझे यह भी पता नहीं था कि स्टार्टअप पर डेस्कटॉप फ़ाइलें लॉन्च की जा सकती हैं :)
मार्टिन पीका

2
ज़रूर! डेस्कटॉप फ़ाइल - अगर ऑटोस्टार्ट टूलबॉक्स सेटिंग्स में सक्षम है - पर स्थित होना चाहिए ~/.config/autostart/jetbrains-toolbox.desktop। आपको बस लाइन Exec={TOOLBOX-COMMAND}को बदलना होगा Exec=/bin/bash -i -c "{TOOLBOX-COMMAND}"। हालाँकि, मुझे लगता है कि टूलबॉक्स ऐप इस बदलाव को लिख देता है (शायद हर बार जब यह शुरू होता है)। इसलिए, मैं उस फाइल को उपयोग करने योग्य बनाने की सलाह दूंगा sudo chattr +i jetbrains-toolbox.desktop
स्टीफन फेबियन

6

आरओएस के साथ क्लियोन को एकीकृत करना वास्तव में सीधे आगे है और बॉक्स से बाहर काम करता है अगर कोई जानता है कि यह कैसे करना है:

  1. अपने कंसोल के साथ, अपने आरओएस कार्यक्षेत्र में जाएं और संबंधित setup.bashफ़ाइल को स्रोत करें ।
  2. srcअपने कार्यक्षेत्र की निर्देशिका पर जाएं ।
  3. अपनी srcनिर्देशिका से कंसोल से सीएलआईएन शुरू करें ।
  4. CLion में किसी भी ओपन प्रोजेक्ट को बंद करें और सेलेक्ट करें Import Project from Sources
  5. चयन केवलsrc आयात के लिए अपने कार्यक्षेत्र में निर्देशिका।
  6. यदि CLion CMakeList.txtपहले से ही मौजूद क्लिक के बारे में शिकायत करता हैOpen Project
  7. CLion कई मिनटों के लिए प्रतीकों का निर्माण करेगा, फिर आपको जाने के लिए तैयार होना चाहिए।

यदि यह अभी भी काम नहीं करता है, तो सुनिश्चित करें कि आप .ideaअपने कार्यक्षेत्र से सभी फ़ाइलों को हटा दें , जो शायद ROS के साथ CLION का उपयोग करते समय पिछले प्रयासों में बनाया गया है।


क्या आप लॉन्च फ़ाइलों के साथ प्रोग्राम चलाने के लिए और साथ ही क्लेयन के साथ डिबगिंग समर्थन शामिल कर सकते हैं?
एरिक

मैं वास्तव में सिर्फ कोड लिखने के लिए CLion का उपयोग कर रहा हूं। बाकी के लिए मैं ROS कमांड लाइन टूल्स का उपयोग करता हूं। मुझे नहीं पता है कि क्या आप इस संबंध में आरओएस के साथ काम करने के लिए सीएलआईएन को कॉन्फ़िगर कर सकते हैं।
जारो

0

आरओएस के साथ सेटअप क्लेयन

ROS उत्तरों पर एक अच्छा विवरण है।

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


रोबोटिक्स मैक्स में आपका स्वागत है । आपके उत्तर के लिए धन्यवाद, लेकिन हम जहाँ संभव हो, वहाँ आत्म निहित जवाब पसंद करते हैं। लिंक ऐसे उत्तरों को सड़ने देते हैं, जो लिंक पर भरोसा करते हैं, अगर लिंक की गई सामग्री गायब हो जाती है, तो उन्हें बेकार कर दिया जा सकता है। यदि आप लिंक से अधिक संदर्भ जोड़ते हैं, तो यह अधिक संभावना है कि लोग आपके उत्तर को उपयोगी पाएंगे।
मार्क बूथ

0

आप यहां बताए अनुसार CLION के भीतर से सीधे roslaunch फाइलें भी चला सकते हैं: http://wiki.ros.org/IDEs#CLion हालांकि जब मैं IDE में अपनी लॉन्च फाइलें शुरू करता हूं, तो मुझे निम्न त्रुटि मिलती है: roslaunch: त्रुटि: इस तरह से विकल्प: - मास्टर-लकड़हारा-स्तर

जाहिरा तौर पर प्लगइन लॉन्च फ़ाइल को इसके माध्यम से शुरू करता है:

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

हालाँकि मैंने खुद इस पैरामीटर को निर्दिष्ट नहीं किया है। क्या किसी को पता है कि इसे क्यों पेश किया जाता है?


0

नया और सरल दृष्टिकोण:

  1. ROS-Robot Operating SystemCLion पर प्लगइन स्थापित करें :

    आपको सेटिंग्स (फ़ाइल मेनू से) खोलनी होगी; फिर दाईं ओर प्लगइन पैनल दिखाने के लिए बाएं पैनल चयन प्लगइन से और मार्केटप्लेस टैब का चयन करें; फिर आरओएस-रोबोट ऑपरेटिंग सिस्टम प्लगइन की खोज करें और इसे इंस्टॉल करें।

  2. फ़ाइल मेनू में स्थापित प्लगइन द्वारा अपना ros_workspace आयात करें:

    किसी मौजूदा कार्यक्षेत्र को आयात करने के लिए, आपको कार्यक्षेत्र फ़ोल्डर का चयन करते हुए मेनू इंपोर्ट आरओएस कार्यक्षेत्र का उपयोग करना होगा। इस स्थिति में, प्लगइन कॉन्फ़िगर किए गए आरओएस संस्करणों से खोज करेगा और आरओएस निर्भरता को हल करने के लिए यह परियोजना को सेटअप करेगा।


संदर्भ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.