replay: update & add some comments

This commit is contained in:
Beat Küng 2017-03-03 15:07:48 +01:00 committed by Lorenz Meier
parent eaa9e6a019
commit ca05e64a9f
4 changed files with 6 additions and 4 deletions

View File

@ -1,5 +1,4 @@
# uint64 timestamp # ekf2 reference time. This is a timestamp passed to the
# estimator which it uses a absolute reference.
float32 gyro_integral_dt # gyro integration period in s
float32 accelerometer_integral_dt # accelerometer integration period in s
uint64 magnetometer_timestamp # timestamp of magnetometer measurement in us

View File

@ -1,8 +1,8 @@
# this message contains the (relative) timestamps of the sensor inputs used by
# ekf2. It can be used for reproducible replay.
# timestamp # ekf2 reference time. This matches the timestamp of the
# sensor_combined topic.
# the timestamp field (auto-generated) is the ekf2 reference time and matches
# the timestamp of the sensor_combined topic.
int16 RELATIVE_TIMESTAMP_INVALID = 32767 # (0x7fff) If one of the relative timestamps

View File

@ -231,6 +231,7 @@ protected:
* handle ekf2 topic publication in ekf2 replay mode
* @param sub
* @param data
* @param replay_file file currently replayed (file seek position should be considered arbitrary after this call)
* @return true if published, false otherwise
*/
bool handleTopicUpdate(Subscription &sub, void *data, std::ifstream &replay_file) override;
@ -245,6 +246,7 @@ private:
* find the next message for a subscription that matches a given timestamp and publish it
* @param timestamp in 0.1 ms
* @param msg_id
* @param replay_file file currently replayed (file seek position should be considered arbitrary after this call)
* @return true if timestamp found and published
*/
bool findTimestampAndPublish(uint64_t timestamp, uint16_t msg_id, std::ifstream &replay_file);

View File

@ -885,6 +885,7 @@ bool ReplayEkf2::publishEkf2Topics(const ekf2_timestamps_s &ekf2_timestamps, std
{
auto handle_sensor_publication = [&](int16_t timestamp_relative, uint16_t msg_id) {
if (timestamp_relative != ekf2_timestamps_s::RELATIVE_TIMESTAMP_INVALID) {
// timestamp_relative is already given in 0.1 ms
uint64_t t = timestamp_relative + ekf2_timestamps.timestamp / 100; // in 0.1 ms
findTimestampAndPublish(t, msg_id, replay_file);
}