티스토리 뷰

Robotics/ROS

ROS Concepts

Rocknz 2017. 1. 4. 14:49
ROS Filesystem Level
 
- Packages : 

    기초 유닛임. Node와 dependent library, 데이터들, 구성된 파일들, 다른 필요한 것들.
    핵심 Build item, release item.

 - Metapackages :

    다른 패키지들을 대표하는 특별한 packages. 파일들을 포함하지 않으며 패키지들을 loosely하게 그룹시킨다.

 - Pacakage Manifests :

    package의 메타 데이터로서 이름, 버전, 설명, 라이센스정보, 의존성, 다른 메타데이터를 포함할 수 있다.
    package.xml 파일 => package Manifest 파일이다.

 - Repositories :

    VCS시스템에 공유되어 있는 패키지의 묶음이다. 
    VCS 시스템이란 : Version Control System 인것같다. 

 - Message types:

    Message 내용으로 my_package/msg/MyMessageType.msg 에 포함되어있다.

 - Service types:

    Service 내용으로 my_package/srv/MyServiceType.srv 로 서비스의 주고 받는 데이터 구조이다.


ROS Computation Graph Level

 - Nodes:

    계산을 수행하는 프로세스다. ROS는 작은 여러개의 모듈러로 디자인 되어있으며, 로봇시스템은 많은 nodes로 구성되어있다.
    예를 들면 한 노드는 레이저 파인더를 제어하고, 다른노드는 모터를 제어하고, 다른 노드는 위치추적을 하고 다른노드는 길을 예측        하는 식으로 각각의 일을 노드로 나누어서 한다.

 - Master:

    ROS Master는 name 등록이나 나머지 Computation Graph를 검색한다. Master 없이 노드들 끼리 서로 찾을 수 없으며, 메시지를 교환하거나 서비스를 호출(invoke)할 수 없다.

 - Parameter Server:

    a central location에 데이터를 각 key에 대해서 저장 할 수 있다. 

 - Message:

    Node끼리 Message를 통해서 통신한다. 메시지는 간단한 데이터 구조로 여러타입의 필드로 구성된다. 
    가장 기초적인 타입 ( int, float ,boolean 등을 사용할 수 있고) , 기조타입들의 배열도 가능하다. 
    메시지에 제멋대로 구성된 구조체들(arbitrarily nested structures)과 그에대한 배열도 사용 가능하다. ( C와 같다 )

 - Topics :

    Message들은 publish 와 subscribe라는 송신 시스템을 통해서 전달된다. 노드는 메시지를 publishing하여 보내는데, 이는 주어진 topic 형식을 맞춘다. topic은 message 내용을 식별시키는 이름이라고 할 수 있다. 
    Node들이 특정한 분야의 데이터들에게 관심이 있으면, 그 노드를을 적절한 topic을 subscribe하게 한다.
    한 토픽에 다수의 publishers와 subscribers가 존재할 수 있으며, 각 노드들은 다양한 토픽들을 subscribe 하거나 publish 할 수 있다. 이론상으로 topic을 타입이 엄하게 정의된 메시지 버스(strongly typed message bus)라고 생각 할 수 있다. 각각의 버스는 이름을 가지고 있고, 누구나 type만 잘 맞추면 접근해서 메시지를 주고 받을 수 있다.

 - Services : 

    publish/ subscribe 모델은 굉장히 유연한 커뮤니케이션 모형이긴 하지만, 다수대 다수, 일방전송이 라는 특성이 때로는 요청 - 대답 방식( 분산시스템에서 주로 사용되는 ) 전송시에는 적절하지 않을 수 있다. 요청 - 대답 방식은 services를 통해서 할 수 있는데 이는 2개의 message structures로 이루어져있다. 하나는 request고 하나는  reply다. node가 service를 한 name에 발행하면 그 노드가 request message를 보내고  reply를 기다린다.  

 - Bags : 

    Bags는 ROS 메시지 데이터를 재 실행하거나 저장하기 위한 포멧이다. Bags은 데이터를 저장한다. ( 센싱데이터 같은 데이터)


-- 설명



 ROS Master 는 nameservice 같은 역활을 하고 (“ 누가 이름이 무엇이다 라는 것을 지칭해주는 “) topics 와 services 의 등록 정보를 가지고 있다. 노드는 그들의 등록 정보를 마스터에 전송한다. 노드들이 Master를 통해서 통신을 할때 각각 서로 통신할 노드들의 등록정보를 Master를 통해 받은뒤 서로 연결하여 통신한다. 각 노드들의 등록 정보가 바뀌면 유동적으로 연결시켜준다.

 TCPROS => ROS에서 사용하는 TCP/IP 소켓 통신이다.

 ROS에서는 name이 굉장히 중요하고, 모든 ROS client library는 command-line remapping of names를 지원한다.  


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함