패스트캠퍼스 환급챌린지 21일차 : 자율주행 로봇을 위한 ROS 2 & Nav 2 한번에 끝내기 강의 후기
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
오늘은 ROS2 통신방법 중 마지막인 Action의 개요를 배웠다.
[오늘의 수강 영상]
[오늘의 필기]
Action이란?
5초이상의 장기 실행작업을 위해 설계된 비동기 통신방식이다.
client와 server로 구성되어 있으며
server : 특정 액션을 제공하는 노드
client : 액션을 요청하는 노드
메시지 유형에는 세가지가 있다.
1. Goal : Action client가 서버에 요청하는 작업의 목표
(ex. A에서 B로 가고 싶다.)
2. Feedback : 장기 실행작업에 사용하기 위해 중간점검을 위한
server가 client에게 현재 프로그램의 중간 상태 정보
(ex. 목적지 까지 남은 시간,현위치정보)
3. Result : 작업이 완료되면 server가 client에게 반환하는 최종결과
(ex. B에 도착 완료)
전체적인 그림은 다음과 같다.
action은 장기실행작업에 사용되므로 중간에 그만두고 싶을 때
client에서 진행중인 작업 취소가 가능하다.
액션의 Interface type은 다음과 같다.
1.Goal 부분
2. Result 부분
3. Feedback 부분
마지막으로 topic,service,action에 대해서
총정리해보면 다음과 같다.
구분 | 정의 | 특징 | Interface type |
Topic | 노드 간 비동기식으로 단방향 통신으로 위한 메커니즘 | 1. 비동기 통신 : publisher와 subscriber가 각자 동작 2. 다대다 통신 : 하나의 Publisher와 여러개의 subscriber 3. 고유한 메시지 타입 4. 실시간으로 사용 |
1. message 사용 2. .msg 확장자 사용 ![]() |
Service | 노드 간 동기식으로 일대일 통신을 위한 메커니즘 | 1. 동기 통신 : client가 request를 보내고 server가 response를 보내면서 서로 통신이 오가며 그 사이에 서로 아무런 행동도 하지 못함 but, async를 사용해서 비동기로도 사용 가능 2. Request와 Response 모델사용 3. 일회성 호출 : client가 요청할 때만 정보를 줌 4. 정보가 필요한 경우가 명확한 상황일 때 사용 |
1. request와 response 사용 2. .srv 확장자 사용 ![]() |
Action | 노드 간 동기식으로 5초 이상 작동하는 장기 실행 작업을 위한 메커니즘 | 1 비동기 통신 : client가 Goal을 설정해서 server에 보내면 실행이 시작되고 feedback을 받으면서도 다른 작업 수행가능 2. 진행 중인 작업 client에서 취소 가능 3. 피드백을 통한 진행 상황 모니터링 가능 |
1. goal, feedback, result 사용 2. .action 확장자 사용 ![]() |
통신 방법 중 마지막인 action에 대해 배워보면서
topic,service,action도 정리해보았는데
아무것도 몰랐던 21일 전과 달라진 것 같아
뿌듯한다.
현재 TIAGo에서 지원하는 패키지 중에 문제가 하나있어
action은 여기까지 진행하고
다음에 문제가 해결되면 이어서
실습을 진행해보겠다.
앞으로도 파이팅!!
#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
🔥누적 수강 9백만 시간 돌파 기념 100% 페이백 (03.22 - 03.27) | 패스트캠퍼스
단 6일 한정! 지금 수강 시작하면 수강료 100% 돌려드려요!
fastcampus.co.kr