Edge constraints in pose graph
relPoses = edgeConstraints(poseGraph)
[relPoses,infoMatrices] = edgeConstraints(poseGraph)
[relPoses,infoMatrices] = edgeConstraints(poseGraph,edgeIDs)
relPoses— Relative poses measured between nodes
Relative poses measured between nodes, returned as an n-by-3 matrix or n-by-7 matrix.
PoseGraph (2-D), each row is an
[x y theta]
vector, which defines the relative xy-position and
theta, of a pose in the graph.
PoseGraph3D, each row is an
[x y z qw qx qy
qz] vector, which defines the relative
xyz-position and quaternion orientation,
qy qz], of a pose in the graph.
Many other sources for 3-D pose graphs, including
.g2o formats, specify the quaternion orientation
in a different order, for example,
[qx qy qz qw].
Check the source of your pose graph data before adding nodes to your
infoMatrices— Information matrices
Information matrices, specified in compact form as a n-by-6 or n-by-21 matrix, where n is the number of poses in the pose graph.
Each row is a vector that contains the elements of the upper triangle of
the square information matrix. The information matrix is the inverse of the
covariance of the pose and represents the uncertainty of the measurement. If
the pose vector is
[x y theta], the covariance is a
3-by-3 matrix of pairwise covariance calculations. Typically, the
uncertainty is determined by the sensor model.
PoseGraph (2-D), each information matrix is a six-element
vector. The default is
[1 0 0 1 0 1].
PoseGraph3D, each information matrix is a 21-element vector.
The default is
[1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0
Use this syntax when constructing
PoseGraph3D objects for code generation:
specifies an upper bound on the number of edges and nodes allowed in the pose graph
when generating code. This limit is only required when generating code.