当前位置: 首页 > news >正文

复杂环境下实时鲁棒3D激光雷达定位

复杂环境下实时鲁棒3D激光雷达定位

一、摘要

定位是机器人领域的重要研究方向。本篇文章里,我们提出了一种基于3D激光雷达的复杂环境下的定位方案。我们首先使用GPS和雷达建立一张点云地图,然后在匹配定位的时候从大地图中分割出一个小地图,这样能够减少匹配时间,同时提高鲁棒性。在定位阶段我们融合了多种传感器,以提高位姿输出频率和精度。我们在一个UGV上对融合定位算法进行了验证,即使在六个月以前建立的地图上做定位,仍然能取得10cm的定位精度以及很高的鲁棒性。该系统已经在一个环境复杂的工厂内持续运行了六个月,累计里程达到2000km。

image

附赠自动驾驶学习资料和量产经验:链接

二、主要算法

1、建立点云地图

建图三大要素:前端、约束和后端。

在这里前端选用的是loam,相比于icp或者ndt,它的匹配效率更高,能够使系统达到实时。约束包括闭环和gps,后端使用的是g2o。后端概率图的组成如下图所示

image

里程计运行过程中,输出位姿,在连续输出的位姿中选取关键帧,以关键帧作为概率图的节点,相邻关键帧之间的相对位姿以及闭环检测到的相对位姿作为边,最后把gps的位置作为先验边,就完成了概率图构建。

优化之后会得到修正的关键帧位姿,以此位姿为基础拼接对应的关键帧点云即可得到点云地图。

2、基于地图的匹配定位

地图定位其实就是当前帧点云和地图点云之间的匹配。此处采用的是ICP方法,因为点云匹配需要较好的初值,所以需要为每帧提供预测位姿。预测采用的是运动模型预测,即以上一帧和这一帧的匹配结果,给出下一帧的预测值。

同时,为了提高匹配效率和鲁棒性,不能直接和整张点云地图匹配,而应该和当前位置附近的点云匹配,所以每次匹配之前都根据预测位置,在大地图里分割出一个小地图用于匹配。

最后因为原始点云稠密度比较高,所以在匹配之前对小地图和当前帧点云都使用voxel_filter做一次滤波。

3、融合定位

在得到基于地图的匹配定位以后,为了提高输出频率和定位稳定性,需要和其他传感器进行融合,此处选用里程计。

在滤波算法上,由于EKF仅对当前同一时刻的信息进行融合,而此处ICP匹配具有延时,所以采用SSKF进行滤波。

三、实验

作者把该方法在kitti数据集上做了测试,精度指标如下表所示。

image

随后,作者自己采集数据进行了测试。结果如下图,其中(a)(b)©(d)(e)是轨迹,(f)是前几条轨迹的误差。

image

四、结论

作者提出了一种以3D激光雷达为核心的定位方案。首先使用GPS和雷达建立点云地图,然后以该地图为基础进行了匹配定位,最后以匹配结果为观测,加上里程计进行了融合定位。定位精度、稳定性均达到了较高的水平,并且在实际环境中经过了长时间定位测试的检验。

相关文章:

复杂环境下实时鲁棒3D激光雷达定位

复杂环境下实时鲁棒3D激光雷达定位 一、摘要 定位是机器人领域的重要研究方向。本篇文章里,我们提出了一种基于3D激光雷达的复杂环境下的定位方案。我们首先使用GPS和雷达建立一张点云地图,然后在匹配定位的时候从大地图中分割出一个小地图&#xff0c…...

9.3.k8s的控制器资源(deployment部署控制器)

目录 一、deployment部署控制器概念 二、deployment资源的清单编写 三、小结 功能 使用场景 原理 四、deployment实现升级和回滚 1.编辑deployment资源清单(v1版本) 2.创建service资源用于访问 ​编辑 3.修改deploy清单中pod镜像版本为V2 4…...

通过符号程序搜索提升prompt工程

原文地址:supercharging-prompt-engineering-via-symbolic-program-search 通过自动探索​​大量提示变体来找到更好的提示 2024 年 4 月 22 日 众所周知,LLMs的成功在很大程度上仍然取决于我们用正确的指导和例子来提示他们的能力。随着新一代LLMs变得越…...

js开启子线程及其使用

众所周知,js是单线程,但是可以开启子线程来帮忙处理一些数据,但是这个子线程是有限制的 1.必须是同源 2.完全受主线程控制 3.不能在子线程中操作dom节点 4.子线程没有window,可以使用self 5.等等 具体的查看官网 进程切换是要耗时…...

excel办公系列-图表元素及其作用

Excel图表元素及其作用 Excel图表由各种元素组成,每个元素都有其特定的作用,可以帮助我们更清晰地传达数据信息。下面将介绍Excel图表中常见的一些元素及其作用,并附上相关截图。 原始数据 月份 网站访问量 (万次) 销售额 (万…...

rocketmq dashboard控制台中topic状态无法展示

现象 在使用rocketmq控制台查看topic状态和订阅状态时,出现错误和没有信息的情况。 原因 rocketmq控制台版本问题,最新版本为1.0.1,支持rocketmq5版本,如果使用rocketmq4版本的服务无法兼容对应的数据。同理1.0.0版本也无法兼容ro…...

GPT每日面试题-Typescript中type和interface的区别

充分利用ChatGPT的优势,帮助我们快速准备前端面试。今日问题:typescript中type和interface的区别? Q:如果在前端面试中,被问到typescript的type和interface的区别是什么,怎么回答最好? A:当谈…...

python数据分析——大数据伦理风险分析

大数据伦理风险分析 前言一、大数据伦理二、大数据技术伦理风险2.1算法安全性、可信赖性及稳定性风险及其应对2.2算法的可解释性风险及其应对2.3算法的决策不可预见性风险及其应对2.4数据收集与储存中的泄漏风险及其应对2.5案例:某大型电商平台内部员工涉嫌窃取50亿…...

配置 Trunk,实现相同VLAN的跨交换机通信

1.实验环境 公司的员工人数已达到 100 人,其网络设备如图所示。现在的网络环境导致广播较多网速慢,并且也不安全。公司希望按照部门划分网络,并且能够保证一定的网络安全性。 其网络规划如下。 PC1和 PC3为财务部,属于VLAN 2&…...

Python 植物大战僵尸

文章目录 效果图项目结构实现思路源代码 效果图 项目结构 实现思路 下面是代码的实现思路: 导入必要的库和模块:首先,我们导入了Python的os、time库以及pygame库,还有植物大战僵尸游戏中用到的各个植物和僵尸的类。 初始化游戏和…...

SpringBoot:实战项目TLIAS智能学习辅助系统1.1

SpringBootWeb项目 TILAS智能学习辅助系统 需求 部门管理 查询部门列表 删除部门 新增部门 修改部门 员工管理 查询员工列表(分页) 删除员工 新增员工 修改员工 准备工作 导入依赖 web(2.7.6) mybatis mysql驱动 lombok 准备好包结构 Controller->Servi…...

ubuntu-meta-22.04桌面版+ros2-humble 镜像

ubuntu-meta-22.04桌面版ros2-humble 镜像 下载地址: 链接:https://pan.baidu.com/s/1PSBe4EqWch44OQUlkCCEig?pwdknty 提取码:knty 镜像文件较大,分成了两个压缩包,下载后直接解压ubuntu22.04-desk-meta-ros2-arm (…...

『大模型笔记』Code Example: Function Calling with ChatGPT

Code Example: Function Calling with ChatGPT 文章目录 一. Code Example: Function Calling with ChatGPT二. 参考文献一. Code Example: Function Calling with ChatGPT from openai import OpenAI from dotenv import load_dotenv import json# --------------------------…...

【智能算法应用】混合粒子群算法求解CVRP问题

目录 1.算法原理2.数学模型3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】粒子群算法(PSO)原理及实现 经典PSO算法用于连续空间优化问题,VRP问题为离散组合优化问题,涉及如何有效地分配一组车辆去访问多个客户点&…...

Python项目开发实战:飞机大战游戏(案例教程)

一、引言 飞机大战游戏是一款经典的射击类游戏,玩家需要驾驶飞机在空中与敌人进行战斗,躲避敌人的攻击,同时发射子弹消灭敌人。本文将详细介绍如何使用Python及其相关库来开发一款简单的飞机大战游戏,包括游戏的设计思路、开发过…...

音频压缩的方法有哪些?3种简单的压缩工具分享

音频压缩的方法有哪些?音频压缩是处理音频文件时的一个重要步骤,旨在减小文件大小,同时尽量保持原始音频的质量。随着数字媒体的普及,音频文件的大小成为了一个重要的考虑因素。通过有效的音频压缩技术,我们能够在保持…...

阿里云CentOS7 打开/关闭防火墙 开放端口

#查看防火墙状态# systemctl status firewalld #关闭防火墙# systemctl stop firewalld #打开防火墙# systemctl start firewalld #添加开放2375端口# firewall-cmd --add-port2375/tcp --permanent #重载入添加的端口# firewall-cmd --reload #查询2375端口是否开启成…...

React 组件性能优化

React 组件性能优化的核心是减少渲染真实 DOM 节点的频率,减少 Virtual DOM 比对的频率。 1. 组件卸载前进行清理操作 window 注册的全局事件, 以及定时器 useEffect(()>{return ()>{// do somethingclearTimeout(tiemr)window.removeEventListener(xxx, c…...

jvm 马士兵 01 JVM简介,class文件结构

01.JVM是什么 JVM是一个跨平台的标准 JVM只识别class文件,符合JVM规范的class文件都可以被识别 u1 是一个字节 u2是两个字节...

PostgreSQL自带的命令行工具02- createdb

PostgreSQL自带的命令行工具02- createdb 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:5777createdb 是 Postgr…...

软件设计师-重点的构造型设计模式

一、桥接模式(Bridge): 意图: 将抽象部分与其实现部分分离,使它们都可以独立地变化。 结构: 适用性: 不希望在抽象和它的实现部分之间有一个固定的绑定关系。例如,这种情况可能是…...

Java面试问题及答案

Java面试问题及答案 以下是几个Java面试中可能会问到的问题及其答案。 1. 解释Java中的多态性是什么,以及它是如何工作的? 问题: 在Java中,多态性是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被…...

STM32 01

1、编码环境 1.1 安装keil5 1.2 安装STM32CubeMX 使用STM32CubeMX可以通过界面的方式,快速生成工程文件 安装包可以从官网下载:https://www.st.com/zh/development-tools/stm32cubemx.html#overview 安装完要注意更新一下固件包的位置,因为…...

学习笔记:【QC】Android Q - phone 模块

一、phone init 流程图 二、phone MO 流程图 三、phone MT 流程图 四、Log分析(MO_qcril_hal_分析) 1、RILJ请求dial enqueue进队列,QCRIL-hal pop出来处理,最后还是调用qmi_client_send_msg_async发送给modem 11-07 17:29:23.598 2758 2758 D RILJ …...

webscoket+webrtc实现语音通话

1.项目方案 前端采用webrtc创建音频上下文,后创建音频源输入和音频处理器,连接音频输入与处理器,处理器再连接到音频输出(扬声器),再通过事件获取音频数据,把音频数据转换成字节数据通过webscok…...

PHP源码_众筹商城

众筹商城源码 众筹商品平台 商城加共识元富之路 网上商城众筹 前端是编译后的,后端PHP,带商城 运行截图 源码贡献 https://githubs.xyz/boot?app39 部分数据库表 CREATE TABLE ti_shopro_store (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,nam…...

智能小程序 Ray 开发——表单组件 Button 和 Checkbox 实操讲解

Button 多端按钮基础组件,可用于进行强交互的操作。 导入 import { Button } from ray-js/ray; 属性说明 属性类型默认值必填说明支持平台sizekeyof Sizedefault否按钮的大小涂鸦、微信typekeyof Typedefault否按钮的样式类型涂鸦、微信plainbooleanfalse否按钮…...

渗透之sql注入联合查询的注入

sql注入产生的原因: 由于程序过滤不严谨,导致用户有一些异常输入,最终触发数据库的查询。所以会出现sql注入这个问题。有些恶意的人就会利用这些信息导致数据库泄露。 注意:一般我们存在注入点我们会查询管理员的账号和密码&#…...

NLP transformers - 文本分类

Text classification 文章目录 Text classification加载 IMDb 数据集Preprocess 预处理EvaluateTrainInference 本文翻译自:Text classification https://huggingface.co/docs/transformers/tasks/sequence_classification notebook : https://colab.research.googl…...

QT 开发COM(ActiveX)组件基础介绍和方案验证

一、COM简介 1.1 COM是什么? COM,Component Object Model,即组件对象模型,是一种以组件为发布单元的对象模型,这种模型使各软件组件可以用一种统一的方式进行交互。COM 既提供了组件之间进行交互的规范,也…...

网站制作商城/今日新闻大事件

...

wordpress dplayer使用/拉新推广怎么做代理

文章目录(一)页面布局(二)菜单栏1、File文件菜单:2、Edit编辑菜单:3、Rules规则菜单:4、Tools工具菜单:5、View视图菜单6、Help帮助菜单:(一)页面…...

微信公众号属于网站建设/网络营销策划与创意

实际上就是另f(S,i)表示在集合S中的所有面积的巧克力能不能被组成一个长高为i的大的巧克力,那么显然 长宽是可以交换的那么只考虑高小于宽的情况就行了。那么f(S,i)f(S−S0,min{i,Sum[S−S0]/i})同时f(S0,min{i,Sum[S0]/i})因为高相同所以这种情况是竖着切&#xff…...

旅游攻略网站/百度账号登陆

数字化转型走基层数字化转型企业:西安建筑科技大学所属行业:教育技术合作方:施耐德电气全新栏目“数字化转型走基层”今天来到了古城西安,在建设高能效、高可靠、高可用的现代化数据中心的过程中,西安建筑科技大学先行…...

php网站的adobe flash动图怎么改/漯河网站seo

一,最重要的一点,断点续传需要服务器的支持,这个是必要条件。 传统的FTP SERVER是不支持断点续传的,因为它不支持REST指令,传统的FTP指令(我是指服务器端指令)并不包括REST指令。 …...

长沙哪里有专业做网站/重庆专业做网站公司

打开设置——找到Keymap——搜索show Intention/context Actions,查看按键是否正确,不正确修改(注意是否冲突)Editor->Intentions->Refactorings,将Introduce local variable这个选项勾选上,点击Appl…...