본문 바로가기
IT 프로그래밍 관련/ROS

ROS 분석하는 방법(자주 쓰이는 분석 명령어...)

by 지나는행인 2021. 6. 11.
728x90

앞에서는 메시지파일부터 노드등 다 직접 만들어서 사용하였는데 ,

 

물론 그렇게 해야 할 수도 있지만, 기존에 있는 패키지나 노드 , 메시지등 가져와서 사용하는 경우가 많다.

 

이때 이 패키지가 어떤 메시지를 사용하고 , 어떤 데이터를 받아오며 , 어떤데이터를 보내는지 등

 

패키지 내용을 알아야 사용할 수 있다.

 

이때 노드가 적을 수도 있고 , 많을 수도 있는데 많을경우 이 많은 노드에 일일이 들어가며 확인 할 순 없으니 ,

 

대략적은 분석을 하기 위한 명령어가 존재한다.

 

이는 메시지가 topic 일때 , service일때 조금 다르며,

 

아래에서 하나씩 실행해보며 보려한다.   많은 명령어가 있지만 , 자주 쓰이는 명령어들이다.

 

먼저 roscore는 켜 놓는다..

 

그리고 launch 파일을 켜던지 노드 하나를 켜고,

 

 

** rostopic list

 

*rostopic list

내가 켠 노드가 topic 을 사용하고 있다면 위 처럼 토픽명이 출력된다. (node명 x)

(/rosout , /rosout_agg 는 기본 출력)

 

** rostopic info /토픽명

 

*rostopic info /yh_topic

 

Type : 메시지파일명 ( 경로 )

그 아래로 켜져 있는 노드 정보 나옴 (yh_topic 을 사용하고 있는)

/pub_test 퍼블리셔가 실행되고 있고

Subscriber 노드는 실행되지 않고 있다.

 

 

** rostopic echo /토픽명

 

*rostopic echo /yh_topic

임시 Subscriber가 되어 현재 Publisher에서 발행하는 데이터 받아옴.

 

 

~~ publisher 와 subscriber 다 켜 있는 상태에서

 

 

** rqt_graph

 

* rqt_graph 실행화면

 

 

 

 

service

 

노드 파일을 켜고!

 

**rosservice list

 

*rosservice list

/hamburger 란 서비스가 있음

 

 

**rosservice info /서비스명

 

*rosservice info /hamburger

hamburger 서비스 정보

node : 현재 켜져있는 노드

Type: 메시지파일

Args: 서비스 요청시 필요 내용용

 

 

** rosservice call /서비스명  args

 

 

임시로 client를 만들어 요청을 하고 server로 부터 응답 받는다.

 

args : 위에서는 숫자 두개를 요청해야 응답이 오게끔 되어 있음.

 

 

**rqt

 

*rqt  응답화면

위 화면에서 hamburger 서비스 내용이 나오고 , 변수 , 메시지타입 확인 가능

 

Expression 값을 조정하여 위의 Call 을 누를시 아래 Response에서 응답함

 

 

 

댓글