概述
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仿真所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复