下文章来源于车路漫漫 ,作者李慢慢

大家好,我是李慢慢。

总是有朋友私下问我Carla中加载OpenDrive地图的问题。其实这个问题,以前写过文章的,只不过藏的比较深(链接在这里),怪我。这里把它搬出来,然后简单做点扩展,也方便搜索。

正文如下。

一、OpenDrive地图制作

OpenDrive是自动驾驶仿真领域公用的道路地图格式,我在之前的文章中有介绍到如何使用开源软件truevision或者开源python库scenariogeneration来创建OpenDrive格式的地图。诸君可以戳开看看:

1、介绍一款开源的OpenDrive地图制作软件-truevision

2、如何用python库scenariogeneration来创建静态地图+动态场景进行自动驾驶仿真

上面推荐的两个开源途径,完全免费,没有灵石的道友可以试试看,亲测可用。

然后,Carla软件也可以使用RoadRunner软件绘制出来的OpenDrive地图,这也是目前行业内比较主流的做法。

当我们有了OpenDrive地图时,就可以使用Carla来进行加载并使用了。

二、官方API

加载代码的API是“generate_opendrive_world()”,官方说明如下:

三、代码示例

下面这个xodr文件是安装truevison时自带的,这里你可以换成你自己的xodr文件:

四、效果展示

运行后可以从Carla的server端窗口看到更换后的世界地图,效果如下:

接下来可以试着往道路中添加一辆车了,控制其为自动驾驶模式,就能看到如下的效果了。一辆自动驾驶绕八字的特斯拉。

最后,简单记录下加载xodr地图后创建车辆时,遇到过的报错。

五、报错简记

报错1:

我用RoadRunner创建了一条直路,然后加载这个xodr生成了新的world,并从world中获取所有的spawn_point时一个点都没有获取到(world.get_map().get_spawn_points()),导致无法选取点作为车辆的生成点。

这个可能是因为xodr的直路实在是太简单了,没有道路节点,路口啥的,导致xodr在加载后无法正常生成一系列spawn_point,这个时候,要么把xodr地图画的复杂些,要么直接用carla.Transform类来直接指定生成点。

报错2:

“RuntimeError: Spawn failed because of collision at spawn position”。

路上明明没有车,为什么生成车辆时报碰撞发生的错误呢?搞了很久才明白,Carla里车辆无法直接生成在路面,而是从空中某个高度“掉”下来的。。。所以指定生成点的时候,最好给个高度。如下:

spawn_point = carla.Transform(carla.Location(x=0,y=0,z=3.0), carla.Rotation(pitch=0,yaw=0,roll=0))

报错3:

不知道细心的朋友发现没有,加载出来的xodr地图,没有车道线信息。我一开始以为是我某个参数没有设置正确,后来四方咨询听说Carla加载的xodr地图本身就会不显示车道线信息。这个只能期待官方去解决了。

本文完。

深信科创:致力于自动驾驶工业软件

深信科创致力于为自动驾驶系统研发提供高效的训练及测试验证解决方案。公司由清华交叉信息核心技术研究院孵化,由知名学者杨子江教授创办并出任 CEO,原Uber高级科学家潘余曦博士出任 CTO。

深信科创基于仿真、深度学习、大数据等核心技术自主研发了SYNKROTRON®  OASIS产品系列,为自动驾驶仿真提供高精度传感器模型、动力学模型、感知级环境仿真、SOTIF场景生成、场景重建工具及解决方案,加速自动驾驶技术在场景端的安全落地。

深信科创是国际知名开源自动驾驶仿真器CARLA中国唯一理事单位及重要贡献者,同时协助CARLA社区运营及开发者培训。深信科创已与长安汽车、吉利汽车、陕汽集团、潍柴智能、国汽智联、惠尔智能、同济大学、山东大学等知名企业和高校开展了合作。

GitHub 加速计划 / ca / carla
10.95 K
3.53 K
下载
Open-source simulator for autonomous driving research.
最近提交(Master分支:1 个月前 )
b23c01ae - 2 个月前
cead6d1b 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐