[ROS2] 설치 및 설치 확인, 삭제

YJ·2024년 6월 4일

ROS2

목록 보기
1/9

공식 document
자세한 내용은 공식 document를 참고하세요!

ROS2란?

  • Robot Operating System의 줄임말로, 로봇에 특화된 다양한 라이브러리와 개발환경을 제공하는 오픈소스 운영체제이다. 기존의 운영체제를 이용하여 동작된다.
  • 하드웨어 지식 없이도 소프트웨어를 다룰 수 있고, 하드웨어 의존적이지 않은 코드를 작성할 수 있다.
  • 다양한 자료형과 통신 시스템을 설정하여 로봇과 로봇, 센서와 로봇간 소통이 용이하다.
  • 가시화, 시뮬레이션 툴 등을 제공한다.
  • 많은 사람들이 사용하여 커뮤니티가 발달되어있고, 많은 센서와 로봇이 이를 사용하기 때문에 이들과 원활하게 소통하기 위해선 ROS를 사용해야 한다. 편한 것도 편한 거지만 남들 쓰니까 쓰는 게 가장 큰 듯 하다.

ROS와 ROS2의 차이?

  • ros2는 모든 운영체제에 지원된다.
  • ros2는 보안 기능을 내장하고 있다.
  • ros2에서는 node의 생명주기를 직접적으로 제어한다.
  • ros1에선 roscore가 모든 노드 간 통신을 제어한다. 이와 달리 ros2에서는 분산형 아키텍처를 이용하고 QoS 설정이 가능하게 하여 실시간 통신이 더 쉬워진다.

ROS2 설치하기

ros2는 실제로 윈도우, 맥os, Ubuntu(22.04 이상)를 모두 지원한다. 이 글은 Ubuntu 22.04에서 일반적인 노트북에 설치할 때를 기준으로 한다.

설치하기

ctrl+Alt+T를 통해 터미널을 열고 아래 코드를 입력해준다.

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

locale  # verify settings력하세요

이 코드를 통해 locale(프로그램이 특정 지역이나 언어에 맞춰 숫자, 날짜, 텍스트 등을 표시하는 방식)이 UTF-8을 지원하는 locale로 올바르게 설정되도록 만든다. 올바르게 설정되어 있어야 ros2가 올바르게 작동한다.
공식 문서에 의하면 docker container와 같은 minimal environment에서는 기본적으로 POSIX locale을 사용하는데 이는 UTF-8을 지원하지 않는다고 한다. 이런 경우를 막기 위해 사용하는 코드.
Ubuntu 22.04 환경이라면 웬만하면 잘 설정 되어있을텐데, 확인하려면 터미널에 locale을 입력했을 때 LANG 및 LC_* 항목이 en_US.UTF-8 또는 다른 UTF-8 로케일로 설정되어 있다면, 추가 설정이 필요 없다고 한다.

sudo apt install software-properties-common
sudo add-apt-repository universe

Ubuntu Universe Repository를 활성화한다. 우분투는 여러 repository를 사용하는 데 그 중 오픈소스 패키지를 포함하는 게 universe repository다. 이를 활성화하여 오픈소스 소프트웨어인 ros2를 설치할 수 있게 하는 것이다.

sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

이 코드를 통해서는 ROS2 GPG key를 추가해준다. 이는 ROS2 패키지의 무결성을 확인하는 과정이라고 한다.

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

ROS2의 패키지 저장소를 프로그램의 패키지 소스 리스트에 추가한다.

sudo apt update

패키지 리스트를 업데이트 한다.

sudo apt upgrade

ros2는 최신 우분투에 맞춰 설정되기 때문에 필요한 경우 최신 버전으로 업그레이드 해줘야 한다.

sudo apt install ros-humble-desktop

설치 될 때까지 기다리면 끝.

bashrc 설정하기

gedit ~/.bashrc

열린 bashrc 파일의 마지막 줄에 아래 코드를 추가하면, 터미널을 열 때마다 매번 sourcing해올 필요가 없어진다. 처음 시작한 사람이라면 무슨 말인지 모를테니.. 일단 해두면 편하다.

source /opt/ros/humble/setup.bash

ROS2 설치 확인

ros2 run demo_nodes_cpp talker

터미널 하나를 열어 위 코드를 입력해준다.
만약 위에서 bashrc 설정을 안했다면 source /opt/ros/humble/setup.bash를 먼저 입력해줘야 한다.

ros2 run demo_nodes_py listener

다른 터미널을 열고 위 코드를 입력해준다.
아래와 같은 화면이 뜨면 성공(실시간으로 한 줄씩 뜬다).
만약 실패하면 제대로 설치가 되지 않은 것이다.


ROS2 삭제

sudo apt remove ~nros-humble-* && sudo apt autoremove

autoremove를 통해 삭제해준다.

sudo rm /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt autoremove
# Consider upgrading for packages previously shadowed.
sudo apt upgrade

이렇게 하면 라이브러리까지 삭제된다.


ROS2 document를 제대로 읽어보며 velog에 정리해보고자 한다.
다음 포스팅에서는 ROS2의 통신 형태를 살펴보고 코드를 작성해볼 것이다.

0개의 댓글