基于激光传感器的移动机器人动态运动检测

  • 基于激光传感器的移动机器人动态运动检测

    • 运动物体检测模型
    • Free Space生成
      • Bounded Minimization Operator
      • Find Violations
    • Notes

运动物体检测模型

对于静止的激光传感器,检测动态物体非常容易,进入到上一时刻“自由空间”(激光点和激光传感器包围的空间)的物体就可以认为是动态物体。对于移动机器人,检测动态运动的问题在于,环境中的物体运动的同时,机器人也会移动,而环境的变化使得扫描匹配等方法的匹配效果下降,需要找到一种方法将临近帧的数据“对齐”(在一个坐标系下表示)。因此,融合移动机器人的里程计信息。

运动检测模型如下图所示:T-1时刻由机器人位姿 (x(t−1),y(t−1),θ(t−1)) (x_{(t-1)},y_{(t-1)},\theta _{(t-1)})(激光)和激光数据包围出一个Free Space
(激光数据可以看成是环境中物体的表面的离散观测),下一时刻,机器人移动到 (x(t),y(t),θ(t)) (x_{(t)},y_{(t)},\theta _{(t)}) 。位姿增量: (δxt,δyt,δθt) (\delta x_t,\delta y_t, \delta \theta _t),将T时刻的激光数据经 (δxt,δyt,δθt) (\delta x_t,\delta y_t, \delta \theta _t)变换到T-1时刻T。


移动到上时刻Free Space 的物体可以得出是一个Violation,即动态物体。不过存在图中黄色的圆不能被检测到的问题。物体远离机器人运动不会进入到Free Space。解决办法:将当前的激光数据与上一时刻对调,由T时刻的数据生成Free Space,然后检测T-1在T中的违背点,如下图,最后由里程计数据把上一时刻检测到的动态点对应到当前时刻。

Free Space生成

如何处理激光数据生成Free Space

Bounded Minimization Operator

激光数据 r(i) r(i), i i是激光的索引。对第ii个激光点,确定一个边界 δ \delta ,

r(i)=min{r(i−δ),⋯,r(i+δ)}

r\left( i \right) = min\left\{ {r\left( {i - \delta } \right), \cdots ,r\left( {i + \delta } \right)} \right\}

因为激光数据本身会有误差,还要进行一个收缩操作:

r(i)=r(i)−dis

r\left( i \right) = r\left( i \right) - dis
dis dis是根据激光性能设置的一个很小的数。白色的激光数据收缩后生成如下图中红色的数据。

因为里程计数据和激光数据来自不同的数据源,考虑数据到达的时间问题,需要考虑多帧的数据。

Find Violations

对一帧激光点的每一个索引 i i,判断是否在另一帧的Free Space中,判断方法就是一个点是否在闭合的多边形内。如果在,则flag(i)flag(i)是1;得到全部的标识后滤除010这种噪声点。得到违背点,然后结合激光片段的分析,得到动态的物体。

如下图中粗的绿色的点,是运动中的人,在机器人的移动过程中检测到。

Notes

1、在实现收缩的时候(自己曾经的BUG),考虑t-1 -> t的时候收缩t-1是 r(i)=r(i)−dis r\left( i \right) = r\left( i \right) - dis;t -> t -1的时候”收缩“t是 r(i)=r(i)+dis r\left( i \right) = r\left( i \right) +dis;
2、其实动态也是一种”特征“,在动态检测的时候可以考虑其他”特征“

有问题可加群 (移动机器人导航与控制群:199938556) 讨论交流,进群修改备注。

基于激光传感器的移动机器人动态运动检测相关推荐

  1. 论文研读笔记(三)——基于障碍函数的移动机器人编队控制安全强化学习

    基于障碍函数的移动机器人编队控制安全强化学习(Barrier Function-based Safe Reinforcement Learning for Formation Control of M ...

  2. Linux移动机器人硬件部分,基于ORB-SLAM的移动机器人嵌入式实现与优化

    林连秀,叶芸,姚剑敏,郭太良 (福州大学 物理与信息工程学院, 福建 福州 350002) 摘要:ORB-SLAM(基于ORB特征识别的同时定位与地图构建系统)的源代码无法在嵌入式开发板运行,其构建的 ...

  3. 基于遗传算法的移动机器人路径规划

      之前在网上找基于遗传算法的移动机器人路径规划资料的时候,没有找到理想的开源代码.最后参照论文,用matlab写了代码.最近开了公众号--Joe学习笔记,会不定期更新一些文章,主要是自己平时学到的知 ...

  4. skycons.js 基于canvas的天气动态js插件

    skycons.js 基于canvas的天气动态js插件 skycons.js是一个开源的javascript天气动画图标渲染器.相当于gif动图一样. skycons CDN地址:https://w ...

  5. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...

  6. element手机验证格式_基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)...

    前言 开发过程中遇到了一个需求,根据用户选择的联系方式,动态改变输入框的检验条件,并且整个表单是可以增加的 在线访问:动态表单校验 github(欢迎star): https://github.com ...

  7. 基于分位数回归的动态CoVaR计算 案例与代码

    关注公众号卧新实验室,并回复关键数字获取本文帮助文档.例如:20003 原文链接:基于分位数回归的动态CoVaR模型计算与操作 报名已结束:CCtalk 实时互动教育平台-专业的知识分享与在线教育平台 ...

  8. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 1.前言 本文主要介绍使用SpringBoot与shiro实现基 ...

  9. 从源码分析常见的基于Array的数据结构动态扩容机制

    本文的写作冲动来源于今晚看到的老赵的一则微博"大家知道System.Collections.Generic.List<T>是一种什么样的数据结构?内部的元素是怎么存放的?还有Di ...

最新文章

  1. Python学习笔记011——内置函数exec()
  2. position 再谈
  3. 【错误记录】VMware 虚拟机报错 ( Ubuntu-Unattended upgrade in progress during shutdown, please don‘t turn off )
  4. gradle挂接到构建生命周期(七)
  5. mac终端一次命令在多个虚拟机执行_Windows给力!可以扔掉Linux虚拟机了!
  6. 截取最后一个下划线前面的字符
  7. 美学设计评价_死亡的孩子无法使用的设计美学
  8. QT分析之网络编程(七)
  9. Solr 5.3.0集成mmseg4j、tomcat部署、Solrj 5.3.0使用
  10. Allegro走等长线设置
  11. 夜曲歌词 拼音_《夜曲 - (原唱:周杰伦)》歌词 《夜曲 - (原唱:周杰伦)》LRC歌词?...
  12. 【Excel】偷懒小技巧2:快速为非空单元格编号
  13. utc时间 单位换算_UTC时间和GMT时间 | 圈里圈外
  14. Aspose.word设置页眉
  15. 软件测试笔记——3.多种多样的测试类型
  16. 庄子心得06:总有路可走
  17. 大数据可视化之医疗大数据平台
  18. 知到网课美的必修课考试试题|真题题库(含答案)
  19. unity 摄像机追随指定物体
  20. 区块链将如何彻底改变自动驾驶

热门文章

  1. unity 无缝大地图
  2. js php mysql 案例_PHP基础到高级开发教程(包括JsMysql实例)
  3. Blender 贴图相关
  4. QT学习笔记:简单的串口调试助手--实现 字符与十六进制发送接收
  5. 进口奶粉批发进货渠道
  6. 如何对pdf文件大小进行压缩?怎么压缩pdf文件kb?
  7. 基于keras 搭建LSTM GRU模型预测 共享单车使用情况 完整代码+数据 数据分析 计算机毕设
  8. Python实现GWO智能灰狼优化算法优化卷积神经网络分类模型(CNN分类算法)项目实战
  9. C语言基础知识入门【2022】
  10. 判断多个复选框被选中状态(两种方式)