ROS 개론

2017.02.28 11:38

※ 이 포스팅은 개인공부를 위해 표운석님의 ROS 세미나 강의자료를 토대로 정리한것임을 밝힙니다.

https://github.com/robotpilot/ros-seminar



ROS 란?


- 오픈소스 로봇 소프트웨어 플랫폼(메타 운영체제)


- 메타운영체제란 간단하게 말해서 기존의 리눅스,윈도우즈같은 기존의 운영체제위에서 돌아가는

  시스템이라 할수있겠다.


- 쉽게말해서 로봇 소프트웨어를 개발하기위해 필요한 도구들을 모아놓았다고 할수있다




설치방법 ( 우분투 16.04 lts기준)

wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/kinetic/ros_install.sh && chmod 755 ./r

os_install.sh && bash ./ros_install.sh catkin_ws kinetic


동작 테스트


 roscore


 rosrun turtlesim turtlesim_node


 rosrun turtlesim turtle_teleop_key


 rosrun rqt_graph rqt_graph


※주의 - 위 4개의 명령어를 서로 다른 터미널에서 실행해야함



ROS 개념


-  Node : 최소 단위의 실행가는한 프로세서 


-  Package : 하나 이상의 노드, 노드실행을 위한 정보등을 묶어 놓은것


- Message : 메시지를 사용해 노드간의 데이터를 주고받음



-  Topic


발행자 노드가 토픽을 마스터에 등록하고 토픽에 대해 내용을 발행한다


이 내용을 수신받기 원하는 구독자 노드는 마스터에 등록된 토픽을 


발행한 발행자 노드의 정보를 받고 이 정보를 이용해 구독자노드는


발행자 노드와 직접적으로  연결하여 메시지를 송수/신 또는 요청/응답 한다


 - 발행 및 발행자


발행은 토픽의 내용에 해당되는 메시지형태의 데이터를 송신하는것을 말함


발행자는 이를 실행하는 개체로 노드에서 선언하게됨


  - 구독 및 구독자


구독은 토픽의 내용에 해당되는 메시지형태의 데이터를 수신하는것을 말함


구독자는 이를 실행하는 개체로 노드에서 선언하게됨


  - 서비스


토픽 통신 방식은 XMLRPC  프로토콜을 사용하는 비동기방식이기때문에 요청과 응답이


함께 사용되는 동기방식의 메시지교환이 불가능하기때문에 서비스를 이용해 동기방식


으로 메시지를 교환한다 서비스 서버와 서비스 클라이언틀 나누어져있으며 토픽과


달리 1회성 메세지 통신이다 서비스의 요청과 응답이 완료되면 두 노드의 접속은 종료된다.


   - 노드간 통신 과정


     1. 마스터 구동  


          2. 서브스크라이버 노드 구동


          3. 퍼블리셔 노드 구동


     4. 마스터가 퍼블리셔 정보를 서브스크라이버에게 알려줌


         5. 마스터에게 받은 퍼블리셔정보를 이용하여 퍼블리셔노드와 TCPROS             접속 요청


     6. 서브스크라이버 노드에게 접속 응답 (자신의 TCP URI 주소와 포트번호         전송)


     7. TCP ROS를 이용하여 퍼블리셔 노드와 직접 연결

  

          8. 퍼블리셔 노드는 서브스크라이버 노드에게 메세지전송 


 1. 토픽 - 토픽방식은 접속을 끊지 않는 이상 지속적으로 메시지전송           (연속성)


  2. 서비스 - 서비스방식은 1회에 한해 접속, 서비스 요청 및 서비스 응

   수행(1회성)




- ROS 특징 3가지


1.  통신 인프라


2.  로봇 관련 다양한 기능


3.  다양한 개발 도구 


 

 













신고

'ROS' 카테고리의 다른 글

ROS 개론  (0) 2017.02.28

Hagler ROS

티스토리 툴바