ROS

ROS2 Foxy Fitzroy 설치 (Ubuntu 20.04)

dpswlsldj 2021. 3. 12. 19:44
728x90

ROS2의 최신 버전인 Foxy 버전을 설치해 보겠습니다.

 

Ubuntu 20.04가 권장됩니다.

 

설치 방법은 아래 페이지에 설명되어 있습니다.

 

  - docs.ros.org/en/foxy/Installation/Linux-Development-Setup.html

  - docs.ros.org/en/foxy/Installation/Linux-Install-Binary.html

 

 

저는 apt install 을 통한 debian 버전 설치가 잘 되지 않아서 아래와 같은 방법으로 진행했습니다.

 

1. Locale 설정 (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

2. 개발 tool 설치

저는 아래 설치 과정에서 에러가 발생하여 해결 후 다시 진행했습니다.

$ 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
# install some pip packages needed for testing
$ 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
# install Fast-RTPS dependencies
$ sudo apt install --no-install-recommends -y \
  libasio-dev \
  libtinyxml2-dev
# install Cyclone DDS dependencies
$ sudo apt install --no-install-recommends -y \
  libcunit1-dev

3. ROS2 apt repository 추가

$ sudo apt update && sudo apt install curl gnupg2 lsb-release
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
$ 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'

4. ROS2 다운로드

$ mkdir -p ~/ros2_foxy/src
$ cd ~/ros2_foxy
$ wget https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos
$ vcs import src < ros2.repos

5. 설치 및 rosdep 초기화

rosdep은 시스템 의존성 설치를 위한 CLI (Command Line Interface) tool 입니다.

$ sudo apt update
$ sudo apt install -y python3-rosdep
$ sudo rosdep init
$ rosdep update

# Installing the missing dependencies
$ rosdep install --from-paths ros2-linux/share --ignore-src --rosdistro foxy -y --skip-keys "console_bridge fastcdr fastrtps osrf_testing_tools_cpp poco_vendor rmw_connext_cpp rosidl_typesupport_connext_c rosidl_typesupport_connext_cpp rti-connext-dds-5.3.1 tinyxml_vendor tinyxml2_vendor urdfdom urdfdom_headers"

6. Python3 라이브러리 설치

$ sudo apt install -y libpython3-dev python3-pip
$ pip3 install -U argcomplete

7. 빌드

$ cd ~/ros2_foxy/
$ colcon build --symlink-install

3시간 7분 50초가 걸려서 빌드가 완료되었습니다.

8. 설치 확인

빌드 실패한 패키지들은 일단 무시하고, 다음 단계를 진행해 봅니다.

$ . install/steup.bash

# permission error가 발생할 경우,
$ chmod 777 install/setup.bash
$ . install/setup.bash

$ ros2
# ros2 명령어가 실행되는 것을 볼 수 있습니다.

두 개의 터미널을 띄우고 각각의 터미널에서 아래 명령을 수행합니다.

# Terminal 1
$ cd ros2_foxy'
$ . install/setup.bash
$ ros2 run demo_nodes_cpp talker

# Terminal 2
$ cd ros2_foxy'
$ . install/setup.bash
$ ros2 run demo_nodes_py listner

아래와 같이 talker는 Publish하고 listener는 Subscribe하는 것을 확인할 수 있습니다.

'ROS' 카테고리의 다른 글

ROS (Robot OS) 소개  (0) 2021.03.08