百度Apollo:激光雷达检测技术深度解析

news2025/6/9 12:46:59

在这里插入图片描述

🎬 鸽芷咕:个人主页

 🔥 个人专栏:《linux深造日志》《粉丝福利》

⛺️生活的理想,就是为了理想的生活!

⛳️ 粉丝福利活动

  • 参与方式:通过连接报名观看课程,即可免费获取精美周边

  • ⛳️活动链接:《自动驾驶新人之旅》

  • 📆 活动时间长期有效 | 课程姓名填写 鸽芷咕 学号 1111

完成后加博主微信填写问卷领取礼品,也可根据《活动步骤》 完成领取

🔥 注:可以拉取进度条观看,超过%50即可领取百度周边
在这里插入图片描述

⛳️ 文章末尾扫码加入粉丝群,不定期发放粉丝福利,各种专业书籍免费赠送

文章目录

  • ⛳️ 粉丝福利活动
  • 引入
  • 一、 激光雷达在自动驾驶中的角色
  • 二、激光雷达的配置文件
    • 2.1 配置文件
  • 三、激光雷达追踪
    • 3.1 配置文件
  • 四、Apollo激光雷达的应用
    • 4.1 数据融合
    • 4.2 障碍物检测
    • 4.3 实时地图构建
    • 4.4 激光雷达技术的挑战和创新
  • 未来展望

引入

在自动驾驶技术的飞速发展中,感知系统的关键组件之一是激光雷达。百度Apollo平台作为领先的自动驾驶解决方案之一,其激光雷达检测技术在实现高精度环境感知方面发挥着关键作用。

一、 激光雷达在自动驾驶中的角色

激光雷达(LiDAR)是一种通过发射激光束并测量其返回时间来感知周围环境的传感器。在自动驾驶中,激光雷达的角色不可忽视,因为它提供了高精度的三维空间信息,用于检测障碍物、构建地图以及进行定位。
在这里插入图片描述

二、激光雷达的配置文件

激光雷达检测用于 3D 目标检测,它的输入是激光雷达点云,输出为检测到的物体的类型和坐标,具体的实现在lidar_detection_component中。它的流水线配置文件在

  • modules/perception/pipeline/config/lidar_detection_pipeline.pb.txt

一共分为 7 个阶段,其 POINTCLOUD_DETECTION_PREPROCESSORPOINTCLOUD_DETECTION_POSTPROCESSOROBJECT_FILTER_BANK 各包含 1 个

在这里插入图片描述

2.1 配置文件

和上图对应,lidar_detection_component组件一共分为 7 个阶段,具体的流水线配置如下。


pipeline_type: LIDAR_DETECTION

stage_type: POINTCLOUD_PREPROCESSOR
stage_type: POINTCLOUD_DETECTION_PREPROCESSOR
stage_type: MAP_MANAGER
stage_type: POINT_PILLARS_DETECTION
stage_type: POINTCLOUD_DETECTION_POSTPROCESSOR
stage_type: OBJECT_BUILDER
stage_type: OBJECT_FILTER_BANK

stage_config: {
  stage_type: POINTCLOUD_PREPROCESSOR
  enabled: true

  pointcloud_preprocessor_config: {
    filter_naninf_points: false
    filter_nearby_box_points: false
    box_forward_x: 2.0
    box_backward_x: -2.0
    box_forward_y: 2.0
    box_backward_y: -2.0
    filter_high_z_points: false
    z_threshold: 5.0
  }
}

stage_config: {
  stage_type: POINTCLOUD_DETECTION_PREPROCESSOR
  enabled: true

  plugin_config: {
    plugin_type: POINTCLOUD_DOWN_SAMPLE
    enabled: true

    pointcloud_downsample_config: {
      enable_downsample_pointcloud : true
      enable_downsample_beams : true
      x_min_range : -74.88
      x_max_range : 74.88
      y_min_range : -74.88
      y_max_range : 74.88
      z_min_range : -2.0
      z_max_range : 4.0
    }
  }

  pointcloud_detection_preprocessor_config:{

  }
}

stage_config: {
  stage_type: MAP_MANAGER
  enabled: true

  map_manager_config: {
    update_pose: false
    roi_search_distance: 120.0
  }
}

stage_config: {
  stage_type: POINT_PILLARS_DETECTION
  enabled: true

  point_pillars_detection_config: {

  }
}

stage_config: {
  stage_type: POINTCLOUD_DETECTION_POSTPROCESSOR
  enabled: true

  plugin_config: {
    plugin_type: POINTCLOUD_GET_OBJECTS
    enabled: true

    pointcloud_get_objects_config:{

    }
  }
}

stage_config: {
  stage_type: OBJECT_BUILDER
  enabled: true

  object_builder_config: {

  }
}

stage_config: {
  stage_type: OBJECT_FILTER_BANK
  enabled: true

  plugin_config: {
    plugin_type: ROI_BOUNDARY_FILTER
    enabled: true

    roi_boundary_filter_config: {
      distance_to_boundary_threshold: -1.0
      confidence_threshold: 0.5
      cross_roi_threshold: 0.6
      inside_threshold: 1.0
    }
  }

  object_filter_bank_config: {

  }
}

lidar_detection_config: {

}

三、激光雷达追踪

激光雷达追踪是一种使用激光雷达(LIDAR)技术来检测、跟踪和预测物体运动的过程。它通常涉及到对激光雷达数据的处理和分析,以确定物体的位置、速度和轨迹。

而在apollo 里面激光雷达跟踪用于追踪上面检测到的 3D 目标对象,它的输入是激光雷达点云检测结果,输出为跟踪到对象的 ID,具体的实现在 lidar_tracking_component 中。

它的流水线配置文件在 modules/perception/pipeline/config/lidar_tracking_pipeline.pb.txt 中,一共分为 2 个阶段,每个阶段各包含 2 个算法插件。

在这里插入图片描述

3.1 配置文件


stage_type: MLF_ENGINE
stage_type: FUSED_CLASSIFIER


stage_config: {
  stage_type: MLF_ENGINE
  enabled: true

  plugin_config: {
    plugin_type: MLF_TRACK_OBJECT_MATCHER
    enabled: true

    mlf_track_object_matcher_config: {
      foreground_mathcer_method: "MultiHmBipartiteGraphMatcher"
      background_matcher_method: "GnnBipartiteGraphMatcher"
      bound_value: 100
      max_match_distance: 4.0
    }
  }

  plugin_config: {
    plugin_type: MLF_TRACKER
    enabled: true

    mlf_tracker_config: {
      filter_name: "MlfShapeFilter"
      filter_name: "MlfMotionFilter"
    }
  }

  mlf_engine_config: {
    main_sensor: "velodyne128"
    use_histogram_for_match: true
    histogram_bin_size: 10
    output_predict_objects: false
    reserved_invisible_time: 0.3
    use_frame_timestamp: true
  }
}

stage_config: {
  stage_type: FUSED_CLASSIFIER
  enabled: true

  plugin_config: {
    plugin_type: CCRF_ONESHOT_TYPE_FUSION
    enabled: true

    ccrf_type_fusion_config: {
      classifiers_property_file_path: "./data/perception/lidar/models/fused_classifier/classifiers.property"
      transition_property_file_path: "./data/perception/lidar/models/fused_classifier/transition.property"
      transition_matrix_alpha: 1.8
    }
  }

  plugin_config: {
    plugin_type: CCRF_SEQUENCE_TYPE_FUSION
    enabled: true

    ccrf_type_fusion_config: {
      classifiers_property_file_path: "./data/perception/lidar/models/fused_classifier/classifiers.property"
      transition_property_file_path: "./data/perception/lidar/models/fused_classifier/transition.property"
      transition_matrix_alpha: 1.8
    }
  }

  fused_classifier_config {
    one_shot_fusion_method: "CCRFOneShotTypeFusion"
    sequence_fusion_method: "CCRFSequenceTypeFusion"
    enable_temporal_fusion: true
    temporal_window: 20.0
    use_tracked_objects: true
  }
}

四、Apollo激光雷达的应用

4.1 数据融合

Apollo平台采用多传感器融合的方法,将来自不同传感器的信息整合在一起,以获取更全面、准确的环境感知。激光雷达的数据与摄像头、毫米波雷达等传感器的数据相融合,提高了感知系统的鲁棒性。

在这里插入图片描述

4.2 障碍物检测

激光雷达通过测量返回时间来计算物体的距离,并通过旋转来获取物体的方位。这些数据用于高精度的障碍物检测,能够识别车辆、行人、建筑物等。

4.3 实时地图构建

激光雷达还用于实时地图构建,为自动驾驶车辆提供高精度的地图信息。这对于路径规划和决策制定至关重要。

4.4 激光雷达技术的挑战和创新

激光雷达技术在自动驾驶中面临着一些挑战,如对恶劣天气的适应性、点云处理的复杂性等。为了解决这些问题,Apollo平台在激光雷达技术上不断创新,采用先进的信号处理算法和机器学习技术,提高系统的性能。

未来展望

随着技术的不断发展,激光雷达技术在自动驾驶中将继续发挥重要作用。未来,我们可以期待更小型、高分辨率的激光雷达设备,以及更智能、自适应的感知系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1355155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

prometheus grafana nginx 安装配置和使用

文章目录 前传prometheus exporter容器监控nginxnginx需要加载stub_status监控查看有没有,如果有,去配置下nginx重要,需要重启nginx测试监控是否成功 prometheus中添加nginx-exporter配置 grafana外传 前传 prometheus grafana的安装使用&am…

防爆气象站跟传统气象站相比有哪些优势?

防爆气象站是一种特殊的气象站,设计用于在易燃易爆、高温、潮湿等恶劣环境下进行气象监测。以下是防爆气象站的优点: 防爆性能:防爆气象站能够承受极端恶劣的环境条件,可以在易燃易爆、高温、潮湿等危险环境下进行工作&#xff0…

企业无法处理海量的大文件,FTP不可靠该如何进行替代?

FTP是一项标准协议,用于在网络中进行文件传输,最早于1971年问世,被认为是互联网的基石之一。FTP可在不同操作系统和网络环境下实现文件上传和下载,具备方便、迅速和高效的特性,广泛应用于网站建设、软件更新、数据备份…

Django 8 通用视图基础

1. 什么是通用视图 1. 在terminal 输入 django-admin startapp the_12回车 2. tutorial\settings.py 注册 INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.sta…

权威外媒聚焦:Messari强调波场TRON在全球加密支付领域的引领作用

近日,金融时报、费加罗报及美联社等海外权威媒体就波场TRON 在全球加密支付领域的重要进展发布了相关报道。报道引述加密研究机构Messari 《Crypto Theses for 2024》年度报告,重点强调了波场TRON在推动全球加密货币支付尤其是稳定币USDT应用方面的显著成就。 报道提到,波场TR…

【LeetCode:114. 二叉树展开为链表 | 二叉树 + 递归】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Vue3+Typescript+setup / Vue2使用scrollIntoView()实现锚点跳转指定列表

在标签上添加ref属性来引用DOM元素, Vue2中使用$refs来获取该DOM元素并调用scrollIntoView()方法。 使用ref"yearDiv"在每个年份的div元素上添加了一个引用。然后,在yearClick方法中,我们通过this.$refs.yearDiv[year]来获取对应…

HTML5-新增表单input属性

新增表单属性 form控件主要新增的属性: autocomplete 是否启用表单的自动完成功能,取值:on(默认)、off novalidate 提交表单时不进行校验,默认会进行表单校验 autocomplete属性 概念:autocomplete属性…

Ontrack EasyRecovery(易恢复中国)2024专业数据文件恢复软件

Ontrack EasyRecovery(易恢复中国)是全球著名数据厂商Kroll Ontrack出品的一款专业数据文件恢复软件.EasyRecovery数据恢复软件支持恢复不同存储介质数据:硬盘,光盘,U盘/移动硬盘,数码相机,RAID磁盘阵列数据恢复修复等,EasyRecovery中文版可以恢复被删除或丢失的包括文档,表格,…

nodejs-day1——模块、第三方包管理

自定义模块 我们创建的每个JS文件都是一个自定义模块,并且具有模块作用域,也就是在一个模块中创建的变量、常量、函数等等一切,都只能在当前模块中使用 优点: 1.共享(导出/暴露)内容给其它模块用&#x…

rabbitmq延时队列相关配置

确保 RabbitMQ 的延时消息插件已经安装和启用。你可以通过执行以下命令来安装该插件: rabbitmq-plugins enable rabbitmq_delayed_message_exchange 如果提示未安装,以下是安装流程: 查看mq版本: 查看自己使用的 MQ(…

基于B/S架构的数字孪生智慧监所可视化监管系统

1 前言 物联网技术的发展使云计算技术得到了迅猛的发展及广泛的应用,智能体系的创建已经成为监狱发展的必然趋势。 智慧监狱的创建、智能化管理的推行是监狱管理的创新,也是监狱整体工作水平提升的具体体现。 1.1 建设背景 近年来,司法部不…

数字孪生与边缘计算的结合

数字孪生与边缘计算的结合可以在物理实体附近进行实时数据处理和决策,从而提高响应速度、降低延迟,并有效地利用边缘资源。以下是数字孪生在边缘计算中的一些应用,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开…

天津最新web前端培训班 如何提升web技能?

随着互联网的迅猛发展,web前端成为了一个热门的职业方向。越来越多的人希望能够通过学习web前端技术来提升自己的就业竞争力。为了满足市场的需求,许多培训机构纷纷推出了web前端培训课程。 什么是WEB前端 web前端就是web给用户展示的东西,…

sqlserver把Long类型的时间转换为可视化的时间

SqlServer 把Long类型日期还原yyyy-MM-dd HH:mm:ss格式日期: SELECT CONVERT(DATETIME, Dateadd(second, 1704330940847 / 1000, 19700101 08:00), 111) AS tt SqlServer 把Long类型日期还原yyyy-MM-dd格式日期: SqlServer中,按照UTC计算标准…

MATLAB对数据的处理(导入,异常处理)

MATLAB对数据的处理 文章目录 MATLAB对数据的处理1、MATLAB导入数据导入的范围导入类型 2、MATLAB处理缺失值和异常值 1、MATLAB导入数据 最常用的就是导入excel表格数据,主页选项卡-导入数据-选择excel文件。 导入的范围 导入数据的范围默认是从第二行开始的&am…

增删改查语句实现了解不同的函数与特殊字符unionunion all区别

一、crud(增删改查) 1.1、查询 概念: 查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作 注:在MySQL中,当执行一条SQL语句后,系…

【栈越界】变量未赋值前提下,值却发生改变??

首先,提出2个问题: 数组越界 和 栈越界是一回事吗?以上两种越界若有发生,程序一定会跑飞吗? 目录 1. 一个栈越界的例子2. 程序的内存分部3. RAM 空间示意图 1. 一个栈越界的例子 创建 STM32 工程并写了一段测试代码 …

通往人工智能的 Go 之路

Agency 该库旨在为那些希望通过清晰、高效且符合 Go 语言惯例的方法来探索大型语言模型(LLMs)和其他生成式人工智能的开发人员而设计。 特点 纯 Go 语言:快速、轻量级,静态类型,无需涉及 Python 或 JavaScript编写清晰…

P1423 小玉在游泳python

s float(input()) sum 0 step 0 meter 2.0 while sum < s:sum metermeter 0.98 * meterstep 1 print(step)