[ROS2] EP12. 액션 메세지 정의 만들기

김희상·2024년 7월 30일

ROS2

목록 보기
12/17
post-thumbnail

  • OS : Ubuntu 22.04
  • ROS 2 Humble
  • Gazebo 11

1. 액션 메세지 정의 만들기

1. 액션의 의미

"source : ROS 2 Documentation"
  • action client가 action server에 요청할 때 send goal을 보낼 때 action definition이 같이 날아감
  • action server는 마칠때까지 중간 과정을 topic으로 feedback을 줌

2. action 폴더 만들기

  • my_first_package_msgs에 action 폴더 만들기 (mkdir action)

3. DistTurtle.action 생성

# Request
float32 linear_x
float32 angular_z
float32 dist
---
# Result
float32 pos_x
float32 pos_y
float32 pos_theta
float32 result_dist
---
# Feedback
float32 remained_dist

  • 컨셉은 turtle을 내가 원하는 거리만큼 이동할 수 있도록
  • Request에는 선속도와 각속도(cmd_vel), 이동해야 할 목표 거리
  • Result에는 현재의 포지션과 자세 (turtle의 pos 토픽), 이동한 선(호)의 길이 계산 후 dist와 일치하면 정지
  • 남은 거리는 Feedback으로

4. CMakeLists.txt 수정

  • action 정의 추가했으니, CmakeLists.txt 수정
  • action 폴더 안에 DistTurtle.action이라는 파일이 있음

5. package.xml 수정

  • action_msgs 추가

6. 빌드 후 환경 부르기

  • ws에서 humble 부르고 colcol build
  • ros2study 환경 부르기

7. 결과 확인

  • interface show 확인

profile
3D 모델러의 개발 도전기

0개의 댓글