Carla核心概念的理解

Carla核心概念的理解,第1张

carla 为自动驾驶仿真平台,有服务器端和客户端两侧。仿真模拟是运行在服务器侧,而收取仿真中数据、修改仿真中事物状态的操作则是在客户端进行,客户端将操作指令通过IP地址和端口传送到服务器侧,实现修改。

这其实与前段和后端的做法及其类似。后端数据全部存储在远程的服务器中,在前端发出读取、修改后端数据的指令,指令通过 rpc 等措施传输到远程后端,实现对服务器中数据的修改。

在官方中是这样介绍World的, The world is an object representing the simulation. ,即为展示仿真的一个对象。

Carla是进行自动驾驶仿真模拟的平台。在自动驾驶的仿真中,需要构建一块区域,如乡村、城市等,来完成自动驾驶的仿真模拟。而构建的这个区域就是 world ,就像是一个独立的世界,在这个世界内完成仿真模拟的所有工作。在这个世界中存在多个事物,如车、行人、交通灯等,而这些事物又分别有自己的状态、信息等。

同时,这个 world 也可以理解为一个抽象层,在这个抽象层中提供了一系列方法,可用于获取该 world 的当前状态、改变这个 world 的天气、孵化产生相关的 actor 等。

client ,意为客户端,客户端是用户运行的一个模块,一个 client 可以凭借一个终端,通过一个IP地址和指定端口与服务器交互。

在 carla 中,在服务器上运行仿真,就是进行 world 侧程序的运行。与服务器交互就是指与 client 与 world 做出交互,即仿真运行在服务器上,表现为一个独立的区域,即为 world 。在这个 world 中有许多个事物,比如车、行人、交通灯等;而 client 为一个模块,用户可以通过 client 与 world 进行交互,从而达到改变 world 及 world 中某些事物的状态、获取相关信息等任务。

在一个仿真中,有且只能有一个 world ,就像世界,只有一个;而可以同时运行多个 client ,多个 client 分别与这个world进行交互。

一个 actor 可以指在仿真世界中的任何事物,如车、行人、传感器、交通灯等。

blueprint 是指已经布置好的用来产生 actor 的设计。一般来说,一个model都包含生命力和一系列的属性,一些属性可以实现用户定制化,而其他一些属性则不能。已经构建了 Blueprint library ,在这库中包含了所有可用的 blueprint 和信息。

地图是仿真中 world 的面貌,大部分为城镇。在 carla 自带的模块中共有八个地图。

道路、小巷和道路交叉口等都可以通过 client 来调用 Python API 来进行管理,也通过类 waypoint 来为车辆添加路径导航。

交通标志和交通灯则作为 carla.Landmark 的对象来进行修改。

传感器用来收集仿真世界的数据资料,传感器需要公式来清楚的定义如何去从管理数据。

直接使用Carla模拟环境打开之后就是下面这样的一副画面,其实如果只是想试用一下Carla的话,直接点击左边的Quick started然后下载最新版本的已编译的文件就好了。大概1g多吧,建议网速好的时候下。下载后直接照着第二个的Running the simulator去执行就好,正常都可以跑起来。友情提示:退出是ALT+F4(来自一开始按Esc按到要哭的我),后退则是先按Q再按W按键相关在这个链接:Carla键盘输入二、想修改Carla的地图再编译运行这个问题其实也困扰了我很久,但其实在how to build Calra on Linux中其实已经讲了很多,只是一开始没搞太懂。大家照着指令一路做下来,只要仔细阅读了说明就没问题。值得注意的是第二步那个Build Unreal Engine,由于这个仓库是私有的,你必须把你的github账号和www.unrealengine.com.这个网址上的账号关联起来才能去下载东西。关联了之后会发邮件给你,确认邮箱之后再敲对应的指令输入自己的账号密码之后就可以下载我们需要的UnrealEngine这个引擎了。后面的setup到make那三条指令耗时相对比较长,可以走开做点别的事。一直执行到UE4_ROOT=~/UnrealEngine_4.18 ./Rebuild.sh这一步的时候我们就可以看到整个模拟环境了,而且可以进行修改。到这一步基本整个准备工作基本就做完了,接下来我们可以随时通过引擎去修改地图而不需要花很多时间,只要通过cd Unreal/CarlaUE4~/UnrealEngine_4.18/Engine/Binaries/Linux/UE4Editor “$PWD/CarlaUE4.uproject”在Carla文件夹的位置执行这两条指令就可以了。但是更改完之后要怎么生成相应的新的工程内,这个问题也是困扰了我很久。因为下载下来的编译好的工程中是有个CarlaUE4.sh可以直接运行,但是我们整个操作下来,并没有生成这样的文件。最终我在Q&A 找到了答案,可以看到其中的How can I create a binary version of CARLA?这个问题,这里面就给了两个方法。1、在打开编辑器的情况下,打包项目。2、直接运行package.sh来打包。经过亲身实验。。。第一种方法一觉睡醒还没好。第二种方法只用了十几分钟。打包后在终端上会告诉你生成的可运行文件在哪里,你对应地去打开来直接运行就好。我的是放在一个Dist的文件夹中。这样子你就可以根据自己需要修改地图后再生成对应的新的项目来运行。友情提示:Building Carla里面Setup.sh那一步可能要翻墙,而且里面会下载一个11.15g的压缩包。只能说大家看自己怎么弄下。我记得我4月第一次下载的时候还可以不翻而且很快。不知道为什么六月的时候重新下载就不行了。三、如何修改控制行人或者其他车辆这是个好问题,也是Carla在github上的维护团队正在做的事情,貌似从今年1月到现在,一直不断有类似的问题提出,但是一直没有很好的解决方案。团队貌似后来也烦了,宣布正在进行大版本更新,我也很期待能不能出来一个更方便控制相应模块,然后可以搭建自己所需要的场景的版本。

正当。

CARLA 是一个用于自动驾驶研究的开源模拟器。CARLA 从头开始开发,以支持自动驾驶系统的开发、培训和验证。除了开源代码和协议外,CARLA 还提供开放的数字资产(城市布局、建筑、车辆),这些资产是为此目的而创建的,可以自由使用。仿真平台支持对传感器套件和环境条件的灵活规范。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/491670.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-14
下一篇2023-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存