꾸준하고 즐겁게
ROS의 Service 통신 방식 - [2 of 2] 본문
https://gradient-descent.tistory.com/71
이전 글에서 이어지는 내용이다.
5. CMakelist 파일 수정하기
vim CMakeList.txt gedit CMakeList.txt |
글 편집하는데 너무 없어보여서 vim 편집기를 사용했다.
하지만 실제로 편집하는데엔 gedit 편집기가 훨씬 편한 것 같다...
먼저 패키지 명이 프로젝트명에 입력되어있는 걸 확인했다.
서비스 실행 함수의 주석을 풀고, 서비스 파일을 알려주었다.
오타났다.
add_executable 함수에 srv_server src/srv_client.cpp가 아니라 srv_server.cpp 여야한다.
위처럼 내용을 수정해주었다.
사실 한 번에 될 지는 잘 모르겠다.
해보고 안되면 디버깅하자.
저장하고 창을 닫는다.
6. 빌드 & 디버깅 & 실행
cd ../.. |
경로를 이동한다.
catkin_make |
빌드 명령어를 입력한다.
이전에 공부할 때 만든 패키지랑 클라이언트 이름을 똑같이 지었나보다.
이름을 바꿔주고, 다시 catkin 워크스페이스 경로로 돌아와서 catkin_make 했다.
거의 다 왔다.
이 부분 주석을 풀어주지 않았던 것이다...
이제 해결됐다.
source ~/.bashrc |
변경 사항을 적용시켜준다.
터미널을 3분의 1 갈죽 해주었다.
앞서서 썼어야했는데, 잊어버렸다.
sudo apt-get install terminator |
이걸 설치하고 사용하면 터미널을 이렇게 사용할 수 있다.
마스터 실행하고, 서버 실행하고, 클라이언트 실행하려면 3개의 화면이 필요하다.
터미널을 따로따로 열면 열 때마다 source ~/.bashrc를 해주어야해서 번거롭다.
rospack profile |
명령어를 입력해주었다.
roscore |
마스터를 실행했다.
명령어 입력할 때 탭 키 눌러서 자동완성이 좍좍 떠야한다.
그렇게 안되면 거의 대부분 문제가 있었다.
rosrun wj_tuto_service wj_srv_server rosrun wj_tuto_service wj_srv_client |
각각 서버와 클라이언트를 실행하는 명령어이다.
코딩했던 대로 숫자를 두 개 주면, 덧셈해서 돌려준다.
서비스는 동기 소통 방식을 가지고 있으므로, 요청을 하고 답을 돌려받으면 연결이 끝난다.
'Hardware > ROS' 카테고리의 다른 글
ROS의 Service 통신 방식 - [1 of 2] (0) | 2021.06.14 |
---|---|
ROS message 패키지를 만들어보았다. - [2 of 2] (1) | 2021.06.12 |
ROS message 패키지를 만들어보았다. - [1 of 2] (0) | 2021.06.11 |
ROS와 그 용어에 대해 알아보았다. (0) | 2021.06.07 |