Carla设置传感器

下面的学习来自于carla的官方文档,将一步步介绍如何在carla中设置传感器,并成功获得数据。

什么是传感器

传感器是Carla专门为了接受数据而设置的。虽然传感器的类型非常多样,但他们接收到的数据一般都是SensorData的继承类。传感器会在每个仿真周期内收集一次数据,或者当某些特定事件触发时,也会收集数据。这些数据会通过listen接口反馈给使用者。

如何设置传感器

如何安装、运行carla可以参考其他博客,这里提示在测试传感器前,需要运行carla的simulation。

传感器蓝图及参数

设置传感器前,需要找到所需要传感器的蓝图,并设置关于传感器的合理参数。

这里以RGB摄像头为例,python的设置情况如下:

# 从carla包中找到传感器的蓝图,传感器的蓝图可以从相关的文件设置中查到
blueprint = world.get_blueprint_library().find('sensor.camera.rgb')
# Modify the attributes of the blueprint to set image resolution and field of view.
# 设置传感器采集图片的尺寸
blueprint.set_attribute('image_size_x', '1920')
blueprint.set_attribute('image_size_y', '1080')
#设置摄像头的水平翻转
blueprint.set_attribute('fov', '110')
# Set the time in seconds between sensor captures
blueprint.set_attribute('sensor_tick', '1.0')

下图为RGB摄像头传感器的各种可设置参数,可以通过RGB摄像头参数查找您所需要的参数。

提醒这里的参数设置都是关于传感器自身的,例如传感器放置的位置等是需要接下来的设置。

传感器生成

这一步是为了建立传感器与模拟器世界的关联。

传感器的生成通过spawn_actor函数与相关对象连接。通常,传感器是与车辆进行连接,跟随车辆收集周围信息。

按照官方文档的说明,在生成过程中,可以设置连接状态,连接对象,连接类型等参数。

连接状态如下:通常包括传感器相对于车辆的位置,以及自身旋转的状态。

transform = carla.Transform(carla.Location(x=2.5, z=0.7), carla.Rotation(0,270,0))

连接对象是通过attach_to参数建立的。

sensor = world.spawn_actor(blueprint, transform, attach_to=my_vehicle)

但在相关介绍中,并未找到有关于attach_type的设置,猜测这个属性属于连接传感器的自身属性。如果猜错了,请大神纠正。

数据接收

carla中利用listening接听传感器数据。每个传感器测量的数据都是基于SensorData,每个传感器接收的数据类型不一定相同,例如RGB摄像头接收的就是IMAGE对象。你可以用过读取image.raw_data获取摄像头拍到的图片信息,但是别忘记进行一定的处理之后在输出保存。

# do_something() will be called each time a new image is generated by the camera.
sensor.listen(lambda data: do_something(data))...# This collision sensor would print everytime a collision is detected.
def callback(event):for actor_id in event:vehicle = world_ref().get_actor(actor_id)print('Vehicle too close: %s' % vehicle.type_id)sensor02.listen(callback)

通过以上步骤,你就可以在所需要的车辆上添加合适的传感器了。

传感器类型

为了方便传感器的配置,依据官方文档对传感器的分类,我对这部分进行转述。

摄像头类型传感器

摄像头传感器,都是对仿真世界进行拍照的传感器。输出数据的格式基本是carla.Image

这种类型的传感器会在每个仿真期间,拍摄一张图像。

传感器 输出 介绍
深度摄像头 carla.Image 在灰度图中呈现视场中元素的深度。
RGB摄像头 carla.Image 提供清晰的视觉环境。看起来像一个正常的现场照片。
光流摄像头 carla.Image 呈现相机中每个像素的运动。
语义分割摄像头 carla.Image 根据视图字段中的元素的标签,呈现具有特定颜色的元素。
实例分割摄像头 carla.Image 根据视图字段中的元素的标签和唯一的对象 ID,呈现具有特定颜色的元素。
动态视觉摄像头 carla.DVSEventArray 以事件流的形式异步测量亮度的变化。

测量类型传感器

测量类型传感器,只有在特定事件触发时,检测数据。

传感器 输出 介绍
碰撞传感器 carla.CollisionEvent 检索其父参与者(关联车辆)和其他参与者之间的冲突。
车道入侵检测器 carla.LaneInvasionEvent 当它的父母(关联车辆)越过车道标记时检测。
障碍检测器 carla.ObstacleDetectionEvent 在其父级(关联车辆)检测可能的障碍。

其他类型传感器

示例

安装前置摄像头示例

    # 加载传感器蓝图设置# get the blueprint for this sensorblueprint = blueprint_library.find('sensor.camera.rgb')# change the dimensions of the imageblueprint.set_attribute('image_size_x', f'{640}')blueprint.set_attribute('image_size_y', f'{480}')blueprint.set_attribute('fov', '90')# Set the time in seconds between sensor capturesblueprint.set_attribute('sensor_tick', '1')# Adjust sensor relative to vehiclespawn_point = carla.Transform(carla.Location(x=2.5, z=0.7), carla.Rotation(0,90,0))# spawn the sensor and attach to vehicle.sensor = world.spawn_actor(blueprint, spawn_point, attach_to=vehicle, attach_type='Rigid attachment')sensor.listen(lambda data: process_img(data))def process_img(image):i = np.array(image.raw_data)  # convert to an arrayi2 = i.reshape((IM_HEIGHT, IM_WIDTH, 4))  # was flattened, so we're going to shape it.i3 = i2[:, :, :3]  # remove the alpha (basically, remove the 4th index  of every pixel. Converting RGBA to RGB)cv2.imshow("", i3)  # show it.cv2.waitKey(1)img_index += 1return i3 / 255.0  # normalize

安装雷达摄像头示例:

    # ——————————————————————————————————加载雷达传感器——————————————————————————blueprint_lidar = blueprint_library.find('sensor.lidar.ray_cast')blueprint_lidar.set_attribute('points_per_second', str(3000))blueprint_lidar.set_attribute('sensor_tick', '1')spawn_point_lidar = carla.Transform(carla.Location(0,0,2), carla.Rotation(0,0,0))lidar = world.spawn_actor(blueprint_lidar, spawn_point_lidar, attach_to=vehicle)lidar.listen(lambda data: \data.save_to_disk(os.path.join(savepath, '%06d.ply' % data.frame)))

注意:查看雷达摄像头产生的3d点云,需要安装特定的软件meshlab。

参考:

史上最全Carla教程

Carla设置传感器相关推荐

  1. Carla设置同步模式

    1. 目的 默认情况下,Carla运行在异步模式下.服务器与客户端以各自的速度运行.当客户端请求到来时,服务器相应请求,处理结束之后继续运行,并不等待客户端处理完成服务器返回的数据. 存在的问题是,当 ...

  2. [carla] GNSS传感器与Carla坐标系 转换方法

    文章目录 方法1:通过python API直接获取转换后坐标 1.1 GNSS传感器消息-内容介绍 1.2 在线获取方法 1.3 完整代码 方法2-通过离线读取转换关系的方式转换 2.1 转换类代码和 ...

  3. CARLA相机传感器坐标系

    CARLA使用虚幻引擎坐标系.这是Z-up左手系统. Class that represents a 3D rotation and therefore, an orientation in spac ...

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

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

  5. 在Carla中创建车辆及传感器

    1. 启动Carla服务器 在电脑中找到CarlaUE4.exe文件,双加运行. 出现如下画面,说明Carla运行成功 2. 创建Carla客户端 创建.py文件,引入必要的库文件和Carla库 im ...

  6. Carla学习(一) 小车简单直线行走

    看官方的文档加晚上的一些博主的教程,动手写了一个小车直线跑动的例子.官方最新的文档比较全面,但是东西太多了,本垃圾不知道从哪里学起,慢慢来吧.... 导入Carla包 在编写自己的客户端时,我们首先需 ...

  7. carla学习笔记(三)

    今天学习了example中lidar_to_camera.py的源码,前面部分还好,后面部分涉及到了矩阵变换的理论,开始看不懂了.它的功能好像是输出一组图像,然后是把lidar的线条数绘制到camer ...

  8. Autoware.Universe:如何在Carla 0.9.13上运行

    Autoware.Universe:如何在Carla 0.9.13上运行 前言 从 Autoware.AI 到 Autoware.Universe 正文 系统参数 第一步:下载 Carla 0.9.1 ...

  9. 自动驾驶汽车传感器数字孪生建模(一)

    标注:本文来自本实验室肖轩的研究成果. 一.传感器种类和特点 目前阶段自动驾驶汽车感知系统所使用的传感器主要有摄像头,激光雷达和毫米波 雷达等.三种传感器特点各不相同,在实验过程中需要协同工作来完成对 ...

最新文章

  1. 复旦邱锡鹏教授公布《神经网络与深度学习》,中文免费下载 | 极客头条
  2. ASP:关于生成HTML文件的新闻系统
  3. 【Linux部署】Greenplum数据库6.13.0单机版 [CRITICAL]:-Error occurred: non-zero rc: 1(报错详情+问题处理:内存释放)
  4. HTML 转 PDF 之 wkhtmltopdf
  5. kodi android设置中文,Kodi(原XBMC)
  6. mendelay为什么安装不了_你为什么消防验收过不了?消防管道安装错误图集
  7. stl向量_如何检查C ++ STL中向量中是否存在元素?
  8. (23)css3文字阴影text-shadow
  9. 新款iPhone SE预约量超40万,拼多多已经安排上,击穿底价2999元?
  10. php递归实现冒泡排序,排序算法之PHP版快速排序、冒泡排序
  11. centos下配置LNMP环境(源码安装)
  12. Sublime Text 2.0.2 注册码
  13. idea连接mysql数据库下载驱动失败
  14. windows服务启动 1053错误
  15. js强制保留两位小数
  16. 拜师————python基础入门——守破离学习法,海龟绘图,画出奥运五环图,day3
  17. 欧姆龙CP1H如何进行PLC远程编程及数据采集
  18. 速写总是画不好发型?绘画手法很重要
  19. 如何让多个div横向排列而不换行
  20. bp神经网络时间序列预测,bp神经网络数据预处理

热门文章

  1. 直接进入TIVA系列MCU存在ROM中的bootloader的三种方法(转载)
  2. 【信息论是什么?信息,消息和信号?】信息论与编码入门(一)
  3. Hook API 原理 解析
  4. android midi格式,KODAI APP-KODAI(midi格式转换)下载v1.0.3 安卓版-西西软件下载
  5. 网站建设-简单动态网站搭建
  6. An Optimistic Perspective on Offline Reinforcement Learning
  7. 风云防火墙导致无法上网的问题解决(无法获取正确的网关MAC)
  8. 安利钻石商务通 2006 v6.2 免费下载
  9. 吾爱破解java游戏下载_JAVA 猜数字游戏
  10. linux ntfs 转换 无损,怎么无损数据地转换FAT32到NTFS分区