패스트캠퍼스 환급챌린지 29일차 : 자율주행 로봇을 위한 ROS2 & Nav2 한번에 끝내기 강의 후기
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
오늘은 rosbag2에 대해서 실습해 보는 시간을 가졌다.
[오늘의 수강 영상]
[오늘의 실습]
rosbag2란?
ROS 2 메시지를 기록(record), 재생(playback),
변환(convert), 검사(inspection) 할 수 있는 tool이다.
rosbag2로는 다양한 명령어를 사용하여
tool을 사용할 수 있으며 차근차근 알아보았다.
1. record
record는 bag파일을 녹화하고자 할 때
사용하는 명령어이다.
bagfile은 저장할 때 설정한 이름폴더 안에
.db3와 .yaml파일로 나뉘어 저장된다.
기본적인 명령어는 아래와 같다.
$ ros2 bag record
1) -a 옵션
이 명령어 뒤에 -a를 붙이면
모든 토픽에 대해서 record를 진행한다.
2) -e 옵션
만약에 일부 토픽만 선택적으로 record 하고 싶다면
$ ros2 bag record -e topic1 topic2 ... topic N
또는
$ ros2 bag record topic1 topic2 ... topic N
이렇게 배치하면 된다.
3) -o 옵션
만약에 -o 또는 --output 옵션을 사용하게 되면
bagfile을 원하는 이름으로 설정할 수 있다.
$ ros2 bag record -o 원하는이름
4) --no-discovery 옵션
이때 --no-discovery 옵션을 사용하면
record를 시작한 후에 새롭게 발생되는 토픽은
record가 되지 않게 막을 수도 있다.
record를 하다가 잘못된 메시지가 녹화되는
불상사를 막을 수가 있다.
5) --use-sim-time 옵션
이 옵션은 실제 세계의 시간이 아닌 시뮬레이션 시간 프레임에 맞추어
데이터를 기록해야 할 필요가 있을 때 사용하는 옵션이다.
6) -b 옵션
이 옵션을 사용하면 bagfile를 크기를 기준으로 분할하여
record를 진행할 수 있게 된다.
만약에 $ ros2 bag record -b 100000이라고 입력하면
이는 file크기가 100kb보다 커지는 순간마다
bagfile을 분할하여 record 한다.
이 옵션을 사용할 때의 배치 크기 단위는 byte 단위이며
86016 byte보다 큰 숫자로만 설정이 가능하다.
7) -d 옵션
이 옵션을 사용하면 bagfile를 시간을 기준으로
분할하여 record를 진행할 수 있게 된다.
만약에 $ ros2 bag record -d 9000이라고 입력하면
9000초가 넘어갈 때마다 bagfile을 분할하여 record 한다.
이 옵션의 기본값은 0이며 데이터가 단일 파일로 기록된다는 의미이다.
실제로 record를 진행하면 아래와 같다.
2. play
record 되어 저장된 file을 실행하는 명령어이다.
기본적인 명령어는 아래와 같다.
$ ros2 bag play bagfile이름
주로 사용하는 옵션은 아래와 같다.
-l, --loop # 반복 재생
-r RATE, --rate RATE # 재생 속도 조절 (예: 2.0 = 2배속)
--start-offset SEC # 시작 시간 오프셋 설정 (초 단위)
-d SEC, --delay SEC # 재생 시작 전 대기 시간
-s START, --start-paused # 일시정지 상태로 시작
실제로 이 명령어를 실행하여 아까 record 한
bagfile을 보면 아래와 같다.
3. info
bagfile의 정보를 확인할 수 있는 명령어이다.
이를 사용하면 파일을 재생해보지 않더라고
내부 토픽 정보들과 파일크기, 녹화시간과 같은
기본 정보들을 쉽게 알 수 있다.
이를 실제로 보면 아래와 같다.
학교를 다니면서 가장 많이 사용해서 제일 친숙한
rosbag을 배워보았다.
하지만 학교 다닐 때는 ROS1을 사용했었어서
ROS2에서는 처음 사용해 보는데
생각보다 많은 것들이 바뀌진 않아서 다행이었다.
그리고 내가 알지 못했던 info 같은 명령어도
이번에 알게 되고 -b나 -d 옵션도 알게 되어서
앞으로 더욱 편하게 잘 사용할 수 있을 것 같다.
마지막으로 ROS와 ROS2에서 각자 사용되던 bagfile을
변환하여 볼 수 있는 방법을 알아보겠다.
먼저 아래로 들어가면 친절하게 변환할 수 있는 프로그램을
만들어주셨다.
https://ternaris.gitlab.io/rosbags/
Rosbags — Rosbags documentation
© Copyright 2020-2024, Ternaris.
ternaris.gitlab.io
여기서 아래 명령어를 사용하여 다운로드하여준 후
$ pip install rosbags
우리가 원하는 .bag 파일을 알맞은 명령어를 사용해서
입력해 주면 된다.
나는 MH_01_easy.bag를 변환하고 싶어서 아래와 같이 적었다.
$ rosbags-convert --src Downloads/MH_01_easy.bag --dst MH_01_easy
그랬더니
이랬던 게
이렇게 됐다!!
이렇게 변하게 bag파일을 변환할 수 있다는 사실에
너무너무 감사한 마음이 들었던 시간이었다.
이것도 잘 사용해서 앞으로 잘 사용해 보도록 해야겠다.
#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr