Computer/raspberry pi

라즈베리파이4에 ROS-melodic 설치하기

Kyubotics 2019. 11. 28. 23:16

Raspbian buster 설치하기

다음 페이지를 방문하여 Raspbian Buster with desktop 를 다운로드 한다.

https://www.raspberrypi.org/downloads/raspbian/

 

Download Raspbian for Raspberry Pi

Raspbian is the Foundation's official supported operating system. You can install it with NOOBS or download the image below.

www.raspberrypi.org

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