ROS2는 DDS(Data Distribution Service)라는 중간 계층 기술을 사용하여 분산 시스템에서의 노드 간 통신을 담당한다.
ROS2는 ROS1의 네트워크 인프라와 통신 패턴을 대부분 유지하면서도, 이전 버전과 다른 중요한 특징을 가진다
- DDS 기술: ROS2에서는 DDS 기술을 사용하며, 이 기술을 사용하면 노드 간의 직접적인 통신이 가능하다. 이로 인해 통신 레이턴시가 줄어들고, 통신 대역폭이 향상된다.
- 다양한 DDS 구현체 지원: ROS2에서는 다양한 DDS 구현체를 지원한다. 이를 통해 사용자는 프로젝트 요구 사항에 맞게 DDS 구현체를 선택할 수 있다.
- Common core client library: ROS2에서는 DDS와 관련된 코드와 ROS2 고유의 코드가 분리되어 있으며, 공통으로 사용되는 코드는 common core client library에 위치해 있다. 이로 인해 코드가 간결하고, 개발자가 노드 간 통신과 관련된 부분에 집중할 수 있게 된다.
- Topics를 통한 Publish/Subscribe: ROS2에서는 ROS1과 마찬가지로 Topics을 사용하여 Publish/Subscribe 패턴을 구현한다.
- 서비스: ROS2에서는 ROS1과 마찬가지로 서비스를 제공한다. 서비스는 Request/Response 패턴으로 동작한다.
- ROS1/ROS2 통신: ROS2에서는 ROS1과 ROS2 간에도 통신이 가능하도록 방법을 제공한다.
ROS1 / ROS2 Architecture
'IT > AI , 로봇' 카테고리의 다른 글
[ROS] 여러개의 터미널 창을 동시에 띄울때 유용한 유틸 (0) | 2023.05.12 |
---|---|
[Math] Linear algebra 의 데이터와 계산 (0) | 2023.05.12 |
[ROS] 버전에 대하여 (0) | 2023.05.12 |
[RL] Temporal Difference - 시간적 차이 (0) | 2023.05.12 |
[RL] Deterministic and stochastic exploration - 결정론적 탐색과 비결정론적 탐색 (0) | 2023.05.12 |