自动驾驶仿真:CARLA的传感器
自动驾驶算法通过各种传感器获取周围环境状态,从而进行正确决策控制;传感器的仿真也是自动驾驶仿真的重要内容。本节介绍CARLA中传感器模型的种类,并以摄像头和物体传感器为例说明传感器模型的用法。
附赠自动驾驶最全的学习资料和量产经验:链接
01 CARLA中的传感器种类
根据信息更新条件的不同可以将CARLA中的传感器分为周期型和事件型两个大的类别,简述如下:
(1)周期型传感器
根据设定的周期更新数据,包括的类型如下表:
(2)事件型传感器
相关事件发生时更新数据,包括的类型如下表:
02 Pygame的简介
Pygame 是基于 SDL库开发的游戏软件库,主要用于2D游戏开发,不仅可以进行渲染显示,还可以采集键盘事件并进行响应,在CARLA的很多官方示例中使用其进行显示和交互操作,如前面已经使用过的manual_control.py。后面传感器的实例中也使用Pygame进行摄像头信息的显示,所以我们在这里先对Pygame的使用方法进行一下简单说明。
Pygame的最小开发框架如下:
import pygame
# pygame初始化
pygame.init()
screen = pygame.display.set_mode((1280, 720))
running = True
while running:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
## 更新待显示对象
# 采用紫色填充屏幕
screen.fill("purple")
## 完成待显示对象更新
# 将当前对象显示到屏幕上
pygame.display.flip()
pygame.quit()
Pygame的使用分为五步:(1)导入pygame库,并进行初始化,如代码第15行所示,这里将显示窗口设置为1280x720大小。(2)获取事件并进行响应,事件主要是指各种键盘按键和显示窗口操作,如代码第1012行,获取对窗口关闭按钮X的点击,并将running设置为False,这将使运行循环退出。(3)更新待显示对象,如代码第14~18行,将全部屏幕填充为紫色;(4)显示对象,如代码第20行;(5)运行循环结束后,退出pygame,如代码第21行。
03 传感器的添加和使用
传感器的添加包含四个步骤:获取蓝图,配置传感器