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

  1. 익명 2019.12.29 11:32

    비밀댓글입니다

    • Kyubot 2019.12.30 11:19 신고

      개별적인 에러를 전부 파악하긴 어렵습니다.
      qt 관련 라이브러리를 설치하지 않은 문제일 수 있습니다.
      rosdep install 에서 중간에 멈추었거나 하면 제대로 설치가 안될 수 있습니다.
      문제가 계속된다면 아래 링크에서 전체 sdcard 이미지를 다운받아 설치하시기 바랍니다.
      https://drive.google.com/file/d/1D_h7qv17UP1tMLZL60qzBl1sEwGxm00D/view?usp=sharing

  2. HOT 2020.06.01 21:14

    pi@raspberrypi:~ $ sudo apt-get install dirmngr
    위 명령어를 실행하니 아래와 같이 뜨는데 unmet dependencies 부분은 어떻게 처리하여야하나요??
    저 문구 무시하고 본문과 같이 따라했는데 마지막 부분에 빌드할떄 안되네요 ㅠㅠㅠㅠ

    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    dirmngr is already the newest version (2.2.12-1+rpi1+deb10u1).
    You might want to run 'apt --fix-broken install' to correct these.
    The following packages have unmet dependencies:
    python-rosdep-modules : Depends: python-rospkg-modules (>= 1.1.10) but it is not going to be installed
    Depends: python-catkin-pkg-modules (>= 0.4.0) but it is not going to be installed
    Depends: python-rosdistro-modules (>= 0.7.5) but it is not going to be installed
    python-rosdistro : Depends: python-rosdistro-modules (>= 0.8.2) but it is not going to be installed
    E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

    • Kyubot 2020.06.04 13:27 신고

      dirmngr is already the newest version (2.2.12-1+rpi1+deb10u1).

      이렇게 나온거는 설치가 이미 되어있다는 뜻인데요. 어떤 문제가 있는지요?

  3. 쿠루마 2021.01.12 01:30

    혹시 라즈베리파이 3b+ 에 라즈비안 buster를 설치 했는데 ROS Melodic이 잘 돌아 갈까요??

  4. 주성필 2021.01.12 04:25

    라즈베리파이4 에서 ros 사용할때
    딱히 gui는 필요없나요?

+ Recent posts