라즈베리파이4에 ROS-melodic 설치하기
Raspbian buster 설치하기
다음 페이지를 방문하여 Raspbian Buster with desktop 를 다운로드 한다.
https://www.raspberrypi.org/downloads/raspbian/
ROS-melodic 설치하기
자세한 설치 방법은 https://blog.seeedstudio.com/blog/2019/08/01/installing-ros-melodic-on-raspberry-pi-4-and-rplidar-a1m8/comment-page-1/#comment-230658 페이지를 참조합니다.
1) 의존성 패키지 다운로드하고 설치하기
repository 설정하고 필요한 의존성 패키지를 설치합니다.
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' $ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 $ sudo apt-get update $ sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake |
rosdep 초기화하고 업데이트
sudo rosdep init rosdep update |
ROS 설치를 위한 workspace 만들고 이동
mkdir ~/ros_catkin_ws cd ~/ros_catkin_ws |
ROS Desktop 설치하기
$ rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall $ wstool init -j8 src melodic-desktop-wet.rosinstall |
2) 이슈 해결
collada_urdf 의존성 문제 해결을 위해 별도로 호환되는 버전의 Assimp를 빌드하고 설치합니다.
먼저 ros_catkin_ws 폴더 아래에 external_src 폴더를 만들고 assimp-3.1.1 소스를 다운로드하고 압축을 해재합니다.
$ mkdir -p ~/ros_catkin_ws/external_src $ cd ~/ros_catkin_ws/external_src $ wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O assimp-3.1.1_no_test_models.zip $ unzip assimp-3.1.1_no_test_models.zip |
이제 압축 해제한 assimp 폴더로 이동하여 다음 순서대로 컴파일 및 설치를 진행합니다.
cd assimp-3.1.1 cmake . make sudo make install |
설치가 완료되면 rviz를 위한 OGRE를 설치합니다.
sudo apt-get install libogre-1.9-dev |
rosdep 도구를 통한 의존성 패키지 설치하기
아래 명령어를 통해 설치 의존성 패키지들을 다운로드하고 설치합니다.
$ rosdep install --from-paths src --ignore-src --rosdistro melodic -y |
이때 결과가 다음과 같이 모든 의존성 패키지들의 설치가 완료되었다는 메세지가 나와야합니다.
#All required rosdeps installed successfully
3) Navigation 관련 패키지 추가하기
ROS-Desktop 버전에 빠진 패키지나 항목들을 추가하기 위해 ros_catkin_ws/src 에 다음을 수행합니다.
Joystick 관련
$ sudo apt-get install -y jstest-gtk joystick xboxdrv libusb-dev libbluetooth-dev
$ sudo apt install python-defusedxml libpoco-dev libtinyxml2-dev libspnav-dev libx11-dev libcwiid-dev liblz4-dev
$ sudo apt-get install libsdl-image1.2-dev
$ sudo apt-get install libsdl-dev
cd to /src
누락된 패키지들을 새로 다운받기 위해 해당 폴더를 삭제
$ rm -rf navigation
$ rm -rf slam_gmapping/
$ rm -rf geometry2
$ rm -rf navigation_msgs/
git repository로부터 패키지 소스를 다운로드
$ git clone https://github.com/ros-drivers/joystick_drivers.git
$ git clone https://github.com/ros-planning/navigation.git
$ git clone https://github.com/ros-perception/slam_gmapping.git
$ git clone https://github.com/ros/geometry2.git
$ git clone https://github.com/ros-planning/navigation_msgs.git
4) ROS Build하고 설치하기
설치를 진행하기에 앞서 라즈베리파이의 기본 스왑 사이즈를 100MB에서 2048로 변경해야합니다.
SWAP Size 변경하기
sudo dphys-swapfile swapoff |
/etc/dphys-swapfile 파일을 편집기에서 열고 다음과 같이 수정 (기본 설정은 100MB임)
CONF_SWAPSIZE=2048
그리고 나서 다음을 입력하여 스왑 ON
sudo dphys-swapfile swapon |
Source에서 Build하기
아래 명령어를 입력하여 소스로부터 빌드하고 /opt/ros/melodic에 설치합니다.
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2 |
bashrc에 ROS 경로 추가하기
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc |
Workspace 만들기
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make
$ catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.7m -DPYTHON_LIBRARY=/usr/lib/libpython3.7m.so
.bashrc에 catkin_ws 빌드 경로 추가하기
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc