24 #ifndef FACTOR_GRAPH_HPP_ 25 #define FACTOR_GRAPH_HPP_ 30 #include "mrob/factor.hpp" 31 #include "mrob/node.hpp" 74 factor_id_t
add_factor(std::shared_ptr<Factor> &factor);
85 factor_id_t
add_node(std::shared_ptr<Node> &node);
90 std::shared_ptr<Node>&
get_node(factor_id_t key);
95 std::shared_ptr<Factor>&
get_factor(factor_id_t key);
100 void print(
bool complete =
false)
const;
107 factor_id_t number_factors() {
return factors_.size();};
108 uint_t get_dimension_state() {
return stateDim_;};
109 uint_t get_dimension_obs() {
return obsDim_;};
112 void save_graph()
const;
127 std::deque<std::shared_ptr<Node> >
nodes_;
129 std::deque<std::shared_ptr<Node> > active_nodes_;
132 std::deque<std::shared_ptr<Factor> > factors_;
135 std::deque<std::shared_ptr<EigenFactor> > eigen_factors_;
std::shared_ptr< EigenFactor > & get_eigen_factor(factor_id_t key)
Definition: factor_graph.cpp:89
factor_id_t number_nodes()
Definition: factor_graph.hpp:106
factor_id_t add_factor(std::shared_ptr< Factor > &factor)
Definition: factor_graph.cpp:41
uint_t stateDim_
Definition: factor_graph.hpp:141
Definition: factor_graph.hpp:57
std::shared_ptr< Node > & get_node(factor_id_t key)
Definition: factor_graph.cpp:76
std::shared_ptr< Factor > & get_factor(factor_id_t key)
Definition: factor_graph.cpp:82
factor_id_t add_node(std::shared_ptr< Node > &node)
Definition: factor_graph.cpp:57
factor_id_t add_eigen_factor(std::shared_ptr< EigenFactor > &factor)
Definition: factor_graph.cpp:49
Special Euclidean (group) in 3d Is the group representing rotations and translations, that is, rigid body transformations. SE3 = {T = [R t] | R SO3 , t Re^3 } [0 1] Associated to the groups of RBT, there is the Lie algebra se3 representing the same transformation in the tangent space around the identity. Particularly, xi =[w , v] Re^6, where w Re^3 represents the rotation and v the translation. We will preserve this order in this class.
Definition: matrix_base.hpp:36
std::deque< std::shared_ptr< Node > > nodes_
Definition: factor_graph.hpp:127