17 #ifndef CARTOGRAPHER_MAPPING_3D_OPTIMIZING_LOCAL_TRAJECTORY_BUILDER_H_ 18 #define CARTOGRAPHER_MAPPING_3D_OPTIMIZING_LOCAL_TRAJECTORY_BUILDER_H_ 29 #include "cartographer/mapping_3d/proto/local_trajectory_builder_options.pb.h" 36 namespace mapping_3d {
44 const proto::LocalTrajectoryBuilderOptions& options);
53 const Eigen::Vector3d& angular_velocity)
override;
68 State(
const Eigen::Vector3d& translation,
69 const Eigen::Quaterniond& rotation,
const Eigen::Vector3d& velocity)
70 : translation{{translation.x(), translation.y(), translation.z()}},
71 rotation{{rotation.w(), rotation.x(), rotation.y(), rotation.z()}},
72 velocity{{velocity.x(), velocity.y(), velocity.z()}} {}
75 return Eigen::Quaterniond(rotation[0], rotation[1], rotation[2],
81 Eigen::Vector3d(translation[0], translation[1], translation[2]),
117 const proto::LocalTrajectoryBuilderOptions
options_;
135 #endif // CARTOGRAPHER_MAPPING_3D_OPTIMIZING_LOCAL_TRAJECTORY_BUILDER_H_ void AddImuData(common::Time time, const Eigen::Vector3d &linear_acceleration, const Eigen::Vector3d &angular_velocity) override
transform::Rigid3d ToRigid() const
std::deque< ImuData > imu_data_
sensor::PointCloud low_resolution_filtered_points
std::unique_ptr< InsertionResult > InsertIntoSubmap(const common::Time time, const sensor::RangeData &range_data_in_tracking, const transform::Rigid3d &pose_observation)
std::array< double, 4 > rotation
mapping_3d::Submaps * submaps() override
MotionFilter motion_filter_
const ceres::Solver::Options ceres_solver_options_
State PredictState(const State &start_state, const common::Time start_time, const common::Time end_time)
std::unique_ptr< InsertionResult > AddRangefinderData(common::Time time, const Eigen::Vector3f &origin, const sensor::PointCloud &ranges) override
sensor::PointCloud high_resolution_filtered_points
UniversalTimeScaleClock::time_point Time
~OptimizingLocalTrajectoryBuilder() override
const proto::LocalTrajectoryBuilderOptions options_
std::deque< OdometerData > odometer_data_
std::deque< Batch > batches_
const PoseEstimate & pose_estimate() const override
Eigen::Quaterniond ToQuaternion() const
sensor::PointCloud points
void AddOdometerData(common::Time time, const transform::Rigid3d &pose) override
std::unique_ptr< InsertionResult > AddAccumulatedRangeData(common::Time time, const transform::Rigid3d &pose_observation, const sensor::RangeData &range_data_in_tracking)
std::vector< Eigen::Vector3f > PointCloud
void TransformStates(const transform::Rigid3d &transform)
std::unique_ptr< InsertionResult > MaybeOptimize(common::Time time)
State(const Eigen::Vector3d &translation, const Eigen::Quaterniond &rotation, const Eigen::Vector3d &velocity)
OptimizingLocalTrajectoryBuilder(const proto::LocalTrajectoryBuilderOptions &options)
PoseEstimate last_pose_estimate_
std::array< double, 3 > translation
void RemoveObsoleteSensorData()
OptimizingLocalTrajectoryBuilder & operator=(const OptimizingLocalTrajectoryBuilder &)=delete
std::unique_ptr< mapping_3d::Submaps > submaps_
std::array< double, 3 > velocity