ROS (6) -rosbag 데이터 기록 및 재생의 공통 구성 요소

ROS (6) -rosbag 데이터 기록 및 재생의 공통 구성 요소

개요

디버깅 및 테스트를 용이하게하기 위해 ROS는 개발자가 런타임에 ROS 시스템의 메시지 데이터를 수집하고 오프라인 상태에서 재생할 수 있도록 데이터 기록 및 재생 기능 package-rosbag을 제공합니다.
거북이 루틴을 통해 rosbag 데이터 기록 및 재생의 실현 방법을 소개합니다.

하나, 기록 데이터

먼저 키보드 제어 거북이 루틴에 필요한 모든 노드를 시작합니다.

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

시작에 성공하면 인터페이스에서 작은 거북이를 볼 수 있으며 터미널의 키보드를 통해 거북이의 움직임을 제어 할 수 있습니다.
현재 ROS 시스템에서 주제보기 :

rostopic list -v

다음으로 rosbag을 사용하여 이러한 주제의 메시지를 가져 와서 파일로 압축하여 지정된 폴더에 저장합니다.

mkdir ~/bagfiles
cd ~/bagfiles
rosbag record -a

rosbag record는 데이터 기록을위한 명령이고 -a (all) 매개 변수는 모든 게시 된 메시지를 기록하는 것을 의미합니다. 이제 메시지 녹음이 시작되었으므로 터미널에서 일정 시간 동안 거북이가 움직 이도록 제어 한 다음 데이터 녹음이 실행중인 터미널에서 "Ctrl + C"를 눌러 데이터 녹음을 종료 할 수 있습니다. 새로 생성 된 데이터 로그 파일은 새로 생성 된 ~ / bagfiles 폴더에 저장됩니다.

둘째, 재생 데이터

데이터 기록이 완료된 후 데이터 기록 파일을 데이터 재생에 사용할 수 있습니다. rosbag 함수 패키지는 데이터 기록 파일의 상세 정보를 볼 수있는 info 명령어를 제공하며 명령어 형식은 다음과 같다.

rosbag info <your bagfile>

이전에 생성 된 데이터 로그 파일을 보려면 info 명령을 사용하십시오.
데이터 로깅 패키지에 포함 된 모든 주제, 메시지 유형, 메시지 수 및 기타 정보를 통해 알 수 있습니다. 이전에 열린 turtle_teleop_key 제어 노드를 종료하고 turtlesim_node를 다시 시작하고 다음 명령을 사용하여 기록 된 주제 데이터를 재생합니다.

rosbag play <your bagfile>

짧은 대기 시간 후 데이터 재생이 시작되고 거북이의 동작 규칙은 이전 데이터 레코드의 상태와 정확히 동일해야합니다.

추천

출처blog.csdn.net/weixin_45661757/article/details/112794669