기초 단계

1. ROS 설치하고, 설정하기

2. ROS 파일 시스템 살펴보기

3. ROS 패키지 만들기

4. ROS 패키지 빌드하기

5. ROS 노드에 대해서 이해하기

6. ROS Topic을 이해하기

7. ROS 서비스와 파라미터 이해하기

8. rqt_console과 ros launch 사용하기

9. rosed로 파일 수정하기

10. ROS msg와 srv 만들기

11. C++로 간단한 퍼블리셔와 서브스크라이버 작성하기

12. 파이썬으로 간단한 퍼블리셔와 서브스크라이버 작성하기

13. 간단한 퍼블리셔와 서브스크라이버에 대해서 살펴보기

14. 간단한 서비스와 클라이언트 코드 작성하기(C++)

15. 간단한 서비스와 클러이언트 코드 쓰기(파이썬)

16. 간단한 서비스와 클라이언트에 대해서 알아보기

17. 데이터를 녹음하고 재생하기

18. bag file에서 메시지 읽기

19. roswtf 시작하기

20. ROS wiki 살펴보기

21. 다음에 할께 뭐가 있을까?

 

퍼블리셔/서브스크라이버, 서비스/클라이언트 등 c++ 구현도 있긴한데 부담스러워서 패스하고 파이썬만 끄적여야지

 

 

 

http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29

 

좀 쉬었고 이제 퍼블리셔, 서브스크라이버 시작해보자

 

 

내용 보면 beginner_tutorials 패키지에다가 scripts 폴더 만들고

 

wget으로 이미 작성된 코드 받으라고하는데,

연습삼아서 직접 작성하고 실행권한을 주자

 

그 뒤에 CMakelists.txt다가 추가해야한다고하는데,  전에는 이거 안해도 잘썻던거같은데 install 하는데 필요한가보다 

 

 

어짜피 코드 짧으니 금방 작성하자

맨 위의 #! 주석문은 파이썬 스크립트로 실행한다는 의미고

 

import야 rospy와 std_msgs.msg 에서 String 타입을 가져오고

 

7 번 줄에서 Publisher를 생성해서 'chatter'라는 토픽으로 문자를 보낸다, queue_size는 최대 10, 섭스크라이버가 못받으면 10개까지만 보관한다고 이해하면 될까 싶다.

 

그 외는 그냥 넘어가도 괜찮을거같네

 

설명할 필요가 없을거같긴한데

 

listner 함수에서 리스너 노드 초기화하고, anonymous는 노드를 익명으로 해서(이름이 안겹치게) 여러 리스너가 동시에 동작할수 있게 하는 의미인거같다.

그리고 서브스크라이버초기화하고, 콜백 함수 등록, 스트링을 받는다.

그리고 스핀 함수로 종료시킬때까지 안꺼지게 유지하기

 

 

 

그 다음에는 CMakelists.txt에 catkin_install_python 에다가 방금 쓴 파일들을 추가하자

주석보니 목적지(캣킷 패키지 바이너리)에다가 실행가능한 스크립트를 옮기는건가 싶다.

이제 catkin_make로 빌드해주면 되긴한데

 

중간에 오타나 빠트린걸로 오류뜨면 고쳐주자

나는 CMakelists.txt와 package.xml에 잘못쓴게 있어서 고쳐줬다.

또 보니 위 스크립트를 scripts 폴더다가 안넣어둿네

 

내가 오타낸게 꽤 많다.

 

 

 

아까 catkin_install_python이 어디가나 했는데 devel 폴더 밑으로 가는건가보다

 

 

http://wiki.ros.org/ROS/Tutorials/ExaminingPublisherSubscriber

 

 

이제 퍼블리셔, 서브스크라이버 스크립트 짜고, 빌드랑 인스톨까지 다했으니 이제 써보자

 

1. 퍼블리셔 돌리기

아래의 내용대로 치면

 

로그 인포로 안녕 세상이 나온다.

 

 

 

이처럼 서브스크라이버도 하면 될꺼같았는데

오타내서 에러만 줄줄이나온다.

 

 

수정하고 다시 하면

 

리스너도 잘 들었다고 인사해준다.

+ Recent posts