Carla传感器

article/2025/9/30 7:25:27

1.介绍

Carla中传感器类别多种多样,不同传感器数据之间也存在差异。但是传感器的使用方法之间存在一致性。本文介绍Carla中传感器使用的通用方法。有关传感器的描述可以在carla.Sensor类中查看

2. 传感器的通用方法

在介绍传感器的通用方法之前,需要明确传感器在什么时候获取数据以及如何获取数据。

1、获取数据的时间(WHEN)
传感器数据的获取时间取决于传感器的类型。部分传感器的在每一个时间步中获取数据,部分传感器通过特定事件触发获取数据。

在每一个时间步中获取数据:- Depth camera.- Gnss sensor.- IMU sensor.- Lidar raycast.- SemanticLidar raycast.- Radar.- RGB camera.- RSS sensor.- Semantic Segmentation camera通过特定事件触发获取数据:- Collision detector.- Lane invasion detector.- Obstacle detector

2、如何获取数据(HOW)
每种类型的传感器都有一个listen方法, 使用listen方法获取并处理传感器获取的数据。

1. 设置传感器参数

传感器参数决定了获取数据的质量,可修改的传感器参数见Carla官方文档。Carla中支持的传感器类型:
Carla中支持的传感器类型
相机传感器中部分可设置的参数:
在这里插入图片描述
在蓝图中设置相机的参数:

# 获取指定传感器的蓝图.
blueprint = world.get_blueprint_library().find('sensor.camera.rgb')
# 修改蓝图的属性以设置图像分辨率和视场角。
blueprint.set_attribute('image_size_x', '1920')
blueprint.set_attribute('image_size_y', '1080')
blueprint.set_attribute('fov', '110')
# 每隔1秒拍摄1次图片
blueprint.set_attribute('sensor_tick', '1.0')

2. 安装传感器

spawn_actor方法中使用attachment_toattachment_type参数将相机传感器按装到车辆上

transform = carla.Transform(carla.Location(x=0.8, z=1.7))# 以下两种方式等价
sensor = world.spawn_actor(blueprint, transform, attach_to=my_vehicle, attachment_type=Attachment.Rigid)
sensor = world.spawn_actor(blueprint, transform, attach_to=my_vehicle)
attachment_to:决定传感器安装的对象,一般设置为目标车辆
attachment:决定传感器相对车辆的位移,可选参数为Rigid和SpringArmRigid:默认值,传感器相对车辆的位移是固定的SpringArm:传感器相对车辆的位移不固定,传感器可在一定范围内移动。个人理解:在实车上固定传感器时,Rigid与SpringArm描述固定螺丝的松紧程度。Rigid相当于固定螺丝拧的紧一点,SpringArm相当于固定螺丝拧的松一点。

原文描述:

Rigid attachment:Movement is strict regarding its parent location. This is the proper attachment to retrieve data from the simulation.
SpringArm attachment:Movement is eased with little accelerations and decelerations. This attachment is only recommended to record videos from the simulation. The movement is smooth and “hops” are avoided when updating the cameras’ positions.

3.监听数据

传感器每次获取新数据时均会调用listen方法中的回调函数,对获取的数据进行处理。

# 自定义的数据处理方法
def sensor_callback(image):do_something# 监听传感器数据,并对获取的数据进行处理。
camera.listen(lambda image: sensor_callback(image))

4. 数据

不同传感器数据之间存在不同的差异,但是传感器数据之间也存在相同的属性。通用属性如下所示:

通用属性类型描述
frameint帧数
timestampdouble时间戳
transformcarla.Transform获取数据时传感器的位姿

3. 代码示例

以下代码将在Carla中创建车辆,并将相机传感器安装到创建的车辆上,并展示获取的相机数据。

import glob
import os
import sys
import random
import os
import numpy as np
import cv2try:sys.path.append(glob.glob('../carla/dist/carla-*%d.%d-%s.egg' % (sys.version_info.major,sys.version_info.minor,'win-amd64' if os.name == 'nt' else 'linux-x86_64'))[0])
except IndexError:passimport carladef sensor_callback(sensor_data):image = np.array(sensor_data.raw_data).reshape((480, 640, 4))cv2.imshow("", image)cv2.waitKey(1)def main():sensor_list = []try:client = carla.Client('localhost', 2000)client.set_timeout(10.0)world = client.get_world()blueprint_library = world.get_blueprint_library()# 创建车辆ego_vehicle_bp = blueprint_library.find('vehicle.mercedes-benz.coupe')transform = random.choice(world.get_map().get_spawn_points())ego_vehicle = world.spawn_actor(ego_vehicle_bp, transform)ego_vehicle.set_autopilot(True)# 获取相机蓝图camera_bp = blueprint_library.find('sensor.camera.rgb')# 定义相机参数camera_bp.set_attribute('image_size_x', '640')camera_bp.set_attribute('image_size_y', '480')camera_bp.set_attribute('fov', '110')camera_bp.set_attribute('sensor_tick', '1.0')camera_transform = carla.Transform(carla.Location(x=1.5, z=2.4))# 创建相机,将相机安装在车辆上camera = world.spawn_actor(camera_bp, camera_transform, attach_to=ego_vehicle)# 监听数据camera.listen(lambda image: sensor_callback(image))sensor_list.append(camera)while True:spectator = world.get_spectator()transform = ego_vehicle.get_transform()spectator.set_transform(carla.Transform(transform.location + carla.Location(z=100),carla.Rotation(pitch=-90)))finally:print('destroying actors')actor_list = world.get_actors()vehicle_list = list(actor_list.filter('vehicle.*'))client.apply_batch([carla.command.DestroyActor(x) for x in vehicle_list])for sensor in sensor_list:sensor.destroy()print('done.')if __name__ == '__main__':try:main()except KeyboardInterrupt:print(' - Exited by user.')

参考:Carla官方文档——传感器


http://chatgpt.dhexx.cn/article/7B2YKBHe.shtml

相关文章

Carla安装

近期在实习,入坑了Carla环境,分享一下安装经验 Quick start package installation - CARLA Simulator 文档里得安装说明还是比较全得,安装包比较大,我安装得是windons版本,遇到得坑不多,还是比较顺利得。 …

Carla学习(八)利用carla制作自己的kitti数据集

利用carla制作kitti 3D目标检测数据集基本上就是获得图片、雷达、2D和3D box。 这里主要需要解决的问题就是carla世界的坐标系和kitti数据集的坐标系不太一样,kitti坐标系如下所示: 具体的坐标转换我参考了Fredrik00 https://github.com/Ozzyz/carla-d…

carla环境安装、运行以及版本切换(Windows)

本栏目将介绍carla,包括安装、pythonAPI运行、carla的技术点介绍、自行开发脚本玩转carla,以及自定义的控制carla中的车辆,通过carla生成感知数据集等方法。 1. Carla(windows)环境安装、运行 支持操作系统&#xff…

CARLA 笔记(02)— Ubuntu 安装 CARLA(服务端、客户端、安装 miniconda、创建虚拟环境、更换 pip 源、生成交通流、人工控制车辆按键)

https://carla.readthedocs.io/en/0.9.13/start_quickstart/ 1. 预置条件 Ubuntu 18.04CARLA 0.9.138 GB 以上显卡现存20 GB 以上硬盘空间Python 2 或者 Python 3pip 检查 pip 版本 # For Python 3pip3 -V# For Python 2pip -V升级 pip 版本 # For Python 3pip3 install --u…

Carla自动驾驶仿真二:Carla多视图切换代码详解

文章目录 前言一、Carla多视图切换效果二、Camera安装坐标系1、Carla.Location2、Carla.Rotation 三、接口及代码详解1、接口介绍2、生成上帝视图代码3、生成Camera视图代码 四、完整代码 前言 1、Carla提供了大量的Python API接口,用户可以通过查找文档实现各类功…

[carla入门教程]-2 pythonAPI的使用

本专栏教程将记录我从安装carla到调用carla的pythonAPI进行车辆操控的全流程,带领大家从安装carla开始,到最终能够熟练使用carla仿真环境进行传感器数据采集和车辆控制. 文章目录 第二节 pythonAPI的使用1. 安装Anoconda环境并创建虚拟环境2.使用Vscode 打开工程目录3.学习使用…

CARLA传感器详细文档介绍+python实例(持续更新ing)

CARLA中有两种类型的传感器:每帧都工作的传感器(相机,点云等)和只有特定环境下才接收数据的传感器(触发检测)。都属于carla.Sensor类,从carla.BlueprintLibrary类中实例化。 第一类&#xff1a…

carla学习笔记(十)

实验室同学需要做仿真数据的采集实验,为记录以下整个采集过程。方便未来进行类似数据采集时减少写代码的时间。 采集数据要求: 控制一辆车,从a点到b点。然后在路侧架设一个lidar,采集车辆通过激光lidar区域时的数据。 一、首先…

Carla学习笔记(1):Ubantu20.04安装Carla 0.9.13

前言 最近准备深入研究下Carla与Apollo联合仿真,故安装了Ubantu20.04,做好前期准备。由于第一次安装Carla,不可避免的需要踩一些坑,所以写篇指南记录下,坑都在结尾。不建议按照csdn的教程去安装,直接用官方文档安装。 安装Carla有前提条件,…

carla入门

carla 一、安装 官网地址 1.1 windows下安装 下载zip文件安装 在CARLA官方文档中点击下图部分,文档链接https://carla.readthedocs.io/en/latest/start_quickstart/ 到git下直接下载windows版本, 下面可以选择版本, 这里我用最新版 在解…

Carla 地图

1. 介绍 Carla在0.9.11中扩展了地图功能,增加了许多有意思的扩展功能。 包括在地图上控制指定建筑物的渲染,加载不同的图层等。 We have extended the maps API to provide the ability to toggle on and off every environment object individually. W…

Carla内容简介

最近学长安排了新的任务,开始学习Carla仿真软件。这个软件之前在自己电脑安装一次,各种坑,坑到我怀疑人生,大概装了两三天才装上,之后因为毕设就没动过了,时隔小一年又重新开始学。。。(后续有时…

Carla学习2:carla安装与使用

文章目录 0. 建议1. carla学习相关链接1.1 官方资料1.1 学习教程 2. Carla安装2.1 服务器端2.1.1 下载预编译版本(也可以使用下载源码并编译) 2.1.2 启动服务器端及服务器端显示导航2.3 客户端2.3.1 创建python环境2.3.2 安装carla 的pythonAPI所需要的依…

【仿真】Carla介绍与使用 [1] (附代码手把手讲解)

0. 参考与前言 主要介绍无人驾驶的仿真环境CARLA,开源社区维护,以下为相关参考链接: Carla官方文档 建议后续找的时候 先按好版本号,有些功能/api 是新版本里有的,Carla官方github Youtube PythonWindow 0.9.5 主要是…

自动驾驶仿真平台Carla从入门到放弃

一、Carla的基本概念 人工智能、5G和V2X技术的不断发展使得自动驾驶成为可能。近几年,自动驾驶发展迅速,在科技新闻上经常可以看到自动驾驶的身影,而从事自动驾驶相关软、硬件研究的高效研究所和公司也越来越多,既有传统的汽车巨头…

介绍一款开源的自动驾驶仿真模拟器-Carla

大家好,我是李慢慢。 不管你是一个自动驾驶的算法工程师,还是仿真工程师,不管你是业界大佬还是小白,我都建议你了解甚至使用一下这个软件。 目录: 0、前言 1、Carla简介 2、Carla的官方资源 3、Carla的安装 4、Ca…

Carla 使用神经网络训练自动驾驶车辆---模型搭建及训练

Carla 使用神经网络训练自动驾驶车辆—模型搭建及训练 上一节已经搭建好了一个carla仿真环境,并且进行了数据采集 现在需要使用采集到的摄像头图片和转角数据进行模型训练 创建dataset类 import numpy as np import config from torch.utils.data import Dataset…

Carla自动驾驶仿真一:快速安装与运行Carla

文章目录 前言一、Carla运行效果二、Carla运行资源1、官方推荐2、环境配置1)Carla 0.9.14下载2)Python依赖安装 3)运行Demo 三、运行前注意事项 前言 网上有不少的Windows版本的Carla的安装教程,这里简单记录下自己安装过程 一、…

Carla 安装详细教程 —— Ubuntu 20.04 安装 Carla

Carla 安装详细教程 —— Ubuntu 20.04 安装 Carla 简介 自动驾驶算法的调试和效果评测首先要在仿真环境中去做,因此,一个强大、灵活的仿真环境是开发、测试过程中必不可少的要素。我们在查找可用的仿真工具时主要关注以下几个特性: 开源&…

[carla入门教程]-1 安装carla环境

本专栏教程将记录我从安装carla到调用carla的pythonAPI进行车辆操控的全流程,带领大家从安装carla开始,到最终能够熟练使用carla仿真环境进行传感器数据采集和车辆控制. 第一节 carla 仿真环境的安装 准备工作: 在本节教程之前,需要大家安装ubuntu18.04以上的系统,并且安装对…