ROS는 로봇 운영 체제(Robot Operating System)의 약자로 로봇 응용 프로그램을 빌드하기 위한 소프트웨어 라이브러리 및 도구 모음이다. 운영 체제라고는 하지만 Ubuntu 등 다른 운영체제 위에서 동작한다.
기존 ROS의 단점 및 한계를 보완한 ROS2는 Ubuntu Linux - Focal Fossa (20.04) 플랫폼을 지원한다.
먼저 UTF-8
을 지원하는 로케일인지를 확인해야 한다.
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
그후 사용자 환경에서 ROS 2 apt 리포지토리를 추가해야 하는데, 그 전에 Ubuntu Universe 리포지토리가 사용가능한지 확인해야 한다.
sudo apt-cache policy | grep universe
다음과 같은 출력이 나오면 된다.
500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=universe,b=amd64
다른 출력이 나올 시 Universe repository
를 활성화 하자.
sudo apt install software-properties-common
sudo add-apt-repository universe
ROS 2 apt repository
를 추가한다.
sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
리포지토리 업데이트 후 패키지를 설치한다. ROS는 최신 환경의 Ubuntu
를 기반하기 때문에, Ubuntu
또한 최신 상태인지 확인한다.
sudo apt update
sudo apt upgrade
Foxy Desktop
을 설치한다.
sudo apt install ros-foxy-desktop
ROS-Base
를 설치한다 .
sudo apt install ros-foxy-ros-base
다음의 setup.bash
파일을 이용해 환경을 설정한다.
source /opt/ros/foxy/setup.bash
위에서의 ros-foxy-desktop
을 설치했다면, 다음과 같은 예제를 수행할 수 있다.
터미널 2개를 준비하자. 필자는 Terminator
소프트웨어를 사용하였다.
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py listener
위의 사진과 같이 각각의 터미널에 Publishing
, I heard
가 출력되면 성공적으로 설치한 것이다. 이는 C++와 Python API가 제대로 작동되고 있음을 보여준다.