Autoware 培训笔记 No. 2——点云方针定位

1. 前言

构建出地图后,应该测试点云地图定位效果,这里用到ndt的scan_matching方法,这是一种scan-to-map方法。这里用的是我们自己采集的数据进行仿真。

 

2. 点云定位

注意:在开始点云定位之前,请确保No. 1的全部取消(建议直接关闭所有程序)。

注意:坐标系与建立点云地图不同,如下图所示

Autoware 培训笔记 No. 2——点云方针定位

 

2.1 打开runtime manager

 

2.2 打开地图要定位的数据(在百度网盘中有,这是我们录制的用于定位的数据)

进入 [Simulaton] 页面,点击界面右上方 [Ref] 按钮,加载录制用于定位的 bag 文件。

Autoware 培训笔记 No. 2——点云方针定位

点击 [Play] 然后点击 [Pause]暂停。

注意:请一定要先做这一步,这是因为要同步时间。如果在后面做,会产生关于stamped的错误。

 

2.4 加载地图

选择runtime manager的 [Map] 菜单,点击 [Point Cloud] 按钮的 [ref],加载培训笔记 No. 1产生的.pcd文件(点云地图),并点击 [Point Cloud] 按钮,进度条显示OK,则加载完毕,如下所示:

Autoware 培训笔记 No. 2——点云方针定位

 

2.3 设置从world到map坐标变换及从base_link到velodyne坐标变换

详见培训笔记No. 1的3.5 (1)及3.5 (3)。

 

2.4 设置相关滤波器

选择 [Sensing] 页面,点击 [Points Downsampler] 下 [voxel_grid_filter] 的 app,设置一些参数,[voxel_grid_filter] 是一种将采样方法,将点云数据用质心近似(用于降采用),如下图:

Autoware 培训笔记 No. 2——点云方针定位

 

这里,[Voxel Leaf Size] 参数值为2,意义是2米的立方体内的全部点近似用1个质心代替。[Measurement Range]的参数值为2,意义是点云的有效的距离为200米。

[Points Downsampler] 下的四个滤波器都可以选,但我只看了 [voxel_grid_filter] 滤波器,其他三个暂时没看,后续会陆续补充。

 

2.5 设置从map到base_link的转换(NDT_MATCHING)

找到 [Computing] 左菜单栏下的 [ndt_matching] 选项,打开 [app] ,如下所示:

Autoware 培训笔记 No. 2——点云方针定位 

确保 [topic:/config/ndt] 选项处于 [Initial_Pose] 处,勾选 [Initial Pos],x,y,z,roll,pitch,yaw的值表示激光的初始位置,我们这里用默认的0,0,0,0,0,0。如果有GPU(还是一定有),那么[Method Type]可以选择pcl_anh_gpu用GPU帮助运算。其他参数用默认值。 

我们用的车只有16线激光雷达与摄像头,所以没有勾选Odom与IMU等选项。

如果有GNSS设备可以选择GNSS(后面会讲,先挖个坑)。

  

2.6 运行仿真数据

打开 [Rviz], 在 [file] 菜单中的 [open config] 选择路径:autoware/ros/src/.config/rviz/default.rviz 的文件。这是回到runtime manager,进入 [Simulaton] 页面,点击 [Pause]开始。这时可以从RViz中看到一辆黑色的带有激光雷达数据的汽车停在地图的右下方,如下图所示:

Autoware 培训笔记 No. 2——点云方针定位

如果没有上图的效果,首先应该查看/points_raw topic是否有数据,如果没有可能是由于数据没发出来。如果车子不在上图的位置上,那么点击RViz的工具 [2D Pose Estimate] 重新为车子选择上图的位置和方向。

用于定位的数据在录制的时候前期停了很长时间,所以车子会在rosbag播放到大约14%的时候才能开始运行。运行效果如下图(下图是经过加速的,实际效果比这个慢很多)。

Autoware 培训笔记 No. 2——点云方针定位

 

 

数据仿真到此也就结束了

 

引用:

dowson.live

 

 原创文章,转载请引用。

上一篇:Autoware的安装及使用


下一篇:phpcms学习总结