데이터 기록 및 재생
저작권: 쿼드(QUAD) 드론연구소 https://www.youtube.com/@quad-robotics
개요
ros2 bag은
시스템의 토픽에 게시된 데이터를 기록하기 위한 명령줄 도구입니다. 여러 토픽에 대해 전달된 데이터를 축적하여 데이터베이스에 저장합니다. 그런 다음 데이터를 재생하여 테스트 및 실험 결과를 재현할 수 있습니다. 토픽을 기록하는 것은 작업을 공유하고 다른 사람이 다시 만들 수 있도록 하는 좋은 방법이기도 합니다.
# 실습
데이터를 저장하고 재생하기 위해 시스템에 키보드 입력을 기록할 것이므로 /turtlesim
및 /teleop_turtle
노드를 시작하여 시작하십시오.
새 터미널을 열고 다음을 실행합니다.
다른 터미널을 열고 다음을 실행합니다.
기록된 데이터를저장할 새 디렉토리를 만들어 봅시다.
2. Topic 선택
ros2 bag
에 게시된 특정 토픽 메시지의 데이터만 기록할 수 있습니다. 시스템 토픽 목록을 보려면 새 터미널을 열고 다음 명령을 실행하십시오.
다음을 반환합니다.
토픽 자습서에서 /turtle_teleop
노드가 거북이가 turtlesim에서 움직이도록 하는 명령을 /turtle1/cmd_vel
토픽에 게시한다는 것을 배웠습니다.
/turtle1/cmd_vel에
게시 중인 데이터를 보려면 다음 명령을 실행합니다.
Teleop에서 데이터를 게시하지 않기 때문에 처음에는 아무 것도 표시되지 않습니다. teleop을 실행한 터미널로 돌아가서 활성화되도록 선택합니다. 화살표 키를 사용하여 거북이를 움직이면 실행 중인 터미널에 데이터가 게시되는 것을 볼 수 있습니다 .
3. ros2 bag record
토픽에 게시된 데이터를 기록하려면 다음명령 구문을 사용합니다.
선택한 항목에서 이 명령을 실행하기 전에 새 터미널을 열고 이전에 만든 bag_files
디렉터리로 이동합니다. 왜냐하면 rosbag 파일은 디렉터리에 저장되기 때문입니다.
다음 명령을 실행합니다.
터미널에 다음 메시지가 표시됩니다(날짜와 시간은 다를 수 있음).
이제 토픽에 게시된 데이터를 기록하고 있습니다. teleop 터미널로 돌아가 거북이를 다시 움직입니다. 움직임은 중요하지 않지만 나중에 /turtle1/cmd_vel
데이터를 재생할 때 볼 수 있도록 인식 가능한 패턴을 만드십시오.
기록을 중지하려면 Ctrl+C
누릅니다 .
데이터는 다음과 같은 패턴의 이름으로 백 파일에 축적됩니다.rosbag2_year_month_day-hour_minute_second
3.1 여러 토픽 기록
3.1 여러 토픽 기록
여러 토픽을 기록하고 저장할 파일의 이름을 변경할 수도 있습니다.
다음 명령을 실행합니다.
이 -o
옵션을 사용하면 백 파일의 고유한 이름을 선택할 수 있습니다. 다음 문자열(이 경우 subset
)은 파일 이름입니다.
한 번에 둘 이상의 주제를 기록하려면 각 주제를 공백으로 구분하여 나열하면 됩니다.
두 주제가 모두 기록되고 있음을 확인하는 다음 메시지가 표시됩니다.
4. ros2 bag info
다음을 실행하여 기록에 대한 세부 정보를 볼 수 있습니다.
bag 파일 에서 이 명령을 실행하면 subset
파일에 대한 정보 목록이 반환됩니다.
개별 메시지를 보려면 데이터베이스(이 경우 sqlite3)를 열어 검사해야 합니다. 이는 본 학습의범위를 벗어납니다.
5. ros2 bag play
bag 파일을 재생하기 전에 teleop이 실행되고 있는 터미널에 Ctrl+C
입력합니다. 그런 다음 작동 중인 bag 파일을 볼 수 있도록 turtlesim 창이 표시되는지 확인합니다.
다음 명령을 입력하십시오.
터미널은 다음 메시지를 반환합니다.
거북이는 기록하는 동안 입력한 것과 동일한 경로를 따릅니다(정확히 100%는 아니지만 turtlesim은 시스템 타이밍의 작은 변화에 민감합니다).
파일이 turtle1/pose
토픽을 subset
기록했기 때문에 이동하지 않더라도 turtlesim을 실행하는 동안 명령이 종료되지 않습니다.
/turtlesim
노드가 활성화되어 있는 한 일정한 간격으로 토픽에 대한 데이터를 게시하기 때문입니다. 위의 예제 결과 에서 /turtle1/pose 토픽
의 정보가 9개에 불과하다는 것을 알아차렸을 것입니다. 기록하는 동안 화살표 키를 누른 횟수입니다.
3000 이상의 값이 /turtle1/pose 에있음 을 알 수 있습니다 . 기록하는 동안 해당 토픽에 대한 데이터가 3000번 게시되었습니다.
위치 데이터가 얼마나 자주 게시되는지 알아보려면 다음 명령을 실행할 수 있습니다.
Last updated
Was this helpful?