我是靠谱客的博主 坚强雨,最近开发中收集的这篇文章主要介绍carla--使用python进行carla交互仿真python进行CARLA仿真,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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交互仿真python进行CARLA仿真的全部内容,希望文章能够帮你解决carla--使用python进行carla交互仿真python进行CARLA仿真所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部