ALOM节点图
1.特征点提取原理
根据曲率来提取两种特征点,分别为角点与面点
2.实现
2.1主函数
功能:初始化ROS节点,订阅激光点云数据,发布处理后的点云数据。代码的主要功能如下:
- 初始化ROS节点,设置节点名称和参数。
- 设置扫描线数量(N_SCANS),最小距离(MINIMUM_RANGE)。
- 打印扫描线数量和最小距离。
- 检查扫描线数量是否支持16、32或64条扫描线,否则输出提示信息并退出程序。
- 订阅激光点云数据(/points_raw),并设置回调函数laserCloudHandler。
- 发布处理后的点云数据(/velodyne_cloud_2),(/laser_cloud_sharp),(/laser_cloud_less_sharp),(/laser_cloud_flat),(/laser_cloud_less_flat),(/laser_remove_points)。
- 如果PUB_EACH_LINE设置为true,则为每个扫描线发布单独的点云数据。
- 运行ROS事件循环。
int main(int argc, char **argv)
{
// 初始化节点
ros::init(argc, argv, "scanRegistration");
// 获取节点句柄
ros::NodeHandle nh;
// 获取参数:扫描线数量
nh.param<int>("scan_line", N_SCANS, 16);
// 获取参数:最小距离
nh.param<double>("minimum_range", MINIMUM_RANGE, 0.1);
// 打印参数:扫描线数量
printf("scan line number %d \n", N_SCANS);
// 判断扫描线数量是否支持
if(N_SCANS != 16 && N_SCANS !=