lianyuan1986 发表于 2024-7-15 18:34

万字长文综述自动驾驶的数据采集和ETL(上)

本文是一份关于自动驾驶数据ETL的指南。
前言:


[*]自动驾驶的数据ETL是自动驾驶数据闭环的基础、关键和斗劲成熟的环节,适合作为综述的对象
[*]ChatGPT提供了强大的调研和总结能力,作为本文的重要辅助
[*]为了保证最后的效果,依然会引导、改削AI生成的文本,以及插入本身的写作
正文开始!
<hr/>本文是一份关于自动驾驶数据ETL的指南。第一章介绍了自动驾驶数据ETL的定义和重要性。第二章到第五章讲述了数据的收集、清洗、转换和加载的法式、方式和东西。第六章讲解了数据验证和测试的目的和法式。第七章详细介绍了数据仓库的定义、优势、架构、设计、实现、维护和打点。第八章提供了自动驾驶数据ETL的最佳实践和常见问题的解决方案。最后,第九章总结了自动驾驶数据ETL的重要性和优势,并展望了未来的成长趋势。
第一章:介绍




自动驾驶车辆采集的数据

ETL的定义

在自动驾驶范围,ETL指的是将原始数据从多个数据源提取、转换和加载到一个中央存储库中的过程。ETL是“提取”(Extraction)、“转换”(Transformation)和“加载”(Loading)三个法式的缩写。
在自动驾驶范围,ETL的目的是将来自各种传感器和系统的数据,包罗激光雷达、相机、惯性导航系统、GPS和其他传感器发生的数据,提取到一个中央位置,然后转换为尺度格式和单元,并加载到数据仓库或数据湖中。数据仓库或数据湖是一个用于存储和分析数据的中央存储库,可以撑持数据科学家、机器学习工程师和其他数据专业人员进行数据分析和建模。
ETL过程对于自动驾驶的成功非常重要。数据是自动驾驶车辆决策的基础,因此ETL必需高效、准确地从各种传感器和系统中提取数据,以便自动驾驶车辆能够进行准确的环境感知和决策。同时,ETL还需要确保数据的一致性和完整性,以便进行有效的数据分析和建模。



自动驾驶系统的ETL流程例子

ETL的重要性

自动驾驶的数据ETL过程非常重要,其原因如下:

[*]数据的质量和准确性:自动驾驶需要大量的传感器数据,这些数据必需非常准确和精确。ETL过程可以确保从各种传感器和系统中提取的数据质量和准确性,从而确保自动驾驶车辆做出准确的决策。
[*]数据的一致性:在自动驾驶系统中,数据来自多个传感器和系统。ETL过程可以确保数据格式和单元的一致性,从而使数据可斗劲和分析,以便更好地了解环境和车辆性能。
[*]数据的安全性:自动驾驶系统需要措置大量的敏感数据,如车辆位置、速度等信息。ETL过程可以确保数据的安全性和完整性,防止数据被篡改或遭受其他安全威胁。
[*]数据的可伸缩性:自动驾驶车辆需要措置大量的传感器数据,这些数据可以随着时间的推移而不竭增加。ETL过程可以确保数据的可伸缩性,以便可以措置任何规模的数据集。
[*]数据的可用性:自动驾驶系统需要措置大量的数据,并将其存储在一个中央位置。ETL过程可以确保数据可用性,以便数据科学家、机器学习工程师和其他数据专业人员可以访谒数据并进行分析和建模。
因此,自动驾驶的数据ETL过程是确保自动驾驶系统性能和安全的重要法式。
第二章:数据收集

数据源

自动驾驶的数据ETL过程涉及多个数据源,此中包罗但不限于:

[*]激光雷达数据:激光雷达是自动驾驶中最重要的传感器之一,可以提供车辆周围环境的高精度三维信息。
[*]相机数据:相机是另一个重要的传感器,可以提供车辆周围环境的视觉信息,如图像、视频等。
[*]惯性导航系统数据:惯性导航系统可以提供车辆的运动状态和姿态信息,如加速度、角速度等。
[*]GPS数据:GPS可以提供车辆的位置、速度和标的目的等信息。
[*]车载计算机数据:车载计算机可以提供车辆状态、性能和行为等信息。
[*]智能交通系统(ITS)数据:ITS可以提供交通状况、道路信息和其他相关数据,以辅佐自动驾驶车辆做出更准确的决策。
在实际应用中,还可能涉及其他传感器和系统,如雷达、超声波传感器、车载通信系统等。自动驾驶的数据ETL过程需要从这些分歧的数据源中提取数据,并将其转换为尺度格式和单元,以便进行有效的数据分析和建模。
下面列出分歧数据源(传感器)需要存眷的信息。
数据源需要存眷的信号内容需要存眷的硬件信息激光雷达数据测量范围、角度分辩率、点云密度、数据格式和单元等激光雷达型号、扫描速率、转速、分辩率等相机数据分辩率、视场角、帧率、图像数据格式和颜色空间等相机型号、焦距、光圈、曝光时间等惯性导航数据精度、采样率、数据格式和单元等惯性导航仪型号、精度、采样率、数据输出接口等GPS数据精度、更新率、数据格式和坐标系等GPS型号、精度、更新率、数据输出接口等车载计算机数据性能、数据输出接口、数据格式和单元等车载计算机型号、措置器、内存、存储、数据输出接口等ITS数据数据源、数据更新率、数据格式和单元等ITS数据源、更新率、数据格式和单元等雷达数据距离、速度、数据格式和单元等雷达型号、测量范围、角度分辩率、扫描速率等超声波传感器数据距离、数据格式和单元等超声波传感器型号、测量范围、角度分辩率、采样率等高精度地图数据道路、车道、交通标识表记标帜和信号灯等信息、数据格式和坐标系等高精度地图源、更新率、数据格式和坐标系等语音识别数据语音指令输入、车辆语音提示等、语音识别精度、数据格式和单元等语音识别模块型号、性能、数据输出接口等环境传感器数据温度、湿度、气压等信息、数据格式和单元等环境传感器型号、测量范围、精度、采样率、数据输出接口等需要注意的是,这些信息仅供参考,分歧的自动驾驶系统和应用场景可能需要存眷的信息和硬件参数有所分歧。
数据的格式和存储

对于上述数据源,常见的数据格式和存储道理如下:
数据源常见数据格式存储道理激光雷达LAS、PCD、PLY将激光雷达采集到的点云数据存储为三维坐标和反射强度等信息摄像头JPEG、PNG将图像数据存储为二进制格式的图片文件GPSNMEA将GPS数据存储为文本格式,包罗时间、纬度、经度等信息惯性测量单元IMU将IMU数据存储为文本格式或二进制格式的文件,包罗角度、速度等信息雷达RAD、RDC将雷达采集到的数据存储为二进制格式的文件,包罗角度、距离等信息视觉惯性里程计CSV、TXT将里程计数据存储为文本格式,包罗时间、位置、速度等信息高精地图XML、JSON将地图数据存储为XML或JSON格式,包罗道路、交通标识表记标帜、路口等信息CAN总线ASC、BLF、DBC将CAN总线数据存储为二进制格式的文件,包罗车速、转速、油量等信息音频WAV、MP3将音频数据存储为二进制格式的文件,包罗声波振幅和频率等信息3D地图OBJ、FBX将3D地图数据存储为三维模型文件,包罗道路、建筑等信息GNSS/RTK定位数据RINEX、BINEX将定位数据存储为文本或二进制格式的文件,包罗时间、位置、速度等信息在实际应用中,还需要考虑分歧存储格式对数据录制和措置的影响:
传感器常见数据格式存储道理录制和措置影响GPS/IMUCSV/JSON文本文件存储需要进行数据同步和融合,需要使用专门的东西进行措置激光雷达LAS/PCD/PLY点云存储数据量较大,需要采用适当的采样率或数据压缩方式;需要使用专门的点云措置库或东西进行措置摄像头JPEG/PNG/RAW图像文件存储需要进行图像措置和识别,需要使用计算机视觉算法进行措置毫米波雷达二进制/BIN二进制数据存储数据量较大,需要采用适当的数据压缩方式;需要使用专门的雷达数据措置库或东西进行措置惯性测量单元CSV/JSON文本文件存储需要进行数据同步和融合,需要使用专门的东西进行措置雷达+摄像头ROSBAG二进制数据存储数据量较大,需要采用适当的数据压缩方式;需要使用ROS相关东西进行措置雷达+GPS/IMUROSBAG二进制数据存储数据量较大,需要采用适当的数据压缩方式;需要使用ROS相关东西进行措置雷达+激光雷达ROSBAG二进制数据存储数据量较大,需要采用适当的数据压缩方式;需要使用ROS相关东西进行措置雷达+毫米波雷达ROSBAG二进制数据存储数据量较大,需要采用适当的数据压缩方式;需要使用ROS相关东西进行措置雷达+摄像头+激光雷达ROSBAG二进制数据存储数据量较大,需要采用适当的数据压缩方式;需要使用ROS相关东西进行措置雷达+摄像头+GPS/IMUROSBAG二进制数据存储数据量较大,需要采用适当的数据压缩方式;需要使用ROS相关东西进行措置雷达+摄像头+毫米波雷达ROSBAG二进制数据存储数据量较大,需要采用适当的数据以上是常见的数据格式和存储道理,实际上还有很多其他的数据格式和存储道理,这些数据格式和存储道理也在不竭地成长和更新。对于自动驾驶范围的数据ETL,了解数据格式和存储道理长短常重要的,这有助于我们更好地进行数据清洗、转换和整合。
数据收集的东西和技术

自动驾驶车辆数据收集是实现自动驾驶功能的基础,涉及到多种传感器和数据措置技术。以下是常用的自动驾驶车辆数据收集东西和技术:

[*]数据记录器:数据记录器是用于记录车辆传感器数据的设备,常见的有车载数据记录器和基于云端的数据记录器。车载数据记录器一般安装在车辆上,负责记录车辆传感器数据和车辆状态信息。基于云端的数据记录器则直接将数据上传到云端存储,便利长途访谒和打点。
[*]传感器:自动驾驶车辆需要使用多种传感器,例如激光雷达、摄像头、毫米波雷达、GPS、惯性测量单元等。这些传感器负责采集车辆周围的环境信息和车辆状态信息,并将其转化为数字信号进行措置。
[*]数据措置软件:数据措置软件用于将传感器采集的原始数据进行预措置、滤波和融合,生成高质量的车辆传感器数据。常见的数据措置软件包罗ROS、Apollo、LGSVL等。
[*]数据标注东西:自动驾驶车辆数据收集过程中,需要对采集的数据进行标注,以便于后续的模型训练和验证。常见的数据标注东西有Labelbox、VGG Image Annotator(VIA)、LabelImg等。
[*]仿真环境:仿真环境可以模拟真实的交通场景和车辆行驶状态,便利对自动驾驶车辆的算法和系统进行测试和验证。常见的仿真环境有CARLA、LGSVL、SUMO等。
[*]数据共享平台:数据共享平台可以便利地共享、存储和打点采集的自动驾驶车辆数据,促进数据的开放和共享,加速自动驾驶技术的成长。常见的数据共享平台有Apollo Data Service(ADS)、OpenLidar等。
目前斗劲风行的是基于ROS的系统和基于Apollo的系统。Apollo和ROS是两个分歧的系统,但Apollo使用了ROS作为其底层通信和动静传递框架。ROS(Robot Operating System)是一个用于机器人软件开发的开源框架,提供了一系列东西和库,用于构建机器人应用法式。ROS采用基于节点(node)的分布式架构,分歧节点之间通过话题(topic)进动作静传递,使得机器人软件开发更加便利和灵活。Apollo是百度公司开发的自动驾驶系统,包罗了感知、决策、控制等多个模块,用于实现自动驾驶功能。Apollo采用了基于ROS的通信和动静传递机制,分歧模块之间通过ROS话题进动作静传递,使得整个系统具有高度的灵活性和可扩展性。同时,Apollo还在ROS基础长进行了优化和改良,增强了其对自动驾驶应用的撑持和性能。因此,可以说Apollo和ROS之间存在必然的关系,但Apollo并不是ROS的一个扩展或变种,而是在ROS的基础长进行了二次开发和定制,用于满足自动驾驶系统的需求。



ROS和Apollo是两种常见的通信和数据收集系统

基于ROS的系统
基于ROS的数据采集系统中,传感器数据凡是是通过ROS的通信机制进行传输和存储的。ROS中的通信机制基于发布/订阅模型,每个传感器节点都可以将采集到的数据发布到ROS中间件的某个主题(topic)中,其他需要使用该数据的节点可以通过订阅该主题来获取数据。
对于传感器数据的存储,凡是是将数据以ROS的bag文件格式进行存储,bag文件是ROS提供的一种文件格式,可以用来记录ROS主题的数据。在采集传感器数据时,可以使用ROS提供的rosbag东西来录制和保留主题数据,也可以使用第三方的bag打点东西,如rqt_bag等来进行数据的录制、打点和回放。
ROS的bag文件是一种二进制文件格式,可以存储ROS的动静数据,包罗传感器数据、控制指令、状态信息等。bag文件可以进行压缩,以减小文件大小,同时可以使用ROS的东西对数据进行分析、转换和导出。在自动驾驶范围中,bag文件长短常重要的数据格式之一,因为它能够保留多种传感器数据的时间序列,便利进行数据措置和算法优化。
读取ROS Bag文件中的RTK、点云和图像可以使用Python的ROS包进行。以下是读取ROS Bag中的RTK、点云和图像的示例代码:
读取RTK数据:
import rosbag
from sensor_msgs.msg import NavSatFix

# 打开bag文件
bag = rosbag.Bag(&#39;example.bag&#39;)

# 定义回调函数
def rtk_callback(msg):
    print(msg.latitude, msg.longitude)

# 遍历bag文件,读取RTK数据
for topic, msg, t in bag.read_messages(topics=[&#39;/rtk&#39;]):
    rtk_callback(msg)

# 封锁bag文件
bag.close()读取点云数据:
# 定义回调函数
def pointcloud_callback(msg):
    print(msg.header.stamp.to_nsec()) # 打印时间戳

# 遍历bag文件,读取点云数据
for topic, msg, t in bag.read_messages(topics=[&#39;/points&#39;]):
    pointcloud_callback(msg)读取图像数据:
# 创建CvBridge对象
bridge = CvBridge()

# 定义回调函数
def image_callback(msg):
    img = bridge.imgmsg_to_cv2(msg) # 转换成OpenCV格式的图像
    cv2.imshow(&#39;Image&#39;, img) # 显示图像
    cv2.waitKey(1)

# 遍历bag文件,读取图像数据
for topic, msg, t in bag.read_messages(topics=[&#39;/camera/image_raw&#39;]):
    image_callback(msg)上述示例代码中,通过rosbag.Bag打开ROS Bag文件,使用bag.read_messages遍历指定的topic,并使用定义的回调函数对每个动静进行措置。此中,RTK数据使用NavSatFix动静类型,点云数据使用PointCloud2动静类型,图像数据使用Image动静类型,并通过cv_bridge模块将ROS图像动静转换为OpenCV图像格式。
基于百度Apollo的系统
对于基于百度Apollo的数据采集系统,传感器数据是存储在Apollo的ROS Bag文件中的。Apollo采用了基于ROS的动静机制,各个传感器的数据以ROS动静的形式发布到对应的topic中,并由Apollo的记录模块(Record)订阅这些topic,将数据保留到ROS Bag文件中。
具体地,Apollo的ROS Bag文件中包含多个topic,此中每个topic对应一个传感器的数据流,例如,/apollo/sensor/gnss/raw_data、/apollo/sensor/velodyne64/compensator/PointCloud2等。每个topic中包含了多个ROS动静,例如NavSatFix、PointCloud2等。
与普通的ROS Bag文件分歧的是,Apollo的ROS Bag文件还包含了特定的数据格式和布局,便利后续的数据措置和使用。例如,对于点云数据,Apollo的ROS Bag文件中使用了自定义的protobuf格式,对PointCloud2动静进行了封装和压缩,以提高数据的存储效率和传输速度。
除了ROS Bag文件外,Apollo还撑持将数据上传到Apollo Data Service(ADS)平台,以便于数据的共享和打点。上传到ADS的数据可以通过Web界面或API进行访谒和下载。
更多系统
除了ROS和Apollo,还有一些其他的自动驾驶车辆的数据采集系统,例如:

[*]Udacity数据采集器(Udacity Data Acquisition (UDA)):由Udacity公司开发,用于采集数据、训练和测试自动驾驶汽车。该系统包罗多个传感器,包罗前置摄像头、后置摄像头、激光雷达、GPS和IMU。
[*]Waymo数据采集系统:由Waymo公司开发,用于采集数据、训练和测试自动驾驶汽车。该系统包罗多个传感器,包罗激光雷达、摄像头和雷达。
[*]nuScenes数据集:由nuTonomy公司开发,包罗多个传感器数据,如激光雷达、摄像头、雷达和GPS。该数据集用于训练和测试自动驾驶车辆。
[*]comma.ai数据采集器:由comma.ai公司开发,用于采集数据、训练和测试自动驾驶汽车。该系统包罗多个传感器,包罗前置摄像头、后置摄像头、GPS和IMU。
这些数据采集系统的具体实现方式和数据格式可能有所分歧,但它们都致力于采集高质量、多样化的数据以撑持自动驾驶车辆的成长。
第三章:数据清洗

数据清洗的目的

自动驾驶数据清洗的主要目的是为了减少错误和噪声,提高数据的质量和可用性,以撑持更精准和可靠的自动驾驶决策。数据清洗是数据预措置中非常重要的一步,因为原始数据凡是包含各种类型的噪声、异常值和错误,这些因素可能会导致模型训练不准确或预测不准确。通过对数据进行清洗,可以排除这些干扰因素,使得数据更加规范化和可靠。
数据清洗的方针包罗:

[*]数据去重:由于采集过程中可能存在反复数据的情况,因此需要对数据进行去重,以减少冗余数据对模型训练和预测的干扰。
[*]缺掉值措置:在数据采集和传输过程中,可能会呈现某些传感器数据缺掉的情况。针对这种情况,可以采用插值等方式进行缺掉值措置,以充实操作可用数据。
[*]异常值检测和措置:在数据采集和传输过程中,可能会呈现某些数据异常的情况,如传感器损坏或读数错误。针对这种情况,需要对数据进行异常值检测和措置,以排除这些干扰因素。
[*]数据格式转换:分歧传感器采集的数据可能具有分歧的数据格式,因此需要将其转换为统一的格式,以便进行后续的数据措置和分析。
[*]数据标注:对于某些应用场景,需要对数据进行标注,以便训练和测试自动驾驶模型。例如,对于图像数据,需要标注图像中的物体和路标;对于激光雷达数据,需要标注物体的位置和尺寸等。
通过对数据进行清洗和预措置,可以减少错误和噪声,提高数据的可靠性和质量,从而为自动驾驶系统的开发和优化提供更加可靠和准确的数据撑持。
潜在的数据问题

在实际的数据采集中,常见的数据问题包罗硬件和软件(系统)两方面。
分歧传感器的潜在硬件缺陷总结如下:
传感器类型常见数据异常问题激光雷达1. 视野被遮挡,导致数据缺掉;2. 环境光线干扰,导致数据噪声;3. 激光雷达自身故障,导致数据异常。摄像头1. 光线条件较差,导致图像模糊;2. 摄像头自身故障,导致图像掉真;3. 摄像头角度不佳,导致视野盲区。GPS/IMU1. GPS信号干扰,导致定位不准确;2. IMU自身故障,导致姿态数据异常;3. 天气条件恶劣,导致信号衰减。雷达1. 雷达自身故障,导致数据异常;2. 环境条件不佳,导致数据噪声;3. 雷达分辩率不足,导致数据缺掉。红外线传感器1. 温度变化较大,导致数据异常;2. 红外线传感器自身故障,导致数据丢掉;3. 环境光线干扰,导致数据噪声。采集软件(系统)的潜在问题包罗:

[*]数据丢掉或不完整:由于传感器故障、数据传输中断、存储设备故障等原因,数据可能会丢掉或不完整,导致后续数据分析和应用时呈现问题。
[*]传感器的校准(标定)问题:传感器在使用前需要进行校准,包罗内部参数校准和外部参数校准。如果传感器校准不准确,会影响到后续的数据采集和应用。
[*]多传感器时间同步问题:在数据采集的过程中,分歧传感器所采集到的数据的时间戳往往存在误差,导致数据的时间同步问题。
[*]数据质量不不变:由于环境、光照、天气等因素的影响,数据的质量可能会呈现不不变的情况,需要对数据进行筛选和清洗。
[*]数据量大和措置难度高:自动驾驶数据采集的数据量凡是非常大,而且数据的措置和分析也斗劲复杂,需要高效的措置和存储方案。
[*]不规范的采集行为:司机和操作员的不规范操作也是自动驾驶数据采集中的一个常见问题。这些操作可能会导致数据损坏、遗漏或不准确,从而影响数据的质量。例如,司机可能会在行驶过程中不按照预设路线行驶,或者操作员可能会在采集过程中误操作,导致数据不完整或不准确。
[*]隐私和安全问题:自动驾驶车辆采集的数据涉及到车辆位置、路况、行驶轨迹等敏感信息,需要进行隐私庇护和安全防范。
为了解决上述问题,需要和工程师甚至软硬件的厂家密符合作,修复数据采集和数据措置系统。在某些情况下,还需要改换硬件。此中,软硬件自研是控制问题的重要途径。
数据清洗的法式和方式

自动驾驶数据清洗的法式和方式包罗:

[*]数据预措置:包罗数据采集、存储和读取等过程,需要对数据进行清洗、去重、转换格式等操作,确保数据质量和一致性。
[*]数据筛选:通过设定阈值或法则,筛选出异常数据,例如无效数据、不合理数据等,以便后续措置和分析。
[*]数据修复:对于数据缺掉或异常的情况,需要通过插值、平滑等方式进行修复,以确保数据完整性和准确性。
[*]数据尺度化:对于分歧传感器或分歧厂商采集的数据,需要进行统一格式或单元的转换,以便后续的数据整合和分析。
[*]数据可视化:通过图表、地图等方式,对数据进行可视化呈现,便操作户进行数据分析和决策。
尽管分歧公司基于自身业务会有分歧的措置逻辑,但这些数据管线基本上城市包罗在上述范围之内。
案例一
RTK定位信号和激光雷达点云的时间分歧步是自动驾驶数据采集过程中常见的问题之一,这会导致定位信息和激光雷达数据的时间戳纷歧致,从而影响数据措置的精度和正确性。以RTK定位信号和激光雷达点云的时间分歧步问题为例,解释数据清洗的法式和方式:
使用Python中的ROS东西包读取采集的RosBag文件,获取包含RTK和激光雷达数据的动静。
首先需要对采集到的数据进行预措置,以确定RTK和激光雷达数据之间的时间戳偏移量。可以使用以下方式:

[*]对RTK和激光雷达的时间戳进行同步,选择一个时间点,使得两个时间戳的差值最小。
[*]对于时间戳的措置,可以采用Python中的pandas库来读取和措置RosBag文件中的数据,使用pandas的dataframe来存储数据,并将RTK和激光雷达数据分袂存储在分歧的dataframe中。
确定偏移量后,对两个数据源进行时间同步措置,使它们具有不异的时间戳。具体法式如下:

[*]对于RTK数据,将时间戳与偏移量相加。这里可以用线性插值。
[*]对于激光雷达点云数据,使用插值方式将点云数据进行时间戳同步。凡是使用线性插值或样条插值方式进行时间戳的同步。这一法式又称点云demotion。
最后,将清洗后的数据保留为新的RosBag文件或其他数据格式,以供后续的数据措置和分析使用。
综上所述,清洗RTK定位信号和激光雷达点云的时间同步问题需要进行数据预措置、时间同步和数据输出三个法式。数据预措置需要确定RTK和激光雷达数据之间的时间戳偏移量,时间同步需要使用插值方式将点云数据进行时间戳同步,数据输出需要将清洗后的数据保留为新的数据文件。
案例二
更困难的情形是两个传感器的授时是纷歧致的,这将导致时间同步掉败。如果需要排查这两个传感器的授时是否准确和一致,可以进行以下法式:

[*]使用时间同步东西:首先可以使用一些时间同步东西对两个传感器的授时进行斗劲。常用的时间同步东西包罗Ptpd、Chrony和NTP等,这些东西可以辅佐将两个传感器的时间同步,使它们的授时精度和误差尽可能一致。
[*]查抄授时误差:通过斗劲两个传感器的时间戳,可以计算它们之间的授时误差。如果误差较大,则说明两个传感器的授时可能存在问题。
[*]查抄数据采集软件:如果两个传感器的授时已经同步而且授时误差较小,但数据还是存在时间分歧步的问题,那么可能是数据采集软件的问题。可以查抄数据采集软件的设置和配置,以确保它们能够正确地措置传感器数据并将它们同步。
[*]进行实地测试:最后,可以进行实地测试以验证两个传感器之间的授时是否一致。例如,在一个已知位置和速度的场景下,可以同时采集两个传感器的数据,并将它们进行斗劲,以查抄它们之间的时间同步情况。
数据清洗的东西和技术

自动驾驶采集数据的清洗在分歧情形下不尽不异,且车端采集的修复和更新对于数据清晰也同样重要。
离线数据清洗
自动驾驶数据的排查和清洗凡是需要使用一些特定的东西和技术,以下是常用的一些东西和技术:

[*]数据可视化东西:例如Matplotlib、Seaborn等,可以用于可视化数据,辅佐分析数据异常。
[*]数据措置东西:例如Pandas、Numpy等,可以用于对数据进行措置、清洗、转换和分析。
[*]机器学习东西:例如Scikit-learn、TensorFlow等,可以用于构建模型、训练数据和进行异常检测。
[*]数据库:例如MySQL、MongoDB等,可以用于存储和打点数据。
[*]ROS和Apollo:自动驾驶范围的两个主要平台,提供了强大的数据采集、措置、分析和可视化东西。
[*]GPS时钟同步东西:例如NTP(Network Time Protocol)、PTP(Precision Time Protocol)等,可以用于确保各个传感器的授时一致。
[*]数据校准东西:例如IMU校准东西、激光雷达校准东西等,可以用于校准传感器的偏差和误差,提高数据准确性。
[*]数据标注东西:例如LabelImg、Labelbox等,可以用于给图像和点云数据进行标注,便利后续训练模型。
以上东西和技术都可以应用于自动驾驶数据的排查和清洗,按照具体问题和数据类型选择合适的东西和技术可以更高效地措置数据。
车端数据监控
自动驾驶车辆可以通过车端的监控手段和东西来实现实时监测和分析。以下是一些常见的车端监控东西和技术:

[*]车载数据记录仪:用于记录车辆行驶时的各种数据,如车速、转向角度、制动力等,以及传感器采集的图像、点云、雷达等数据。通过这些数据可以对车辆的行驶情况进行详细的分析和诊断。
[*]实时诊断东西:通过对车载数据的实时分析,可以快速发现车辆故障和异常情况。这些东西可以监测车辆的传感器状态、计算机性能、控制指令等信息,并及时发出警报。
[*]长途控制和监控系统:通过长途控制和监控系统,可以实现对车辆的长途操控和监测。操作员可以长途控制车辆的行驶、制动、转向等功能,并实时监测车辆的状态和环境信息。
[*]驾驶行为分析东西:通过对驾驶员的行为和动作进行分析,可以评估其驾驶技能和安全性能。这些东西可以监测驾驶员的注意力、反映时间、姿态变化等指标,并对其进行评分和提示。
总之,通过车端的监控手段和东西,可以实现对自动驾驶车辆的实时监测和分析,提高其行驶安全性和性能不变性。



特斯拉Model 3 硬件拆解

量产车的方式
监控和诊断售卖出去的量产车采集的自动驾驶数据需要通过长途诊断和升级技术来实现。以下是一些常见的监控和诊断技术:

[*]OTA技术:OTA(Over-The-Air)技术可以通过无线网络更新车辆软件和数据。车辆在行驶过程中,将实时采集的数据传回云端,厂商可以通过OTA技术将新的算法和模型部署到车辆上。
[*]长途数据采集:车辆在行驶过程中,将实时采集的数据传回云端,厂商可以通过长途数据采集技术,实时监控车辆数据的采集情况,及时发现并解决数据采集异常问题。
[*]长途诊断:厂商可以通过长途诊断技术,长途访谒车辆的控制单元,获取车辆的实时数据,诊断车辆故障,并提供长途撑持和修复处事。
[*]数据质量监控:厂商可以通过数据质量监控技术,实时监控车辆数据的采集质量和准确性,及时发现并措置数据异常问题。
总之,通过OTA技术、长途数据采集、长途诊断和数据质量监控等技术,可以实现对售卖出去的量产车采集的自动驾驶数据的监控和诊断。具体车型的案例需要按照分歧车企和车型进行考虑,以下是一些参考案例:

[*]特斯拉:特斯拉可以通过其长途诊断东西对车辆进行长途监控和诊断。特斯拉车主可以通过手机应用或者车载界面向特斯拉提交诊断请求,特斯拉技术人员可以对车辆进行长途故障诊断和修复。此外,特斯拉还可以通过车辆固件更新来修复和更新车辆数据采集系统。
[*]Waymo:Waymo通过其自主开发的车辆控制系统和云端打点平台对其自动驾驶车队进行监控和打点。Waymo车辆上配备有各种传感器和摄像头,可以实时收集车辆周围的数据,并将数据上传至云端进行存储和措置。Waymo的技术人员可以通过云端打点平台对车辆进行监控和诊断,实时获取车辆的状态和数据。
[*]百度Apollo:百度Apollo车载设备上集成了各种传感器和摄像头,可以实时采集车辆周围的数据,并将数据上传至云端进行存储和措置。百度Apollo通过其自主开发的车载设备打点平台对车辆进行监控和打点,可以实时获取车辆的状态和数据,并对车辆进行长途故障诊断和修复。
[*]MobilEye:MobilEye通过其自主开发的车载设备和云端打点平台对车辆进行监控和打点。MobilEye的车载设备可以实时采集车辆周围的数据,并将数据上传至云端进行存储和措置。MobilEye的技术人员可以通过云端打点平台对车辆进行监控和诊断,实时获取车辆的状态和数据。
页: [1]
查看完整版本: 万字长文综述自动驾驶的数据采集和ETL(上)