6 #ifndef KARTO_CERESSOLVER_H 7 #define KARTO_CERESSOLVER_H 10 #include <std_srvs/Empty.h> 13 #include <unordered_map> 17 #include <ceres/ceres.h> 18 #include <ceres/local_parameterization.h> 22 #include "../include/slam_toolbox/toolbox_types.hpp" 44 virtual std::unordered_map<int, Eigen::Vector3d>*
getGraph();
48 virtual void ModifyNode(
const int& unique_id, Eigen::Vector3d pose);
64 std::unordered_map<int, Eigen::Vector3d>*
nodes_;
65 std::unordered_map<size_t, ceres::ResidualBlockId>*
blocks_;
66 std::unordered_map<int, Eigen::Vector3d>::iterator
first_node_;
std::unordered_map< int, Eigen::Vector3d >::iterator first_node_
virtual void AddConstraint(karto::Edge< karto::LocalizedRangeScan > *pEdge)
karto::ScanSolver::IdPoseVector corrections_
virtual void RemoveNode(kt_int32s id)
std::unordered_map< int, Eigen::Vector3d > * nodes_
ceres::LocalParameterization * angle_local_parameterization_
virtual void RemoveConstraint(kt_int32s sourceId, kt_int32s targetId)
virtual const karto::ScanSolver::IdPoseVector & GetCorrections() const
virtual std::unordered_map< int, Eigen::Vector3d > * getGraph()
virtual void ModifyNode(const int &unique_id, Eigen::Vector3d pose)
ceres::LossFunction * loss_function_
ceres::Problem * problem_
ceres::Solver::Options options_
virtual void AddNode(karto::Vertex< karto::LocalizedRangeScan > *pVertex)
virtual void GetNodeOrientation(const int &unique_id, double &pose)
ceres::Problem::Options options_problem_
std::vector< std::pair< kt_int32s, Pose2 > > IdPoseVector
std::unordered_map< size_t, ceres::ResidualBlockId > * blocks_
boost::mutex nodes_mutex_