Don't Worry, Be Happy 😛

ROS2 소개 및 개발환경 구축

ROS2의 핵심 개념과 노드 기반 구조를 소개하고, 로봇 개발환경 구축에 필요한 기본 흐름을 정리한 입문 글입니다.

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의 선택 이유


ROS1ROS2
장점많 라이브러리, 많은 사용자, 많은 문서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.04LTS 버전
ROS2 버전Humble HawksbillLTS 버전(EOL date이 2년 이상)
IDE (통합 개발 환경)VSCodeROS2 확장팩 설치
프로그래밍 언어Python3, C++14ROS2는 Python3를 지원한다.
ROS2 버전 관리colconROS2에서는 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 대체

Related Posts

SOEM의 이해

논문을 읽는 도중 SOEM이라는 단어가 등장했다. 무엇인가 하여 찾아보니 Open EtherCAT Society라는 단체가 등장했는데, 이는 EtherCAT을 오픈소스로 만들어서 사용할 수 있게 만든 단체라는 것을 알았다.

Share this post