ROS 2를 사용하는 큰 이유라고 하면 DDS(Data Distribution Service)는 핵심 통신 미들웨어로 사용되서 라고 할 수 있다.
DDS는 분산 시스템을 위한 데이터 교환 표준을 제공하며, ROS 2의 메시지 전달 메커니즘으로 채택되어
ROS 2는 실시간 성능, 확장성, 신뢰성, 상호 운용성 등을 갖춘 통신 기능을 제공합니다.
DDS(Data Distribution Service)
Object Management Group(OMG)에서 정의한 표준으로, 분산 네트워크 상에서 실시간 데이터 교환을 지원합니다. 주요 특징은 다음과 같습니다:
- 퍼블리셔-서브스크라이버 모델: 데이터를 생성하는 퍼블리셔와 데이터를 소비하는 서브스크라이버 간의 비동기 통신
- QoS(서비스 품질) 정책: 데이터 전달의 신뢰성, 우선순위, 지속성 등을 정의
- 자동 탐색: 네트워크에 연결된 새로운 노드나 토픽을 자동으로 탐지하고 통신 설정
- 분산 아키텍처: 중앙 서버 없이 피어-투-피어 방식으로 동작하여 단일 장애점(SPOF)이 없음
ROS 2 Humble Hawksbill을 Ubuntu에서 Debians 패키지로 설치하는 방법
ROS 공식홈페이지 절차 따라하자!
https://docs.ros.org/en/humble/Installation/
Index of /en/humble/Installation
docs.ros.org
https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html
Ubuntu (Debian packages) — ROS 2 Documentation: Humble documentation
You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Jazzy. Ubuntu (Debian packages) Table of Contents Debian packages for ROS 2 Humble Hawksbill are currently av
docs.ros.org
시스템 요구 사항
ROS 2 Humble은 Ubuntu 22.04 (Jammy Jellyfish)에서 설치 및 사용이 권장된다. 아직까지는!?
- Ubuntu 22.04 (Jammy) - 귀여운 해파리?
- 2GB 이상의 RAM
- 충분한 디스크 공간 (최소 10GB 권장)
현재 locale 확인
Set locale
시스템의 지역화 및 언어 환경을 설정
- sudo locale-gen en_US en_US.UTF-8:
- en_US와 en_US.UTF-8 로케일을 생성
- sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8:
- 시스템의 기본 로케일을 en_US.UTF-8로 설정
- export LANG=en_US.UTF-8:
- 현재 세션의 언어 설정을 en_US.UTF-8로 설정
ROS2 Humble 설치 기본 설정
1. ROS2 필수 패키지 설치 및 universe 패키지 저장소 추가
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository universe
2. ROS2 GPG 키 추가
GPG(GNU Privacy Guard) 키가 사용하는 이유는 소프트웨어 패키지의 안전성과 무결성을 보장하기 위해서이다.
예를 들어, 패키지를 배포하는 저장소는 자신의 GPG 키로 패키지에 서명하면 ROS 2 저장소에서 다운로드한 패키지가 신뢰할 수 있는 소스에서 온 것인지 확인할 수 있다!
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
- 키가 저장되는 장소 확인
3. 내 source list에 ubuntu repository 추가
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
내 우분투 /etc/apt에 ros2가 잘 있는 걸 볼 수 있다.
Install ROS 2 packages
Desktop Install (Recommended): ROS, RViz, demos, tutorials.
(라면 끓여먹고 와도 될 시간 소요)
sudo apt install ros-humble-desktop
------------------------------------------------------------나중에 필요에 의해 설치하자------------------------------------------------------------
ROS-Base Install (Bare Bones): Communication libraries, message packages, command line tools. No GUI tools.
sudo apt install ros-humble-ros-base
Development tools: Compilers and other tools to build ROS packages
sudo apt install ros-dev-tools
Environment setup test
talker 1개의 4개의 listener가 반응한다.
--> listener가 같은 네트워크의 다른 talker까지 모두 반응하면 그렇다.
기본적으로 한 네트워크에 하나씩 talker와 listener가 존재하면 이렇다.
'OS > ROS' 카테고리의 다른 글
액션 만들기 (0) | 2024.06.17 |
---|---|
메시지 정의 만들고 서비스 생성 (0) | 2024.06.17 |
메시지 정의 만들고 토픽 다루기 (0) | 2024.06.17 |
패키지 만들기 (0) | 2024.06.14 |