首页 理论教育 移动机器人导航系统的设计和应用

移动机器人导航系统的设计和应用

时间:2023-06-14 理论教育 版权反馈
【摘要】:移动机器人的高效可靠运行有以下4个必要条件。为了得到相对定位信息,对于典型的双轮差分驱动方式的移动机器人来说,通常采用里程计航位推算的方法对机器人的位姿进行累加。(二)移动机器人导航系统在实际中的应用根据上述导航系统设计的基础,开发了一种移动机器人,它具有多目标点路径规划功能。

移动机器人导航系统的设计和应用

对于应用于公共场所或者家庭的服务机器人来说,设计过程中应将它们特殊的环境因素考虑进去,因为这些机器人的工作环境充斥着大量的、动态的、不确定的环境因素,它们需要根据环境的变化去随机应变,完成其相应的设定任务。这时就要处理好导航系统和规划模块的设计工作,才能让机器人更好地完成不同的任务。

(一)模块化软件设计

智能移动机器人拥有很强大的功能,这是因为它除了拥有大量的电机驱动器节点外,还拥有很多传感器节点。设计过程中,任何一个环节都应做到万无一失,否则就会对整个系统的稳定性造成直接影响,如何对每个功能进行分解,如何确定正确的时间关系,以及分配空间资源等问题都会产生很大的影响。除此之外,为了保证系统能够满足技术更新、新算法验证和功能添加等要求,并能在多种行业得到应用,在设计过程中需要系统具有一定的开放性。合理的体系结构设计是机器人系统设计的关键,因为体系结构是整个机器人系统的基础,是保证整个机器人系统高效运行和高可扩展性的关键所在,决定着系统的整体功能性和稳定性。

移动机器人的高效可靠运行有以下4个必要条件。

1.可靠性。可靠性就是机器人在运行过程中能够较长时间地保持规律稳定运作,可靠性的高低决定着机器一旦发生故障时系统发现并解决故障的能力。可靠性将贯穿系统设计的全过程,提高系统的可靠性可降低在工作时电机可能出现的,如超速、堵转等一切非正常情况。

2.实时性。所谓“实时性”是指系统能在一定时间内快速处理事件,并能对电机进行控制。

3.模块化。在设计机器人控制系统的过程中应该将机器人超声波传感器设计得越小越好,越轻便越好,因为机体本身的空间是非常有限的,这样设计可以使系统模块化,各个单元之间都有明确的分工,使每个模块都保持独立性。

4.开放性。系统在设计过程中要求系统具有更高的开放性,通常要有良好的人机交互接口,这是为了方便以后对控制系统进行优化和改进,满足多模态人机交互的需求和系统多平台之间的移植。

环境建模模块、感知模块、规划模块与定位模块是设计导航系统软件结构的4个模块。

(1)感知模块。感知模块的基本功能是将各个传感器的数据进行采集并且融合,通过传感器采集板或者USB和串口,生成定位模块和环境建模模块需要的数据,然后将它们分别传递给对应的模块。(www.xing528.com)

(2)环境建模模块。环境建模模块的主要功能是将感知模块传递的这些数据分别生成适合定位的特征地图和能够进行路径规划的栅格地图。

采用最小二乘法拟合直线,将得到的数据转化成机器人当前扫描到的局部特征地图,同时将全局特征地图进行栅格化和更新,使路径规划更加方便。

(3)定位模块。为了得到相对定位信息,对于典型的双轮差分驱动方式的移动机器人来说,通常采用里程计航位推算的方法对机器人的位姿进行累加。然后通过对路标的特征匹配来更正机器人的位姿。

(4)规划模块。全局路径规划子模块和局部路径规划子模块是规划模块按照功能不同划分出的2个模块。

基于栅格地图的A*搜索算法是全局路径规划模块采用的搜索方法,这样就可以得到一条从起始点到目标点的最优路径。得到最优路径后,就会使机器人的全局路径规划变得简单。因此,为了提高算法的效率,我们可以在全局地图范围已知的情况下通过增加栅格粒度的大小来降低栅格的数量,这样就能使A*算法的搜索时间得到降低,进而提高算法效率,在全局路径规划中考虑到机器人的运动轨迹以及动态避障情况,有时我们会将栅格设为10cm或者更小。为了降低算法的规划时间和地图的存储空间,我们通常还会将机器人的运动轨迹以及动态避障问题放在局部路径规划中处理,这样栅格的大小就将设为50cm。

基于改进人工势场法的路径规划方法是局部路径规划模块的常用设计算法,这种算法在动态环境的路径规划中很适用,因为它具有很好的实时性。但是,因为缺少全局信息的宏现指导,利用这种算法有时容易产生局部最小点。通过全局路径规划模块中A*算法规划出一条子目标节点序列,并将这条子目标节点序列作为局部路径规划的全局指导信息,来引导局部路径模块进行运动控制。这样就能避免人工势场法在路径规划中存在的缺陷,并且最终实现了在全局意义上最优的路径规划。

(二)移动机器人导航系统在实际中的应用

根据上述导航系统设计的基础,开发了一种移动机器人,它具有多目标点路径规划功能。

它的实现流程如下:先为每个模块分配内存空间,对导航系统进行初始化;然后将一组目标点的信息以及地图、起点一起导入系统中;第一个目标点是从目标点数组中取出的,按照上述导航系统控制机器人运动;当到达目标的时候,机器人通过判断当前目标点是否为最后一个目标点来判断是否结束导航任务,如果是最后一个目标点则结束导航任务,如果不是最后一个目标点,重复上述的过程。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈