ROS 스터디 #2: ROS 사용법 기초

2020년 11월 06일 13:00
ZOOM 화상회의

영상의 PPT가 많은 도움이 됩니다. 꼭 시청해주세요!

  • 노드(Node): 최소 단위의 실행 가능한 프로세스로, 하나의 실행 가능한 프로그램으로 생각하면 된다. 각 노드는 메시지 통신으로 데이터를 주고받는다.
  • 패키지(Package): 하나 이상의 노드, 노드 실행에 필요한 정보를 묶어 놓은 것. 패키지의 묶음은 메타패키지라 한다.
  • 메시지(Message): 노드 간 주고받는 변수 형태의 데이터. 메시지나 메시지의 배열 등의 구조를 메시지로 사용할 수 있다.


요약:

종류 동기 방향 사용
Topic 비동기 단방향 연속으로 데이터를 송수신
Service 동기 양방향 요청 처리가 순간적(1회성); 현재 상태를 확인하고 응답받는 것이 필요한 경우
Action 비동기 양방향 요청 처리 후 응답까지 오래 걸려서 서비스를 이용하기 어려운 경우, 중간 피드백값이 필요한 경우

roscore
모든 ros 노드들에 대한 정보 중계를 담당.
각 노드들이 서로의 존재를 인식하게 하는 역할만 담당하고, 이후는 노드들끼리 직접 통신한다. 즉, 모든 통신이 roscore를 거치는 것은 아니다.


rosrun 패키지이름 노드이름
Subscriber나 client를 따로 임의로 실행시킬 때 사용한다.


rosrun 패키지이름 노드이름
Publisher나 server를 따로 임의로 실행시킬 때 사용한다.


마스터는 노드1의 정보를 노드2에게 알리고, 노드1과 2 사이에 TCPROS 접속이 일어난다. TCPROS 접속을 경로로 메시지 전송이 일어나는데, Topic의 경우 이 접속이 단방향이지만 연속적이고 Service의 경우 양방향이지만 한 번 송수신이 일어나면 연결이 끊어진다.


  • activity/public/2020/ros/201106.txt
  • 마지막으로 수정됨: 3년 전
  • 저자 yhy01625