ROS2는 현재도 계속 개발 중으로 다양한 배포판이 나오고 있다. 이 중 Humble 배포판의 설치 내용을 정리한다.

 

윈도우로 설치하고자 한다면 아래와 같이 Microsoft Store에서 Ubuntu 22.04 LTS 버전을 다운로드 받고, 리눅스로 설치하고자 한다면 우분투 22.04에서 아래 나올 설치과정을 수행하면 된다.

 

1. ROS 설치

1.1 우분투 업데이트 및 언어 설정을 위한 locale 설치

sudo apt update && sudo apt install locales

 

1.2 locale 세팅

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

 

1.3 ROS2 설치를 위한 universe 저장소 활성화

apt-cache policy | grep universe

 

1.4 ROS2 apt 저장소를 시스템에 추가 & GPG 키 승인

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

 

1.5 ROS2 저장소를 sources.list에 추가

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

 

1.6 sources.list 업데이트에 따른 우분투 시스템 update 수행

sudo apt update
sudo apt upgrade

 

1.7 ROS2 설치 (다른 설치 과정에 비해 상대적으로 많은 시간 소요)

sudo apt install ros-humble-desktop

만약 풀버전을 다운로드 받고 싶다면 sudo apt install ros-humble-desktop-full 명령을 실행할 것. (차이점 파악 필요..)

 

1.8 ROS2 동작에 필요한 패키지 설치 (통신 라이브러리, CLI 도구 등 포함)

sudo apt install ros-humble-ros-base

 

2. ROS2 설치 검증

검증 1 - 통신 가능 여부

ROS2의 'Hello World'를 통해 정상적으로 설치되었는지를 확인한다. 이는 두 개의 터미널로 데이터를 주고 받는 것이 가능한지를 확인함으로써 가능하다. Talker와 Listener가 있고 Talker가 터미널에서 출력하는 메시지를 Listener가 받아서 그대로 출력할 수 있는지를 검증한다.

 

Talker 실행 (C++ 기반)

source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker

 

Listener 실행 (Python 기반)

source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener

 

(ROS2는 C++과 Python을 함께 지원한다.)

 

위 명령들을 실행하면 두 터미널에서 다음과 같은 형태로 Talker가 출력한 값을 Listener가 받아와 그대로 출력하는 것을 확인할 수 있다.

 

매번 source /opt/ros/humble/setup.bash를 입력하는 것이 귀찮으니 .bashrc 파일에 넣어 터미널이 실행될 때 자동으로 실행되도록 하자

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

 

검증 2 - 패키지 빌드 가능 여부

ROS2에서 패키지를 빌드하는 명령이 잘 수행되는지 여부를 판단하여 ROS2가 정상적으로 설치되었음을 확인한다.

soruce ~/opt/ros/humble/setup.bash
mkdir -p ~/robot/src/
cd ~/robot
colcon build --symlink-install

 

위 명령을 수행하면 다음과 같이 기존의 src 폴더와 더불어 build, install, log가 생성되며 이와 같이 생성된다면 ROS2가 정상적으로 설치된 것이다. 

아래는 동일한 내용으로 위와 같이 WSL이 아니라 Ubuntu 22.04를 설치하여 빌드 가능함을 확인하였다.

 

3. Gazebo 설치

Gazebo는 시뮬레이션 환경이다. 개발한 로봇 관련 알고리즘을 하드웨어에 적용시키기 이전에 소프트웨어적인 시뮬레이션을 통해 정상적으로 동작하는지 검증하기 위해 사용한다. 실제와 같이 중력, 기압, 고도, 풍속 등의 요소 등을 적용하여 시뮬레이션 할 수 있다. Gazebo이외에 MS에서 만든 Airsim이나 JMavSim도 있지만 상대적으로 레퍼런스가 많아 개발에 조금 더 용이한 Gazebo를 설치한다. 참고로 아래는 오픈소스 시뮬레이터 비교 표다. 

3.1 gazebo 설치

sudo apt-get -y install gazebo

(만약 gazebo 설치가 정상적으로 이뤄지지 않은 것 같다면 아래 명령 수행 - 차이점 파악 필요...)

sudo apt install ros-humble-gazebo-ros

 

위 명령을 통해 gazebo를 설치하고 난 뒤 다음과 같이 명령어를 수행하면 아래와 같이 Gazebo 시뮬레이터가 실행된다.

gazebo --verbose

 

 

만약 Failed to execute child process "dbus-launch" 에러가 발생하면 dbux-x11 패키지를 설치해줄 것

sudo apt install dbux-x11

 

4. ROS2 시각화 툴 설치 확인

ROS2에서 이뤄지는 통신 과정이나 시뮬레이션 상황을 시각화해서 보아야 할 때가 있다. rviz2가 시각화 도구다. ROS2 패키지 설치시 함께 설치된다. 아래와 같이 터미널에 rviz2를 실행하면 시각화 프로그램이 실행됨을 확인할 수 있다.

 

5. ROS2 개발 툴체인 설치

sudo apt update && sudo apt install -y build-essential cmake git libbullet-dev python3-colcon-common-extensions python3-flake8 python3-pip python3-pytest-cov python3-rosdep python3-setuptools python3-vcstool wget
python3 -m pip install -U argcomplete flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes pytest-repeat pytest-rerunfailures pytest
sudo apt install --no-install-recommends -y libasio-dev libtinyxml2-dev libcunit1-dev

 

6. 기타 패키지 설치

# ROS2-gazebo 연동을 위한 패키지
sudo apt install ros-humble-gazebo-ros-pkgs
sudo apt install ros-humble-gazebo-ros2-control

# SLAM 관련 패키지 
sudo apt install ros-humble-cartographer
sudo apt install ros-humble-cartographer-ros

# Navigation 관련 패키지
sudo apt install ros-humble-navigation2
sudo apt install ros-humble-nav2-bringup

# ROS2 motion planning 프레임워크
sudo apt-get install ros-humble-moveit

# pyqt 설치
sudo apt-get install pyqt5-dev-tools
python3 -m pip install --upgrade pip
python3 -m pip install -U catkin_pkg cryptography empy ifcfg lark-parser lxml netifaces numpy opencv-python pyparsing pyyaml setuptools rosdistro
python3 -m pip install -U pydot PyQt5

 

Reference

[1] https://makingrobot.tistory.com/159

[2] https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html

[3] https://omorobot.gitbook.io/manual/product/omo-r1mini/ros/ros2-foxy/ros2-ubuntu-20.04

[4] https://keep-steady.tistory.com/45

[5] https://puzzling-cashew-c4c.notion.site/ROS-2-Foxy-Windows-10-WSL-2-f50188cdf0c540119defa69fb40db221

+ Recent posts