diff --git a/include/IMU/capture/capture_IMU.h b/include/IMU/capture/capture_IMU.h
index 08257612c82c3b69b9933ccdf00628319d8fb82a..513a2308bac4b9a43f75b8bcf42177a2bc302274 100644
--- a/include/IMU/capture/capture_IMU.h
+++ b/include/IMU/capture/capture_IMU.h
@@ -17,14 +17,14 @@ class CaptureIMU : public CaptureMotion
                    SensorBasePtr _sensor_ptr,
                    const Eigen::Vector6s& _data,
                    const Eigen::MatrixXs& _data_cov,
-                   FrameBasePtr _origin_frame_ptr = nullptr);
+                   CaptureBasePtr _origin_capture = nullptr);
 
         CaptureIMU(const TimeStamp& _init_ts,
                    SensorBasePtr _sensor_ptr,
                    const Eigen::Vector6s& _data,
                    const Eigen::MatrixXs& _data_cov,
                    const Vector6s& _bias,
-                   FrameBasePtr _origin_frame_ptr = nullptr);
+                   CaptureBasePtr _origin_capture = nullptr);
 
         virtual ~CaptureIMU();
 
diff --git a/include/IMU/processor/processor_IMU.h b/include/IMU/processor/processor_IMU.h
index 59f87aa68961348e0033797483e07ab6709a5a84..26db0958fc89f89729757f0ae4bfbdc36fe52547 100644
--- a/include/IMU/processor/processor_IMU.h
+++ b/include/IMU/processor/processor_IMU.h
@@ -69,7 +69,7 @@ class ProcessorIMU : public ProcessorMotion{
                                                 const MatrixXs& _data_cov,
                                                 const VectorXs& _calib,
                                                 const VectorXs& _calib_preint,
-                                                const FrameBasePtr& _frame_origin) override;
+                                                const CaptureBasePtr& _capture_origin) override;
         virtual FeatureBasePtr emplaceFeature(CaptureMotionPtr _capture_motion) override;
         virtual FactorBasePtr emplaceFactor(FeatureBasePtr _feature_motion,
                                             CaptureBasePtr _capture_origin) override;
diff --git a/src/capture/capture_IMU.cpp b/src/capture/capture_IMU.cpp
index 5707723aea4f4b20f39c2fc3c59539922cebf429..fb624e57a7c9c5d14fbccc983ad7dc89aedd8002 100644
--- a/src/capture/capture_IMU.cpp
+++ b/src/capture/capture_IMU.cpp
@@ -8,8 +8,8 @@ CaptureIMU::CaptureIMU(const TimeStamp& _init_ts,
                        SensorBasePtr _sensor_ptr,
                        const Eigen::Vector6s& _acc_gyro_data,
                        const Eigen::MatrixXs& _data_cov,
-                       FrameBasePtr _origin_frame_ptr) :
-                CaptureMotion("IMU", _init_ts, _sensor_ptr, _acc_gyro_data, _data_cov, 10, 9, _origin_frame_ptr, nullptr, nullptr, std::make_shared<StateBlock>(6, false))
+                       CaptureBasePtr _origin_capture) :
+                CaptureMotion("IMU", _init_ts, _sensor_ptr, _acc_gyro_data, _data_cov, 10, 9, _origin_capture, nullptr, nullptr, std::make_shared<StateBlock>(6, false))
 {
     //
 }
@@ -19,8 +19,8 @@ CaptureIMU::CaptureIMU(const TimeStamp& _init_ts,
                        const Eigen::Vector6s& _acc_gyro_data,
                        const Eigen::MatrixXs& _data_cov,
                        const Vector6s& _bias,
-                       FrameBasePtr _origin_frame_ptr) :
-                CaptureMotion("IMU", _init_ts, _sensor_ptr, _acc_gyro_data, _data_cov, 10, 9, _origin_frame_ptr, nullptr, nullptr, std::make_shared<StateBlock>(_bias, false))
+                       CaptureBasePtr _origin_capture) :
+                CaptureMotion("IMU", _init_ts, _sensor_ptr, _acc_gyro_data, _data_cov, 10, 9, _origin_capture, nullptr, nullptr, std::make_shared<StateBlock>(_bias, false))
 {
     //
 }
diff --git a/src/processor/processor_IMU.cpp b/src/processor/processor_IMU.cpp
index 2d83320e714ff9c8d37768cb5946941de4807776..afd12e4495d5abed332934c48ee8bab9babde1d7 100644
--- a/src/processor/processor_IMU.cpp
+++ b/src/processor/processor_IMU.cpp
@@ -65,14 +65,14 @@ CaptureMotionPtr ProcessorIMU::emplaceCapture(const FrameBasePtr& _frame_own,
                                               const MatrixXs& _data_cov,
                                               const VectorXs& _calib,
                                               const VectorXs& _calib_preint,
-                                              const FrameBasePtr& _frame_origin)
+                                              const CaptureBasePtr& _capture_origin)
 {
     auto cap_motion = std::static_pointer_cast<CaptureMotion>(CaptureBase::emplace<CaptureIMU>(_frame_own,
                                                                                                _ts,
                                                                                                _sensor,
                                                                                                _data,
                                                                                                _data_cov,
-                                                                                               _frame_origin));
+                                                                                               _capture_origin));
     cap_motion->setCalibration(_calib);
     cap_motion->setCalibrationPreint(_calib_preint);