วิธีตั้งค่า CLion สำหรับ ROS


13

ฉันจะตั้งค่า C ++ IDE CLionเพื่อแสดงเอกสารและการเติมอัตโนมัติอย่างถูกต้องเมื่อทำงานกับ ROS ได้อย่างไร

คำตอบ:


11
  1. เริ่ม CLion จาก commandline ด้วย ROS workspace ของคุณ (เช่นหลังจากโทรsource devel/setup.bash)
  2. เปิด CMakeLists.txt ของโครงการและบอกให้เปิดเป็นโครงการแทนที่จะเป็นไฟล์
  3. แค่นั้นแหละคุณได้รวมพื้นที่ทำงานของคุณแล้ว :)

แก้จุดบกพร่อง:

  • การดีบักไฟล์ที่สร้างขึ้น (โหนดที่คุณเรียกใช้rosrun) เป็นเรื่องง่ายคุณเพียงแค่รันมันใน IDE
  • การดีบักไฟล์เรียกใช้นั้นซับซ้อนกว่าเนื่องจาก IDE ไม่สามารถเรียกใช้งานได้ คุณสามารถเรียกใช้ไฟล์เรียกใช้จากบรรทัดคำสั่งจากนั้นค้นหา PID ของโหนดที่คุณต้องการตรวจแก้จุดบกพร่องและเชื่อมต่อ IDE ดีบักเกอร์กับมัน ("Run -> Attach to local process") แน่นอนว่านี่เป็นเรื่องยากที่จะใช้สำหรับการดักจับข้อบกพร่องในการเริ่มต้น
  • การดีบักโหนดที่เป็นเชลล์สคริปต์หรือสคริปต์ในภาษาที่ไม่สนับสนุนไม่สามารถทำได้

มีอีกหลายขั้นตอนที่คุณสามารถทำได้เพื่อเพิ่มการรวมให้ลึกยิ่งขึ้น:

  • ตั้งค่าเส้นทาง CMake Generation ใน "Build, ... -> CMake -> Generation Path" เป็นไดเรกทอรีสร้างของเวิร์กสเปซเพื่อให้คุณสามารถคอมไพล์ครั้งเดียวใน IDE และมีผลลัพธ์ในคอนโซล (มิฉะนั้นคุณจะมี สองบิลด์ที่ต่างกันหนึ่งรายการใน IDE และอีกหนึ่งในคอนโซล) น่าเสียดายที่จนกว่าhttps://youtrack.jetbrains.com/issue/CPP-1887จะได้รับการแก้ไขคุณไม่สามารถใช้ตัวแปรใด ๆ ในเส้นทางการสร้างเริ่มต้นดังนั้นการตั้งค่าเค้าโครง catkin ต้องใช้งานด้วยตนเอง
  • หากต้องการแหล่ง ROS โดยอัตโนมัติเมื่อเปิดตัว CLion คุณสามารถเพิ่มแหล่งข้อมูล~/.xsessionrcได้ อย่างไรก็ตามสิ่งนี้อาจมีผลที่ไม่คาดคิด หากคุณไม่ต้องการทำเช่นนั้นให้ใช้วิธีการต่อไปนี้
  • สร้างตัวเรียกใช้งานเดสก์ท็อปที่เปิดตัว CLion จากเมนูระบบ (Dash แผงตัวเรียกใช้งาน ฯลฯ ) ด้วยสภาพแวดล้อมที่ถูกต้อง (ถ้าคุณให้แหล่ง ROS ของคุณ.bashrc): ฉันแก้ไขไฟล์เดสก์ท็อป~/.local/share/applications/jetbrains-clion.desktopให้มีลักษณะดังต่อไปนี้ คุณต้องตรวจสอบให้แน่ใจว่าไฟล์นั้นไม่สามารถเขียนได้สำหรับกล่องตัวอัปเดตสคริปต์ / กล่องเครื่องมือ 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
  • หากคุณกำลังใช้กล่องเครื่องมือ Jetbrains เพื่อติดตั้ง CLion (ซึ่งคุณควรใช้ 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

  • ติดตั้งปลั๊กอินสนับสนุน Python เพื่อให้สามารถเขียนโค้ดทั้ง C ++ และ Python จาก IDE เดียว


1
อีกทางหนึ่งด้วยกล่องเครื่องมือ Jetbrains บนเริ่มอัตโนมัติไฟล์เดสก์ท็อปสามารถเปลี่ยนเป็นเริ่มกล่องเครื่องมือด้วยการทุบตีและเมื่อเปิดโครงการหรือ CLion ผ่านแอป Jetbrains Toolbox ก็จะมีการตั้งค่าสภาพแวดล้อม
Stefan Fabian

@StefanFabian ความคิดที่ยอดเยี่ยม คุณช่วยกรุณาโพสต์เส้นทางไปยังไฟล์เดสก์ท็อปของกล่องเครื่องมือที่เปิดตัวเมื่อเริ่มต้นได้หรือไม่? ผมไม่ได้ทราบว่าไฟล์เดสก์ทอปสามารถเปิดตัวในการเริ่มต้น :)
มาร์ติน Pecka

2
แน่นอน! ไฟล์สก์ท็อป - ถ้า autostart ถูกเปิดใช้งานในการตั้งค่ากล่อง - ~/.config/autostart/jetbrains-toolbox.desktopควรจะตั้งอยู่ที่ คุณก็ต้องเปลี่ยนสายไปExec={TOOLBOX-COMMAND} Exec=/bin/bash -i -c "{TOOLBOX-COMMAND}"อย่างไรก็ตามฉันคิดว่าแอพกล่องเครื่องมือเขียนทับการเปลี่ยนแปลงนี้ (อาจจะทุกครั้งที่เริ่ม) sudo chattr +i jetbrains-toolbox.desktopดังนั้นฉันจึงอยากแนะนำให้ทำที่ไม่เปลี่ยนรูปไฟล์โดยใช้
Stefan Fabian

6

การรวม CLion เข้ากับ ROS นั้นตรงไปตรงมาและทำงานนอกกรอบหากใครรู้วิธีการทำได้:

  1. ด้วยคอนโซลของคุณให้ไปที่เวิร์กสเปซ ROS ของคุณแล้วส่งsetup.bashไฟล์ตามลำดับ
  2. ไปที่srcไดเรกทอรีของพื้นที่ทำงานของคุณ
  3. เริ่ม CLion จากคอนโซลจากsrcไดเรกทอรีของคุณ
  4. ปิดโปรเจ็กต์ที่เปิดอยู่ใน CLion แล้วเลือก Import Project from Sources
  5. เลือกเฉพาะsrcไดเรกทอรีในพื้นที่ทำงานของคุณสำหรับการนำเข้า
  6. หาก CLion บ่นว่าCMakeList.txtมีอยู่แล้วเพียงคลิกOpen Project
  7. CLion จะสร้างสัญลักษณ์เป็นเวลาหลายนาทีจากนั้นคุณควรพร้อมที่จะไป

ถ้ามันยังไม่ทำงานตรวจสอบให้แน่ใจว่าคุณลบ.ideaไฟล์ทั้งหมดจากพื้นที่ทำงานของคุณนั่นอาจถูกสร้างขึ้นในความพยายามก่อนหน้านี้ที่ใช้ CLion กับ ROS


คุณสามารถรวมวิธีเรียกใช้โปรแกรมด้วยไฟล์เรียกใช้และการดีบักการสนับสนุนด้วย clion ด้วยหรือไม่
Eric

ฉันใช้ CLion จริงๆแค่เขียนโค้ด สำหรับส่วนที่เหลือฉันใช้เครื่องมือบรรทัดคำสั่ง ROS ฉันไม่ทราบว่าคุณสามารถกำหนดค่า CLion ให้ทำงานกับ ROS ได้ในส่วนนี้หรือไม่
Jarno

0

ตั้งค่า CLion ด้วย ROS

เป็นคำอธิบายที่ดีสำหรับ ROS Answers

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


ยินดีต้อนรับสู่Robotics Max ขอบคุณสำหรับคำตอบของคุณ แต่เราต้องการคำตอบให้อยู่ในที่ที่เป็นไปได้ ลิงก์มีแนวโน้มที่จะเน่าเสียดังนั้นคำตอบที่พึ่งพาการเชื่อมโยงสามารถทำให้ไร้ประโยชน์หากเนื้อหาที่เชื่อมโยงหายไป หากคุณเพิ่มบริบทเพิ่มเติมจากลิงก์ก็มีแนวโน้มที่ผู้คนจะพบคำตอบของคุณมีประโยชน์
Mark Booth

0

คุณยังสามารถเรียกใช้ไฟล์ Roslaunch จากโดยตรงภายใน CLION ตามที่กล่าวไว้ที่นี่: http://wiki.ros.org/IDEs#CLion อย่างไรก็ตามเมื่อฉันเริ่มต้นไฟล์เรียกใช้ใน IDE ฉันได้รับข้อผิดพลาดต่อไปนี้: roslaunch: ข้อผิดพลาด: ไม่มีเช่นนั้น ตัวเลือก: --master-logger-level

เห็นได้ชัดว่าปลั๊กอินเริ่มต้นไฟล์เรียกใช้ผ่าน:

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

อย่างไรก็ตามฉันไม่ได้ระบุพารามิเตอร์นี้ด้วยตนเอง ไม่มีใครรู้ว่าทำไมมันถึงได้รับการแนะนำ?


0

วิธีการใหม่และง่ายที่สุด:

  1. ติดตั้งROS-Robot Operating Systemปลั๊กอินบน CLion:

    คุณต้องเปิดการตั้งค่า (จากเมนูไฟล์) จากนั้นให้เลือกปลั๊กอินจากแผงด้านซ้ายเพื่อแสดงแผงปลั๊กอินทางด้านขวาและเลือกแท็บตลาด จากนั้นค้นหาปลั๊กอินระบบปฏิบัติการ ROS-Robot และติดตั้ง

  2. นำเข้า ros_workspace ของคุณด้วยปลั๊กอินที่ติดตั้งในเมนูไฟล์:

    ในการนำเข้าพื้นที่ทำงานที่มีอยู่คุณต้องใช้เมนูนำเข้าพื้นที่ทำงาน ROS เลือกโฟลเดอร์พื้นที่ทำงาน ในกรณีนี้ปลั๊กอินจะค้นหาจากรุ่น ROS ที่ตั้งค่าไว้และจะติดตั้งโครงการเพื่อแก้ไขการพึ่งพา ROS


การอ้างอิง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.