基于似然场的全局定位

这篇具有很好参考价值的文章主要介绍了基于似然场的全局定位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

似然场法定位检测

似然场最小二乘问题构建

机器人Robot在地图World中的位姿表示为\(\boldsymbol{x}\),激光雷达扫描得到的点云表示为\(\{p_i^R\}\),其中\(^R\)表示在机器人坐标系下的坐标,\(_i\)表示点云中第i个点。

\[\boldsymbol{x}=[x, y, \theta]^{\rm{T}} \]

那么,点云中机器人坐标系下的某个扫描点\(\boldsymbol{p}_i^B\)的距离与角度为\(r_i\),\(\rho_i\),那么根据当前激光的位姿,可以将它转换到世界坐标系下:

\[p_i^W=[x+r_i\cos(\rho_i+\theta),y+r_i\sin(\rho_i+\theta)]^\top \]

下面思考这样一个问题:

理论上我们应该已知点云\(\{p_i^R\}\),如何求解机器人在地图World中的位姿\(x\),使得点云上所有的点经过变换后,都在地图上对应位置的黑线上?
对于机器人一帧扫描得到的点云,我们能否建立一个最小二乘的优化问题,使得点云中的每个点与地图中的对应点之间的距离最小?通过这样子就可以让扫描得到的点云都尽量的落到地图黑线上。

基于似然场的全局定位

采用高斯似然场法将扫描数据与栅格地图进行配准。

基于似然场的全局定位

似然场围绕每一个 地图边界点 产生,随距离增大而逐渐增大,其范围和衰减过程可自行定义。(从图中的表现为图像灰度代表值,黑色为0,白色为1,其余为0-1),我们暂且先把这个场定义为似然场\(\pi\)

似然场中的读数可直接作为配准时的目标函数,也即要求某个扫描点\(p_i^R\),经机器人位姿\(\boldsymbol{x}\)变换后,得到世界坐标系上的点\(p_i^W\),同时,存在一个世界坐标系下的似然场\(\pi\)。这个点落在似然场\(\pi\)中的读数为\(\pi(p_i^W)\)

于是机器人位姿\(x\),可通过优化问题得到,最小二乘问题构建如下,其中n为点云中点的个数,\(\boldsymbol{p}_i^W\)为点云中第i个点在世界坐标系下的坐标,\(\|\cdot\|_2\)为L2范数,欧氏距离.

\[\boldsymbol{x}^*=\arg\min_{x}\sum_{i=1}^n\|\pi(\boldsymbol{p}_i^W)\|_2^2 \]

π 函数对位姿\(x\)的雅可比矩阵可由链式求导法则

\[\frac{\partial\pi}{\partial\boldsymbol{x}}=\frac{\partial\pi}{\partial\boldsymbol{p}_i^W}\frac{\partial\boldsymbol{p}_i^W}{\partial\boldsymbol{x}} \]

对于:\(\frac{\partial\pi}{\partial p_{i}^{W}}\)
似然场是以图像形式储存,因此必须对\(\boldsymbol{p}^W_i\)按照某种分辨率进行采样,设\(\boldsymbol{p}^W_i\)到图像坐标\(\boldsymbol{p}^f_i\)的转换关系为
​$$p_i^f=\alpha p_i^W+c$$
α 表示缩放系数,\(\boldsymbol{c}\)表示距离图像中心的偏移量。

坐标系转换为:Robot 坐标系 --> World 坐标系 --> 似然场坐标系 那么

\[\frac{\partial\pi}{\partial\boldsymbol{p}_i^W}=\frac{\partial\pi}{\partial\boldsymbol{p}_i^f}\frac{\partial\boldsymbol{p}_i^f}{\partial\boldsymbol{p}_i^W}=\alpha[\Delta\pi_x,\Delta\pi_y]^\top \]

其中\(\frac{\partial\pi}{\partial p_{i}^{f}}=[\Delta\pi_{x},\Delta\pi_{y}]^{\top}\)为似然场在图像上的梯度。


对于:\(\frac{\partial\boldsymbol{p}_i^W}{\partial\boldsymbol{x}}\)
这里\(\boldsymbol{x}\)描述了世界坐标系 W 下机器人位姿。

\[\boldsymbol{x}=[x, y, \theta]^{\rm{T}} \]

我们设机器人坐标系下的某个扫描点\(\boldsymbol{p}_i^B\)的距离与角度为\(r_i\),\(\rho_i\),那么根据当前激光的位姿,可以将它转换到世界坐标系下:

\[p_i^W=[x+r_i\cos(\rho_i+\theta),y+r_i\sin(\rho_i+\theta)]^\top \]

那么

\[\frac{\partial\boldsymbol{p}_i^W}{\partial\boldsymbol{x}}=\begin{bmatrix}1&0\\0&1\\-r_i\sin(\rho_i+\theta)&r_i\cos(\rho_i+\theta)\end{bmatrix}^T\in\mathbb{R}^{2\times3} \]

从而得到最终的偏导公式

\(\left.\frac{\partial\pi}{\partial\boldsymbol{x}}=\frac{\partial\pi}{\partial\boldsymbol{p}_i^W}\frac{\partial\boldsymbol{p}_i^W}{\partial\boldsymbol{x}}=\alpha\left[\begin{matrix}\Delta\pi_x,\Delta\pi_y\end{matrix}\right.\right]\begin{bmatrix}1&0&-R_i\sin(\rho_i+\theta)\\0&1&R_i\cos(\rho_i+\theta)\end{bmatrix}=[\alpha\Delta\pi_x,\alpha\Delta\pi_y,-\alpha\Delta\pi_xR_i\sin(\rho_i+\theta)+\alpha\Delta\pi_y,R_i\cos(\rho_i+\theta)]\)

在实际代码中,\(\Delta\pi_x\)只需要对似然场上x轴相邻两个点坐标的值做差*0.5即可(如果为了更精确的梯度,可以多阶线性差值),\(\Delta\pi_y\)同理。


最小二乘问题的高斯牛顿求解

高斯—牛顿迭代法的基本思想是使用泰勒级数展开式去近似地代替非线性回归模型,然后通过多次迭代,多次修正回归系数,使回归系数不断逼近非线性回归模型的最佳回归系数,最后使原模型的残差平方和达到最小。

对于一个非线性最小二乘问题:

\[x^{*} = arg \, \min\limits_{x} \frac{1}{2} || f(x) ||^2 \]

高斯牛顿的思想是把\(f(x)\)利用泰勒展开,取一阶线性项近似。

\[f(x + \Delta x) = f(x) + f^\prime (x) \Delta x = f(x) +J(x) \Delta x \]

带入到上式,得,其中\(J(x)\)代表雅可比也就是一阶导:

\[\frac{1}{2} || f(x + \Delta x) ||^2 = \frac{1}{2}(f(x)^Tf(x) + 2f(x)^TJ(x) \Delta x + \Delta x^TJ(x)^TJ(x) \Delta x) \]

对上式求导,令导数为0:

\[J(x)^TJ(x) \Delta x = -J(x)^Tf(x) \]

\(H = J^TJ \quad B = -J^Tf\)

\[H\Delta x = B \]

求解,便可以获得调整增量\(Δx\)。这要求\(H\)可逆(正定),但实际情况并不一定满足这个条件,因此可能发散,另外步长\(Δx\)可能太大,也会导致发散,这个也就是config中的移动限制文章来源地址https://www.toymoban.com/news/detail-841315.html

到了这里,关于基于似然场的全局定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp 小程序实时且持续获取定位信息(全局设置一次)(单页面监听定位改变)(不采用定时器)

    本篇文章实现了uniapp 微信小程序实时获取定位信息,小程序打开即可持续获取定位信息, 位置更新也会触发相关自定义事件 tips: 如果需要做成区分登录状态的 看这篇优化后的文章: uniapp 持续获取定位(登录状态下才获取)(不采用定时器)(任意页面都可监听定位改变)_前端小胡兔的

    2024年02月14日
    浏览(53)
  • 基于确定性最大似然算法 DML 的 DoA 估计,用牛顿法实现(附 MATLAB 源码)

    本文首次在公众号【零妖阁】上发表,为了方便阅读和分享,我们将在其他平台进行自动同步。由于不同平台的排版格式可能存在差异,为了避免影响阅读体验,建议如有排版问题,可前往公众号查看原文。感谢您的阅读和支持! 在 DoA 估计中,最大似然方法主要分为 确定性

    2024年02月17日
    浏览(40)
  • 竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪)

    竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪) 无名小哥 2023年6月10日 用户通过对前面两讲中全国大学生电子设计竞赛真题植保无人机(2021)、送货无人机(2022)完整方案的学习。细心一点的客户可以发现:在激光雷达SLAM/T265双目相

    2024年02月12日
    浏览(36)
  • 基于多目标混合策略鲸鱼优化算法的镜场布局优化-2023国赛数学建模A题第三问解题思路 - 定日镜场的优化设计(详细过程,小白读完就会)

    选择对 EB布局进行更深入的研究,主要探究其布局关键参数方位间距因子 Asf和极限重置因子 Arlim如何取值可以得到光学性能更好的定日镜场。故选择应用改进后的混合策略鲸鱼优化算法对 EB布局进行优化,同时结合实例 Gemasolar电站相关数据进行验证分析。 5.1.1优化目标与工

    2024年02月09日
    浏览(33)
  • 虚拟定位检测

    获取定位代码 定位结果返回代码 sourceInformation.isSimulatedBySoftware 为0 sourceInformation.isProducedByAccessory 为0 sourceInformation.isSimulatedBySoftware 为1 sourceInformation.isProducedByAccessory 为0

    2024年02月15日
    浏览(19)
  • centos下系统全局检测工具dstat使用

    目录 一:没有需要安装 二:dstat命令参数 三、监测界面各参数含义(部分) 四、dstat的高级用法 一:没有需要安装 yum install dstat 二:dstat命令参数 有默认选项,执行dstat命令不加任何参数,它默认会收集-cpu-、-disk-、-net-、-paging-、-system-的数据,一秒钟收集一次。 默认输

    2024年01月20日
    浏览(26)
  • Selenium元素定位之页面检测技巧

    在进行web自动化测试的时候进行XPath或者CSS定位,需要检测页面元素定位是否正确,如果用脚本去检测,那么效率是极低的。 一般网上推选装额外的插件来实现页面元素定位检测 如:firebug。 其实F12开发者工具就能直接在页面上检测元素定位不需要装额外的插件。 有2种方式

    2024年02月05日
    浏览(39)
  • OPENMV上的目标检测,目标定位模型

    代码地址 在17届省赛结束后,因为担心国赛场地光照影响较大,写了这个目标检测算法。但因为时间以及实力不足,算法仅有了个雏形,没能成功部署,非常遗憾。 今年寒假终于有时间将其完善,也算对自己的锻炼。正好在18届的比赛中有无边框图片,发现该算法在无边框定

    2024年02月05日
    浏览(33)
  • python-opencv车牌检测和定位

    第一章 python-opencv-图片导入和显示 第二章 python-opencv图像简单处理 第三章 python-opencv图像mask掩膜处理 第四章 python-opencv图像马赛克 第五章 python-opencv人脸马赛克 第六章 python-opencv人脸检测 第七章 python-opencv图像张贴 第八章 python-opencv轮廓绘制 第九章 python-opencv边缘检测 第十

    2024年02月07日
    浏览(42)
  • 论文笔记:液体管道泄漏综合检测与定位模型

    An integrated detection and location model for leakages in liquid pipelines 许多液体,如水和油,都是通过管道运输的,在管道中可能发生泄漏,造成能源浪费、环境污染和对人类健康的威胁。本文描述了一种集成的泄漏检测和定位模型,该模型可用于液体管道中的背景泄漏( 现有技术手段

    2024年04月13日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包