라벨이 ROS2인 게시물 표시

ROS 연동 로봇 프로그램과 일반 로봇 프로그램의 차이

이미지
설계의 차이 ROS라는 생태계 내에서 개발되는 로봇 프로그램은 프로세스를 목적별로 나누고 노드와 노드 간의 데이터 통신을 고려하여 설계한다. ROS와 연동되는 로봇 프로그램은 일반적인 로봇 프로그램과 달리 노드 단위의 프로그램을 작성한다. "일반적인" 로봇 프로그램은 - ROS에 비해 소프트웨어 컴포넌트를 다룰 때 Standard가 부족하고 - 특정 하드웨어 내에서 빌드를 목적으로한 프로그램이다. - 통신 시, 직접 함수를 호출하거나 직렬/UART 통신에 의존한다. ROS 로봇 프로그램은 - Topic을 통해 데이터를 교환하는 Publish-subscribe 모델을 사용한다. - 비동기 통신, 분산적이라는 특징은    분산된 별개의 컴퓨터에서 각각 다른 컴포넌트가 실행될 수 있음을 뜻한다. - 분산 시스템에서도 실시간 통신을 가능하게 하는 ROS의 중요한 요소가    DDS(Data Distribution Service)이다.   Sample Architecture 예시의 그림에서 중앙의 노드는 다른 노드들과의 통신에 있어서 중요한 역할을 한다. "ROS2로 시작하는 로봇 프로그래밍" 교재의 실습 자료에 대입해보면 각 노드의 역할을 다음과 같다. <Topic> - Topic publisher는 현재시간, 변수a, 변수b를 topic으로 publish한다. - Topic subscriber는 이 토픽을 구독한다. <Service> - Service client는 연산자를 서비스 요청값으로 보낸다. - Service server는 연산의 결괏값을 서비스 응답값으로 보낸다, <Action> - Action Client는 연산 결괏값의 누적 한계치를 액션 목표값으로 전달한다. * Aciton에 goal, feedback, result가 있음. 가운데 노드 는 - subscriber로부터 변수 a, b를 - service로부터 연산자를 받아 연산하고, 연산 결괏값을 서비스 응답으로 보낸다. Ac...

이 블로그의 인기 게시물

실무진 면접 경험으로 정리하는 백엔드 (1) : 에듀 테크 기업 면접

노마드코더 개발자북클럽 Clean code 완주, 독후감

Blogger 커스터마이징 : CSS 수정 (sticky-header)