LocalTrajectoryBuilder2D::MatchingResult 数据分析

本文介绍了与SLAM相关的数据结构,如structMatchingResult处理雷达数据,InsertionResult用于插入子图,Data包含时间戳、姿态和多模态传感器数据。Submap2D类描述了二维子地图,包括其网格、插入范围数据等功能。这些结构在本地SLAM系统中进行位姿估计和环境建模。
摘要由CSDN通过智能技术生成
  struct MatchingResult {
    common::Time time;
    transform::Rigid3d local_pose;
    sensor::RangeData range_data_in_local; // 经过扫描匹配之后位姿校准之后的雷达数据
    // 'nullptr' if dropped by the motion filter.
    std::unique_ptr<const InsertionResult> insertion_result;
  };

|
|/

  struct InsertionResult {
    std::shared_ptr<const TrajectoryNode::Data> constant_data;
    std::vector<std::shared_ptr<const Submap2D>> insertion_submaps; // 最多只有2个子图的指针
  };

|
|/

  struct Data {
    common::Time time;

    // Transform to approximately gravity align the tracking frame as
    // determined by local SLAM.
    Eigen::Quaterniond gravity_alignment;

    // Used for loop closure in 2D: voxel filtered returns in the
    // 'gravity_alignment' frame.
    sensor::PointCloud filtered_gravity_aligned_point_cloud;

    // Used for loop closure in 3D.
    sensor::PointCloud high_resolution_point_cloud;
    sensor::PointCloud low_resolution_point_cloud;
    Eigen::VectorXf rotational_scan_matcher_histogram;

    // The node pose in the local SLAM frame.
    transform::Rigid3d local_pose;
  };

|
|/

  class Submap2D : public Submap {
  public:
    Submap2D(const Eigen::Vector2f& origin, std::unique_ptr<Grid2D> grid,
            ValueConversionTables* conversion_tables);
    explicit Submap2D(const proto::Submap2D& proto,
                      ValueConversionTables* conversion_tables);

    proto::Submap ToProto(bool include_grid_data) const override;
    void UpdateFromProto(const proto::Submap& proto) override;

    void ToResponseProto(const transform::Rigid3d& global_submap_pose,
                        proto::SubmapQuery::Response* response) const override;

    const Grid2D* grid() const { return grid_.get(); }

    // Insert 'range_data' into this submap using 'range_data_inserter'. The
    // submap must not be finished yet.
    void InsertRangeData(const sensor::RangeData& range_data,
                        const RangeDataInserterInterface* range_data_inserter);
    void Finish();

  private:
    std::unique_ptr<Grid2D> grid_;
    ValueConversionTables* conversion_tables_;
  };
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值