| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- react
- 파이썬
- 스터디
- 메서드
- 생성자함수
- 팀러버덕
- 자바스크립트
- 프론트엔드
- ROS2로시작하는로봇프로그래밍
- 프로토타입
- DDS
- 코딩테스트
- Python
- TypeScript
- JavaScript
- 면접
- 함수
- 프로그래머스
- 선언
- 객체
- 상속
- 타입스크립트
- 스택
- ROS2
- Prototype
- ros
- ROS2로시작하는프로그래밍
- 타이핑효과
- 면접대비
- 리액트
- Today
- Total
목록분류 전체보기 (59)
RoboOps Lab by Jiu
DDS의 QoS — 통신을 어떻게 조절할 것인가ROS2에서 DDS를 쓴다고 하면 꼭 따라오는 개념이 QoS입니다.처음에는 용어가 어렵게 느껴지지만, 결국 QoS는 **“통신을 어떤 정책으로 할 것인가”**를 정하는 설정입니다.이번 글에서는 ROS2에서 자주 쓰는 DDS QoS 개념을 정리해보겠습니다.QoS란 무엇인가?QoS는 Quality of Service, 즉 서비스 품질입니다.쉽게 말하면 데이터 통신 옵션 세트라고 볼 수 있습니다. ROS2에서는 DDS의 QoS 개념을 그대로 가져와 퍼블리셔, 서브스크라이버, 서비스, 액션 등을 선언할 때 원하는 QoS를 지정할 수 있습니다.QoS를 통해 조절할 수 있는 대표적인 요소는 다음과 같습니다.데이터 전송의 실시간성네트워크 대역폭 사용 방식메시지의 지속성(..
ROS2와 DDS — 왜 ROS2는 DDS를 선택했을까?ROS2를 이야기할 때 빠지지 않는 단어가 있습니다.바로 DDS입니다.ROS1을 사용하다가 ROS2를 보면 “왜 굳이 DDS를 도입했을까?”라는 궁금증이 생기기 마련입니다.이번 글에서는 ROS2와 DDS의 관계, DDS의 핵심 특징, 그리고 ROS2에서 DDS가 어떻게 활용되는지 정리해보겠습니다.ROS2와 DDS의 관계ROS2에는 토픽, 서비스, 액션, 파라미터 같은 메시지 통신 방식이 있습니다.그리고 이 통신을 구현하기 위해 ROS2는 OMG에서 표준화한 DDS(Data Distribution Service) 의 프로토콜인 DDSI-RTPS를 사용합니다.DDS를 도입하면서 ROS2에는 다음과 같은 변화가 생겼습니다.OMG의 IDL을 사용해 메시지 ..
ROS1과 ROS2의 차이로 이해하는 ROS2의 특징ROS2를 제대로 이해하려면 “새 기능이 몇 개 추가됐다” 수준이 아니라,왜 ROS1과 다른 구조를 가져가게 되었는지를 보는 것이 중요합니다.ROS1은 2007년경 개발이 시작된 이후 로봇 연구·교육 분야에서 사실상 표준 플랫폼으로 자리 잡았지만,처음 설계될 당시의 전제 조건 때문에 여러 제한을 갖고 있었습니다.이번 글에서는 ROS1과 ROS2의 차이를 중심으로, ROS2의 특징을 정리해보겠습니다.ROS2 개발이 왜 필요했을까?ROS1은 원래 다음과 같은 환경을 전제로 설계되었습니다.단일 로봇워크스테이션급 컴퓨터리눅스 환경실시간 제어 미지원안정된 네트워크 환경대학/연구소 중심의 연구 용도하지만 시간이 지나며 ROS1은 제조 로봇, 농업 로봇, 드론, 소..
Why ROS2 — ROS2를 왜 써야 할까?ROS2를 공부하다 보면 자연스럽게 이런 질문을 하게 됩니다.“그래서 ROS2를 왜 써야 하지?”기존 ROS1도 있었고, ROS2는 단순히 그 다음 버전처럼 보일 수도 있습니다.하지만 Open Robotics는 2019년 5월에 공개한 “Why ROS2” 문서를 통해, ROS2가 단순한 버전 업이 아니라 산업, 생태계, 표준, 라이선스 관점에서 재설계된 플랫폼이라는 점을 강조했습니다.이번 글에서는 그 문서의 핵심 내용을 ROS2 입문자 관점에서 이해하기 쉽게 정리해보겠습니다.1. 시장 출시 시간 단축 (Time to Market)ROS2는 로봇 응용 프로그램 개발에 필요한 도구, 라이브러리, 기능 패키지를 폭넓게 제공합니다.덕분에 통신, 시각화, 시뮬레이션, ..
ROS2 IPC와 DDS지금까지 DDS Deep Dive 시리즈를 통해 살펴본 내용들을 정리하면,ROS2는 기본적으로 DDS 기반의 분산 publish-subscribe 시스템입니다.즉 ROS2의 Topic, Service, Action은 결국 DDS의 DataWriter / DataReader 조합으로 구현되며,네트워크에서는 RTPS 프로토콜을 통해 데이터가 전달됩니다.그런데 여기서 한 가지 중요한 질문이 생깁니다.같은 프로세스 안에 있는 노드끼리도 굳이 DDS를 통해 통신해야 할까?예를 들어 하나의 프로세스 안에서카메라 드라이버 노드이미지 전처리 노드객체 탐지 노드가 함께 실행되고 있다고 가정해 보겠습니다.이 경우 데이터는 물리적으로 같은 프로세스 메모리 안에 이미 존재하는데,굳이 이를 직렬화하고(s..
ROS2 Topic / Service / Action의 DDS 구현ROS2를 처음 배우면 노드 간 통신 방식으로 보통 세 가지를 먼저 접하게 됩니다.TopicServiceAction사용자 입장에서 이 셋은 분명히 성격이 다릅니다.Topic은 스트리밍 데이터에 적합하고Service는 요청–응답에 적합하며Action은 시간이 오래 걸리는 작업과 피드백, 취소가 필요한 경우에 적합합니다그래서 처음에는 “이 세 가지가 내부적으로도 완전히 다른 방식으로 동작하겠지”라고 생각하기 쉽습니다.하지만 DDS 관점에서 보면 이야기가 조금 다릅니다.ROS2의 Topic / Service / Action은 모두 결국 DDS의 DataWriter / DataReader endpoint 조합으로 구현됩니다.즉 ROS2는 서로 다..
왜 DDS는 TCP 대신 UDP를 사용하는가DDS를 처음 공부하면 많은 사람들이 이렇게 생각합니다.TCP는 신뢰성이 높다UDP는 빠르지만 유실이 있다그렇다면 DDS도 TCP를 쓰는 편이 더 안전하지 않을까?하지만 DDS의 목표는 단순히 “메시지를 반드시 다 전달하는 것”이 아닙니다.DDS가 목표로 하는 것은 다음에 더 가깝습니다.데이터의 성격에 따라, 필요한 수준의 신뢰성과 지연 특성을 선택적으로 제어하는 것즉 DDS는 무조건적인 신뢰성보다실시간성과 통신 정책 제어 가능성을 더 중요하게 봅니다.이 점이 TCP와 DDS의 철학적 차이입니다.1. TCP의 장점과 한계먼저 TCP의 장점부터 간단히 정리해 보겠습니다.TCP는 다음 기능을 기본적으로 제공합니다.연결 지향(connection-oriented)순서 ..
RTPS 프로토콜앞선 글에서 DDS 통신 구조를 살펴보면서 다음과 같은 질문이 자연스럽게 생깁니다.Publisher가 데이터를 발행하면 그 데이터는 실제로 어떻게 네트워크를 통해 전달될까?ROS2 애플리케이션에서는 단순히 publish() 함수를 호출하면 메시지가 전달되는 것처럼 보입니다.하지만 실제 네트워크에서는 이 데이터가 특정 통신 프로토콜을 통해 패킷 형태로 전달됩니다.ROS2에서 사용하는 DDS 구현들은 대부분 RTPS(Real-Time Publish Subscribe) 라는 프로토콜을 사용합니다.1. RTPS란RTPS는 DDS에서 사용하는 실시간 데이터 전송 프로토콜입니다.DDS는 데이터 분산 모델과 API를 정의하는 미들웨어 표준이고,RTPS는 실제 네트워크에서 데이터를 전달하는 통신 프로토..
Data Bus와 Distributed Cache앞선 글에서 DDS의 내부 객체와 Endpoint Graph 구조를 살펴보았습니다.Discovery가 끝나면 DDS 내부에는 DataWriter와 DataReader가 연결된 구조가 만들어지고,이제 실제 데이터가 네트워크를 통해 전달되기 시작합니다.이때 DDS 시스템을 이해하기 위해 반드시 알아야 할 두 가지 개념이 있습니다.Data BusDistributed Cache이 두 개념은 DDS 통신 모델을 이해하는 핵심입니다.간단히 말하면 다음과 같습니다.데이터는 네트워크 버스(Data Bus)를 통해 이동하고, 각 노드는 자신의 로컬 캐시(Distributed Cache)에 데이터를 저장합니다.즉 DDS 시스템은 중앙 데이터 서버를 두는 대신,네트워크 기반 ..