1. 首先启动runtime manager
roslaunch runtime_manager runtime_manager.launch
2. 启动激光雷达
(1)针对velodyne 多线lidar
如果你有velodyne激光可以启动默认配置:[Sensing] 页面下 [Lidars] 选项下针对你的velodyne选择,velodyne激光对应的发布的点云topic:/velodyne_packets,frame_id:velodyne,topic会被重映射成为/points_raw。
2.1 录制点云数据
点击runtime manager右下角 [ROSBAG] 按钮,在弹出的对话框中点击下方点击 [Refresh] 按钮刷新话题列表,找到/points_raw 并勾选。
点击 [Start] 按钮,等数据录完,点击 [Stop],此时数据会保存在autoware/ros目录下。此时,数据录制完毕。
2.2 回放点云数据
点击进入 [Simulaton] 页面,点击界面右下方的 Rviz 按钮,启动 Rviz 可视化窗口。在 Rviz 界面中左菜单栏中找到 Fixed Frame, 在该栏目中修改 world 为 velodyne。点击左下角 [Add] 按钮,加载 By Topic 下 /points_raw 话题的 PointCloud2 选项。
点击 runtime manager 下的 [Simulation] 菜单的 [Pause] 按钮,此时在 Rviz 中可以看到之前记录的数据被显示出来。如下所示。
2.3 建图
这里,需要先讲一下autoware的建图用坐标系之间的关系,基本坐标系有四类:分别为世界坐标系:world;地图坐标系:map;车的坐标系base_link;传感器坐标系:velodyne。他们之间的转换关系,如下:
从world到map的坐标系转换与从base_link到velodyne的坐标系转换是固定的,用ROS的TF即可。从map到base_link的映射就需要scan-to-map的算法,autoware在建图采用的是ndt matching。
(1)设置从base_link到velodyne坐标系的TF。
在 [Setup] 菜单中,确保 [Localizer] 下选项为 [Velodyne],在 [Baselink to Localizer] 中设置好各个参数之后点击 TF 按钮,其中x、y、z、yaw、pitch、roll表示真车雷达中心点与车身后轴中心点的相对位置关系(右手坐标系,真车后车轴为原点),此时可以点击[Vehicle Model],如果[Vehicle Model]为空,那么会加载一个默认模型(在rviz显示时,如果有激光雷达数据,车辆会显示为黑色)。如下所示。
(2)设置map到base_link转换
在 [Compulting] 菜单栏中找到 [lidar_localizer]下的 [Ndt_Mapping] 选项,设置 [app],并勾选。Ndt_Mapping会有一些设置需要注意一下,如下图:
参数用默认,如果有GPU(一定有,因为没有CUDA不能安装autoware),可以选择 [pcl_anh_gpu]。
(3)设置从world到map转换
点击 [Map] 页面,点击 [TF] 的 [ref] 选择 autoware/ros/src/.config/tf/tf_local.launch 文件,这是加载默认world到map的坐标转换,打开tf_local.launch文件如下:
<launch> <node pkg="tf" type="static_transform_publisher" name="world_to_map" args="0 0 0 0 0 0 /world /map 10" /> </launch>
args的参数“0 0 0 0 0 0 /world /map 10”表示:从/world坐标系转换到/map坐标系的x, y, z, roll, pitch, yaw转换,且频率为10Hz。
点击 [TF] 按钮,如下图:
(4)制作点云地图
和回放点云数据一样,点击进入 [Simulaton] 页面,点击界面右上方 [Ref] 按钮,加载之前录制的 bag 文件,点击 [Play] 按钮播放数据,然后再点击 [Pause] 暂停播放。点击runtime manager右下方的 [Rviz] 按钮,启动 Rviz 可视化窗口。加载Rviz的配置文件,路径为:autoware/ros/src/.config/rviz/ndt_mapping.rviz。加载后rviz的配置文件后,回到runtime manager的 [Simulaton] 页面,再次点击 [Pause] 开始播放,这是可以看到Rviz 可视化窗口显。
运行停止,表示地图生成完毕。
(5)保存点云地图
打开 [Compulting] 下的 [Ndt_Mapping] 选项的 [app],如下所示:
点击 [ref] 选择保存地图的路径,将 [Filter Resolution] 参数设置为0.2,点击 [PCD OUTPUT]按钮,开始保存pcd文件。此时,可以在保存的路径里看到一个.pcd文件,该文件就是地图文件。
(6)查看地图文件
选择runtime manager的 [Map] 菜单,点击 [Point Cloud] 按钮的 [ref],加载刚才保存.pcd文件,并点击 [Point Cloud] 按钮,进度条显示OK,则加载完毕,如下所示:
点击runtime manager 右下角的 [RViz] ,在RViz显示界面点击左下角的 [Add] 按钮,通过 [By Topic] 找到/points_map 并打开,在rviz中显示如下:
到此为止,点云地图制作完毕。