news 2026/4/25 23:56:40

自动驾驶—CARLA仿真(29)传感器(Sensors and data)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自动驾驶—CARLA仿真(29)传感器(Sensors and data)

传感器使用详解

carla.Sensor类定义了一种特殊的参与者(actor),能够测量并流式传输数据。

  • 这些数据是什么?
    数据类型因传感器种类而异。所有传感器数据均继承自通用的carla.SensorData类。

  • 何时获取数据?
    要么在每个仿真步(simulation step)获取,要么在特定事件触发时获取,具体取决于传感器类型。

  • 如何获取数据?
    每个传感器都提供一个listen()方法,用于接收和处理数据。

尽管各类传感器存在差异,但它们的使用方式基本一致。


设置(Setting)

与所有其他参与者一样,首先需从蓝图库中查找传感器蓝图,并设置特定属性。这对传感器至关重要——其属性将直接影响所获得的结果。具体属性详见《传感器参考文档》。

以下示例设置了一个仪表盘高清摄像头:

# 查找传感器蓝图blueprint=world.get_blueprint_library().find('sensor.camera.rgb')# 修改蓝图属性:设置图像分辨率和视场角(FOV)blueprint.set_attribute('image_size_x','1920')blueprint.set_attribute('image_size_y','1080')blueprint.set_attribute('fov','110')# 设置传感器两次捕获之间的间隔时间(秒)blueprint.set_attribute('sensor_tick','1.0')

生成(Spawning)

传感器可放置在地图任意位置。通常,它们会附着(attach)到某个父级参与者(如车辆)上,从而像真实安装在车辆上的传感器一样随仿真移动。

spawn_actor()方法需要从蓝图库中选择的传感器蓝图和一个变换(transform)参数:

  • 对于未附着的传感器,该变换定义其在CARLA世界中的绝对位置
  • 对于附着的传感器,该变换定义其相对于父级参与者坐标系的相对位置
my_vehicle=world.spawn_actor(vehicle_blueprint,spawn_point)transform=carla.Transform(carla.Location(x=0.8,z=1.7))sensor=world.spawn_actor(sensor_blueprint,transform,attach_to=my_vehicle)

attachment_type参数定义传感器运动如何受其父级参与者控制:

  • 刚性附着(carla.AttachmentType.Rigid
    传感器严格跟随父级参与者的位姿变化。这是摄像头、激光雷达等常规车载传感器最常用的方式,也是默认设置。

  • 弹簧臂附着(carla.AttachmentType.SpringArm
    运动经过平滑处理,避免突然加速或减速。推荐用于录制仿真视频,可使画面流畅,避免摄像机位置更新时出现“跳跃”。

  • 幽灵弹簧臂附着(carla.AttachmentType.SpringArmGhost
    与弹簧臂类似,但不进行碰撞检测,因此传感器可能穿过墙壁或其他几何体。

sensor=world.spawn_actor(sensor_blueprint,transform,attach_to=my_vehicle,attachment_type=carla.AttachmentType.SpringArm)

监听(Listening)

每个传感器都有一个listen()方法,在每次获取数据时被调用。

该方法接收一个回调函数(callback)作为参数,通常是一个 lambda 函数,用于定义数据到达时应执行的操作。回调函数必须接受传感器数据作为输入参数。

# 每当摄像头生成新图像时,调用 do_something() 函数sensor.listen(lambdadata:do_something(data))...# 碰撞传感器:每次检测到碰撞时打印信息defcallback(event):foractor_idinevent:vehicle=world_ref().get_actor(actor_id)print('Vehicle too close: %s'%vehicle.type_id)sensor02.listen(callback)

数据(Data)

大多数传感器数据对象都提供将信息保存到磁盘的方法,便于在其他环境中使用。

不同传感器的数据结构差异较大,详情请参阅《传感器参考文档》。但所有传感器数据都包含以下基本信息:

传感器数据属性类型描述
frameint测量发生时的帧号
timestampdouble自仿真开始以来的模拟时间戳(单位:秒)
transformcarla.Transform测量时刻传感器在世界坐标系中的位姿

重要提示

  • is_listening():检查传感器是否已通过listen()注册了回调函数。
  • stop():停止传感器监听。
  • sensor_tick:蓝图属性,设置接收数据之间的仿真时间间隔。

传感器类型(Types of sensors)

摄像头(Cameras)

从自身视角拍摄世界画面。对于输出carla.Image的摄像头,可使用辅助类carla.ColorConverter将图像转换为不同信息表示形式。

数据获取频率:每一步仿真。

传感器输出类型概述
RGBcarla.Image提供清晰的环境视觉,类似普通场景照片。
广角(Wide angle)carla.Image支持广角、鱼眼、360度等非标准相机模型。
深度(Depth)carla.Image以灰度图渲染视野内物体的深度信息。
光流(Optical Flow)carla.Image渲染每个像素相对于摄像头的运动矢量。
语义分割(Semantic segmentation)carla.Image根据物体标签,用特定颜色渲染视野内元素。
实例分割(Instance segmentation)carla.Image在语义分割基础上,为每个独立物体分配唯一ID并着色。
动态视觉传感器(DVS)carla.DVSEventArray异步输出亮度变化事件流,模拟类脑视觉传感器。

探测器(Detectors)

当所附着的物体触发特定事件时才返回数据。

数据获取时机:事件触发时。

传感器输出类型概述
碰撞(Collision)carla.CollisionEvent检测其父级参与者与其他物体的碰撞。
车道入侵(Lane invasion)carla.LaneInvasionEvent当父级参与者跨越车道线时触发。
障碍物(Obstacle)carla.ObstacleDetectionEvent检测父级参与者前方可能存在的障碍物。

其他传感器(Other)

提供导航、物理量测量、场景2D/3D点云等功能。

数据获取频率:每个仿真步。

传感器输出类型概述
GNSScarla.GNSSMeasurement获取传感器的地理经纬度位置。
IMUcarla.IMUMeasurement包含加速度计、陀螺仪和电子罗盘。
激光雷达(LIDAR)carla.LidarMeasurement旋转式激光雷达,生成包含坐标和强度的4D点云,用于建模环境。
雷达(Radar)carla.RadarMeasurement生成2D点图,表示视野内物体及其相对于传感器的运动。
RSScarla.RssResponse根据安全检查调整施加于车辆的控制指令。该传感器工作方式与其他传感器不同,有专门的RSS文档说明。
语义激光雷达(Semantic LIDAR)carla.SemanticLidarMeasurement旋转式激光雷达,生成3D点云,并附加实例ID和语义分割信息。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 23:46:27

锐龙3 3100/3300X首发评测:四核八线程新标杆

HeyGem 数字人视频生成系统 —— 科哥的批量生产力革命 在内容为王的时代,每天都有成千上万条短视频等待被生产。可当一个团队需要为课程、客服、营销制作几十个口型同步的数字人视频时,传统方式显然力不从心:重复上传、反复加载模型、逐个下…

作者头像 李华
网站建设 2026/4/22 15:08:55

拒绝智商税!3款免费论文去AI痕迹工具良心推荐与避坑

写的文章明明是一个字一个字敲的,提交后却被导师批“满屏机器味”?自查AIGC率飙到87%,改了3遍还是降不下来? 我踩过替换同义词越改越假、用错降AI率工具反升的坑,今天把9个原创免费降AI率技巧3款实测工具深度测评分享…

作者头像 李华
网站建设 2026/4/25 0:35:46

深入解析Function Calling与RAG!

这篇文章,想和你分享两个重要的概念:Function Calling 和 RAG。 如果你不满足于“和 AI 聊聊天”,而是希望它真的能帮你查数据、看文档、跑流程、做决策,这两个能力值得花一点时间弄清楚。一、我们真正希望 AI 做到什么&#xff1…

作者头像 李华
网站建设 2026/4/25 13:16:27

【万字长文】0经验转型AI产品经理,学习逆袭路线指南!

AI产品经理的核⼼定位与时代需求 人工智能技术的产业化落地正在经历从”技术驱动”向”产品驱动”的关键转变。在这一背景下,AI产品经理的角色价值被重新定义:他们不再是简单的需求传递者,而是技术价值转化的核心枢纽。 2025年Gartner行业报告…

作者头像 李华
网站建设 2026/4/25 8:02:12

智谱Open-AutoGLM本地化实战(专家级部署方案首次公开)

第一章:智谱 Open-AutoGLM 本地化部署概述Open-AutoGLM 是智谱推出的自动化大模型应用开发框架,支持基于 GLM 系列大模型的本地化部署与任务编排。该框架适用于需要在私有环境中运行 AI 工作流的企业和开发者,兼顾安全性与灵活性。通过本地部…

作者头像 李华