hydra build

About_work·2024년 11월 1일
0

lifelong scene graph

목록 보기
55/56
mkdir -p catkin_ws/src
cd catkin_ws
catkin init
catkin config -DCMAKE_BUILD_TYPE=Release
cd src
git clone git@github.com:MIT-SPARK/Hydra.git hydra
vcs import . < hydra/install/hydra.rosinstall
rosdep install --from-paths . --ignore-src -r -y
cd ..
catkin build

1. 각 단계에 대한 설명

1. mkdir -p catkin_ws/src

  • 이 명령어는 catkin_ws라는 작업 공간(workspace)을 만들고, 그 안에 src라는 소스 코드 폴더를 만듦
    • catkin_wsROS에서 프로젝트 파일을 관리하는 기본 폴더

2. cd catkin_ws

3. catkin init

  • catkin init 명령어는 catkin_ws 작업 공간을 초기화하는 과정
  • ROS는 catkin이라는 빌드 도구를 사용하는데, 이 명령어를 실행함으로써 이 공간이 ROS 패키지를 빌드할 준비가 된 상태로 설정돼.

4. catkin config -DCMAKE_BUILD_TYPE=Release

  • 이 명령어는 catkin 빌드 설정을 바꾸는 과정이야.
  • -DCMAKE_BUILD_TYPE=Release는 프로그램을 “Release” 모드로 빌드하겠다는 설정인데, 이는 프로그램이 더 빠르게 작동하도록 최적화된 설정이야.
  • 간단히 말해서, 프로그램을 더 효율적으로, 빠르게 빌드하겠다는 뜻이야.

5. cd src

6. git clone git@github.com:MIT-SPARK/Hydra.git hydra

  • 이 명령어는 GitHub에서 Hydra라는 프로젝트 코드를 다운로드해 오는 거야.
  • hydra라는 이름의 폴더에 프로젝트가 저장돼.

7. vcs import . < hydra/install/hydra.rosinstall

  • vcs: 여러 프로젝트를 한꺼번에 다운로드할 수 있게 해주는 도구
  • hydra.rosinstall이라는 파일에 정의된 여러 패키지와 코드들을 다운로드해, src 폴더에 가져오는 과정이야.
  • 전체 프로젝트가 제대로 동작하려면 필요한 추가 코드나 의존성(필요한 파일들)을 다운로드한다고 생각하면 돼.

8. rosdep install --from-paths . --ignore-src -r -y

  • rosdep: ROS의 의존성을 자동으로 설치해 주는 도구
  • ROS에서 사용되는 패키지들이 제대로 동작하려면 여러 외부 소프트웨어나 라이브러리가 필요한데, 이 명령어가 그런 라이브러리들을 자동으로 찾아서 설치해 줘.
  • --from-paths .는 현재 위치에서 필요한 의존성만 설치하도록 하는 옵션이야.

10. catkin build

  • 이 명령어는 catkin_ws 작업 공간 안에 있는 모든 패키지와 코드를 빌드하는 과정이야.
  • 이렇게 빌드가 끝나면 코드가 컴퓨터에서 실제로 실행될 수 있는 상태가 돼.

2. 참고사항

  • 참고

    • 컴퓨터의 RAM 용량 및 Kimera-VIO를 함께 컴파일하는지 여부에 따라 catkin build를 직접 실행할 때 메모리가 부족하여 GCC가 종료되는 오류가 발생할 수 있습니다.
    • 이 경우 catkin build -j NUM_THREADS로 스레드 수를 줄이거나 특정 큰 패키지를 먼저 개별적으로 컴파일할 수 있습니다.
  • ⚠️ vcs import 단계에서 GitHub가 너무 많은 동시 요청을 차단할 수 있습니다.

  • kex_exchange_identification: read: Connection reset by peer 오류가 발생하면 vcs import . < hydra/install/hydra.rosinstall --workers 1 명령으로 실행해보세요.

  • 이 지침을 따르면서 발생한 문제는 새로운 이슈로 보고해주시면 감사하겠습니다!

profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글