본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2025 ROS 스터디] 황희찬 #2주차- ROS 용어,명령어,도구

반응형

ROS 용어

-Node

최소 단위의 실행 가능한 프로세서, 어떤 기능을 하는 노드들은 각각 메시지 통신을 통해 데이터를 주고 받는다.

-Package

하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것. 노드의 모임

-Message

각 노드들은 메시지를 통해 데이터를 주고 받는다. 데이터를 주고 받는 메시지 방식으로는 Topic, Service, Action이 있다.

Topic은 단방향 연속 통신 방법으로  sensor 데이터 같이 한쪽 방향으로의 데이터 입력을 전달할때 사용하는 방법이다. 메시지를 보내는 노드를 Publisher, 메시지를 받는 노드를 Subscriber이라고 한다. 1:N,1:1,N:1 방식의 통신도 가능하다.

Service는 양방향 통신 방법이고 Action은 Service와 비슷하지만 중간에 결과에 대한 피드백이 존재한다. 중간에 결과를 알고 싶을 때 사용한다.

가장 많이 사용하는 방식은 Topic과 Service이다.

 

메시지 통신 과정

노드간에 통신이 이루어지기 위해서는 노드 정보를 관리하는 마스터가 항상 켜져있어야 한다. 마스터를 구동하는 command는 $roscore이다. 노드1과 노드2가 통신하기 위해서는 노드1은 마스터에 노드이름,토픽이름,메시지 타입, 네트워크 정보로 구성되는 publisher 노드 정보를 보낸다. 마스터를 통해 토픽이름,메시지 타입이 노드2의 정보와 일치한다면,

노드2는 마스터에서 받은 publisher 노드 정보를 이용하여 노드1에 TCPROS접속을 요청한다. 이런 과정으로 노드2가 TCPROS에 접속을 완료하 노드1(서버),노드2(클라이언트)는 통신이 가능하게 된다.

 

ROS 주요 명령어

다음은 영상에서 보여준 ROS에서 자주쓰는 명령어들을 중요도를 표시하여 정리한 자료이다. 중요도 3개짜리는 외우는게 좋을 것 같다.

ROS 도구

-RViz

강력한 3D 시각화툴을 제공하며 레이저, 카메라 등의 센서 데이터를 시각화해준다.

- RQT

그래픽 인터페이스 개발을 위한 Qt기반 프레임 워크 제공

노드 사이의 연결 정보 표기(rqt_graph)

인코더, 전압 등을 시간에 따라 변화를 보여줌(rqt_plot)

데이터를 메시지 형태로 기록하고 재생(rqt_bag)

-Gazebo

물리 엔진을 탑재, 로봇, 센서, 환경 모델 등을 지원하는 3차원 시뮬레이터, ROS와 높은 호완성을 가진다. 실제 로봇을 제작하여 구현하기전 시뮬레이션해보기에 적합하다.

반응형