VTD 结合 Carla 自定义地图进行仿真测试
   
    最近实验室的项目要进行实际场景下的自动驾驶仿真测试,就是把实际的自动驾驶测试场进行建模放进仿真器里面进行仿真。主要工作分为两个部分:进行场景建模和路网搭建。仿真器用的是
    
     Carla
    
    ,场景使用点云建模,
    
     .oxdr
    
    路网文件使用
    
     VTD
    
    的
    
     ROD
    
    创建,然后把
    
     场景模型
    
    和
    
     oxdr
    
    路网一起导入到Carla。期间也走了一些弯路,此贴记录一下期间的工作和经验。
   
    
    
    场景建模
   
    场景建模我们采用点云的方式创建,先使用相机进行场景采集,再利用一些三维建模软件进行三维点云重建。
    
     unreal engine 4.26
    
    出了
    
     点云插件(LiDAR Cloud Support)
    
    ,可以将点云模型直接导入到ue4,不过实测可视化效果不好,还是需要用建模软件优化点云。
   
    
    
    opendrive路网创建
   
    我们是按照实际道路1:1画的路网,这样可以避免导入Carla时再进行缩放操作。ROD绘图界面支持放背景图片,可以放一张实际道路俯视图,然后对照着画。
    
    网上关于VTD软件使用的相关资料甚少,刚开始画很艰难(主要是也不好用),使用的时候要注意随时保存,这软件经常卡闪退,否则一条路得画好几遍。。ROD的画图功能界面很简洁,就一个line/spline和生成圆弧操作,所有的线都只能这么画,让一个用习惯CAD的人看的一脸懵X。这里面踩了几个坑:
    
    1、如果利用spline拟合弯道在路口一定要连接上直线,否则是不能在junction下创建path的,junction要求track必须要有line跟junction连接;
    
    2、要注意lane的属性,reference line 也要使用driving属性;
    
    3、遇到不会画的路口 岔路啥的,可以右键add till,里面有内置的一些路网, 看它们的格式是什么样的;或者利用生成宏的方式快速生成道路,再查看track的详细设置;
    
    4、Carla应该是对opendrive版本有要求的,最好export为1.4版本。
   
    
    
    导入到Carla
   
    Carla 手册上面写的还算简洁,一共有3种方法,第一种是make import,第二种是使用roadrunner插件,第三种是手动导入。
    
    Carla要求的map格式为
    
     FBX
    
    ,fbx文件要和oxdr文件以及Carla的map文件名称一致。Carla里的map可以复制一个basemap也可以复制townmap然后把不需要的场景删除。
    
    我是使用第三种方式导入的,刚开始使用第一种方式,make import 总是报各种错,然后自动打开
    
     import.py
    
    文件,就进行不下去了。后面使用第三种手动导入成功进行。如果只是想可视化路网,可以把xodr文件放置在
    
     pythonAPI
    
    文件夹下面,打开Carla,然后执行
    
     config.py -x filename.xodr
    
    ,这样Carla就会生成路网,其中道路两侧会自动生成挡板,是为了防止vehicle在路上掉下去,可视化效果如下。
   
    
    
    如果要是和场景配合,就要把可以将文件放置在maps\opendrive文件夹下面,然后导入一个opendrive actor,选中opendrive actor 在下面菜单栏选 generate ,actor就会到opendrive文件夹下面找到与地图名称相同的.oxdr文件,把路网导入进来,导进来的路网是一串连续的点。
    
     
   
 
