티스토리 뷰

전공/ROS

ROS2 서비스 정의 만들기

흔한 학생 2024. 11. 16. 18:43

서비스 정의 만들기

srv 폴더 만들기

메시지 패키지 (my_first_package_msgs) 에 srv 폴더 만들기

  • 메시지 만들때는 msg 만들었다면 서비스는 srv 폴더를 만듦

srv 파일 만들기

원하는 .srv 파일을 만듦

메시지 msg는 종류가 한 가지 이지만 서비스는 request와 response로 두 가지이기에 구분이 필요함

--- 구분자 이용하여 구분을 하는 것임

int64 num
---
float64[] x
float64[] y
float64[] theta

CMakeLists.txt 수정

이전에 만들었던 msg 파일과 마찬가지로 srv 파일을 알려줌 

find_package(rosidl_default_generators REQUIRED)

rosidl_generate_interfaces(${PROJECT_NAME}
  "msg/CmdAndPoseVel.msg"
  "srv/MultiSpawn.srv"
)

 

이때는 comma 가 들어가지 않는다!

package.xml 수정

이전에 메시지 파일을 만들며 수정했다면 건드릴 필요는 없음

하지만 수정했다는 것은 기억해야 한다!

빌드 후 확인해보기

이후 colcon build로 빌드해주고

source 명령어나 alias로 만든 명령어로 워크스페이스 환경을 불러온다.

ros2 interface show my_first_package_msgs/srv/MultiSpawn

서비스가 잘 만들어진 것을 확인할 수 있다.

지금 보니 srv 파일에 오타가 나있군..

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함