ros2 bag이란?
ROS 2 시스템에서 센서 데이터, 메시지 통신 등을 기록하거나 재생하는 데 사용되는 도구입니다.
한마디로, 현재 주고받고 있는 토픽들을 녹화하여 해당 시나리오를 재현할 수 있도록 합니다.
따라서 ros2 bag으로 토픽을 한 번 기록해두면 해당 환경 및 시나리오를 구성하지 않아도 되는 편리함을 가지고 있습니다.
Record 명령어 (데이터 기록)
ros2 bag record [OPTIONS] /토픽이름
[Options]:
- -a, --all: 모든 토픽 기록
- -o, --output: 출력 파일 이름 지정
- -e, --regex: 정규식을 사용한 토픽 이름 매칭
Examples
-a 옵션 사용
ros2 bag record -a
-o 옵션 사용(bag파일 이름을 지정할 수 있음)
ros2 bag record -o image_lidar.bag /image_raw /lidar/scan
-e 옵션 사용(특정 키워드를 공통적으로 가진 토픽들을 한 번에 기록)
ros2 bag record -e "/camera/.*"
→ /camera/로 시작하는 모든 토픽을 기록
ros2 bag record -e "/sensor[0-9]/data"
→ /sensor 뒤에 숫자(0~9)가 오고, /data로 끝나는 토픽을 기록
기록 중지는 Ctrl + C로 종료하시면 됩니다.
Play 명령어 (데이터 재생)
ros2 bag play [OPTIONS] <bag 파일>
[Options]:
- --loop: 데이터를 무한 반복 재생
- --rate <배율>: 재생 속도 설정 (예: 2배속)
- --remap <매핑>: 토픽 이름 변경
Examples
ros2 bag play image_lidar.bag -loop
→ 기록된 image_lidar.bag을 무한루프로 돌림. loop 옵션 미사용시 기록된 한 싸이클만 실행
ros2 bag play image_lidar.bag --rate 2
→ 2배속 재생
ros2 bag play image_lidar.bag --remap /image_raw:=/image_raw_2
→ 기록된 /image_raw의 데이터를 재생하면서 /image_raw_2로 메시지를 전달
→ 동일한 데이터로 다른 알고리즘을 테스트 하고싶을 때 사용
반응형
'ROS2' 카테고리의 다른 글
[ROS2] Nav2란? (4) | 2024.09.09 |
---|---|
[ROS2] Topics, Services, Actions 차이 (0) | 2024.06.11 |
ROS2 - mcap이란? (0) | 2024.06.10 |