UE4中使用自动驾驶模拟

您所在的位置:网站首页 无人驾驶怎么用 UE4中使用自动驾驶模拟

UE4中使用自动驾驶模拟

2024-07-17 16:27:20| 来源: 网络整理| 查看: 265

UE4中使用自动驾驶模拟——Carla 1.简述2.简单配置使用3.编译的步骤&坑4.深入理解Tips

1.简述

在之前的文章里,使用了Airsim来仿真模拟无人机飞行,UE4中使用飞控仿真插件——AirSim ,Airsim本身也是支持自动驾驶模拟的,使用方法无太大不同,为了学习探索这两者的区别,在这里记录一下carla的使用。 Carla主要通过Server-Client方式使车辆与虚拟世界进行交互,这样就可以在本机运行,也可以部署多个客户端同时运行。Client API采用Python编写,Client向Server发送command和meta-command,command为控制车辆的转向、加速和刹车,meta-command,针对的是Server的行为,主要有重启模拟器、改变环境特征、修改传感器组等。 CARLA包含三个模块的自动驾驶:① 经典的规则化无人驾驶 ② 端对端模仿学习无人驾驶 ③端对端强化学习无人驾驶, CARLA支持感知和控制两个模块,包含城市堵路(有汽车,建筑物,行人和道路指示标志) CARLA提供世界和智能体的接口,客户端API是python命令控制,以类似插槽(socket)的方式连接智能体和服务器。客户端client发送命令和下层指令,直接命令包括转向,加速和刹车,下层命令包括控制服务器的行为和重置仿真器,改变仿真环境和修改传感器参数。CARLA可以调整视觉信息质量和速度。CARLA有两个城镇,TOWN1用来训练,TOWN2用来测试。CARLA包含许多传感器,有RGB摄像头,提供深度信息的摄像头(该深度信息和语义分割,CARLA已经做好了,语义分割有12个种类:道路,道路线,交通灯,行人等等)GPS定位传感器,速度加速度传感器和碰撞传感器等等。 官方文档 Github地址

2.简单配置使用

下载和安装参考官方即可,把github上的clone到本地。

这里以windows为例,运行\CarlaUE4.exe,再在cmd执行命令行程序CARLA\PythonAPI\examples\ >python spawn_npc.py -n 80,执行后可以看见车辆行人加载到地形之中。 在这里插入图片描述 值得注意的是,想要完整的使用carla的功能,还需要下载安装python的其他完整模块,这里整理了完整的安装步骤,参考以下: pygame module 使用pip包管理工具更加方便,可以参考 numpy matplotlib scipy 还可以一次获得所有依赖项

pip install -r PythonClient/requirements.txt

进入CARLA\PythonAPI\examples\ 可以尝试使用示例运行控制。 截至目前为止,可以实现可执行程序ue的运行,python的所有示例功能控制,如果只需要改pythonAPI进行开发,那么到这里已经足够。但是想自己更换场景/模型/算法等,肯定要从源码从头编译了,想要深入肯定少不了自己编译一遍。

3.编译的步骤&坑

由于carla是C/S架构的,它分别支持并提供了Linux构建,Windows构建. 这里以windows为例(推荐ubantu),去官网安装好cmake,git,make等所需软件,发现按照官网操作还是一堆坑,要么编译缺CarlaDependencies模块要么不识别cmake,而且,翻遍了国内外的论坛文章等,这里记录一下减少大家的弯路:

首先要确保版本对上,我这里使用vs2017(把其他版本vs卸载干净),python3.7,carla0.9.10,UE4.24,Cmake3.9以上,并配好环境变量,自己测试确保能用

彻底删除vs:Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\layout运行.\InstallCleanup.exe -full。

打开VS x64命令行工具 到根目录carla-master输入make setup (如果从网上下载过build文件夹,可以跳过此步)

克隆最新资产库:git clone https://bitbucket.org/carla-simulator/carla-content Unreal/CarlaUE4/Content/Carla覆盖原content即可

到工程根目录,按顺序 make LibCarla ,make PythonAPI 编译库文件-在这里插入图片描述

右键点击CarlaUE4.uproject 菜单选项生成sln,用VS2017进行编译源码,如果遇到报错,找到Version.h.in这个文件,拷贝到Unreal\CarlaUE4\Plugins\Carla\CarlaDependencies\include\carla 下面,改名Version.h

CommandDescription make help Prints all available commands.make launchLaunches CARLA server in Editor window.make PythonAPIBuilds the CARLA client.make packageBuilds CARLA and creates a packaged version for distribution.make cleanDeletes all the binaries and temporals generated by the build system.make rebuildmake clean and make launch both in one command. 编译成功最后会启动UE4,大功告成: 在这里插入图片描述 4.深入理解

简单记录一些架构 对于UE4而言,carla中的actor包括了:

汽车。路人。传感器。观察者。交通标志和交通灯。

传感器包括了:

相机(RGB,深度和语义分割)。碰撞检测器。Gnss传感器。IMU传感器。激光雷达雷射。车道入侵检测器。障碍物检测器。雷达。RSS。

道路,车道和路口由Python API管理,可从客户端访问。它们与航路点类一起使用,为车辆提供导航路径。 交通标志和交通灯可作为carla.Landmark对象使用,其中包含有关其OpenDRIVE定义的信息。此外,在运行时,模拟器会使用OpenDRIVE文件上的信息自动生成停止,屈服和交通信号灯对象。这些在道路上放置了边界框。一旦进入边界框,车辆就会意识到它们。

所以,由此而知运行架构如下图,传感器运行在UE4内部,并将数据一直发送到Python客户端,。在这里插入图片描述 传感器actor 负责测量和/或模拟数据的actor:使用UE4框架在Carla插件中运行。用户可以作为Sensor actor访问。

串行器 对象包含用于对传感器生成的数据进行序列化和反序列化的方法。在LibCarla中运行,服务器和客户端均如此。

传感器数据 代表传感器生成的数据的对象。这是将在C ++和Python API中传递给最终用户的对象。

知道了架构,可以更清晰的阅读源码和各个模块的功能联系。 ————————————————————————————————— 思考一下如何更换验证算法?我们以汽车动力学算法模型为例: 阅读源码,内部的汽车动力学模型都是UE内集成的,可以通过代码找到,PxVehicleWheels.cpp这个文件,是NVIDIA提供给UE内部汽车使用的。并在UE里暴露一些变量,Carla中的PythonAPI也是如此,通过控制这些变量来达到不同车辆的效果: 在这里插入图片描述 在这里插入图片描述 如此,我们可以参照汽车模板的链接方式,再集成其他各式各样的动力学模型进UE中,例如飞机坦克等等。

思考一下如何在carla框架里自定义API 同理,在carla的架构中,想要添加PythonAPI也参考代码自定义API即可。注意上面server和client端的联系图,自行补充默认参数设置和头文件的相关声明。可以参考源码自己来增改,或参考这篇博文的步骤。

Tips 如果默认vs是2017版本的,其他项目(比如Airsim使用2019),这时如何强制ue选择版本呢? Edit -> Editor preferences -> General -> Source code ; Edit -> Project Settings -> Platforms -> Windows -> Toolchain ->CompilerVersion如果默认update_from_git.bat文件生成了VS 2017项目,则可能需要C:\Program Files\Epic Games\UE_4.24\Engine\Binaries\DotNET\UnrealBuildTool.exe使用命令行选项手动运行该工具-projectfiles -project= -game -rocket -progress -2019。 如果pip超时,可以使用代理

pip install --index-url https://pypi.douban.com/simple 库名 和之前命令比较,中间加了--index-url https://pypi.douban.com/simple



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭