Timestamp synchronization through one association.
This commit is contained in:
parent
1c1503aae2
commit
becccd9b8f
|
@ -44,6 +44,19 @@ MYNTEYE_BEGIN_NAMESPACE
|
||||||
|
|
||||||
namespace enc = sensor_msgs::image_encodings;
|
namespace enc = sensor_msgs::image_encodings;
|
||||||
|
|
||||||
|
ros::Time HardTime2SoftTime(double _hard_time) {
|
||||||
|
static bool isInited = false;
|
||||||
|
static double soft_time_begin(0), hard_time_begin(0);
|
||||||
|
|
||||||
|
if (false == isInited) {
|
||||||
|
soft_time_begin = ros::Time::now().toSec();
|
||||||
|
hard_time_begin = _hard_time;
|
||||||
|
isInited = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ros::Time(soft_time_begin + (_hard_time - hard_time_begin) * 0.00001f);
|
||||||
|
}
|
||||||
|
|
||||||
class ROSWrapperNodelet : public nodelet::Nodelet {
|
class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||||
public:
|
public:
|
||||||
ROSWrapperNodelet() {}
|
ROSWrapperNodelet() {}
|
||||||
|
@ -242,10 +255,11 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||||
void publishTopics() {
|
void publishTopics() {
|
||||||
api_->SetStreamCallback(
|
api_->SetStreamCallback(
|
||||||
Stream::LEFT, [this](const api::StreamData &data) {
|
Stream::LEFT, [this](const api::StreamData &data) {
|
||||||
static double ros_time_beg = ros::Time::now().toSec();
|
ros::Time stamp = HardTime2SoftTime(data.img->timestamp);
|
||||||
static double img_time_beg = data.img->timestamp;
|
// static double ros_time_beg = ros::Time::now().toSec();
|
||||||
ros::Time stamp(
|
// static double img_time_beg = data.img->timestamp;
|
||||||
ros_time_beg + (data.img->timestamp - img_time_beg) * 0.00001f);
|
// ros::Time stamp(
|
||||||
|
// ros_time_beg + (data.img->timestamp - img_time_beg) * 0.00001f);
|
||||||
|
|
||||||
// static double img_time_prev = -1;
|
// static double img_time_prev = -1;
|
||||||
// NODELET_INFO_STREAM("ros_time_beg: " << FULL_PRECISION <<
|
// NODELET_INFO_STREAM("ros_time_beg: " << FULL_PRECISION <<
|
||||||
|
@ -268,10 +282,11 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||||
|
|
||||||
api_->SetStreamCallback(
|
api_->SetStreamCallback(
|
||||||
Stream::RIGHT, [this](const api::StreamData &data) {
|
Stream::RIGHT, [this](const api::StreamData &data) {
|
||||||
static double ros_time_beg = ros::Time::now().toSec();
|
ros::Time stamp = HardTime2SoftTime(data.img->timestamp);
|
||||||
static double img_time_beg = data.img->timestamp;
|
// static double ros_time_beg = ros::Time::now().toSec();
|
||||||
ros::Time stamp(
|
// static double img_time_beg = data.img->timestamp;
|
||||||
ros_time_beg + (data.img->timestamp - img_time_beg) * 0.00001f);
|
// ros::Time stamp(
|
||||||
|
// ros_time_beg + (data.img->timestamp - img_time_beg) * 0.00001f);
|
||||||
|
|
||||||
++right_count_;
|
++right_count_;
|
||||||
publishCamera(Stream::RIGHT, data, right_count_, stamp);
|
publishCamera(Stream::RIGHT, data, right_count_, stamp);
|
||||||
|
@ -303,10 +318,11 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||||
});
|
});
|
||||||
|
|
||||||
api_->SetMotionCallback([this](const api::MotionData &data) {
|
api_->SetMotionCallback([this](const api::MotionData &data) {
|
||||||
static double ros_time_beg = ros::Time::now().toSec();
|
ros::Time stamp = HardTime2SoftTime(data.imu->timestamp);
|
||||||
static double imu_time_beg = data.imu->timestamp;
|
// static double ros_time_beg = ros::Time::now().toSec();
|
||||||
ros::Time stamp(
|
// static double imu_time_beg = data.imu->timestamp;
|
||||||
ros_time_beg + (data.imu->timestamp - imu_time_beg) * 0.00001f);
|
// ros::Time stamp(
|
||||||
|
// ros_time_beg + (data.imu->timestamp - imu_time_beg) * 0.00001f);
|
||||||
|
|
||||||
// static double imu_time_prev = -1;
|
// static double imu_time_prev = -1;
|
||||||
// NODELET_INFO_STREAM("ros_time_beg: " << FULL_PRECISION << ros_time_beg
|
// NODELET_INFO_STREAM("ros_time_beg: " << FULL_PRECISION << ros_time_beg
|
||||||
|
|
Loading…
Reference in New Issue
Block a user