티스토리 뷰

이전에 대회에 나갔을 때 기존에 있는 패키지를 바탕으로 코드를 수정하면서 원하는 방향으로 로봇이 움직이도록 만들었다. 이때 내가 처음부터 작성한 코드가 아니기에 조금만 수정해도 오류가 발생했다. 코딩, 프로그래밍을 한 것이 처음이었기에 이때부터 디버깅이라고 해야할지 로그를 남기는 것의 필요성이 중요하게 다가왔다. 하지만 ROS에서 로그를 남기는 방법이 다양해서 어떤 방법을 사용할지 몰라 그냥 print를 이용했었다. ㅎㅎ 이번에 로그 관련 강의가 올라와 이 부분이 궁금해 먼저 글을 써보려고 한다.

우선 혹시 모르기 때문에 rqt 관련 파일?을 설치한다.

sudo apt install ros-humble-rqt*

터틀심 실행하고 rqt를 실행하자!

플러그인 - 로깅 - 콘솔 선택

rqt 플러그인으로 로그를 관찰할 수 있음

  • rqt로만 로그 확인할 수 있는 것은 아님

rqt로 토픽 다루기

플러그인 - visulization - plot

/turtle1/pose 입력

제거 가능

화살표축 누르면 축 수정 가능

토픽 모니터링도 할 수 있다~

다만 값 업데이트 되는 게 느리다 때문에 빠르게 발행되는 토픽이라면 위와 같이 그래프로 보는 것이 낫다

플러그인 - 토픽 - message publisher

토픽 입력하고 값 수정하여 발행도 가능

원하는 토픽 값을 입력하고 체크하면 발행 가능 

직진 명령

ros2 topic pub -r 1 /turtle1/cmd_vel geometry_msgs/msg/Twist “{linear: {x: 2., y: 0., z: 0.}, angular: {x: 0., z: 0.}}”

혹은 rqt로 위와 같이 쉽게 publish 가능

거북이가 벽에 부딪히면 rqt log console에 기록이 남음

디버그, 로그 레벨

info - warn - error - fatal 로 뒤로 갈수록 치명적인 에러임

여러 터미널에서의 로그 기록을 확인할 수 있음

로그 기능 코드로 구현하기

self.get_logger().info('표기할 문구')

.info는 앞에서 말한 레벨을 의미하는데 단순히 정보를 전달할 목적의 로그이다.

특정 작업을 실시할 때라던지 사용할 수 있다.

다시 빌드하고 해당하는 노드를 실행하면 터미널에 [INFO] 와 함께 로그가 뜬 것을 볼 수 있다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함