라즈베리파이에 설치한 Ubuntu Server에 ROS2-foxy를 설치하는 과정입니다.
먼저 Ubuntu Server는 20.04버전으로 설치한 후 ROS2를 설치합니다.
설치과정에 대한 더 자세한 정보는 ROS 2 Documentation을 참고해 주세요
먼저 ROS2를 편하게 설치하기 위해 데스크탑에서 ssh 접속을 통해 라즈베리파이 서버에 접속하였습니다.
접속 후 다음 명령어들을 입력합니다.
$ locale # check for UTF-8
$ sudo apt update && sudo apt install locales
$ sudo locale-gen en_US en_US.UTF-8
$ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
$ export LANG=en_US.UTF-8
$ sudo apt update && sudo apt install curl gnupg2 lsb-release -y
$ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
$ sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
$ sudo apt update
이 과정에서 다음과 같은 오류가 발생할 수 있습니다.
W: GPG error: http://packages.ros.org/ros2/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654
E: The repository 'http://packages.ros.org/ros2/ubuntu focal InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
이 경우에는 아래 명령어를 실행한 후 재시도 하면 됩니다.
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
ROS를 우분투 서버에 설치하기 때문에 Desktop 버전을 설치할 필요가 없습니다.
따라서 다음 명령어로 ROS2를 설치합니다.
$ sudo apt install ros-foxy-ros-base
ROS2에서 패키지를 빌드하기 위해 Colcon Build를 설치합니다.
아래 명령어를 통해 설치할 수 있습니다.
$ sudo apt update
$ sudo apt install python3-colcon-common-extensions
Alias를 설정함으로 긴 명령어를 하나의 단축어로 설정할 수 있습니다.
아래 명령어로 bashrc파일을 열어줍니다.
$ sudo nano ~/.bashrc
파일이 열렸으면 파일의 최하단에 다음을 추가합니다.
alias rosfoxy='source /opt/ros/foxy/setup.bash'
파일을 저장한 후, 다음 명령어로 bashrc를 적용할 수 있습니다.
$ source .bashrc
이제 터미널에 rosfoxy를 입력함으로 ros를 실행할 수 있습니다.
먼저 아래 명령어를 입력하여 test 패키지를 다운받습니다.
$ mkdir test
$ cd test
$ git init
$ git config core.sparseCheckout true
$ git remote add -f origin https://github.com/YDongHyun/ROS2_with_RaspberryPI.git
$ echo "helloworld_pkg/*" > .git/info/sparse-checkout
$ git pull origin main
만약 git 명령어가 안된다면 아래 명령어로 git을 설치합니다.
$ sudo apt install git
다운을 완료하였다면 터미널을 2개 열어준 후 다음 명령어를 입력합니다.
terminal 1
$ rosfoxy
$ source /test/install/setup.bash
$ ros2 run helloworld_pkg helloworld_publisher
terminal 2
$ rosfoxy
$ source /test/install/setup.bash
$ ros2 run helloworld_pkg helloworld_subscriber
다음과 같이 통신이 된다면 ROS2가 정상적으로 설치된 것입니다.
중간에 오류가 발생하거나 막히는점이 있다면 댓글로 남겨주세요
작성자님 말씀대로 ROS2 설치가 잘 이루어졌습니다. 하지만 라즈베리파이4를 재부팅하면 해당 ROS2가 실행이 안되는데 원인의 이유가 있을까요?