[ROS2 Tutorial 따라하기] [CLI Tools] 8. Using rqt_console

[ROS2 Tutorial 따라하기] [CLI Tools] 8. Using rqt_console

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

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

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는 시스템이 손상으로부터 스스로를 지키기위해 종료될 것임을 알려줍니다.

messages는 시스템이 손상으로부터 스스로를 지키기위해 종료될 것임을 알려줍니다. Error messages는 시스템을 손상시키지는 않지만 시스템이 제대로 작동하지 않는 중요한 문제가 있음을 알려줍니다.

messages는 시스템을 손상시키지는 않지만 시스템이 제대로 작동하지 않는 중요한 문제가 있음을 알려줍니다. Warn messages는 깊숙한 문제로 인해 나타나는 예기치 않은 활동이나 이상적이지 않은 결과를 나타내지만, 기능을 완전히 손상시키지 않음을 나타냅니다.

messages는 깊숙한 문제로 인해 나타나는 예기치 않은 활동이나 이상적이지 않은 결과를 나타내지만, 기능을 완전히 손상시키지 않음을 나타냅니다. Info messages는 시스템이 예상대로 실행 중임을 시각적으로 확인하는 이벤트나 상태 업데이트를 나타냅니다.

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 Warn이 Info messages보다 낮은 level에 있기 때문입니다.

from http://jstar0525.tistory.com/42 by ccl(A) rewrite - 2021-05-13 20:00:50