2 분 소요

ROS2를 공부하면서 정리한 내용이다.

목차

|목차|내용|비고|링크| |:–:|:–|:–|:–| |ROS2란?|ROS2 기본 개념|로봇 운영체제 소개|바로가기| |ROS 선택 이유|ROS를 선택한 배경|로봇 개발 필요성|바로가기| |ROS2 vs ROS1|버전별 비교|ROS2 선택 이유|바로가기| |개발환경 구축|ROS2 설치 및 설정|버전 선택과 설치 과정|바로가기| |관련 라이브러리|주요 라이브러리 소개|OpenCV, PCL 등|바로가기| |참고 자료|ROS2 커뮤니티 및 문서|학습 리소스|바로가기|

ROS2란?

ROS는 Robot Operating System 의 약자로, 로봇을 위한 운영체제이다.
ROS는 로봇을 위한 운영체제이기 때문에, 로봇의 하드웨어와 소프트웨어를 분리하여 개발할 수 있게 해준다.

ROS를 선택한 이유


공대는 주로 졸업작품을 만들게 되는데, 우리는 메카트로닉스과여서 로봇을 제작한다.
로봇은 크게 하드웨어와 소프트웨어로 나눌 수 있는데, 소프트웨어 쪽에서는 모터 제어, 센서 데이터 처리, 로봇의 위치 추정, 지도 만들기 등을 해야한다.
통신부터 제어까지 모두 해야하는데, 이를 손 쉽게 해주는 프로그램이 ROS이다. 그래서 ROS를 선택하게 되었다.

다른 robot software
(OpenRTM, OPRoS, Player, YARP, Orocos, CARMEN, Orca, MOOS, Microsoft Robotics Studio … )

ROS2의 선택 이유


  ROS1 ROS2
장점 많 라이브러리, 많은 사용자, 많은 문서 ROS1의 단점을 보완
단점 C++ 기반, 멀티프로세스 지원 안함, 멀티로봇 지원 안함, Real-time 지원 안함 C++/Python 지원, 멀티프로세스 지원, 멀티로봇 지원, Real-time 지원

ROS2의 구조


ROS2 정보


open source기반의 robot software이기 때문에 커뮤니티가 활발하다.

관련 문서(ROS2)

유명한 라이브러리 (따로 공부해서 포스팅할 예정)


OpenCV

  • 영상처리 라이브러리
  • 이미지 처리, 카메라 캡쳐, 동영상 처리 등을 할 수 있다.

PCL(Point Cloud Library)

  • 3차원 영상처리 라이브러리
  • 3차원 영상처리, 3차원 데이터 필터링, 3차원 데이터 특징 추출 등을 할 수 있다.

등등 관련 링크 SLAM_개발유용한_라이브러리

ROS2 개발환경 구축

버전 선택

ROS2는 현재 여러 버전이 지원되고 있다. 주요 버전으로는 다음과 같다:

  • Iron Irwin
  • Humble Hawksbill (LTS)
  • Jazzy Jalopy

해당 버전들은 ROS2_Version에서 확인할 수 있다.

권장 선택

주로 LTS 버전을 이용하는 것이 좋다. (우분투와 다른 것들과 마찬가지)
LTS란?

구분 버전 설명
기본 운영체제 Ubuntu 22.04 LTS 버전
ROS2 버전 Humble Hawksbill LTS 버전(EOL date이 2년 이상)
IDE (통합 개발 환경) VSCode ROS2 확장팩 설치
프로그래밍 언어 Python3, C++14 ROS2는 Python3를 지원한다.
ROS2 버전 관리 colcon ROS2에서는 catkin이 아닌 colcon을 사용한다.

ROS2 설치

설치 방법은 ROS2 설치를 참고했다.
또한 ROS2_강의도 참고했다.

Ubuntu에서 ROS2 Humble 설치

# 1. 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

# 2. 소스 설정
sudo apt install software-properties-common
sudo add-apt-repository universe

# 3. ROS 2 GPG 키 추가
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

# 4. 저장소 추가
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

# 5. ROS2 설치
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop

# 6. 환경 설정
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

# 7. colcon 설치
sudo apt install python3-colcon-common-extensions

# 8. 설치 확인
ros2 --help

개발 도구 설치

# VSCode 설치
sudo snap install code --classic

# ROS2 개발을 위한 추가 패키지
sudo apt install python3-pip
pip3 install argcomplete

# 워크스페이스 생성
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc

ROS2 대체