참고자료
1.Node
docs에서는 "노드는 계산을 수행하는 프로세스입니다. ROS는 세분화된 규모로 모듈화 되도록 설계되었습니다. 로봇 제어 시스템은 일반적으로 많은 노드로 구성됩니다. 예를 들어, 하나의 노드는 레이저 거리 측정기를 제어하고, 하나의 노드는 휠 모터를 제어하고, 하나의 노드는 현지화를 수행하고, 하나의 노드는 경로 계획을 수행하고, 하나의 노드는 시스템의 그래픽 보기를 제공하는 식입니다. ROS 노드는 roscpp 또는 rospy와 같은 ROS 클라이언트 라이브러리를 사용하여 작성됩니다."라고 설명합니다만 쉽게 말하여 각각의 코드가 돌아가는 최소 단위라 생각하시면 됩니다.
2.Master
docs에서는"ROS Master는 Computation Graph의 나머지 부분에 대한 이름 등록 및 조회를 제공합니다. 마스터가 없으면 노드는 서로를 찾거나 메시지를 교환하거나 서비스를 호출할 수 없습니다."라고 설명합니다 아래 그림과 같은 구조를 가지고 있습니다
마스터는 노드와 노드 사이의 연결 및 메시지 통신을 위한 네임서버와 같은 역할을 합니다 Roscore가 실행 명령어이며 마스터를 실행하면 각 노드들이 이름을 등록하고 필요에 따라 정보를 받을 수 있으며 마스터 없이는 노드 간 접속 토픽과 서비스와 같은 메시지 통신을 할 수 없습니다. XMLRPC를 이용하여 슬레이브들과 통신하며 노드들이 필요할 때만 접속하여 자신의 정보를 등록하거나 다른 노드의 정보를 요청하여 수신받을 수 있습니다
- roscore: 방금 말한 대로 rosmaster를 실행시키는 명령어로 launch를 통해 실행을 제외하고 roscore를 사용하여 실행시킬 수 있습니다.
ros master는 ROS_MASTER_URL변수에 기재되어 있는 URI주소 및 포트를 갖고 사용자가 설정해놓지 않는 경우에는 현재 로컬 IP를 사용하고 11311 포트를 이용하게 됩니다
2-1 rosmaster 화면
여기서 간단하게 설명해보자면
~/. ros/log rosnode에서 로그를 수집하기 위한 폴더 안에 로그 파일 위치와 생성됨을 나타내며 이 파일을 통해 디버깅에 도움이 될 수 있습니다
roscore가 실행되면 ros 매개변수 서버를 시작하는데 해당 서버의 포와 서버 주소가 나옵니다
Parameters에서는 rosdistro나 rosversion와 같은 매개변수에 대해 볼 수 있습니다
nodes에서는 현재 실행 중인 노드와 그에 관한 정보를 볼 수 있게 됩니다
'공학 > ROS' 카테고리의 다른 글
ROS 개념 정리 [파일 시스템] (0) | 2022.04.29 |
---|---|
Ros - WSL 환경에서 설치하기 (17) | 2021.01.31 |
ROS-WINDOW 10 환경에서 설치하기 (6) | 2021.01.31 |