Typedefs | |
typedef std::map< Key, double > | key2doubleMap |
Functions | |
GTSAM_EXPORT GaussianFactorGraph | buildLinearOrientationGraph (const std::vector< size_t > &spanningTreeIds, const std::vector< size_t > &chordsIds, const NonlinearFactorGraph &g, const key2doubleMap &orientationsToRoot, const PredecessorMap< Key > &tree) |
GaussianFactorGraph | buildLinearOrientationGraph (const vector< size_t > &spanningTreeIds, const vector< size_t > &chordsIds, const NonlinearFactorGraph &g, const key2doubleMap &orientationsToRoot, const PredecessorMap< Key > &tree) |
static VectorValues | computeOrientations (const NonlinearFactorGraph &pose2Graph, bool useOdometricPath) |
Values | computePoses (const NonlinearFactorGraph &pose2graph, VectorValues &orientationsLago) |
key2doubleMap | computeThetasToRoot (const key2doubleMap &deltaThetaMap, const PredecessorMap< Key > &tree) |
static double | computeThetaToRoot (const Key nodeKey, const PredecessorMap< Key > &tree, const key2doubleMap &deltaThetaMap, const key2doubleMap &thetaFromRootMap) |
static PredecessorMap< Key > | findOdometricPath (const NonlinearFactorGraph &pose2Graph) |
static void | getDeltaThetaAndNoise (NonlinearFactor::shared_ptr factor, Vector &deltaTheta, noiseModel::Diagonal::shared_ptr &model_deltaTheta) |
GTSAM_EXPORT void | getSymbolicGraph (std::vector< size_t > &spanningTreeIds, std::vector< size_t > &chordsIds, key2doubleMap &deltaThetaMap, const PredecessorMap< Key > &tree, const NonlinearFactorGraph &g) |
void | getSymbolicGraph (vector< size_t > &spanningTreeIds, vector< size_t > &chordsIds, key2doubleMap &deltaThetaMap, const PredecessorMap< Key > &tree, const NonlinearFactorGraph &g) |
Values | initialize (const NonlinearFactorGraph &graph, bool useOdometricPath) |
Values | initialize (const NonlinearFactorGraph &graph, const Values &initialGuess) |
VectorValues | initializeOrientations (const NonlinearFactorGraph &graph, bool useOdometricPath) |
Variables | |
static const Matrix | I = I_1x1 |
static const Matrix | I3 = I_3x3 |
static const noiseModel::Diagonal::shared_ptr | priorOrientationNoise |
static const noiseModel::Diagonal::shared_ptr | priorPose2Noise |
typedef std::map<Key, double> gtsam::lago::key2doubleMap |
GTSAM_EXPORT GaussianFactorGraph gtsam::lago::buildLinearOrientationGraph | ( | const std::vector< size_t > & | spanningTreeIds, |
const std::vector< size_t > & | chordsIds, | ||
const NonlinearFactorGraph & | g, | ||
const key2doubleMap & | orientationsToRoot, | ||
const PredecessorMap< Key > & | tree | ||
) |
GaussianFactorGraph gtsam::lago::buildLinearOrientationGraph | ( | const std::vector< size_t > & | spanningTreeIds, |
const std::vector< size_t > & | chordsIds, | ||
const NonlinearFactorGraph & | g, | ||
const key2doubleMap & | orientationsToRoot, | ||
const PredecessorMap< Key > & | tree | ||
) |
|
static |
Values gtsam::lago::computePoses | ( | const NonlinearFactorGraph & | pose2graph, |
VectorValues & | orientationsLago | ||
) |
GTSAM_EXPORT key2doubleMap gtsam::lago::computeThetasToRoot | ( | const key2doubleMap & | deltaThetaMap, |
const PredecessorMap< Key > & | tree | ||
) |
|
static |
Compute the cumulative orientation (without wrapping) wrt the root of a spanning tree (tree) for a node (nodeKey). The function starts at the nodes and moves towards the root summing up the (directed) rotation measurements. Relative measurements are encoded in "deltaThetaMap". The root is assumed to have orientation zero.
|
static |
|
static |
GTSAM_EXPORT void gtsam::lago::getSymbolicGraph | ( | std::vector< size_t > & | spanningTreeIds, |
std::vector< size_t > & | chordsIds, | ||
key2doubleMap & | deltaThetaMap, | ||
const PredecessorMap< Key > & | tree, | ||
const NonlinearFactorGraph & | g | ||
) |
Given a factor graph "g", and a spanning tree "tree", select the nodes belonging to the tree and to g, and stores the factor slots corresponding to edges in the tree and to chordsIds wrt this tree. Also it computes deltaThetaMap which is a fast way to encode relative orientations along the tree: for a node key2, s.t. tree[key2]=key1, the value deltaThetaMap[key2] is relative orientation theta[key2]-theta[key1]
void gtsam::lago::getSymbolicGraph | ( | std::vector< size_t > & | spanningTreeIds, |
std::vector< size_t > & | chordsIds, | ||
key2doubleMap & | deltaThetaMap, | ||
const PredecessorMap< Key > & | tree, | ||
const NonlinearFactorGraph & | g | ||
) |
Given a factor graph "g", and a spanning tree "tree", select the nodes belonging to the tree and to g, and stores the factor slots corresponding to edges in the tree and to chordsIds wrt this tree. Also it computes deltaThetaMap which is a fast way to encode relative orientations along the tree: for a node key2, s.t. tree[key2]=key1, the value deltaThetaMap[key2] is relative orientation theta[key2]-theta[key1]
GTSAM_EXPORT Values gtsam::lago::initialize | ( | const NonlinearFactorGraph & | graph, |
bool | useOdometricPath = true |
||
) |
GTSAM_EXPORT Values gtsam::lago::initialize | ( | const NonlinearFactorGraph & | graph, |
const Values & | initialGuess | ||
) |
GTSAM_EXPORT VectorValues gtsam::lago::initializeOrientations | ( | const NonlinearFactorGraph & | graph, |
bool | useOdometricPath = true |
||
) |
|
static |
|
static |