패스트캠퍼스 환급챌린지 25일차 : 자율주행 로봇을 위한 ROS2 & Nav2 한번에 끝내기 강의 후기
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
오늘은 Logger를 활용하는 실습을 진행했다.
[오늘의 수강 영상]
[오늘의 실습]
제일 먼저 아래 명령어를 사용하여
logger_test라는 패키지를 생성했다.
$ ros2 pkg create --build-type ament_python logger_test --dependencies rclpy
그 후 파일을 생성하여 아래 코드를 보았다.
코드를 실행하니 아래와 같은 결과가 나왔는데
이는 다음의 코드에서 파생된 것으로 get_logger()뒤에
원하는 옵션을 붙인 후 원하는 문장을 적으면
다음과 같은 결과를 얻을 수 있다.
또한, 아래 코드와 같이 set_logger_level를 사용하면
원하는 레벨이상의 logger만 볼 수 있게 되는데
rclpy.logging.set_logger_level('logger_example', rclpy.logging.LoggingSeverity.DEBUG)
여기서 맨 뒤에 있는 DEBUG를 ERROR로 바꾸면
아래와 같은 결과가 나온다.
만약에 set_logger_level을 사용하지 않는다면
자동적으로 INFO부터 표시되므로
DEBUG를 보고 싶다면 꼭 설정해줘야한다.
그래서 센서값이나 특정 값을 확인할 때
Print를 써서 필요유무에 따라 주석처리를 하곤 했는데
DEBUG 레벨에 이것들을 표시하면
필요에 따라 set_logger_level하나만
수정하여 편리하게 사용할 수 있다.
조금 더 알아보고자 이렇게 코드말고
터미널에서도 이런 걸 대체해서 사용할 수 있는 것이
있는지 알아봤더니
코드에서 set_logger_level을 주석처리하거나
사용하지 않은 상태에서 아래 명령어를 사용하면
손쉽게 logger레벨을 변경해줄 수 있다.
$ ros2 run <패키지명> <노드명> --ros-args --log-level WARN
강사님이 말씀해주신대로 항상 Print를 사용해서
현재 상황을 보곤 했는데 그럴 때마다 구분이 어려울 때가 있었다.
근데 이번기회를 통해 필요에 따라 색상별로 구분해서
사용하는 편리한 기능을 알게 되어
앞으로의 코딩생활이 편해진 것 같다.
이런 logger들은 학교 다닐 때도 많이 봤는데
솔직히 logger라고 부르는 줄도 몰랐고
이를 직접 설정할 수 있는지도 몰랐었다.
그저 문제가 생기면 프로그램 상에서
자연적으로 프린트 해주는 걸로 알고 있었다.
하지만 조금만 생각해보면
모든 프로그램은 사람이 직접 코딩하는 것으로
당연한 수순이였을 텐데 말이다.
그래도 계속 모르고 지내는 것보다
이번 기회를 통해 앞으로 코드를 보는 시야를
넓힐 수 있었고 앞으로 해당 ERROR나 FATAL이 뜨면
코드를 찾아 들어가서 어떤 부분인지도 직접 알아봐야겠다.
마지막으로, 저장된 로그는 Linux의 경우
대부분 ~/.ros/log 디렉토리에 저장되어 있으며
로그 위치를 변경할 수 있는데 그 방법은 아래 명령어를
사용하여 원하는 path를 설정해주면 된다.
$ export ROS_LOG_DIR=/path/to/custom/log/directory
또한, ROS_LOG_DIR=""로 설정하면
파일 로깅을 비활성화할 수도 있다.
#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
🚨[D-3] 4월 1일 00시 강의 가격 최대 13% 인상! | 패스트캠퍼스
3월 31일 이후 비싸집니다. 가격 인상 전 지금이 3월 마지막 기회! 지금 바로 시작하세요.
fastcampus.co.kr