python进行CARLA仿真

1. CARLA简介

CARLA是一个开源的自动驾驶仿真工具,CARLA以Unreal Engine为基础来运行模拟,并使用OpenDRIVE标准来定义场景,可以使用Python API进行CARLA的调用。

Carla的仿真架构是由服务器和客户端组成的:
服务器:即为仿真环境本身,负责图像渲染、物理计算等,服务器的启动需要打开CalaUE4.exe
客户端:使用Carla的API进行车辆及其动作、天气环境等设定

2.QuickStart

2.1 创建Client和World

进行仿真前需要先创建客户端并与服务器连接:
对于windows版本,需要先打开CalaUE4.exe,并且设置一个timeout

client = carla.Client("localhost", 2000)
client.set_timeout(5.0)

现在客户端已经与服务端连接上了,即为一个虚拟的世界,接下来需要创建一个地图,可以加载carla内置的地图

world = client.load_world('Town02')

2.2 添加一些环境参数:天气

现在可以通过python api (set_weather)设置所加载场景的环境,比如天气:

weather = carla.WeatherParameters(cloudiness=0.2,precipitation=0.2,sun_altitude_angle=80.0)
world.set_weather(weather)

2.3 创建一个Actor

接下来需要在所创建的场景中添加物体,包括:车辆、行人、传感器等。这些统称为Actor,不同的Actor有不同的属性。calar中有创建Actor的模板,叫做Blueprints。
下面为定义一个白色的特斯拉:

model3_bp = world.get_blueprint_library().find('vehicle.tesla.model3')
model3_bp.set_attribute('color', '255,255,255')

2.4 Actor的生命周期

生成Actor

使用world对象的spawn_actor可以生成一个actor,可以定义车辆产生的地点:

transform = Transform(Location(x=100, y=300, z=40), Rotation(yaw=180))
actor = world.spawn_actor(blueprint, transform)
定义Actor的动作
model3.set_autopilot(True)

也可以自定义车的位置

location = model3.get_location()
location.x += 10.0
model3.set_location(location)
回收Actor

当我们不在需要某个Actor的时候,可以将其销毁,释放计算资源。

destroyed_sucessfully=actor.destory()

3. 添加传感器

Calar中已经支持了很多传感器,例如:
摄像头: Depth, RGB , Semantic segmentation
探测器: Collision , Lane invasion , Obstacle
其他: GNSS , IMU , LIDAR raycast , Radar
传感器跟其他的Actor最大的不同是,它们需要被安装在车上,因此在生成传感器的时候,需要将其附着到一个车辆类型的Actor上,而出生点是针对于这台车本身的坐标系给定的。

camera_bp = world.get_blueprint_library().find('sensor.camera.rgb')
camera = world.spawn_actor(camera_bp, carla.Transform(carla.Location(x=-5.5, z=2.5), carla.Rotation(pitch=8.0)), model3,carla.AttachmentType.SpringArm)
camera.listen(lambda image:image.save_to_disk('output/%06d.png' % image.frame)

设置观察者

即为观察仿真的视角

while True:spectator = world.get_spectator()transform = model3.get_transform()spectator.set_transform(carla.Transform(transform.location + carla.Location(z=50),carla.Rotation(pitch=-90)))time.sleep(5)

5. 仿真效果

carla--使用python进行carla交互仿真相关推荐

  1. 使用 Carla 和 Python 的自动驾驶汽车第 4 部分 —— 强化学习Action

    欢迎来到自动驾驶汽车的第五部分,并与Carla.Python和TensorFlow加强学习. 现在我们已经有了环境和代理,我们只需要添加更多的逻辑将它们连接在一起,这是我们接下来要做的. 首先,我们将 ...

  2. 使用 Carla 和 Python 的自动驾驶汽车第 2 部分 —— 控制汽车并获取传感器数据

    欢迎来到 Carla 自动驾驶汽车教程系列的第 2 部分.在本教程中,我们将向您介绍 Carla 的 Python API 方面. 首先,Carla 中有几种类型的对象: world:这是你的环境: ...

  3. 自动驾驶模拟器Carla之python编程-(2)控制汽车

    在本节,我们将向您介绍Carla的Python API. Carla中有几种类型的对象.首先,您当然拥有world(世界),这就是你的环境.这样,您便拥有了这个世界中的actors(角色).角色诸如汽 ...

  4. Carla学习2:carla安装与使用

    文章目录 0. 建议 1. carla学习相关链接 1.1 官方资料 1.1 学习教程 2. Carla安装 2.1 服务器端 2.1.1 下载预编译版本(也可以使用下载源码并编译) 2.1.2 启动 ...

  5. [carla] GNSS传感器与Carla坐标系 转换方法

    文章目录 方法1:通过python API直接获取转换后坐标 1.1 GNSS传感器消息-内容介绍 1.2 在线获取方法 1.3 完整代码 方法2-通过离线读取转换关系的方式转换 2.1 转换类代码和 ...

  6. python基础指令-Python基础——与Python的指令交互

    Python是近几年兴起的一门编程语言,也是人工智能的主要语言,在TIOBE排行榜上占据着不错的位置,是许多程序员学习的对象,对于孩子来说,学习Python还是有些吃力的,我们需要从头开始一点点学起. ...

  7. python timestamp转string_Python仿真区块链【含源码】

    在区块链或数字货币领域,Python并不是主流的开发语言.但是如果 你的目的是研究区块链技术的原理,或者需要在自己的笔记本上仿真一个 区块链网络并进行一些研究性的实验,比如完成自己的毕业设计项目 或科 ...

  8. Python批量运行Gprmax仿真并快速提取雷达波走时和振幅

    Python批量运行Gprmax仿真并快速提取雷达波走时和振幅 使用gprmax仿真模拟时,通常在cmd窗口写命令,运行结果保存的文件夹不能任意选择,这样很不方便.尤其是在做钻孔电磁波仿真时,需要大量 ...

  9. python中和js交互_python和js交互调用的方法

    后台代码都是利用的 1.[get方式]使用jquery的get json与后台交互 前端js代码片段 var data= { 'a': $('input[name="a"]').v ...

最新文章

  1. 【Qt】在QtCreator中使用Ctrl+Shift+f快捷键打开高级查找窗口失效的解决方法
  2. ubuntu下使用SVN
  3. 如何在Windows 2000的域环境中自动分发软件
  4. 2012-12-21
  5. java如何实现连接wifi_java-是否可以检测到您要连接的WiFi类型?
  6. 山海树“医+药”O2O闭环 掘金8万亿市场
  7. SM04在线用户管理
  8. html5文字飞入插件,jquery使用CSS3实现文字动画效果插件Textillate.js
  9. vnc非授权访问漏洞
  10. 独家总结| 一文读懂卡尔曼滤波
  11. 【Flink】解决Flink在测试环境无法保存checkpoint问题
  12. HID Global推出全新室内定位服务 助力企业优化配置劳动力
  13. 如何修改html代码,如何修改网页源代码
  14. Android NDK开发(一)环境搭建及运行示例
  15. 乌龟量化估值怎么看_【可视化】Python计算指数的历史PE估值
  16. 计算机中数值数据的表示
  17. marvel 1548 phy芯片调式
  18. Domain or host
  19. sql --Acess
  20. ubuntu命令行登陆校园网

热门文章

  1. CB Insights:全面拆解谷歌AI战略布局
  2. 浅谈支付宝第三方支付
  3. 自定义view,仿微信、支付宝密码输入控件的源码实现
  4. imap服务器收缓存pst文件夹,Outlook 转移OST数据文件 IMAP账户
  5. 禅与摩托车维修艺术语录摘抄(1)
  6. P1039 [NOIP2003 提高组] 侦探推理
  7. k8s安装nfs-subdir-external-provisioner插件
  8. 计算机主硬盘隐藏分区大小,容量不翼而飞 解密四类硬盘空间隐藏占用(组图)
  9. Python的Module,Library,Package的区别
  10. 王者苹果服务器维护几点能玩,《王者荣耀》ios版更新维护到几点 10月17日ios版更新时间介绍...