g2o::Edge_V_V_GICP的定义
时间: 2023-09-17 08:11:21 浏览: 180
g2o::Edge_V_V_GICP是g2o库中的一种图优化边,用于实现基于点云的非线性优化。它表示一个点云中的一个点与另一个点云中的一个最近邻点之间的约束。它的定义如下:
```C++
class Edge_V_V_GICP : public BaseBinaryEdge<3, Vector3, g2o::VertexPointXYZ, g2o::VertexPointXYZ>
{
public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Edge_V_V_GICP();
void computeError() override;
void linearizeOplus() override;
void setMeasurement(const Vector3 &m) override
{
_measurement = m;
}
virtual bool read(std::istream &is) override;
virtual bool write(std::ostream &os) const override;
private:
Vector3 point2Point(const Vector3 &v1, const Vector3 &v2)
{
return v1 - v2;
}
};
```
其中,`BaseBinaryEdge<3, Vector3, g2o::VertexPointXYZ, g2o::VertexPointXYZ>`表示这是一个二元边,误差向量的维度为3,误差向量类型为Vector3,连接的两个顶点类型均为g2o::VertexPointXYZ。`computeError()`和`linearizeOplus()`分别用于计算误差和线性化误差,`setMeasurement()`用于设置观测值,`read()`和`write()`用于文件读写。`point2Point()`函数用于计算两个点之间的距离。
阅读全文