기술

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

기술 공간 2021. 12. 9. 20:15

시도1. 라즈비안 설치된  라즈베리파이4에 ROS kinetic 설치 시도 

 

일단 시간이 없으므로,

이 링크 참고 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=rmlee&logNo=221460156608 

 

중간에 

이 부분에서, 아래와 에러메시지가 발생할 것임.

gpg: keyserver receive failed: No name

 

 

이때

이 링크를 참고 : https://stackoverflow.com/questions/66217436/gpg-keyserver-receive-failed-no-name

즉, 여기서 

이 명령어 대신, 다음과 같은 명령어를 실행한다.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

 

그러면, 제대로 동작할 것이다.

이 이후에는 아래 ROSberryPi ROS kinetic 공식 메뉴얼을 계속 이어서 진행하면 된다.

(참고 링크 : http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi )

그렇게 메뉴얼을 따라 하다가, 아래 명령어를 실행하면,

sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic

아래와 같은 에러가 발생했다.

CMake Error at cmake/empy.cmake:30 (message): 
Unable to find either executable 'empy' or Python module 
'em'... try installing the package 'python-empy'

이후로, 에러를 못고치다가, 라즈비안을 다시 설치했다...

 

 

 

 

 

시도2. 라즈비안 설치된  라즈베리파이4에 ROS melodic 설치 시도

라즈비안을 재설치한 이후에, kinetic 으로 설치가 안되는 줄 알고, melodic 으로 설치하기로 마음먹었다. (사실 결과는 별 차이 없었다.)

그래서 이번에는 아래 ROSberryPi ROS melodic 공식 메뉴얼을 보고 따라했다.

(참고 링크 : http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Melodic%20on%20the%20Raspberry%20Pi )

 

또 다시, 중간에 

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

 이 명령어를 치면, 아래와 같은 에러가 떳다.

gpg: keyserver receive failed: No name

그래서 이번에는 

이 링크를 참고해서 : https://stackoverflow.com/questions/66217436/gpg-keyserver-receive-failed-no-name 

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

이 명령어 대신, 다음과 같은 명령어를 실행했다.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $key

그래서 해결되었다...

 

 

그렇게 메뉴얼을 따라 하다가, 이번에도 아래 명령어를 실행하면,

sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic

아래와 같은 똑같은 에러가 발생했다.

CMake Error at cmake/empy.cmake:30 (message): 
Unable to find either executable 'empy' or Python module 
'em'... try installing the package 'python-empy'

 

이번에는 python-empy 패키지를 설치하기 위해서, 아래와 같은 명령어를 쳤다.

(이 방법은 이 링크를 참고했다. : https://answers.ros.org/question/353111/following-installation-instructions-catkin_make-generates-a-cmake-error/ )

sudo apt install python-empy

 

 

다행히 해결됐다...

 

 

 

그리고나서, 다시 아래 ROSberryPi ROS melodic 공식 메뉴얼을 보고 따라했다.

(참고 링크 : http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Melodic%20on%20the%20Raspberry%20Pi )

바로 위 링크에서 아래 명령어 부분부터 따라하면 된다.

sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic

 

 

4.1 Updating the Workspace

부분은 생략하고,

4.2 Adding Released Packages

부분부터 이어서 진행했다.

 

결국,,, 라즈비안을 설치한 라즈베리파이에서는 catkin 빌드가 되지 않는다.(즉, catkin_make를 할수 없다. 자꾸 fatal error 가 발생하지만, 해결을 할 수 없었다 ㅠ)

 

 

-----------------------------------------------------------------------------------------------------

여기 아래부터 시작하세요! 위는 전부 실패했습니다.

-----------------------------------------------------------------------------------------------------

 

시도3. ubuntu20.04 설치된  라즈베리파이4에 ROS noetic 설치 시도

(기억을 되살려서 적은것임. 확실하지 않음. 아직 검증안된 방법임. -> 기말고사 끝나고, 다시 포맷하고 다시 설치해보면서 검증해보자.)

 

1. ubuntu20.04 설치

이미지 파일 다운로드 -

    이미지 파일은 구글에 ubuntu old-release라고 검색해서 찾아보면, 옛날 버전의 이미지 파일들도 다운로드 할 수 있는 링크(http://old-releases.ubuntu.com/releases/)가 있다. 근데, 옛날 버전의 이미지 파일들이 제대로 작동하는지 검증이 안 될 수도 있어서, 나는  공식 홈페이지(https://ubuntu.com/download/raspberry-pi)에서 최근 버전인 ubuntu20.04의 이미지 파일을 다운받았다.

    그런데, 공식 홈페이지(https://ubuntu.com/download/raspberry-pi)에 가면, 이 버전은 매년, 바뀔 것이다. 내가 지금 메뉴얼을 작성해놔도, 이 메뉴얼은 ubuntu20.04 설치를 위한 것 밖에 되지 못할 수 있다. 몇년 뒤에는 또 다시 새로운 버전으로 설치를 해야할 것이다.

    아무튼 그래서 중요한 것은 몇년 뒤에도 공식 홈페이지(https://ubuntu.com/download/raspberry-pi)에 가면, 크게 두가지 방식의 이미지 파일이 있을 것이다. 하나는 "Ubuntu Desktop" 일 것이고, 나머지 하나는 "Ubuntu Server"일 것이다. 참고로, "Ubuntu Core" 도 있을 것인데, 이것은 지금 잘 모르겠다. 추측컨데, Ubuntu Desktop 이 가장 많은 응용프로그램들과 함께 ubuntu 를 설치해주는 이미지 파일인 것 같고, Ubuntu Server 는 Ubuntu Desktop보다는 적은 응용프로그램들과 함께 ubuntu를 설치해주는 이미지 파일인 것 같고, 그 때문에, Ubuntu Server 는 GUI(Graphic User Interface) 가 없다. 그리고 추측컨데, Ubuntu Core 는 정말 OS의 필수적인 프로그램들만 설치해주는 이미지 파일인 것 같다.

    아무튼 그래서 나는 공식 홈페이지(https://ubuntu.com/download/raspberry-pi)에 가보니,

위와 같이 여러가지 선택지들이 있었는데, 나는 ubuntu 21.04 는 장기간 지원을 해주지 않는 버전이므로, 장기간 지원해주는 버전인 20.04 LTS 로 설치를 하고 싶었다. 그래서, 20.04 버전의  Ubuntu Desktop 이미지파일이 있었으면, GUI도 포함되어 있어서, 더 좋았겠지만, 어쩔수 없이, 20.04 버전의 Ubuntu Server 이미지파일을 다운로드 받았다. 그래서 GUI가 없는데, 어떡하냐? 라고 묻는다면, 그건 걱정할 필요 없다. 나중에 Ubuntu Server 로 설치한 후, GUI는 ubuntu 터미널에서 GUI를 설치해주면 된다. 그 자세한 방법은 뒤에 설명할 것이다. 참고로, 나는 라즈베리파이4 의 스펙을 충분히 활용하고 싶어서, Ubuntu Server 20.04 중에서도 "Download 64-bit"를 클릭해서 64bit 의 이미지파일을 다운로드했다.

 

 

 

 

sd카드를 리더기에 꼽고, 노트북에 usb로 꼽고, 이미지 파일 굽기 -

(관련 참고 영상 : https://www.youtube.com/watch?v=zasvSKaobVI )

    이미지 파일 굽는 방법은 여러가지지만, 나는 공식 라즈베리파이 사이트(https://www.raspberrypi.com/software/)에서 제공하는, Raspberry Pi Imager 를 이용하여, 이미지파일을 구웠다.

 

 

구운 sd카드를 리더기에서 뽑고나서 라즈베리파이에 꼽고, 라즈베리파이에 전원 공급 -

(관련 참고 영상 : https://www.youtube.com/watch?v=zasvSKaobVI )

    이때, 라즈베리파이에 wifi 를 바로 연결하려 하지말고, 인터넷 유선랜 케이블을 연결해준다. 유선랜을 연결했다면, 별도로 네트워크 관련되어서 위 관련 참고 영상에 나온 것처럼 네트워크 관련해서 별도의 코드작업을 해줄 필요 없다. 인터넷 유선랜 케이블을 연결하는 또 다른 이유가 있다. 그 이유는, 초기에는 ubuntu 관련 핵심적인 패키지들이 설치되는데, 이때 무선랜(wifi)으로 연결을 해놓으면, 네트워크가 불안정할때 이 패키지들이 제대로 설치가 안 될 수 있기 때문이다.

 

Ubuntu Server 에 Desktop GUI 설치 -

(참고 링크 : https://snowdeer.github.io/linux/2017/08/04/install-gui-desktop-on-ubuntu/ 여기서 "설치 명령어" 부분만 참고하세요. 나머진 필요없다.)

sudo apt-get update
sudo apt-get upgrade
apt-get install ubuntu-desktop

 

 

 

2. ROS noetic 설치

(참고 링크 : https://varhowto.com/install-ros-noetic-ubuntu-20-04/ -> 이 블로그 글을 보고 따라했다.  http://wiki.ros.org/noetic/Installation/Ubuntu -> 이 공식 문서도 위 블로그 글과 동일한 것 같다. 공식 문서로 해도, 설치가 잘 되는지 직접 테스크 해보진 않았다. )

중간에 선택지가 있는데,

sudo apt install ros-noetic-desktop-full
sudo apt install ros-noetic-desktop
sudo apt install ros-noetic-ros-base

위 세가지 중에 하나를 선택해서, 명령어를 실행시켜야 하는데, 이 중에 나는

 

sudo apt install ros-noetic-desktop-full

를 실행했다.

그 뒤로 또 다시, 참고 링크 사이트의 지시를 따라서 했다.

'기술' 카테고리의 다른 글

라즈베리파이로 VR장갑 만들기  (0) 2021.12.22
ssh 접속 방법  (0) 2021.12.11
라즈베리파이4에 라즈비안 설치방법  (0) 2021.12.09
nano 에디터 단축키  (0) 2021.12.09
[부품 구입 사이트]  (0) 2021.11.28