27#include <shared_mutex>
31#include <Eigen/Geometry>
33#include <SimoxUtility/math/pose/interpolate.h>
51 template <
typename MessageType>
69 <<
"Cannot perform lookup of timestamp " <<
timestamp;
77 const auto posePreIt = poseNextIt - 1;
79 const auto& posePre = *posePreIt;
80 const auto& poseNext = *poseNextIt;
83 const float t =
static_cast<float>(
timestamp - posePre.timestamp) /
84 (poseNext.timestamp - posePre.timestamp);
std::size_t size() const noexcept
InterpolatingTimeQueue(const std::size_t maxQueueSize=100)
MessageType lookupInterpolate(int64_t timestamp) const
QueueConstIterator findFirstElementAtOrAfter(int64_t timestamp) const
TimeQueue(const std::size_t maxQueueSize)
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
This file is part of ArmarX.
PoseStamped interpolate(const PoseStamped &posePre, const PoseStamped &poseNext, float t)