卡尔曼滤波算法实例剖析--机器人足球赛场中的定位算法
来源:互联网 发布:1024光束灯编程教学 编辑:程序博客网 时间:2024/06/05 02:17
看到这里会问了,不是还有AR标签帮助测量定位吗?根据标签位置,距离和角度也可以算出坐标啊! 没错,但是还是那个老问题,这个测量结果也是有误差的,误差大小完全取决于传感器。
- 移动的速度和起点坐标 根据公式1算出来的坐标 x = (x,y) 有很大误差噪音
- AR标签测量的值 z=(r, φ) 有很大误差噪音
********接下来开始讲概率矩阵数学了,东方赤龙提醒您:不想看可以不看了*******
- 状态 x = 坐标 (x,y,θ)
- 状态噪音Σ = 状态 x 的精确度
- 最优状态 μ 每个时刻卡尔曼滤波估算的最优坐标
- 状态转移控制量 u = 线速度和角速度(v, ω)
- 状态转移噪音 R 因为移动所增加的噪音
- 观测量 z = AR标签测量值 (r, φ)
- 观测量噪音 Q = AR标签传感器的噪音
- xt =At xt-1 +Bt ut 根据t-1的坐标和移动速度估计出在t时刻的坐标,也就是上面的公式一。这里At =1,Bt 就是时间间隔 Δt
- z =C x 状态量x 到观测量z 的映射关系。这里就是根据下面的三角函数计算出来的, C代表了状态映射矩阵。
- t-1 到 t时刻的状态预测,得到前验概率
- 根据观察量对预测状态进行修正,得到后验概率,也就是最优值
- 观测量 z 到状态量 x 的的变换矩阵,就是说 x = K z . 相当于2.1节提到的状态转移方程 z = C x 中 C 的逆矩阵。本文例子就相当于从地标AR标签的距离和角度反推出机器人的位置。
- 对观测量的可信度百分比。观测量可信度越高,也就是测量噪音Q相对于与状态预测噪音越小,该百分比就越高。反之则越低。
2.3.3 后验值修正
既然预测不准确,那就用测量后验值去修正它。先修正状态值x,就是公式四:
修正后的噪音Σt 其值要比预测噪音和感测噪音Q都要小。这样直观上也容易理解,滤波后的状态噪音最小,所以最优。
3 科尔曼滤波的条件和扩展卡尔曼滤波
- xt = At xt-1 + Bt ut 根据t-1的坐标和移动速度估计出在t时刻的坐标,也就是上面的公式一。这里At =1,Bt 就是时间间隔 Δt
- z = C x 状态量x 到观测量z 的映射关系。这里就是根据下面的三角函数计算出来的, C代表了状态映射矩阵。
$ sudo apt-get install ros-diamondback-desktop-full
另一部分为选用部分,即universe部分,它不仅包括一些开源库的支持,如opencv,pcl,openni_kinect等,还有更上面以机器人功能模块命令的一些stack,例如pr2_doors,find_object,face recognition,grasp等等,真是一个丰富的宝藏,更详细的stack包可以在官网的StackList页面查询。(http://www.ros.org/wiki/StackList)
当然,除了随系统自动安装到我们客户端的那部分stack之外,当我们需要某特定功能的模块(如pr2_doors)时,此时,rosinstall就派上用场了,下面就简单以pr2_doors为例.
$ cp /opt/ros/diamondback/.rosinstall ~/stacks/pr2_doors.rosinstall //在stacks文件夹里面创建新的rosinstall文件
$ roslocate info pr2_doors >> ~/stacks/pr2_doors.rosinstall //此句是自动寻找pr2_doors信息
命令执行到这儿,打开pr2_doors.rosinstall,可以看到:
$ rosinstall ~/stacks ~/stacks/pr2_doors.rosinstall
$ source ~/stacks/setup.bash //为防止每次使用启动后都要重新编译,可将相应地址添到~/.bashrc中
$ rosmake .......(pr2_doors里面所需的package文件)
进一步的可以将下载后的stack目录(如 ~/stacks)添加到ROS_PACKAGE_PATH目录中,以后就能正常在原来的ROS系统下使用下载后的package了.在这里,感谢ROS论坛中提问和解惑的人们.
(本文方法参考以下网址:http://answers.ros.org/question/9197/for-new-package-downloading)
ROS 学习系列 -- 使用Rviz观察智能车的运动轨迹 无陀螺仪计算角度转动
视频录像
根据两边轮子转动的速率不同,推算出转动的角度。包括原地旋转。
计算的原理和代码可以查看文章 ROS 教程之 navigation : 用 move_base 控制自己的机器人(2)
- 卡尔曼滤波算法实例剖析--机器人足球赛场中的定位算法
- 卡尔曼滤波算法实例剖析--机器人足球赛场中的定位算法
- 卡尔曼滤波算法实例剖析--机器人足球赛场中的定位算法
- 卡尔曼滤波算法
- 卡尔曼滤波算法
- 卡尔曼滤波算法
- 卡尔曼滤波算法原理
- 卡尔曼滤波算法程序
- 卡尔曼滤波算法原理
- 卡尔曼滤波算法简要
- 卡尔曼滤波算法分析
- 一个应用实例详解卡尔曼滤波及其算法实现
- 一个应用实例详解卡尔曼滤波及其算法实现
- 一个应用实例详解卡尔曼滤波及其算法实现
- 一个应用实例详解卡尔曼滤波及其算法实现
- 一个应用实例详解卡尔曼滤波及其算法实现
- 一个应用实例详解卡尔曼滤波及其算法实现
- 一个应用实例详解卡尔曼滤波及其算法实现
- [置顶]iOSDay29之UITableView
- EPOLL的理解和深入分析
- 图的遍历 (深度优先 广度优先)
- [置顶]iOSDay34之UICollectionView
- 手把手教你使用Markdown
- 卡尔曼滤波算法实例剖析--机器人足球赛场中的定位算法
- BZOJ 1042: [HAOI2008]硬币购物
- mysql锁定机制
- cocos2d-x v3.10之ccui.PageView 翻页实现
- 反演问题中基本概念的理解
- Storm入门 第二章准备开始
- redis3.2新功能--GEO地理位置命令介绍
- 前端性能优化入门
- epoll ---2