47 typedef std::vector<sba::Node2d, Eigen::aligned_allocator<sba::Node2d> > NodeVector;
49 ROS_INFO(
"Calling doSPA for loop closure");
51 ROS_INFO(
"Finished doSPA for loop closure");
55 karto::Pose2 pose(iter->trans(0), iter->trans(1), iter->arot);
56 corrections.push_back(std::make_pair(iter->nodeId, pose));
77 Eigen::Matrix<double,3,3> m;
78 m(0,0) = precisionMatrix(0,0);
79 m(0,1) = m(1,0) = precisionMatrix(0,1);
80 m(0,2) = m(2,0) = precisionMatrix(0,2);
81 m(1,1) = precisionMatrix(1,1);
82 m(1,2) = m(2,1) = precisionMatrix(1,2);
83 m(2,2) = precisionMatrix(2,2);
int doSPA(int niter, double sLambda=1.0e-4, int useCSparse=SBA_SPARSE_CHOLESKY, double initTol=1.0e-8, int CGiters=50)
kt_double GetHeading() const
virtual const karto::ScanSolver::IdPoseVector & GetCorrections() const
std::vector< Node2d, Eigen::aligned_allocator< Node2d > > getNodes()
virtual void AddNode(karto::Vertex< karto::LocalizedRangeScan > *pVertex)
const Matrix3 & GetCovariance()
#define forEach(listtype, list)
kt_int32s GetUniqueId() const
karto::ScanSolver::IdPoseVector corrections
std::vector< std::pair< kt_int32s, Pose2 > > IdPoseVector
virtual void AddConstraint(karto::Edge< karto::LocalizedRangeScan > *pEdge)
Vertex< T > * GetSource() const
int addNode(const Vector3d &pos, int id)
Vertex< T > * GetTarget() const
bool addConstraint(int nd0, int nd1, const Vector3d &mean, const Matrix3d &prec)
const Pose2 & GetCorrectedPose() const
const Pose2 & GetPoseDifference()