Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
cartographer::mapping::PoseGraph3D Class Reference

#include <pose_graph_3d.h>

Inheritance diagram for cartographer::mapping::PoseGraph3D:
Inheritance graph
[legend]

List of all members.

Classes

class  TrimmingHandle

Public Member Functions

void AddFixedFramePoseData (int trajectory_id, const sensor::FixedFramePoseData &fixed_frame_pose_data) override LOCKS_EXCLUDED(mutex_)
void AddImuData (int trajectory_id, const sensor::ImuData &imu_data) override LOCKS_EXCLUDED(mutex_)
void AddLandmarkData (int trajectory_id, const sensor::LandmarkData &landmark_data) override LOCKS_EXCLUDED(mutex_)
NodeId AddNode (std::shared_ptr< const TrajectoryNode::Data > constant_data, int trajectory_id, const std::vector< std::shared_ptr< const Submap3D >> &insertion_submaps) LOCKS_EXCLUDED(mutex_)
void AddNodeFromProto (const transform::Rigid3d &global_pose, const proto::Node &node) override
void AddNodeToSubmap (const NodeId &node_id, const SubmapId &submap_id) override
void AddOdometryData (int trajectory_id, const sensor::OdometryData &odometry_data) override LOCKS_EXCLUDED(mutex_)
void AddSerializedConstraints (const std::vector< Constraint > &constraints) override
void AddSubmapFromProto (const transform::Rigid3d &global_submap_pose, const proto::Submap &submap) override
void AddTrimmer (std::unique_ptr< PoseGraphTrimmer > trimmer) override
std::vector< Constraintconstraints () const override LOCKS_EXCLUDED(mutex_)
void DeleteTrajectory (int trajectory_id) override
void FinishTrajectory (int trajectory_id) override
void FreezeTrajectory (int trajectory_id) override
MapById< SubmapId, SubmapDataGetAllSubmapData () const LOCKS_EXCLUDED(mutex_) override
MapById< SubmapId, SubmapPoseGetAllSubmapPoses () const LOCKS_EXCLUDED(mutex_) override
std::vector< std::vector< int > > GetConnectedTrajectories () const override LOCKS_EXCLUDED(mutex_)
sensor::MapByTime
< sensor::FixedFramePoseData
GetFixedFramePoseData () const override LOCKS_EXCLUDED(mutex_)
sensor::MapByTime
< sensor::ImuData
GetImuData () const override LOCKS_EXCLUDED(mutex_)
transform::Rigid3d GetInterpolatedGlobalTrajectoryPose (int trajectory_id, const common::Time time) const EXCLUSIVE_LOCKS_REQUIRED(mutex_)
std::map< std::string,
PoseGraph::LandmarkNode
GetLandmarkNodes () const override LOCKS_EXCLUDED(mutex_)
std::map< std::string,
transform::Rigid3d > 
GetLandmarkPoses () const override LOCKS_EXCLUDED(mutex_)
transform::Rigid3d GetLocalToGlobalTransform (int trajectory_id) const LOCKS_EXCLUDED(mutex_) override
sensor::MapByTime
< sensor::OdometryData
GetOdometryData () const override LOCKS_EXCLUDED(mutex_)
PoseGraph::SubmapData GetSubmapData (const SubmapId &submap_id) const LOCKS_EXCLUDED(mutex_) override
std::map< int, TrajectoryDataGetTrajectoryData () const override
MapById< NodeId,
TrajectoryNodePose
GetTrajectoryNodePoses () const override LOCKS_EXCLUDED(mutex_)
MapById< NodeId, TrajectoryNodeGetTrajectoryNodes () const override LOCKS_EXCLUDED(mutex_)
std::map< int, TrajectoryStateGetTrajectoryStates () const override LOCKS_EXCLUDED(mutex_)
bool IsTrajectoryFinished (int trajectory_id) const override EXCLUSIVE_LOCKS_REQUIRED(mutex_)
bool IsTrajectoryFrozen (int trajectory_id) const override EXCLUSIVE_LOCKS_REQUIRED(mutex_)
PoseGraph3Doperator= (const PoseGraph3D &)
 PoseGraph3D (const proto::PoseGraphOptions &options, std::unique_ptr< optimization::OptimizationProblem3D > optimization_problem, common::ThreadPool *thread_pool)
 PoseGraph3D (const PoseGraph3D &)
void RunFinalOptimization () override
void SetGlobalSlamOptimizationCallback (PoseGraphInterface::GlobalSlamOptimizationCallback callback) override
void SetInitialTrajectoryPose (int from_trajectory_id, int to_trajectory_id, const transform::Rigid3d &pose, const common::Time time) override LOCKS_EXCLUDED(mutex_)
void SetLandmarkPose (const std::string &landmark_id, const transform::Rigid3d &global_pose, const bool frozen=false) override LOCKS_EXCLUDED(mutex_)
void SetTrajectoryDataFromProto (const proto::TrajectoryData &data) override
 ~PoseGraph3D () override

Static Public Member Functions

static void RegisterMetrics (metrics::FamilyFactory *family_factory)

Protected Member Functions

void WaitForAllComputations () LOCKS_EXCLUDED(mutex_) LOCKS_EXCLUDED(work_queue_mutex_)

Private Member Functions

void AddTrajectoryIfNeeded (int trajectory_id) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
void AddWorkItem (const std::function< WorkItem::Result()> &work_item) LOCKS_EXCLUDED(mutex_) LOCKS_EXCLUDED(work_queue_mutex_)
NodeId AppendNode (std::shared_ptr< const TrajectoryNode::Data > constant_data, int trajectory_id, const std::vector< std::shared_ptr< const Submap3D >> &insertion_submaps, const transform::Rigid3d &optimized_pose) LOCKS_EXCLUDED(mutex_)
bool CanAddWorkItemModifying (int trajectory_id) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
void ComputeConstraint (const NodeId &node_id, const SubmapId &submap_id) LOCKS_EXCLUDED(mutex_)
WorkItem::Result ComputeConstraintsForNode (const NodeId &node_id, std::vector< std::shared_ptr< const Submap3D >> insertion_submaps, bool newly_finished_submap) LOCKS_EXCLUDED(mutex_)
transform::Rigid3d ComputeLocalToGlobalTransform (const MapById< SubmapId, optimization::SubmapSpec3D > &global_submap_poses, int trajectory_id) const EXCLUSIVE_LOCKS_REQUIRED(mutex_)
void DeleteTrajectoriesIfNeeded () EXCLUSIVE_LOCKS_REQUIRED(mutex_)
void DrainWorkQueue () LOCKS_EXCLUDED(mutex_) LOCKS_EXCLUDED(work_queue_mutex_)
common::Time GetLatestNodeTime (const NodeId &node_id, const SubmapId &submap_id) const EXCLUSIVE_LOCKS_REQUIRED(mutex_)
MapById< SubmapId, SubmapDataGetSubmapDataUnderLock () const EXCLUSIVE_LOCKS_REQUIRED(mutex_)
PoseGraph::SubmapData GetSubmapDataUnderLock (const SubmapId &submap_id) const EXCLUSIVE_LOCKS_REQUIRED(mutex_)
std::unique_ptr< WorkQueue >
work_queue_ 
GUARDED_BY (work_queue_mutex_)
absl::flat_hash_map< int,
std::unique_ptr
< common::FixedRatioSampler >
> global_localization_samplers_ 
GUARDED_BY (mutex_)
int
num_nodes_since_last_loop_closure_ 
GUARDED_BY (mutex_)=0
std::vector< std::unique_ptr
< PoseGraphTrimmer >
> trimmers_ 
GUARDED_BY (mutex_)
PoseGraphData data_ GUARDED_BY (mutex_)
void HandleWorkQueue (const constraints::ConstraintBuilder3D::Result &result) LOCKS_EXCLUDED(mutex_) LOCKS_EXCLUDED(work_queue_mutex_)
std::vector< SubmapIdInitializeGlobalSubmapPoses (int trajectory_id, const common::Time time, const std::vector< std::shared_ptr< const Submap3D >> &insertion_submaps) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
void LogResidualHistograms () const EXCLUSIVE_LOCKS_REQUIRED(mutex_)
void RunOptimization () LOCKS_EXCLUDED(mutex_)
void UpdateTrajectoryConnectivity (const Constraint &constraint) EXCLUSIVE_LOCKS_REQUIRED(mutex_)

Private Attributes

constraints::ConstraintBuilder3D constraint_builder_
GlobalSlamOptimizationCallback global_slam_optimization_callback_
absl::Mutex mutex_
std::unique_ptr
< optimization::OptimizationProblem3D
optimization_problem_
const proto::PoseGraphOptions options_
common::ThreadPool *const thread_pool_
absl::Mutex work_queue_mutex_

Detailed Description

Definition at line 62 of file pose_graph_3d.h.


Constructor & Destructor Documentation

cartographer::mapping::PoseGraph3D::PoseGraph3D ( const proto::PoseGraphOptions &  options,
std::unique_ptr< optimization::OptimizationProblem3D optimization_problem,
common::ThreadPool thread_pool 
)

Definition at line 49 of file pose_graph_3d.cc.

Definition at line 58 of file pose_graph_3d.cc.


Member Function Documentation

void cartographer::mapping::PoseGraph3D::AddFixedFramePoseData ( int  trajectory_id,
const sensor::FixedFramePoseData fixed_frame_pose_data 
) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 217 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::AddImuData ( int  trajectory_id,
const sensor::ImuData imu_data 
) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 195 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::AddLandmarkData ( int  trajectory_id,
const sensor::LandmarkData landmark_data 
) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 230 of file pose_graph_3d.cc.

NodeId cartographer::mapping::PoseGraph3D::AddNode ( std::shared_ptr< const TrajectoryNode::Data constant_data,
int  trajectory_id,
const std::vector< std::shared_ptr< const Submap3D >> &  insertion_submaps 
)

Definition at line 141 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::AddNodeFromProto ( const transform::Rigid3d &  global_pose,
const proto::Node &  node 
) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 695 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::AddNodeToSubmap ( const NodeId node_id,
const SubmapId submap_id 
) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 744 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::AddOdometryData ( int  trajectory_id,
const sensor::OdometryData odometry_data 
) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 206 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::AddSerializedConstraints ( const std::vector< Constraint > &  constraints) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 755 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::AddSubmapFromProto ( const transform::Rigid3d &  global_submap_pose,
const proto::Submap &  submap 
) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 657 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::AddTrajectoryIfNeeded ( int  trajectory_id) [private]

Definition at line 178 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::AddTrimmer ( std::unique_ptr< PoseGraphTrimmer trimmer) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 782 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::AddWorkItem ( const std::function< WorkItem::Result()> &  work_item) [private]

Definition at line 161 of file pose_graph_3d.cc.

NodeId cartographer::mapping::PoseGraph3D::AppendNode ( std::shared_ptr< const TrajectoryNode::Data constant_data,
int  trajectory_id,
const std::vector< std::shared_ptr< const Submap3D >> &  insertion_submaps,
const transform::Rigid3d &  optimized_pose 
) [private]

Definition at line 113 of file pose_graph_3d.cc.

bool cartographer::mapping::PoseGraph3D::CanAddWorkItemModifying ( int  trajectory_id) [private]

Definition at line 889 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::ComputeConstraint ( const NodeId node_id,
const SubmapId submap_id 
) [private]

Definition at line 247 of file pose_graph_3d.cc.

WorkItem::Result cartographer::mapping::PoseGraph3D::ComputeConstraintsForNode ( const NodeId node_id,
std::vector< std::shared_ptr< const Submap3D >>  insertion_submaps,
bool  newly_finished_submap 
) [private]

Definition at line 306 of file pose_graph_3d.cc.

transform::Rigid3d cartographer::mapping::PoseGraph3D::ComputeLocalToGlobalTransform ( const MapById< SubmapId, optimization::SubmapSpec3D > &  global_submap_poses,
int  trajectory_id 
) const [private]

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 1002 of file pose_graph_3d.cc.

Definition at line 412 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::DeleteTrajectory ( int  trajectory_id) [override, virtual]

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 593 of file pose_graph_3d.cc.

Definition at line 505 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::FinishTrajectory ( int  trajectory_id) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 619 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::FreezeTrajectory ( int  trajectory_id) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 638 of file pose_graph_3d.cc.

std::vector<std::vector<int> > cartographer::mapping::PoseGraph3D::GetConnectedTrajectories ( ) const [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 985 of file pose_graph_3d.cc.

Implements cartographer::mapping::PoseGraph.

Definition at line 974 of file pose_graph_3d.cc.

transform::Rigid3d cartographer::mapping::PoseGraph3D::GetInterpolatedGlobalTrajectoryPose ( int  trajectory_id,
const common::Time  time 
) const

Definition at line 1016 of file pose_graph_3d.cc.

std::map< std::string, PoseGraphInterface::LandmarkNode > cartographer::mapping::PoseGraph3D::GetLandmarkNodes ( ) const [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 991 of file pose_graph_3d.cc.

std::map< std::string, transform::Rigid3d > cartographer::mapping::PoseGraph3D::GetLandmarkPoses ( ) const [override, virtual]

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 950 of file pose_graph_3d.cc.

common::Time cartographer::mapping::PoseGraph3D::GetLatestNodeTime ( const NodeId node_id,
const SubmapId submap_id 
) const [private]

Definition at line 389 of file pose_graph_3d.cc.

transform::Rigid3d cartographer::mapping::PoseGraph3D::GetLocalToGlobalTransform ( int  trajectory_id) const [override, virtual]

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 1037 of file pose_graph_3d.cc.

Implements cartographer::mapping::PoseGraph.

Definition at line 979 of file pose_graph_3d.cc.

PoseGraph::SubmapData cartographer::mapping::PoseGraph3D::GetSubmapData ( const SubmapId submap_id) const [override, virtual]

Definition at line 1236 of file pose_graph_3d.cc.

Definition at line 1098 of file pose_graph_3d.cc.

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 997 of file pose_graph_3d.cc.

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 922 of file pose_graph_3d.cc.

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 917 of file pose_graph_3d.cc.

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 941 of file pose_graph_3d.cc.

std::unique_ptr<WorkQueue> work_queue_ cartographer::mapping::PoseGraph3D::GUARDED_BY ( work_queue_mutex_  ) [private]
absl::flat_hash_map<int, std::unique_ptr<common::FixedRatioSampler> > global_localization_samplers_ cartographer::mapping::PoseGraph3D::GUARDED_BY ( mutex_  ) [private]
int num_nodes_since_last_loop_closure_ cartographer::mapping::PoseGraph3D::GUARDED_BY ( mutex_  ) [private, pure virtual]
std::vector<std::unique_ptr<PoseGraphTrimmer> > trimmers_ cartographer::mapping::PoseGraph3D::GUARDED_BY ( mutex_  ) [private]
void cartographer::mapping::PoseGraph3D::HandleWorkQueue ( const constraints::ConstraintBuilder3D::Result &  result) [private]

Definition at line 429 of file pose_graph_3d.cc.

std::vector< SubmapId > cartographer::mapping::PoseGraph3D::InitializeGlobalSubmapPoses ( int  trajectory_id,
const common::Time  time,
const std::vector< std::shared_ptr< const Submap3D >> &  insertion_submaps 
) [private]

Definition at line 64 of file pose_graph_3d.cc.

bool cartographer::mapping::PoseGraph3D::IsTrajectoryFinished ( int  trajectory_id) const [override, virtual]

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 632 of file pose_graph_3d.cc.

bool cartographer::mapping::PoseGraph3D::IsTrajectoryFrozen ( int  trajectory_id) const [override, virtual]

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 651 of file pose_graph_3d.cc.

Definition at line 812 of file pose_graph_3d.cc.

PoseGraph3D& cartographer::mapping::PoseGraph3D::operator= ( const PoseGraph3D )

Definition at line 1250 of file pose_graph_3d.cc.

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 792 of file pose_graph_3d.cc.

Definition at line 838 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::SetGlobalSlamOptimizationCallback ( PoseGraphInterface::GlobalSlamOptimizationCallback  callback) [override]

Definition at line 1245 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::SetInitialTrajectoryPose ( int  from_trajectory_id,
int  to_trajectory_id,
const transform::Rigid3d &  pose,
const common::Time  time 
) [override, virtual]

Implements cartographer::mapping::PoseGraph.

Definition at line 1007 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::SetLandmarkPose ( const std::string &  landmark_id,
const transform::Rigid3d &  global_pose,
const bool  frozen = false 
) [override, virtual]

Implements cartographer::mapping::PoseGraphInterface.

Definition at line 963 of file pose_graph_3d.cc.

void cartographer::mapping::PoseGraph3D::SetTrajectoryDataFromProto ( const proto::TrajectoryData &  data) [override]

Definition at line 722 of file pose_graph_3d.cc.

Definition at line 403 of file pose_graph_3d.cc.

Definition at line 530 of file pose_graph_3d.cc.


Member Data Documentation

Definition at line 261 of file pose_graph_3d.h.

Definition at line 244 of file pose_graph_3d.h.

absl::Mutex cartographer::mapping::PoseGraph3D::mutex_ [mutable, private]

Definition at line 245 of file pose_graph_3d.h.

Definition at line 260 of file pose_graph_3d.h.

const proto::PoseGraphOptions cartographer::mapping::PoseGraph3D::options_ [private]

Definition at line 243 of file pose_graph_3d.h.

Definition at line 264 of file pose_graph_3d.h.

Definition at line 246 of file pose_graph_3d.h.


The documentation for this class was generated from the following files:


cartographer
Author(s): The Cartographer Authors
autogenerated on Thu May 9 2019 02:27:36