해당 실습 자료는 한양대학교 Road Balance - ROS 2 for G Camp와 ROS 2 Documentation: Foxy, 표윤석, 임태훈 <ROS 2로 시작하는 로봇 프로그래밍> 루피페이퍼(2022) 를 참고하여 작성하였습니다.
이번 장에서는 Action
에 대한 개념을 알아볼 예정입니다.
ROS2 Action 개념
Action의 특징
- Action client는 Action server가 response를 보내기 전까지 계속해서 기다리지 않고, 다른 일을 할 수 있습니다.
- Action client은 request를 보낸 뒤에도 지속적으로 feedback을 받을 수 있습니다.
- feedback을 받고 있다가, 뭔가 잘못 돌아가고 있다는 것을 감지한 경우! cancel을 할 수도 있답니다.
- 하지만, 여러 request를 동시에 작업하는 것은 본질적으로 불가합니다. ⇒ 단, 프로그래밍적인 해결이 가능합니다.

image from : https://docs.ros.org/en/foxy/Tutorials/Understanding-ROS2-Actions.html
사진과 같이 Action Client와 Server가 주고받는 내용은 크게 5가지가 있습니다. 더불어 이들이 전개되는 순서를 살펴보면 다음과 같습니다.
- Client ⇒ Server, Goal Request (service request와 유사합니다.)
- server ⇒ client, Goal Response