티스토리

  • 분류 전체보기 (12)
    • Project (0)
    • Embedded SW (0)
      • Linux (0)
      • Free RTOS (0)
    • Hardware, Sensor (1)
      • GPS (0)
      • IMU (1)
    • Robotics (9)
      • Modern Robotics (3)
      • ROS (6)
    • Machine Learning (0)
      • TinyML (0)
    • 기타 (2)
      • WSL (2)

최근 댓글

*asterisk
Lab Note
*asterisk
hELLO · Designed By 정상우.
*asterisk

Lab Note

ROS 2 설치 (Windows WSL 이용)
Robotics/ROS

ROS 2 설치 (Windows WSL 이용)

2022. 2. 3. 23:05

WINDOWS 환경에서 WSL을 설치하고 ROS2-galactic을 설치하는 방법에 대해 설명한다.

Ubuntu OS를 사용 중이라면 "Install WSL2"는 skip하면 된다. ROS2를 설치하는 방법에 대해서는 Debian package를 이용하는 방법과 building하는 방법에 대해 다룰 것이다. Debian package를 이용하면 쉽고 빠르게 ROS2 설치가 가능하지만, ROS2 package들의 최신 버전을 적용하거나 code를 살펴보고 싶다면 building을 통해 ROS2를 설치하는 것을 추천한다. (둘 중 하나의 방법만 따르면 된다.)


Install WSL2

WSL설치 (WINDOWS에서 Linux GUI apps 이용하기) 참조

 


Install ROS2 prerequisites

먼저 UTF-8을 지원하도록 locale이 설정되어 있는지 확인한다.

# UTF-8 확인
$ locale
LANG=en_US.UTF-8 # 이렇게 나온다면 아래를 수행할 필요가 없다.
....

# locale 변경
$ 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

다음으로 ROS2 apt repository를 source list에 추가해준다.

$ 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
$ 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

Install ROS2 - via Debian package

위의 Install ROS2 prerequisites가 완료되었다면, 아래 명령어를 통해 ROS2 galactic을 설치한다.

$ sudo apt update
$ sudo apt install ros-galactic-desktop

설치가 완료되면 /opt/ros/galactic에 있는 setup.bash 파일을 sourcing하여 ROS2 환경을 set-up할 수 있다.

$ source /opt/ros/galactic/setup.bash

Install ROS2 - via building

Install ROS2 prerequisites가 완료되었다면, ROS2 build를 위한 development tool을 설치한다.

$ sudo apt update && sudo apt install -y \
  build-essential \
  cmake \
  git \
  python3-colcon-common-extensions \
  python3-flake8 \
  python3-pip \
  python3-pytest-cov \
  python3-rosdep \
  python3-setuptools \
  python3-vcstool \
  wget

$ python3 -m pip install -U \
  flake8-blind-except \
  flake8-builtins \
  flake8-class-newline \
  flake8-comprehensions \
  flake8-deprecated \
  flake8-docstrings \
  flake8-import-order \
  flake8-quotes \
  pytest-repeat \
  pytest-rerunfailures \
  pytest \
  setuptools

ROS2를 위한 workspace를 만들고 repo를 clone한다.

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

clone 후에 최신 commit으로 업데이트를 하고 싶다면, 아래 명령어를 수행한다.

$ vcs pull src < ros2.repos

rosdep을 이용하여 dependencies를 설치한다.

$ sudo rosdep init
$ rosdep update
$ rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-5.3.1 urdfdom_headers"

ROS2 build를 수행한다.

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

build가 완료되면 ROS2 workspace의 install폴더에 있는 setup.bash 파일을 sourcing하여 ROS2 환경을 set-up할 수 있다.

$ source ~/ros2_galactic/install/setup.bash

 

'Robotics > ROS' 카테고리의 다른 글

DDS RTPS 패킷 확인해보기 (wireshark)  (0) 2022.03.01
DDS RTPS의 Discovery Protocol  (1) 2022.02.12
DDS RTPS의 동작(behavior)  (1) 2022.02.11
DDS RTPS의 구조(structure)와 메세지(message)  (0) 2022.02.05
DDS와 RTPS 개념정리  (0) 2022.02.04
    'Robotics/ROS' 카테고리의 다른 글
    • DDS RTPS의 Discovery Protocol
    • DDS RTPS의 동작(behavior)
    • DDS RTPS의 구조(structure)와 메세지(message)
    • DDS와 RTPS 개념정리
    *asterisk
    *asterisk
    robot, embedded SW, ROS 등에 대해 공부한 것들을 정리

    티스토리툴바