CLion for ROS를 설정하는 방법?


13

ROS 작업시 문서 및 자동 완성을 올바르게 표시 하도록 C ++ IDE CLion 을 설정하려면 어떻게 해야합니까?

답변:


11
  1. 소스 ROS 작업 공간을 사용하여 명령 줄에서 CLion을 시작하십시오 (예 :을 호출 한 후 source devel/setup.bash).
  2. 프로젝트의 CMakeLists.txt를 열고 파일이 아닌 프로젝트로 열도록 지시하십시오.
  3. 이제 작업 공간이 통합되었습니다. :)

디버깅 :

  • 빌드 된 파일 (실행하는 노드)을 디버깅하는 rosrun것은 쉽습니다. 보통 IDE에서 파일을 실행하면됩니다.
  • 시작 파일 디버깅은 IDE에서 시작할 수 없으므로 더 복잡합니다. 명령 행에서 실행 파일을 시작한 다음 디버깅하려는 노드의 PID를 찾고 IDE 디버거를 연결하십시오 ( "실행-> 로컬 프로세스에 연결"). 물론 이것은 초기화 버그를 캡처하는 데 사용하기가 어렵습니다.
  • 쉘 스크립트 또는 지원되지 않는 언어의 스크립트 인 노드를 디버깅하는 것은 불가능합니다.

통합을 심화시키기 위해 수행 할 수있는 몇 가지 단계가 더 있습니다.

  • "빌드, ...-> CMake-> 생성 경로"에서 CMake 생성 경로를 작업 공간의 빌드 디렉토리로 설정하여 IDE에서 한 번만 컴파일하고 콘솔에서 결과를 사용할 수 있도록합니다 (그렇지 않으면 IDE와 콘솔에 각각 다른 두 가지 빌드). 불행히도 https://youtrack.jetbrains.com/issue/CPP-1887 이 수정 될 때까지 기본 생성 경로에서 변수를 사용할 수 없으므로 catkin 레이아웃을 설정하려면 약간의 수동 작업이 필요합니다.
  • CLion을 시작할 때 ROS를 자동으로 소싱하기 위해에 소싱을 추가 할 수 있습니다 ~/.xsessionrc. 그러나 이로 인해 예기치 않은 결과가 발생할 수 있습니다. 그렇게하지 않으려면 다음 방법을 사용하십시오.
  • 올바른 환경에서 시스템 메뉴 (대시, 런처 패널 등)에서 CLion을 시작하는 데스크탑 런처를 작성하십시오 (에서 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

  • 단일 IDE에서 C ++ 및 Python으로 코딩 할 수 있도록 Python 지원 플러그인을 설치하십시오.


1
또는 자동 시작시 Jetbrains Toolbox를 사용하면 bash로 도구 상자를 시작하도록 데스크탑 파일을 변경할 수 있으므로 Jetbrains Toolbox 앱을 통해 프로젝트 또는 CLion을 열 때 환경도 설정됩니다.
Stefan Fabian

@StefanFabian 좋은 생각입니다. 시작시 실행되는 도구 상자의 데스크탑 파일 경로를 게시 할 수 있습니까? 나는 바탕 화면 파일 : 시작할 때 출시 될 수도 인식하지 않았다
마틴 Pecka

2
확실한! 도구 상자 설정에서 자동 시작이 활성화 된 경우 데스크탑 파일은에 위치해야합니다 ~/.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. src디렉토리 의 콘솔에서 CLion을 시작하십시오 .
  4. CLion에서 열려있는 프로젝트를 모두 닫고 선택 Import Project from Sources
  5. 가져올 작업 공간 의 디렉토리 선택하십시오 src.
  6. CLion이 CMakeList.txt이미 존재하는 것에 대해 불평 하면 간단히 클릭하십시오.Open Project
  7. CLion은 몇 분 동안 심볼을 구축 할 준비가되었습니다.

그래도 작동하지 않으면 작업 .idea공간에서 모든 파일 을 삭제했는지 확인하십시오.이 파일은 ROS와 함께 CLion을 사용하려는 이전 시도에서 작성되었을 수 있습니다.


실행 파일로 프로그램을 실행하고 clion으로 디버깅을 지원하는 방법도 포함시킬 수 있습니까?
Eric

코드를 작성하기 위해 CLion을 사용하고 있습니다. 나머지 부분에서는 ROS 명령 줄 도구를 사용합니다. 이와 관련하여 Rion과 함께 작동하도록 CLion을 구성 할 수 있는지 여부를 모르겠습니다.
Jarno

0

ROS를 사용하여 CLion 설정

ROS Answers에 대한 좋은 설명입니다.

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


Robotics Max에 오신 것을 환영합니다 . 답변 해 주셔서 감사합니다. 그러나 가능한 경우 답변을 포함하는 것이 좋습니다. 링크 가 썩는 경향이 있으므로 링크 된 내용이 사라지면 링크에 의존하는 답변을 쓸모 없게 만들 수 있습니다. 링크에서 컨텍스트를 더 추가하면 사람들이 귀하의 답변이 유용 할 가능성이 높습니다.
마크 부스

0

여기에 언급 된대로 CLION 내에서 직접 roslaunch 파일을 실행할 수도 있습니다 : http://wiki.ros.org/IDEs#CLion 그러나 IDE에서 시작 파일을 시작할 때 다음 오류가 발생합니다. roslaunch : error : no such 옵션 : --master-logger-level

분명히 플러그인은 다음을 통해 시작 파일을 시작합니다.

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

그러나 나는이 매개 변수를 직접 지정하지 않았습니다. 왜 그것이 도입되었는지 알고 있습니까?


0

새롭고 간단한 접근법 :

  1. ROS-Robot Operating SystemCLion에 플러그인 설치 :

    파일 메뉴에서 설정을 열어야합니다. 그런 다음 왼쪽 패널에서 플러그인 패널을 오른쪽에 표시하고 마켓 플레이스 탭을 선택하려면 플러그인을 선택하십시오. 그런 다음 ROS-Robot Operating System 플러그인을 검색하여 설치하십시오.

  2. 파일 메뉴에 설치된 플러그인으로 ros_workspace를 가져옵니다.

    기존 작업 공간을 가져 오려면 ROS 작업 공간 가져 오기 메뉴를 사용하여 작업 공간 폴더를 선택해야합니다. 이 경우 플러그인은 구성된 ROS 버전에서 검색하고 ROS 종속성을 해결하기 위해 프로젝트를 설정합니다.


참고

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.