ROS 패키지 설치하는게 생각보다 어려워서 기록을 해둔다...
깃허브에서 소스 받아서 빌드하는 과정을 거치면... 계속 dependency 오류 만나고... 시간만 엄청 오래 들었다. 소스로 빌드하는 것은 ROS에 대한 이해가 부족해서 실패했다. 하지만 이 글의 방법을 통해서는 원하는 패키지 설치하는 것을 성공했다.
ROS wiki 페이지의 instruction을 잘 따르면 된다. 나는 라즈베리파이 3b+에서 melodic으로 진행하므로 melodic의 wiki페이지를 참고한다.
rosinstall_generator
먼저, rosinstall_generator로 다음과 같이 원하는 패키지 (아래의 예시에서는 ros_comm ros_control joystick_drivers)를 입력하고, 나머지 argument도 마찬가지로 입력한다.
cd ~/ros_catkin_ws
rosinstall_generator ros_comm ros_control joystick_drivers --rosdistro melodic --deps --wet-only --tar > melodic-custom_ros.rosinstall
wstool
그리고 다음과 같이 wstool을 통해 기존의 src와 머지하고 업데이트를 한다.
wstool merge -t src melodic-custom_ros.rosinstall
wstool update -t src
rosdep
workspace를 업데이트한 후 rosdep을 실행하여 필요한 새 종속성을 설치할 수 있다.
rosdep install --from-paths src --ignore-src --rosdistro melodic -y -r --os=debian:buster
catkin_make_isolated
마지막으로 workspace가 최신 상태이고 종속성이 충족되었으므로 workspace를 다시 빌드한다.
나의 경우 라즈베리파이 3b+를 활용하기 때문에 끝 부붙에 -j2를 붙였다.
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2
매번 이렇게 패키지를 추가할 때 마다 빌드를 해야하는데... 시간이 너무 오래걸린다.
패키지 추가를 자주 하는 것은 건강에 좋지 않을 것 같다.
Example. ar_track_alvar package install
나는 ar_track_alvar이라는 패키지를 설치해야한다... 이 패키지 설치하려고 깃허브 소스 빌드부터 여러가지 삽질을 했었다... 다음과 같은 코드들을 실행하면 성공적으로 ar_track_alvar를 설치할 수 있다.
cd ~/ros_catkin_ws
rosinstall_generator ar_track_alvar --rosdistro melodic --deps --wet-only --tar > melodic-ar_track_alvar_ros.rosinstall
wstool merge -t src melodic-ar_track_alvar_ros.rosinstall
wstool update -t src
rosdep install --from-paths src --ignore-src --rosdistro melodic -y -r --os=debian:buster
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2
궁금한 점들...
- 패키지 리스트는 어떻게 확인할 수 있지...?