티스토리 뷰
ROS bags란 무엇인가?
실행중인 ROS의 주고받는 data들을 record 한뒤 다시 play 할 수 있다.
즉 ) publisher가 발행한 값을 하나의 subscriber로서 다 인식해서 recording을 기록한뒤.
play시 자신이 기록한 topic으로 같은 타이밍에 data를 publish하는 방식이다.
기본 예제인 turtlesim을 이용해서 테스트 했을 때, 잘나왔다. 직접 사용해보진 않았지만 일단 정리해본다.
우선 rosbag의 명령어들을 알아보자.
check : 현재 세팅에서 rosbag을 play 가능한지 테스트한다. 내생각에는 msg의 형식이 바뀌거나 값이 바뀌게되면 record된 기록이 playable하지 않아져서 check를 하면 플레이가 불가능 하다고 뜰것같다. 라고 생각하였으나. 30분정도 코딩해서 테스트해본 결과..
아니었다. 그렇다면 무엇을 체크한다는 것일까. current system에 playable한지를 평가하고, bag migration 파일을 만들 수 있다.
compress : 기록한 data 파일을 백업해둘 때, *.bag file들을 압축해서 보관한다.
decompress : compress로 압축된 파일들을 decompress한다.
filter : python expression을 통해 bag file을 수정 할 수 있다.
fix : current system에도 bag 파일이 작동할 수 있도록 고쳐준다. rule 파일을 등록하여 고쳐줄 때 참고하여 고쳐주거나, -n 명령어로 noplugin으로 고치기도 한다. (한번도 안써봤다)
help : 헬프! rosbag 의 사용법을 나열해준다.
info : rosbag파일이 가지고 있는 등록정보를 보여준다.
play : 한개 혹은 여러개의 bag file을 읽어와서 Time synchronize 하게 재생한다. Time synchronize 는 측정당시의 global timestamps를 기준으로 사용한다. play가 시작되면 즉시 작용하지만, 나중에 작용해야하는 메시지는 똑같은 offset 시간을 가지고 실행된다. 두개이상의 bag 파일을 같이 실행한경우 global 타임스탬프가 다르기 때문에, record시 a 와 b 파일레코딩 텀이 1시간 정도였다면, play를 같이 해버리면 a를 실행하고 1시간뒤에 b를 실행하는 long dead period를 가지게 될것이다.
record : 가장 중요한기능 바로 전송되고있는 데이터를 읽고 저장하는 record다. record뒤에 사용되는 명령어는 굉장히 많은데 자주 사용하는건 -a : 모든것을 레코드하라, -O(대문자) : 파일이름 + subset : 특정 토픽만 받아옴.
reindex : broken된 bag파일을 고칠 수 있다. bag파일이 깨지거나 문제가 생겼을 때, 인덱싱을 다시해줌으로써 해결한다. 이 툴은 데이터들을 다시 읽어주고 인덱싱을 재설정하는 과정이 주를 이루고있다.
다양한것들이 많다.
자세한 내용은 : http://wiki.ros.org/rosbag/Commandline
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 블로그
- ROS2 설치
- c#초보
- 창숨김 프로그램
- C# 책
- c#
- 블로그 공지
- USB
- c#.net
- 책 소개
- 블로그 이야기
- 2000au
- iptime 2000au
- Node
- robot
- 창숨김
- C#입문
- C# 속으루..
- 디스크 쓰기 금지되어 있습니다
- C 책
- readonly
- ubuntu
- 창숨기기
- 블로그 개설
- 창숨기기 프로그램
- ROS2
- 창숨김 다운
- c#ㄱㄱ
- C#책
- ipTIME
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함