본문 바로가기

Project/KUSMO

[KUSMO] 8/9 ~ 8/12 (Raspberry PI OS 관련 문제)

728x90

8/9

  • Raspberry PI의 Bootloader Firmware 업데이트 후 Ubuntu 설치를 시도했으나 여전히 아래와 같은 창이 뜸

보드에 OS가 없다는 메세지

 

  • 라즈비안 설치 후 그 위에 ROS를 설치하는 방향으로 변경
  • Raspberry PI의 OS를 Buster로 설치하고 그 위에 ROS를 설치

buster는 debian version 10을 지칭

$ 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
  • Repository 설정 후 Necessary Dependencies 설치
    • ROS Dependency Package : ROS 구동을 위해 필요한 외부 라이브러리와 도구들

 

$ sudo rosdep init
$ rosdep update
  • rosdep 초기화, 업데이트
  • rosdep은 System Dependencies를 설치하는데 사용하는 command-line tool
  • init은 initialize의 약자로 rosdep init은 /etc/ros/rosdep 경로에 있는 rosdep sources를 초기화 함 

 

$ mkdir ~/ros_catkin_ws
$ cd ~/ros_catkin_ws
  • mkdir은 make directory의 약자로 디렉토리 혹은 폴더 생성시 사용하는 명령어
  • ROS build를 위한 catkin workspace를 만들고 해당 경로로 이동
  • catkin은 ROS 코드를 빌드하고 구성할 때 사용하는 build system
  • workspace란 원하는 작업 수행을 위한 코드를 작성하는 directory로써, 한번에 하나의 workspace에서만 작업할 수 있다
  • catkin workspace는 기본적으로 ~/catkin_ws 경로에 구축됨 

출처 : https://junk-research-note.tistory.com/8

 

$ rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall  
$ wstool init -j8 src melodic-desktop-wet.rosinstall
  • ROS Desktop 설치
  • core ROS package들이 src 폴더에 설치됨

 

$ 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
  • collada_urdf 의존성 문제 해결을 위해 호환되는 버전의 Assimp 빌드 후 설치
  • ros_catkin_ws 폴더에 external_src 폴더 생성 후 assimp-3.1.1 소스 다운로드 후 압축 해제

 

$ cd assimp-3.1.1
$ cmake .
$ make
$ sudo make install
  • 압축을 해제한 assimp 폴더로 이동 후 컴파일 및 설치 진행

 

$ sudo apt-get install  libogre-1.9-dev
  • 설치 완료 후 rviz를 위한 OGRE 설치
  • rviz는 ROS에서 사용되는 3D 시각화 도구
  • OGRE(Object-Oriented Graphics Rendering Engine)은 C++로 작성된, 3D를 쉽고 편리하게 표현할 수 있는 엔진

 

- libboost 관련 오류 해결 필요 : 새로운 boost version에서는 int type의 arguments만 받으나 ROS package에 있는 actionlib에선 float type arguments가 있는 부분들이 있어 수정 필요

$ sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
$ sudo rosdep init
$ rosdep update
$ mkdir ~/projects/ros_catkin_ws
$ cd ~/projects/ros_catkin_ws
$ rosinstall_generator desktop_full --rosdistro melodic --deps --tar > melodic-desktop-full.rosinstall
$ wstool init -j8 src melodic-desktop-full.rosinstall
$ rosdep install --from-paths src --ignore-src --os=ubuntu:bionic --rosdistro melodic -y

위 명령어 작성 후 아래 경로에 있는 파일들을 열고 float type arguments를 int type으로 변경

./src/actionlib/include/actionlib/client/simple_action_client.h
./src/actionlib/include/actionlib/destruction_guard.h
./src/actionlib/include/actionlib/server/simple_action_server_imp.h
./src/actionlib/src/connection_monitor.cpp
./src/actionlib/test/destruction_guard_test.cpp

 

ex)
boost::posix_time::milliseconds(loop_duration.toSec() * 1000.0f));
를
boost::posix_time::milliseconds(int(loop_duration.toSec() * 1000.0f)));
로 변경

 

$ rosdep install --from-paths src --ignore-src --rosdistro melodic -y

 

 

  • rosdep을 이용해 나머지 의존성 패키지 설치

사진과 같이 모든 의존성 패키지들이 설치되었다는 메세지가 나와야 함

 

8/10

$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2
  • catkin package를 source에서 bulid 함

위 과정에서 두가지 error 발생

  • 위 오류는 Reproduce this error by running : 아래의 코드를 입력하여 해결

 

  • catkin package를 source에서 bulid 하는 위 과정 대신 Navigation 관련 패키지를 추가하는 작업을 진행

 

cd ros_catkin_ws/src
$ 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
  • ROS Desktop버전에서 빠진 패키지나 항목들 추가

 

$ rm -rf navigation
$ rm -rf slam_gmapping/
$ rm -rf geometry2
$ rm -rf navigation_msgs/
  • 누락된 패키지들을 새로 다운받기 위해 해당 폴더들 삭제
  • rm은 remove의 약자로 file 혹은 directory를 삭제하는 명령어
    • Directory는 윈도우의 폴더와 유사한 개념으로, 파일을 분류하기 위해 사용하는 namespace
    • Path는 파일이 전체 directory중에 어디에 있는지를 나타냄

 

$ 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
  • git repository로부터 패키지 소드 다운로드
  • 위 과정 수행시 'clone https:// ... ... is not a git command' 라는 오류 메세지 출력

 

 

 

8/12

  • 라즈베리파이에 Ubuntu 18.04 LTS를 설치하는 방향으로 다시 변경

 

  • TurtleBot은 Turtle of Logo로부터 유래된 ROS 교육용 플랫폼으로써, SLAM, Navigation, Manipulation등의 핵심 기능이 있다
    • SLAM(Simultaneous Localization and Mapping)
    • Navigation (Robot Localization)
    • Manipulation
  • Open Source SW/HW로써 source code와 PCB Gerber 파일, 3D CAD 데이터 등이 공개되어 있다
  • TurtleBot3는 2017년에 개발됨
  • 2021/06/09에 라즈베리파이4로 업그레이드

 

  • Raspberry Pi에 ROS Melodic 사용을 위해 Ubuntu 18.04를 설치하려 했으나 라즈베리파이4의 최신 펌웨어와 Ubuntu 18.04가 호환이 되지 않아 계속 설치가 되지 않는다 판단하여  ROS Melodic 사용을 위한 Ubuntu 18.04 설치에서 ROS Noetic 사용을 위해 Ubuntu 20.04를 설치하는 방향으로 변경

 


참고 자료:

https://kyubot.tistory.com/134?category=681568 

 

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

Raspbian buster 설치하기 다음 페이지를 방문하여 Raspbian Buster with desktop 를 다운로드 한다. https://www.raspberrypi.org/downloads/raspbian/ Download Raspbian for Raspberry Pi Raspbian is the Fou..

kyubot.tistory.com

https://www.seeedstudio.com/blog/2019/08/01/installing-ros-melodic-on-raspberry-pi-4-and-rplidar-a1m8/#comment-230658

 

Installing ROS Melodic on Raspberry Pi 4 and RPLIDAR A1M8 - Latest Open Tech From Seeed

Note: This article by Dmitry Maslov originally appeared on Instructables This article will cover the process

www.seeedstudio.com