Closed ryanmeasel closed 6 years ago
W0115 17:02:19.435412 15326 rosbag_validate_main.cc:103] frame_id imu_link time 1515519546587567962: IMU linear acceleration is 2.23423 m/s^2, expected is [3, 30] m/s^2. (It should include gravity and be given in m/s^2.) linear_acceleration 0.0473449 002.21687 -0.273885
Please configure your IMU that it includes gravity. It won't work otherwise. Actually, we only look at gravity direction and drop the rest of the acceleration vector.
[FATAL] [1516059899.205516676, 1515519557.762312447]: F0115 15:44:59.000000 12672 local_trajectory_builder.cc:71] Check failed: !range_data.returns.empty()
Yeah, this is a rather strict check.
You could replace it by a return nullptr
in your fork or make sure your range data message are non-empty.
@ryanmeasel You could also try to leave the code untouched and simply filter out the empty point cloud ROS messages using a carefully crafted invocation of [rosbag filter(http://wiki.ros.org/rosbag/Commandline#filter) I guess :)
I collected a ROS bag for a unit with 2 VLPs and an IMU using
cartographer_ros
and cartographer was able to run for the full duration of the scan. When the bag is processed however, a fatal error occurs:The error is correct as the bag does contain a LiDAR packet with an empty data payload near that timestamp. Does this need to be fatal? It seems like the packet could simply be discarded. Also, why would cartographer continue to run without error during collection but not during playback?
I have enclosed the full run output as well as the bag validation:
Bag validation: