Create 2-D pose graph

A `poseGraph`

object stores information for a 2-D pose graph
representation. A pose graph contains `nodes`

connected by `edges`

, with
edge constraints that define the relative pose between nodes and the uncertainty on that
measurement. The `optimizePoseGraph`

function modifies the nodes to account for the
uncertainty and improve the overall graph.

For 3-D pose graphs, see `poseGraph`

.

To construct a pose graph iteratively, use `addRelativePose`

to add a node and connect it to an existing node with
specified edge constraints. Specify the uncertainty of the measurement using an
information matrix. Adding an edge between two existing nodes creates a loop closure in
the graph.

`lidarSLAM`

(lidar-based simultaneous localization and mapping) is built around the optimization of
a 2-D pose graph.

`poseGraph = poseGraph`

creates a 2-D pose graph object.
Add poses using `addRelativePose`

to construct a pose graph
iteratively.

`poseGraph = poseGraph('MaxNumEdges',maxEdges,'MaxNumNodes',maxNodes)`

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.

`addRelativePose` | Add relative pose to pose graph |

`edges` | Edges in pose graph |

`edgeConstraints` | Edge constraints in pose graph |

`findEdgeID` | Find edge ID of edge |

`nodes` | Poses of nodes in pose graph |

`optimizePoseGraph` | Optimize nodes in pose graph |

`removeEdges` | Remove loop closure edges from graph |

`show` | Plot pose graph |

[1] Grisetti, G., R. Kummerle, C. Stachniss, and W. Burgard. "A Tutorial on
Graph-Based SLAM." *IEEE Intelligent Transportation Systems
Magazine*. Vol. 2, No. 4, 2010, pp. 31–43.
doi:10.1109/mits.2010.939925.