|
GCOP
1.0
|
#include <body2dgraph.h>

Public Member Functions | |
| Body2dGraph (Body2d<> &sys, int N, int nf, bool odometry=true, bool extforce=false, bool forces=false) | |
| void | Optp (VectorXd &p, const vector< Body2dState > &xs) |
Static Public Member Functions | |
| static void | Synthesize (Body2dGraph &pgt, Body2dGraph &pgn, double tf) |
| static void | Synthesize2 (Body2dGraph &pgt, Body2dGraph &pgn, double tf) |
| static void | Synthesize3 (Body2dGraph &pgt, Body2dGraph &pgn, double tf) |
Public Attributes | |
| Body2d & | sys |
| system | |
| bool | odometry |
| is there odometry available (this means that the velocity part of the state will be regarded as available measurements) | |
| bool | extforce |
| is there a constant external force that need to be estimated | |
| bool | forces |
| optimize over forces | |
| Vector3d | fext |
| unknown external force | |
| vector< double > | ts |
| sequence of times (N+1 vector) | |
| vector< Body2dState > | xs |
| sequence of states x=(g,v) (N+1 vector) | |
| vector< Vector3d > | us |
| sequence of inputs (N vector) | |
| VectorXd | p |
| feature positions (2*nf vector) and external force parameters (2 vector) | |
| vector< vector< pair< int, Vector2d > > > | Is |
| N+1-vector of vectors of visible pose-to-feature indices. | |
| vector< vector< pair< int, Vector2d > > > | Js |
| nf-vector of vectors of feature-to-pose indices indices | |
| vector< Vector3d > | vs |
| odometry/gyro velocity measurements | |
| double | cp |
| noise covariance of poses (assume spherical) | |
| Vector3d | cv |
| noise covariance of odometry/gyro (assume diagonal) | |
| Vector3d | cw |
| noise covariance of control forces (assume diagonal) | |
Pose-graph in 2D. This is the simplese possible definition assuming point (unprojected) features e.g. from stereo/laser scans with uniform spherical covariance. The framework can be easily extended to any general 2d/3d non-uniform or projected features as well.
| Body2dGraph::Body2dGraph | ( | Body2d<> & | sys, |
| int | N, | ||
| int | nf, | ||
| bool | odometry = true, |
||
| bool | extforce = false, |
||
| bool | forces = false |
||
| ) |
Pose-landmark graph
| sys | body2d system |
| N | number of trajectory segments |
| nf | number of features (landmarks) |
| odometry | is odometry available |
| extforce | treat constant external force in x-y as a parameter |
| forces | use uncertain forces in the cost function |
| void Body2dGraph::Optp | ( | VectorXd & | p, |
| const vector< Body2dState > & | xs | ||
| ) |
Given a sequence of poses gs, compute the optimal feature locations p
| p | a vector of feature locations |
| gs | a given vector of poses in SE(2) |
Referenced by Synthesize(), Synthesize2(), and Synthesize3().
| void Body2dGraph::Synthesize | ( | Body2dGraph & | pgt, |
| Body2dGraph & | pgn, | ||
| double | tf | ||
| ) | [static] |
Create true and noisy synthetic pose graphs
| pgt | true pose graph |
| pgn | noisy pose graph |
| tf | total trajectory time |
References gcop::SE2::cay(), cp, gcop::SE2::Instance(), Is, Js, Optp(), p, gcop::random_normal(), ts, us, and xs.
| void Body2dGraph::Synthesize2 | ( | Body2dGraph & | pgt, |
| Body2dGraph & | pgn, | ||
| double | tf | ||
| ) | [static] |
Create true and noisy synthetic pose graphs
| pgt | true pose graph |
| pgn | noisy pose graph |
| tf | total trajectory time |
References gcop::SE2::cay(), cp, extforce, gcop::Body2d< c >::force, gcop::SE2::Instance(), Is, Js, Optp(), p, gcop::random_normal(), sys, ts, us, vs, and xs.
| void Body2dGraph::Synthesize3 | ( | Body2dGraph & | pgt, |
| Body2dGraph & | pgn, | ||
| double | tf | ||
| ) | [static] |
Create true and noisy synthetic pose graphs
| pgt | true pose graph |
| pgn | noisy pose graph |
| tf | total trajectory time |
References gcop::SE2::cay(), cp, cv, cw, extforce, fext, gcop::Body2d< c >::force, gcop::Body2d< c >::I, gcop::SE2::Instance(), Is, Js, Optp(), p, gcop::random_normal(), gcop::Body2d< c >::Step(), sys, ts, us, vs, and xs.
| double gcop::Body2dGraph::cp |
noise covariance of poses (assume spherical)
Referenced by gcop::Body2dSlamCost::Lp(), Synthesize(), Synthesize2(), and Synthesize3().
| Vector3d gcop::Body2dGraph::cv |
noise covariance of odometry/gyro (assume diagonal)
Referenced by gcop::Body2dSlamCost::Lp(), and Synthesize3().
| Vector3d gcop::Body2dGraph::cw |
noise covariance of control forces (assume diagonal)
Referenced by gcop::Body2dSlamCost::Lp(), and Synthesize3().
is there a constant external force that need to be estimated
Referenced by gcop::Body2dSlam::Body2dSlam(), gcop::Body2dSlamCost::Lp(), Optp(), gcop::Body2dGraphView::RenderFrame(), Synthesize2(), and Synthesize3().
| Vector3d gcop::Body2dGraph::fext |
unknown external force
Referenced by Synthesize3().
optimize over forces
Referenced by gcop::Body2dSlamCost::Lp().
| vector< vector<pair<int, Vector2d> > > gcop::Body2dGraph::Is |
N+1-vector of vectors of visible pose-to-feature indices.
Referenced by gcop::Body2dSlamCost::Lp(), Synthesize(), Synthesize2(), and Synthesize3().
| vector< vector<pair<int, Vector2d> > > gcop::Body2dGraph::Js |
nf-vector of vectors of feature-to-pose indices indices
Referenced by Optp(), gcop::Body2dGraphView::RenderFrame(), Synthesize(), Synthesize2(), and Synthesize3().
is there odometry available (this means that the velocity part of the state will be regarded as available measurements)
Referenced by gcop::Body2dSlamCost::Lp().
| VectorXd gcop::Body2dGraph::p |
feature positions (2*nf vector) and external force parameters (2 vector)
Referenced by gcop::Body2dSlam::Body2dSlam(), gcop::Body2dGraphView::RenderFrame(), Synthesize(), Synthesize2(), and Synthesize3().
system
Referenced by gcop::Body2dSlam::Body2dSlam(), Synthesize2(), and Synthesize3().
| vector<double> gcop::Body2dGraph::ts |
sequence of times (N+1 vector)
Referenced by gcop::Body2dSlam::Body2dSlam(), Synthesize(), Synthesize2(), and Synthesize3().
| vector<Vector3d> gcop::Body2dGraph::us |
sequence of inputs (N vector)
Referenced by gcop::Body2dSlam::Body2dSlam(), gcop::Body2dSlamCost::Lp(), gcop::Body2dGraphView::RenderFrame(), Synthesize(), Synthesize2(), and Synthesize3().
| vector<Vector3d> gcop::Body2dGraph::vs |
odometry/gyro velocity measurements
Referenced by gcop::Body2dSlamCost::Lp(), Synthesize2(), and Synthesize3().
| vector<Body2dState> gcop::Body2dGraph::xs |
sequence of states x=(g,v) (N+1 vector)
Referenced by gcop::Body2dSlam::Body2dSlam(), gcop::Body2dGraphView::RenderFrame(), Synthesize(), Synthesize2(), and Synthesize3().
1.7.6.1