전공/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 파일에 오타가 나있군..