基于激光传感器的移动机器人动态运动检测
基于激光传感器的移动机器人动态运动检测
- 基于激光传感器的移动机器人动态运动检测
- 运动物体检测模型
- 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\left( i \right) = min\left\{ {r\left( {i - \delta } \right), \cdots ,r\left( {i + \delta } \right)} \right\}
因为激光数据本身会有误差,还要进行一个收缩操作:
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) 讨论交流,进群修改备注。
基于激光传感器的移动机器人动态运动检测相关推荐
- 论文研读笔记(三)——基于障碍函数的移动机器人编队控制安全强化学习
基于障碍函数的移动机器人编队控制安全强化学习(Barrier Function-based Safe Reinforcement Learning for Formation Control of M ...
- Linux移动机器人硬件部分,基于ORB-SLAM的移动机器人嵌入式实现与优化
林连秀,叶芸,姚剑敏,郭太良 (福州大学 物理与信息工程学院, 福建 福州 350002) 摘要:ORB-SLAM(基于ORB特征识别的同时定位与地图构建系统)的源代码无法在嵌入式开发板运行,其构建的 ...
- 基于遗传算法的移动机器人路径规划
之前在网上找基于遗传算法的移动机器人路径规划资料的时候,没有找到理想的开源代码.最后参照论文,用matlab写了代码.最近开了公众号--Joe学习笔记,会不定期更新一些文章,主要是自己平时学到的知 ...
- skycons.js 基于canvas的天气动态js插件
skycons.js 基于canvas的天气动态js插件 skycons.js是一个开源的javascript天气动画图标渲染器.相当于gif动图一样. skycons CDN地址:https://w ...
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...
SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...
- element手机验证格式_基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)...
前言 开发过程中遇到了一个需求,根据用户选择的联系方式,动态改变输入框的检验条件,并且整个表单是可以增加的 在线访问:动态表单校验 github(欢迎star): https://github.com ...
- 基于分位数回归的动态CoVaR计算 案例与代码
关注公众号卧新实验室,并回复关键数字获取本文帮助文档.例如:20003 原文链接:基于分位数回归的动态CoVaR模型计算与操作 报名已结束:CCtalk 实时互动教育平台-专业的知识分享与在线教育平台 ...
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例...
SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 1.前言 本文主要介绍使用SpringBoot与shiro实现基 ...
- 从源码分析常见的基于Array的数据结构动态扩容机制
本文的写作冲动来源于今晚看到的老赵的一则微博"大家知道System.Collections.Generic.List<T>是一种什么样的数据结构?内部的元素是怎么存放的?还有Di ...
最新文章
- Python学习笔记011——内置函数exec()
- position 再谈
- 【错误记录】VMware 虚拟机报错 ( Ubuntu-Unattended upgrade in progress during shutdown, please don‘t turn off )
- gradle挂接到构建生命周期(七)
- mac终端一次命令在多个虚拟机执行_Windows给力!可以扔掉Linux虚拟机了!
- 截取最后一个下划线前面的字符
- 美学设计评价_死亡的孩子无法使用的设计美学
- QT分析之网络编程(七)
- Solr 5.3.0集成mmseg4j、tomcat部署、Solrj 5.3.0使用
- Allegro走等长线设置
- 夜曲歌词 拼音_《夜曲 - (原唱:周杰伦)》歌词 《夜曲 - (原唱:周杰伦)》LRC歌词?...
- 【Excel】偷懒小技巧2:快速为非空单元格编号
- utc时间 单位换算_UTC时间和GMT时间 | 圈里圈外
- Aspose.word设置页眉
- 软件测试笔记——3.多种多样的测试类型
- 庄子心得06:总有路可走
- 大数据可视化之医疗大数据平台
- 知到网课美的必修课考试试题|真题题库(含答案)
- unity 摄像机追随指定物体
- 区块链将如何彻底改变自动驾驶