1. ROS 노드
노드(node)란 ROS에서 실행되는 최소 단위의 프로세스입니다.
노드는 데이터 전처리, 데이터 시각화, 모터 구동 등 하나의 역할을 수행하며 메시지를 이용하여 다른 노드들과도 데이터를 주고 받을 수 있습니다.
즉 ROS에서는 노드들 간 서로 데이터를 주고 받을 수 있습니다.
노드가 메시지를 이용하여 다른 노드와 데이터를 주고 받을 때 토픽, 서비스, 액션 방식을 활용하는데
첫번째로 토픽은 단방향 메시지 송수식 방식이며 대부분 토픽으로 주고 받습니다.
두번째로 서비스는 양방향 메시지로 요청, 응답 방식이 있습니다.
세번째로 액션은 양방향 메시지 요청 방식과 더불어 중간 결과값을 알 수 있는 방식입니다.
2. 노드에 대한 이해
ROS를 사용할 때 사용 되는 로봇은 많은 노드를 가지고 있을 수 있습니다.
각기 다른 노드들은 서로의 역할을 수행하는데 하나로 합칠 경우 여러 기능을 가질 수 있게 됩니다.
하지만 여러 노드를 사용할 때 문제가 있는 노드가 있더라도 로봇 시스템이 작동할 수 있습니다.
이 때 많은 노드들 중 문제가 있는 노드를 어떻게 확인해야 할까요?
ROS에는 노드 검사를 위한 도구가 존재합니다. rosbash라는 도구인데 rosnode 명령어로 노드 확인이 가능합니다.
rosnode info [노드명] :노드 정보 출력합니다.
rosnode kill [노드명] : 실행 중인 노드 종료.
rosnode list : 해당 명령어는 실행 중인 노드를 나열하는 것이므로 꼭 먼저 확인하셔야 합니다.
rosnode machine [machine_name] : 특정 시스템이나 시스템 목록에서 실행 중인 노드를 나열합니다.
rosnode ping: 노드의 연결을 확인합니다.
rosnode cleanup: 연결할 수 없는 노드의 등록을 제거합니다.
먼저 rosnode list를 해봅시다.
현재 실행중인 노드가 나오게 됩니다. 여기서 나온 노드 중 정보를 출력 해보도록 하겠습니다.
해당 노드에 대한 정보를 모니터링 할 수 있습니다.
위의 명령어를 이용해서 모니터링 해보세요.
해당 내용은 "3/e ROS 로보틱스 프로그래밍" 책을 통해 공부했습니다.
'개발일지' 카테고리의 다른 글
SLAM이란 무엇일까요? ROS SLAM은 무엇일까요? (0) | 2023.01.17 |
---|---|
ROS 마스터, ROS master는 무엇일까? ROS master 명령어에 대해서도 알아보자 (0) | 2023.01.11 |
ROS 파일 시스템 레벨 이해하기 ros 파일 시스템이란? (0) | 2023.01.11 |
프로세스란 무엇일까? 프로그램이란? (0) | 2023.01.10 |
IPv4이란? 인터넷 프로토콜 IPv4는 무엇일까? 패킷교환이란? (1) | 2023.01.07 |
댓글