bag
- ros2 bag record {topic}: 토픽을 녹화
- ros2 bag play {bag file}: 녹화된 파일을 실행
아래 명령어로 turtilesim_node를 실행
$ ros2 run turtlesim turtlesim_node
turtilesim_node를 키보드로 움직일 수 있게 모듈 실행
$ ros2 run turtlesim turtle_teleop_key
이후에 turtilesim의 cmd_vel을 녹화하도록 명령
$ ros2 bag record /turtle1/cmd_vel
그럼 해당 명령어를 실행한 위치에 bag파일이 생성됨
master@master:~/workspace/ros2$ ls
rosbag2_2025_09_25-14_46_03 run_config.txt
녹화한 파일의 정보를 보고싶다면
$ ros2 bag info rosbag2_2025_09_25-14_46_03/
Files: rosbag2_2025_09_25-14_46_03_0.db3
Bag size: 25.0 KiB
Storage id: sqlite3
Duration: 22.000396302s
Start: Sep 25 2025 14:46:04.757747247 (1758779164.757747247)
End: Sep 25 2025 14:46:26.758143549 (1758779186.758143549)
Messages: 23
Topic information: Topic: /turtle1/cmd_vel | Type: geometry_msgs/msg/Twist | Count: 23 | Serialization Format: cdr
녹화된 파일을 실행하고 싶다면 아래 명령어를 입력하면 거북이가 녹화한 cmd_vel을 따라 똑같이 동작한다.
$ ros2 bag play rosbag2_2025_09_25-14_46_03
[INFO] [1758779228.496099360] [rosbag2_storage]: Opened database 'rosbag2_2025_09_25-14_46_03/rosbag2_2025_09_25-14_46_03_0.db3' for READ_ONLY.
[INFO] [1758779228.496134652] [rosbag2_player]: Set rate to 1
[INFO] [1758779228.497536235] [rosbag2_player]: Adding keyboard callbacks.
[INFO] [1758779228.497566610] [rosbag2_player]: Press SPACE for Pause/Resume
[INFO] [1758779228.497571985] [rosbag2_player]: Press CURSOR_RIGHT for Play Next Message
[INFO] [1758779228.497580027] [rosbag2_player]: Press CURSOR_UP for Increase Rate 10%
[INFO] [1758779228.497583819] [rosbag2_player]: Press CURSOR_DOWN for Decrease Rate 10%
[INFO] [1758779228.497786235] [rosbag2_storage]: Opened database 'rosbag2_2025_09_25-14_46_03/rosbag2_2025_09_25-14_46_03_0.db3' for READ_ONLY
만약 로그파일의 용량문제로 10초간격으로 파일을 저장하고싶다면 아래 명령어를 입력하면 된다.
mybag라는 폴더에 10초 단위로 로그파일이 저장된다.
$ ros2 bag record /turtle1/cmd_vel --max-bag-duration 10 -o mybag
Comment