2017-01-12 2 views
1

rosbag 재생 코드를 디버깅하고 있습니다.왜 메시지의 타임 스탬프가 rosbag 시간보다 늦습니까?

때때로
tf.transformPose(target_frame, input_pose, output_pose); 

읽기, 던져 예외, 거기 : 내 코드에서, 나는 TF 다음과 같이 변환 않았다

"Lookup would require extrapolation into the future. 
Requested time 1484037737.206813097 
but the latest data is at time 1484037724.492085834, 
when looking up transform from frame [odom] to frame [map]" 

내가 디버거에서 확인하고 메시지 input_pose의 타임 스탬프를 발견 rosbag 시간보다 이후 :

p input_pose.stamp_ 
$1 sec = 1484037737, nsec = 206813097 
p ros::Time::now() 
$2 sec = 1484037724, nsec = 918256570 

또한, rosbag 플레이 콘솔을 보여줍니다

[PAUSED] Bag Time: 1484037724.967132 

명령은 내가 rosbag가

rosbag play --clock --pause bagfile.bag 

입니다 실행하는 데 사용 그리고 PARAM의 use_sim_time 이미 true로 설정 :

$rosparam get use_sim_time 
true 

사람이 문제 도와 주 시겠어요? 감사!

답변

1

낮은 속도로 게시하는 것이 좋습니다. tf_monitor 또는 view_frames을보고 디버그 할 수 있습니다.

또한 transformPose (waitForTransform()을 사용하여)을 수행하기 전에 변환이 준비되기를 기다리고 있습니까?

+0

고마워요, 내가 다시 rosbag 재생을 시작하는 것으로 밝혀 지지만 디버깅 프로세스가 다시 시작되지 않습니다. –

0

다시 rosbag play을 다시 시작하지만 디버깅 프로세스가 다시 시작되지 않습니다.

관련 문제