基于Autoware制作高精地图(一)

基于Autoware制作高精地图(一)

​开始进入正题,也是最近在忙的一件事,制作高精地图。

高精地图的制作大概分为以下四个流程(不一定完全正确):

1.构建点云地图;

2.点云地图标注;

3.制作OpenDrive地图;

4.地图存储索引。

这篇文章主要讲解如何构建点云地图。

首先我们要有一段自己录制的激光雷达点云数据,这里推荐大家采用Velodyne16线激光雷达,因为这里我们构建的点云底图是三维的,而采用Velodyne而不是速腾聚创(rslidar)等其他品牌的原因是Autoware里面有一个选项是Velodyne。

在这里插入图片描述

不过影响不大,因为github上有大佬写了一个包可以将rslidar采集到的点云数据转为velodyne点云数据,然后我们采用rosbag去播放录制就行了。

Autoware导入激光雷达点云数据包的时候要求点云数据的话题是/points_raw而不是/points_cloud,这里有两种做法,其中一种就是通过Autoware来录制数据,这样录制保存后的数据的Topic就是/points_raw了,无需我们后续处理就可以直接使用了,如果想这么执行的小伙伴上网搜一搜就有教程了;

另一种方法正好是我昨天得到的一丝灵感实现的!它的好处在于即便我们录制的数据包不是纯激光雷达录制的也没关系,我们可以只提取其中激光雷达的数据保存就行了;在Ubuntu系统中录制的点云数据包是以.bag为后缀结尾的,我们要想播放这个包就需要执行

rosbag play xxx.bag

查看包内的话题等参数命令行为

rosbag info xxx.bag

首先先查看点云数据包的话题,如果发现是velodyne录制的/points_cloud话题,则我们运行以下命令行更改数据包话题:

roscore     #终端1
rosparam set use_sim_time true    #终端2
rosbag record /points_raw      #终端2
rosbag play --clock xxx.bag /points_cloud:=/points_raw    #终端3

这里一共需要开启三个终端,其中第一个是启动ROS;

终端2先要对use_sim_time进行设置,也就是使用我们所说的仿真时间,然后使用rosbag record进行录制,注意我们在后面还加上了一个/points_raw话题,那么问题来了,前面说到了我们并没有这个话题,我们的话题是/points_cloud,怎么录制/points_raw这个话题呢,解决方法在终端3中。

终端3是播放点云数据包,–clock是跟我们前面设置的use_sim_time有关联的,感兴趣的小伙伴可以上网搜搜,这里不过多阐述了。但是后面还有语句“/points_cloud:=/points_raw”,这一句的意思是把xxx.bag包中的话题/points_cloud改为话题/points_raw,这样我们在终端2就可以录制到只包含/points_raw话题的数据包了。

进行下一步,放入Autoware中构建点云地图。

这里我们采用Autoware中已经写好的一个简单的TF关系,所以基本不用大家写代码文件,只要动动鼠标即可;

设置TF关系

在Setup菜单中,选Localizer为Velodyne(一般默认就是这个),点击下方Baselink to Localizer的TF按钮(一般后面默认的数值是1.2、0、2、0、0、0);再点击下方的Vehicle Model,Autoware会自动加载一个默认模型(在rviz显示时,如果有激光雷达数据,车辆会显示为黑色);

在这里插入图片描述

设置ndt_mappint

在Compulting菜单中找到lidar_localizer下的Ndt_Mapping选项,点击后面的app进行设置,将Method_Type选为pcl_generic,有的教程推荐选择pcl_anh_gpu,也就是说用GPU,这个我用的时候有的时候能成功,有的时候会报错,显示进程杀死,但是generic一般就没这个问题;

在这里插入图片描述

设置TF转换

在Map中点击TF的ref选择加载文件的路径,如果你安装的是Autoware1.14,应该选择的是,这是加载默认world到map的坐标转换,再点击TF按钮;

autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/tf_local.launch

制作点云地图

点击Simulation页面,点击页面右上方的ref按钮,加载之前录制的bag文件(点云话题要是/points_raw),点击Play按钮播放,然后在右方playing后面有数字显示时点击Pause暂停,再点击右下方的Rviz按钮,启动Rviz,在Rviz中加载配置文件,配置文件路径为:

autoware.ai/src/car_demo/car_demo/rviz/default.rviz

再回到runtime_manager的simulation页面再次点击Pause页面就可以播放了。

界面如下:

在这里插入图片描述

保存点云地图

当点云地图构建完后点击compulting中的Ndt_Mappint后面的app,最下方有一个保存路径,点击右边的ref设置保存路径,将Filter Resolution设置为0.2,点击PCD OUTPUT输出.pcd文件。

如果要查看构建的点云地图,点击runtime maneger的Map菜单,点击Point Cloud右边的ref按钮加载保存的.pcd文件,点击Point Cloud按钮,当下面的进度条右边显示OK的时候则加载结束,然后点击右下角的Rviz启动Rviz模块,通过Add加载/points_map话题即可显示图像(注意加载的路径以及pcd文件一定要是全英文的,否则加载不成功的,亲测!)

如图示:

在这里插入图片描述

另一种查看方式是通过PCL库查看的,在终端输入

pcl_viewer xxx.pcd

显示的图片如下:

在这里插入图片描述

至此,点云地图构建完毕!

  • 10
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
Autoware是一个开源的自动驾驶软件平台,可以用于绘制矢量地图。矢量地图是一种以几何形状和属性信息表示地理空间要素的图形,包括道路、建筑物、环境特征等。为了绘制矢量地图Autoware使用了各种传感器数据和地图信息。 首先,Autoware使用激光雷达、摄像头、GPS等传感器收集环境数据。激光雷达可以测量周围环境的距离和形状,摄像头可以获取图像数据,GPS可以提供位置信息。这些传感器数据可以提供丰富的环境信息,有助于绘制矢量地图。 然后,Autoware使用地图数据来辅助绘制矢量地图地图数据可以包括道路和建筑物等要素的几何形状和属性信息。Autoware可以使用已有的地图数据,也可以通过自动化的方法生成地图数据。 接下来,Autoware利用传感器数据和地图数据进行环境建模。通过将传感器数据与地图数据进行配准和融合,可以将传感器数据上的点云和图像信息匹配到对应的地图要素上。这样就可以得到准确的地图要素位置和形状信息。 最后,Autoware使用绘制后的矢量地图来进行自动驾驶任务。例如,自动驾驶车辆可以使用矢量地图来规划路径、感知障碍物、进行车道保持等。矢量地图的准确性和详细性对于自动驾驶的安全和效果至关重要。 总而言之,Autoware利用传感器数据和地图数据进行环境建模,从而实现矢量地图的绘制。这为自动驾驶提供了准确的地图信息,使系统能够更好地感知环境、规划路径,并做出相应的控制决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值