使用Unity+MapToolBox绘制VectorMap地图

上一次,我们使用ndt-mapping构建了一个PCD点云地图,在开始Autoware的导航之前,单靠点云地图是不够的,我们需要先绘制矢量地图,来约束可行驶的区域、方向等,然后再继续导航环节的验证。

由于我用的autoware版本是1.x,需要使用vector map,本文就带大家一起使用Unity+MapToolBox来绘制它。

注:没有使用TIER IV的原因为它绘制出来的是Lanelet2格式,与1.x的格式不一致,后续有空再尝试它绘制后再转换格式是否可行

 

一、环境准备

1. 准备Win10电脑

首先你必须有一个win10的电脑(不要试图用mac、ubuntu了,因为我都帮你试过了,不行。原因在于MapToolsBoxd的vector map unity插件只兼容了win10,如果导入到其他平台甚至win11的系统里,就会出现各种奇怪的插件报错,创建对象列表里看不到Autoware,插件不能正常工作)。

2. 安装Unity Hub、Personal Licenses、Unity Editor

到unity.com官网下载最新版本的Unity Hub,安装后申请个人免费Licenses(注意,办公电脑或办公环境无法申请,Unity有检测,会导致点击申请时没反应)。

通过unity hub安装unity editor,我这里安装最新版本失败,所以选择了前一个旧版本2021.3.44f1c1。

3. 新建项目,导入插件

3.1 新建3D项目

3.2 安装entities插件

在 unity 菜单栏中点击 Windows—Package Manager,点击 PackageManager 下面的“+”—Add Package from git URL,填入 com.unity.entities 后点击 add 等待加载下载完成。

3.3 安装MapToolBox插件

下载并解压MapToolbox-0.1.1-preview.9.zip,所在目录路径不能有中文或空格。

在 unity 菜单栏中点击 Windows—Package Manager,点击 Package Manager 下面的“+”—Add Package from disk,选择已经解压好的MapToolbox-0.1.1-preview.9文件夹下的package.json 文件,导入时如果弹出接口兼容提示,则选择仅自动修复提示的那个文件。

导入完毕后,检查确保没有任何红色报警。此时在项目左下角Packages下边可以看到多了Autoware Map ToolBox。

此时在项目左上角部分点击添加+创建对象按钮,可以看到对象类型多了Autoware-AutowareADASMap,这样我们的制图环境就准备好了。

 

二、根据PCD绘制矢量图

1. 加载PCD点云地图

把之前建图得到的 pcd 点云地图文件直接拖拽到 unity 左下角 project 中的 Assets文件夹当中,然后再把 pcd 点云文件从 Assets 文件夹中拖拽到左侧位置,我们就可以在中间看到点云地图。(如果pcd无法拖拽到左上角,说明插件没有安装成功,回到上一步检查是否win10系统,以及插件安装是否报错,实在不行可以尝试回退unity editor到我使用的这个版本)

长按鼠标右键可以旋转视角,长按鼠标滑轮可以移动视角,鼠标滑轮可以放大缩小视角。Q 是视角移动,W 是物体移动,E 是旋转。

2. 固定点云视角

画高精地图时最好固定点云视角,避免点云动,高精地图对不上位置。可以在右上方选择“Y”视角,选择“Y”视角正方向,然后锁住即可。

3. 导入 maptoolbox 插件

鼠标右击创建Autoware-AutowareADASMap。选中创建的对象后,右侧会出现一些选项:

  • Add lane:添加行驶线,导航就是以行驶线为导航路线,注意行驶线有方向
  • Add white line:添加白线,不同行驶线之间以白线相隔
  • Add road edge:添加路沿,即道路边缘
  • Add way area:车辆可行驶的区域

4. 绘画路沿

点击左侧“AutowareADASMap”对象,然后再点击右侧“Add Road Edge”添加道路边缘,在图中会出现2个坐标,分别拖动2个坐标即可形成一条路沿线。如下图我先把路线都画了下,避免导航把车规划到草地上。

5. 绘制行驶线

lane 行驶线是小车规划全局路径的依据,如果小车按照所画的行驶线无法到达目标点,那么小车无法进行全局路径规划,小车无法到达目标点位置。

5.1 添加行驶线

点击左侧“AutowareADASMap”对象,然后再点击右侧“Add Lane”添加行驶线。注意行驶线的方向为箭头方向,小车只能沿着箭头方向行驶。

*注:如果你Y锁定视角看不清行驶线的箭头方向,可以先点击又上角的Top按钮解锁Y视角正方向,然后数据滚轮放大,查看后再恢复锁定即可。

5.2 分割行驶线

另外注意画行驶线 lane 时候,需要把所有的行驶线分割成小线段(非行驶线的不用分割)。原因为导航的目的地只能是线段的起终点,无法在线段的中间作为目的地。

选择左侧行驶线下的具体的某条线,点击右侧的“subdivision”按钮:

点击右侧的“normal way”按钮,可以看到左侧的一条线被分割成了很多条短线段:

5.3 绘制转弯路段

在转弯等路线不是直线的路段,可以先画一条直线,然后选中该直线,点击“subdivision”,图中会出现两个坐标点:

拖动两个坐标点即可改变线段形状,拖动到合适位置后,点击右侧的“normal way”切分线段:

保存后,变为转弯线段:

十字路口同理,确保转弯路段与直线线段的链接。

另外绘画跑道等回环型地图时,行驶线最好不要“addbefore”或者“addafter”等方式从头画到尾,可以用“add lane”方式添加新行驶线线段,用新的行驶线线段去衔接。

5.4 保存文件

注意这里需要保存两次才算是保存成功。

点击左侧“AutowareADASMap”,然后点击右侧的“save autoware adasmap from folder”,选中需要保存的文件夹路径进行保存。

然后我们需要点击“load autoware adasmap from folder”选中刚刚保存的文件夹路径,加载高精地图,这时候,我们发现左侧中,软件已经给不同线段命名排序了,此时再次点击“save autoware adasmap to folder”保存才是我们需要的。

如下图:可以看到左侧的路沿和行驶线都被分配了ID,再次导出后的地图文件列表如下

 

三、总结

好了,一个简易的矢量地图就画好了,我们接下来就用它跟点云地图一起,进行导航的测试。

 

yan 24.11.23

 

参考:

Autoware-创建矢量地图

Autoware实车测试记录(一)–前期准备以及使用Autoware Maptool插件进行矢量地图的绘制

TIER IV 的矢量地图生成器工具

Autoware.universe部署02:高精Lanelet2地图的绘制

欢迎关注下方“非著名资深码农“公众号进行交流~

发表评论

邮箱地址不会被公开。