Robot Operating System/Tutorial 따라하기

[Dashing][CLI Tools] 8. Using rqt_console

jstar0525 2021. 5. 13. 19:42
반응형

이 글은 아래의 자료를 참고로 만들어졌습니다.

 

docs.ros.org/en/dashing/Tutorials/Rqt-Console/Using-Rqt-Console.html

 

Using rqt_console — ROS 2 Documentation: Dashing documentation

Goal: Get to know rqt_console, a tool for introspecting log messages. rqt_console is a GUI tool used to introspect log messages in ROS 2. Typically, log messages show up in your terminal. With rqt_console, you can collect those messages over time, view the

docs.ros.org


 

Using rqt_console

Goal: Get to know rqt_console, a tool for introspecting log messages.

 

Tutorial level: Beginner

 

Background

rqt_console은 ROS 2에서 log messages를 확인하기 위한 GUI 도구입니다.

일반적으로, log messages는 terminal에서 보여집니다.

rqt_console을 사용하면, 시간에 따라 messages를 수집하고, 자세히 볼 수 있습니다.

보다 체계적인 방법으로는, messages를 필터링하고, 저장하고, 심지어 다른 시간에 저장된 파일을 검사할 수 있습니다.

 

Nodes는 logs를 사용하여 events나 status에 관한 메세지를 다양한 방식으로 출력합니다.

이러한 content는 일반적으로 사용자의 편의를 위해 정보를 제공합니다.

 

Prerequisites

rqt_console과 turtlesim 설치가 필요합니다.

 

항상 새로운 터미널에 설정파일을 소싱하는 것을 잊지 마세요.

 

Tasks

 

1 Setup

새로운 터미널을 열고 아래의 명령을 실행하여 rqt_console을 실행합니다.

$ ros2 run rqt_console rqt_console

콘솔의 첫번째 부분은 시스템의 log messages를 출력합니다.

 

중간 부분은 messages를 필터할 수 있는 옵션입니다.

오른쪽 더하기 버튼을 눌러 필터들을 추가할 수 있습니다.

 

마지막 부분은 messages를 강조하는 부분입니다.

마찬가지로, 오른쪽 더하기 버튼을 눌러 필터들을 추가할 수 있습니다.

 

새로운 터미널에 아래의 명령을 통해 turtlesim을 실행합니다.

$ ros2 run turtlesim turtlesim_node

 

2 Messages on rqt_console

rqt_console에 log messages를 표시하기위해, turtle을 벽으로 움직여봅시다.

새로운 터미널을 열고, 아래의 명령을 실행합니다(자세한 내용은 topics tutorial에서 다루었습니다).

$ ros2 topic pub -r 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}"

topic이 꾸준한 속도로 명령을 publishing하기 때문에,

turtle은 지속적으로 벽으로 이동합니다.

rqt_console에서 serverity에서 Warn이라는 메세지가 계속 출력되는 것을 볼 수 있습니다.

ros2 topic pub 명령을 실행한 터미널에 Ctrl+C를 눌러 벽으로 가는 turtle이 멈춥니다.

 

3 Logger levels

ROS 2의 serverity에 따른 logger levels는 아래와 같습니다.

Fatal
Error
Warn
Info
Debug

각 level이 무엇을 나타내는지 정확한 기준은 없지만,

아래와 같이 가정을 해도 무방합니다.

  •  Fatal messages는 시스템이 손상으로부터 스스로를 지키기위해 종료될 것임을 알려줍니다.
  •  Error messages는 시스템을 손상시키지는 않지만 시스템이 제대로 작동하지 않는 중요한 문제가 있음을 알려줍니다.
  •  Warn messages는 깊숙한 문제로 인해 나타나는 예기치 않은 활동이나 이상적이지 않은 결과를 나타내지만, 기능을 완전히 손상시키지 않음을 나타냅니다.
  •  Info messages는 시스템이 예상대로 실행 중임을 시각적으로 확인하는 이벤트나 상태 업데이트를 나타냅니다.
  •  Debug messages는 시스템 실행의 전체 단계별 프로세스를 자세히 설명합니다.

default level은 Info입니다. default severity와 더욱 심각한 levels에서만 messages를 볼 수 있습니다.

 

일반적으로, Debug messages는 Info보다 심각한 level이 아니기 때문에 messages가 숨겨집니다.

예를 들어, 만약 deault level이 Warn이라면, Warn, Error, Fatal의 severity의 messages만 볼 수 있습니다.

 

3.1 Set the default logger level

remapping을 이용하여 /turtlesim node의 default logger level을 바꿀 수 있습니다.

아래의 명령을 실행합니다.

$ ros2 run turtlesim turtlesim_node __log_level:=warn

[WARN] [turtlesim]: Oh no! I hit the wall! (Clamping from [x=11.120889, y=5.544445])
...(생략)
$ ros2 run turtlesim turtlesim_node

[INFO] [turtlesim]: Starting turtlesim with node name /turtlesim
[INFO] [turtlesim]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]
[WARN] [turtlesim]: Oh no! I hit the wall! (Clamping from [x=11.112445, y=5.544445])
...(생략)

 default logger level을 바꾸면 Info level의 경고를 볼 수 없습니다.

왜냐하면 새로운 default serverity WarnInfo messages보다 낮은 level에 있기 때문입니다.

반응형