perception部分注解:fetch_open_auto_dock的主体思路是对2d的laser点进行分割,对分割后的2d点集与理想的点集模型进行匹配,使用ICP进行匹配,所以要给定良好的初始姿态,对于不能给予良好初值的匹配表现的很糟糕。
下面详细记录代码的一些细节,以及一些坑:
1 构造理想点云模型,此处没有坑:
// Front face is 300mm long
for (double y = -0.15; y <= 0.15; y += 0.001)
{
geometry_msgs::Point p;
p.x = p.z = 0.0;
p.y = y;
ideal_cloud_.push_back(p);
front_cloud_.push_back(p);
}
// Each side is 100mm long, at 45 degree angle
for (double x = 0.0; x < 0.05 /*0.0707106*/; x += 0.001)
{
geometry_msgs::Point p;
p.x = x;
p.y = 0.15 + x;
p.z = 0.0;
id