没有合适的资源?快使用搜索试试~ 我知道了~
结合历史运动状态的机器人高效沿墙算法研究.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 173 浏览量
2023-02-23
20:14:47
上传
评论
收藏 3.52MB DOCX 举报
温馨提示
试读
36页
结合历史运动状态的机器人高效沿墙算法研究.docx
资源推荐
资源详情
资源评论
在室内环境中, 墙体是最基本的结构之一. 沿墙走是指机器人能够根据室内环境中墙
体的基本结构, 沿着墙体, 并与墙体保持一定距离的移动. 这可以看成是移动机器人的低层
行为, 当与其他高层的智能行为相结合时, 就可以完成一些复杂的任务
[1]
. 而对于室内移动
机器人来讲, 能否沿墙高效遍历是分辨室内移动机器人能力的重要条件. 在许多情况下, 都
需要机器人具备沿墙走这一功能, 比如室内地图的构建、路径规划
[2]
、避障
[3]
等.
目前, 国内外专家对室内机器人沿墙走的研究已有很多. 1992 年 Van Turennout 等
[4]
基
于移动机器人的运动学模型首次提出移动机器人沿墙走的概念, 并使用超声波传感器作为
测距工具, 设计了简单的沿墙走算法. 虽然实现了沿墙走行为, 但该算法会受累计误差的影
响, Ando 等
[5]
则利用单个声纳环
[6]
实现复杂室内环境机器人沿墙走的功能, 但没有考虑到传
感器自身的不足, 实验结果不理想. 王栋耀等
[1]
提出基于有限状态机的沿墙算法, 虽然对声
呐信息进行滤波处理后减小了声呐的镜面发射, 改善了沿墙走的效果, 但没有完全解决声呐
传感器镜面反射的问题. 针对这一问题, Wu 等
[7]
提出了基于红外传感器的沿墙控制算法, 使
用 5 个红外传感器对环境进行感知, 解决了声呐传感器的镜面反射问题, 降低了成本, 能够
实现沿墙走功能, 但收集的数据有限、精度低. 而周慧等
[8]
通过对数据的预处理克服了镜面
反射的问题, 但所使用的 DTW 算法受其自身测试数据长度的影响, 准确率较低. 李霞等
[9]
提出通过左右手法则实现沿墙走的功能, 即靠近、离开、远离、又接近墙体的规则实现沿
墙行走, 但所用的多个传感器会造成串扰, 影响系统精度. 还有学者提出通过视觉传感器
[10]
或激光雷达传感器
[11]
采集机器人与墙体的距离和角度信息, 利用模糊神经网络算法
[12-13]
, 将
输入数据融合, 判断机器人位姿信息, 通过控制左右轮速度控制其运动, 但模糊神经网络需
要规则库且离线训练困难. 以及采用 Q 学习算法
[14]
让机器人通过学习来自动构建导航控制
器, 利用对动作空间的 Q 值函数的优化获得控制, 从而实现沿墙走, 但 Q 学习算法的规则
手工建立困难.
虽然上述算法各有特点, 但大多存在一定的缺点, 因此本文采用室内未知环境下结合
历史状态的机器人沿墙高效遍历算法并使用激光雷达传感器实现室内移动机器人沿墙走的
功能. 该算法由移动机器人的上一个周期历史环境运动状态、当前环境运动状态和旋向信
息建立运动规则库, 沿墙行走时移动机器人时时采集这三类信息决定移动机器人当前的运
动方向, 如此循环直到完成指定的沿墙任务. 本文提出室内未知环境下结合历史状态的机器
人沿墙高效遍历算法, 用 Mealy 型有限状态机描述其运动状态, 并通过多次仿真实验以及
实际实验验证了本算法的可行性和高效性.
1. 室内未知环境下结合历史状态的机器人沿墙高效遍历算法
室内未知环境下结合历史状态的机器人沿墙高效遍历研究提出根据移动机器人上的激
光雷达对障碍物的反馈, 判断移动机器人当前位置的前方、左方以及右方是否存在障碍物,
并根据障碍物的存在位置描述移动机器人的运动环境状态. 当前状态为[Math Processing
Error]t 时刻移动机器人所在位置的障碍物存在情况用[Math Processing Error]k 表示, 即当
前运动环境状态[Math Processing Error]k, 历史状态为[Math Processing Error]t−1 时刻移动
机器人所在位置的障碍物存在情况用[Math Processing Error]k1 表示, 即历史运动环境状态
[Math Processing Error]k1, 当前[Math Processing Error]t 时刻之前移动机器人用变量[Math
Processing Error]fx 记录的旋向信息. 根据移动机器人的历史运动环境状态和当前运动环境
状态来判断移动机器人所处的状态, 然后根据判断的结果和记录的自身旋向信息决定移动
机器人的运动方向, 如图 1 所示.
图 1 运动方向判断
Fig. 1 Motion direction judgment
下载: 全尺寸图片 幻灯片
状态 2. 如图 2(b), 移动机器人只有左方有障碍物, 前方和右方无障碍物, 则[Math
Processing Error]k 或者[Math Processing Error]k1 取 2;
状态 3. 如图 2(c), 移动机器人只有前方有障碍物, 左方和右方无障碍物, 则[Math
Processing Error]k 或者[Math Processing Error]k1 取 3;
状态 4. 如图 2(d), 移动机器人只有右方有障碍物, 前方和左方无障碍物, 则[Math
Processing Error]k 或者[Math Processing Error]k1 取 4;
状态 5. 如图 2(e), 移动机器人的左方和前方都有障碍物, 右方无障碍物, 则[Math
Processing Error]k 或者[Math Processing Error]k1 取 5;
状态 6. 如图 2(f), 移动机器人的右方和前方都有障碍物, 左方无障碍物, 则[Math
Processing Error]k 或者[Math Processing Error]k1 取 6;
状态 7. 如图 2(g), 移动机器人的左方和右方都有障碍物, 前方无障碍物, 则[Math
Processing Error]k 或者[Math Processing Error]k1 取 7;
状态 8. 如图 2(h), 移动机器人的前方、左方以及右方均有障碍物, 则[Math Processing
Error]k 或者[Math Processing Error]k1 取 8.
1.2 旋向信息的记录
当移动机器人根据当前运动环境状态[Math Processing Error]k 和历史运动环境状态
[Math Processing Error]k1 无法判断当前时刻运动方向时, 通过移动机器人当前时刻[Math
Processing Error]t 之前的旋向信息[Math Processing Error]fx 判断, 旋向信息[Math
Processing Error]fx 定义如下:
移动机器人当前时刻[Math Processing Error]t 之前的旋向信息[Math Processing
Error]fx 为累计值, [Math Processing Error]fx 的初始值为[Math Processing Error]fx = 0, 当移
动机器人历史运动环境状态[Math Processing Error]k1 = 2 时, 则[Math Processing
Error]fx = [Math Processing Error]fx + 1; 当移动机器人历史运动环境状态[Math Processing
Error]k1 = 4 时, 则[Math Processing Error]fx = [Math Processing Error]fx − 1, 当移动机器人
历史运动中处于其他环境状态时, [Math Processing Error]fx 的值不变, [Math Processing
Error]fx 的值在移动机器人运动时, 不断累积, 当遇到需要旋向信息来判断移动机器人的运
动方向时, 就取[Math Processing Error]t 时刻之前[Math Processing Error]fx 的值, 如果
[Math Processing Error]fx ≥ 0, 则说明移动机器人沿墙顺时针行走, 结合旋向信息[Math
Processing Error]fx、当前时刻[Math Processing Error]t 的运动环境状态和时刻[Math
Processing Error]t−1 的运动环境状态确定移动机器人当前运动方向; 如果[Math Processing
Error]fx[Math Processing Error]< 0, 则说明移动机器人沿墙逆时针行走, 结合旋向信息
[Math Processing Error]fx、当前时刻[Math Processing Error]t 的运动环境状态和时刻[Math
Processing Error]t−1 的运动环境状态确定移动机器人当前运动方向.
1.3 机器人运动方向判断
机器人运动方向的具体判断方法为: 如果已知移动机器人[Math Processing Error]t 时
刻的当前运动环境状态[Math Processing Error]k, 判断其[Math Processing Error]t−1 时刻的
运动环境状态, 确定历史运动环境状态[Math Processing Error]k1, 与当前运动环境状态结
合, 得到移动机器人的运动方向. 如果根据当前运动环境状态[Math Processing Error]k 与历
史运动环境[Math Processing Error]k1 无法判断当前时刻机器人的运动方向, 则可结合移动
机器人当前时刻[Math Processing Error]t 之前的旋向信息[Math Processing Error]fx 判断.
例如移动机器人[Math Processing Error]t 时刻的当前运动环境状态[Math Processing
Error]k = 2 (图 2(b)所示)时, 判断[Math Processing Error]t−1 时刻历史运动环境状态[Math
Processing Error]k1, 如果结合不同的历史运动环境状态, 机器人将会有不同的运动方向.
以下为 8 种不同历史环境状态下机器人当前的移动方向:
1) 如图 3 所示, 如果历史运动环境状态[Math Processing Error]k1 = 1, 则机器人继续
前进.
图 3 [Math Processing Error]k= 2, [Math Processing Error]k1= 1 机器人运动示意图
Fig. 3 Robot motion diagram when [Math Processing Error]k= 2, [Math Processing Error]k1= 1
剩余35页未读,继续阅读
资源评论
罗伯特之技术屋
- 粉丝: 3652
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功