ROS 2
ROS 2 Tutorials : Using rqt_console to view logs
정지홍
2025. 1. 11. 15:13
background
- rqt_console은 ROS 2에서 log message를 위해서 도입한 GUI tool이다.
- 전형적으로, log message는 나의 terminal에서 볼수있다.
- rqt_console을 사용하면 message를 시간에 따라 수집하는 것이 가능하다. 그리고 더 잘 정리된 방식으로 자세히 볼수있으며, 필터링 or 저장도 가능하다. 저장시킨 log data file을 나중에 로드해서 분석하는 것도 가능하다.
- node들은 event와 statis와 관련된 message를 다양한 방식으로 log를 통해서 출력한다.
- 이러한 message는 사용자에게 정보를 주기 위함이다.
Tasks
- 1. 우선 다음의 명령어를 입력하여 rqt_console을 열어보자.
- console의 첫번째 부분에서는 system에서 출력되는 log message가 표시된다.
- 가운데 부분은 심각도 수준을 제외해서 message를 필터링할 수 있는 옵션이 제공된다.
- 오른쪽의 +버튼을 누르면 다른 필터들을 추가 시킬수있으며, 제거하고 싶으면 -버튼을 누르면 된다.
- 마지막 부분은 사용자가 입력한 문자열을 포함하는 message를 강조 표시하는 영역이다.
- 이 섹션에도 추가적은 필터를 더할수가 있다.
ros2 run rqt_console rqt_console

- 2. ros2 run turtlesim turtlesim_node 을 실행하자
- 3. rqt_console을 확인해보자.
- 아래와 같은 로그가 발생할것이다.

- 4. 아래의 명령어로 거북을 벽에 부딪히게 해보자.
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}}"

- 5. rqt_console을 확인해보자.
- 위의 명령어느느 일정한 속도로 topic을 publish하니, 거북은 계속 벽에 부짖힌다. 결과적으로 console에서는 계속해서 충돌했다는 warn의 심각도를 가진 message가 반복적으로 출력되었다.

- 6. logger level에 대해서...
- 기본 log level은 Info이다.
- 기본 수준과 그보다 심각한 수준의 message만 표시된다.
- 일반적으로 Debug message는 Info보다 덜 심각한 유일한 level이니 숨겨진다.
- 만약에 내가 기본 log level을 warn으로 설정하면 Warn , Error , Fatal 수준의 message만 볼수있다.
- 기본 log level은 Info이다.
| 종류 | 의미 |
| Fatal | 시스템이 스스로를 보호하기 위해서 종료한다는 것을 의미 |
| Error | 시스템에 큰 문제가 발생하였으나, 반드시 시스템에 손상을 주는것은 아니며 정상작동을 방해하고 있음을 의미 |
| Warn | 예상치 못한 동작 or 이상적이 결과가 아님을 의미. 하지만 즉각적으로 기능에 지장을 주는것은 아니나 추후에 더 심각한 문제를 가져올수있음. |
| Info | 시스템이 예상대로 작동하고 있음을 의미. 이는 시각적으로 확인할 수 있는 이벤트 및 상태 업데이트를 제공함 |
| Debug | 시스템 실행 과정의 모든 단계를 자세히 기록하는것 |
- 7. 그러면 기본 log level을 어떻게 할까?
- 아래의 명령어 처럼 입력하면 된다...
- 입력하고 rqt_console을 보면 처음과는 다르게 info message가 안보일것이다.
이는 Info가 Warn보다 심각도 수준이 낮기 때문이다.
- 입력하고 rqt_console을 보면 처음과는 다르게 info message가 안보일것이다.
- 아래의 명령어 처럼 입력하면 된다...
ros2 run turtlesim turtlesim_node --ros-args --log-level WARN
Summary
- rqt_console은 시스템의 log message를 자세히 분석해야할때 좋다.
- 보통은 무엇이 잘못되었는지와 이로 인해서 발생한 에러들을 파악하기 위해서, log message를 보게 될것이다.