发明名称 基于数组地图的移动机器人室内路径规划方法
摘要 基于数组地图的移动机器人室内路径规划方法,其中地图的表示方法有:几何地图、点云地图、拓扑地图和栅格地图等。栅格地图是把环境划分成一系列栅格,其中每一栅格给定一个可能值,表示该栅格被占据的概率。基于栅格地图的思想,本发明利用栅格地图的特殊情况,同时在地图的创建过程中做了适当的改变,提出了“数组地图”的概念。并基于数组地图,利用A*算法进行路径规划,同时在机器人移动的过程中,根据搭载的激光传感器获取实时数据,动态地更新数组地图。
申请公布号 CN105652876A 申请公布日期 2016.06.08
申请号 CN201610189276.8 申请日期 2016.03.29
申请人 北京工业大学 发明人 李玉鑑;王春生
分类号 G05D1/02(2006.01)I 主分类号 G05D1/02(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 沈波
主权项 基于数组地图的移动机器人室内路径规划方法,其特征在于:栅格地图法的思路是将环境均匀划分为若干个大小固定的栅格,每个栅格除了自身的位置参数外,还有一个参数P表示栅格被障碍物占用的概率,其中0&lt;P&lt;1;基于栅格地图的思想,本方法考虑栅格地图的特殊情况,P值只取0或者1,P=0,表示对应栅格无障碍,P=1,表示对应栅格有障碍;并在地图的创建过程中做出适当的改变,提出了“数组地图”的概念;基于数组地图,利用A*算法进行路径规划,同时在机器人移动的过程中,根据搭载的激光传感器获取实时环境数据,动态地更新数组地图;数据量和时间复杂度均能满足移动机器人对实时性的要求;本方法主要由移动机器人和激光传感器组成;激光测距传感器可以在二维平面上进行扇形扫描,用于获取机器人周围的实时环境信息;移动机器人自主运动控制系统的建立包括两个阶段:初始阶段:首先输入一个初始地图,默认室内环境是无障碍的,输入机器人的运动的起点和目标点,作为机器人导航的基础条件;导航阶段:机器人进行动态地路径规划,继而导航;同时,利用激光传感器的数据进行避障,并更新数组地图,在机器人导航到目标点停止之后,优化之后的规划路径得以保存,同时数组地图保存了机器人导航过程中的环境信息;机器人利用A*算法进行路径规划:A*是Hart等人将启发式方法和常规方法相结合提出的一种算法;其估价函数为f(X)=g(X)+h(X)  (1)其中f(X)是从初始点经由节点X到目标点的估价函数,g(X)是在状态空间中从初始点到节点X的实际代价,h(X)是从节点X到目标点最优路径的估计代价.当估计代价h(X)不大于节点X到目标点的实际距离值时,搜索的点数多、效率低,但是能得到最优解;当h(X)大于节点X到目标点的实际距离值时,搜索的点数少、效率高,但是不能保证得到最优解;在本算法中,选取两节点间的欧几里得距离即直线距离作为估计代价,即<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>h</mi><mrow><mo>(</mo><mi>X</mi><mo>)</mo></mrow><mo>=</mo><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>G</mi></msub><mo>-</mo><msub><mi>x</mi><mi>X</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>G</mi></msub><mo>-</mo><msub><mi>y</mi><mi>X</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000953325200000011.GIF" wi="742" he="93" /></maths>其中,(x<sub>X</sub>,y<sub>X</sub>)是节点X的坐标,(x<sub>G</sub>,y<sub>G</sub>)是目标点G的坐标.路径规划过程中的避障与否是对获取的激光传感器数据进行的判断结果:机器人在移动过程中,每次在前进之前,都先利用搭载的激光传感器获取正前方栅格实时数据,根据数据判断,正前方栅格是否有障碍,以此来判断下一步的移动;但是实验所用激光传感器只能探测二维的扇形区域,而数组地图中每个节点对应的栅格环境是正方形;所以实验过程中,用激光扫描的三个扇形数据拼接成近似正方形区域,比只扫描正前方一个扇形,提高了精确度;左右两个扇形激光数据各为一个9维向量,中间扇形激光数据为18维,拼接而成一个36维度的向量;只要探测到该36维数据有任何1维数据与无障碍时读数不同,即认为有障碍,继而更新数组地图;激光扫描获得的数据向量表示为laserData={x<sub>1</sub>,x<sub>2</sub>,...x<sub>n</sub>}(n=36)  (3)移动机器人在路径规划时需要判断前进、左右旋转或者停止;在判断前进时,需要以激光读取的实时数据为依据;考虑这几个因素,路径规划算法描述如下:初始条件:数组地图:初始令大小已知的数组地图中的节点元素都是0,即默认环境无障碍;已达点列表:保存机器人已走过的栅格的列表;不可用点列表:保存路径规划时不再考虑的栅格的列表;相邻可达点:当前机器人所在栅格的邻域中,在数组地图中对应节点元素值为0的且不在不可用点列表中的栅格;步骤1:判断当前栅格是否是目标栅格,若是,则停止;否则根据数组地图判断当前栅格是否有相邻可达点,若有,转至步骤2;否则,转至步骤3;步骤2:对所有相邻可达点根据上文提及的估价函数A*算法计算,选取出f(X)值最小的栅格节点X,判断X相对于当前栅格的方向是否为机器人正前方方向,若是,转至步骤4;否则,机器人原地旋转方向,直至正前方指向X,转至步骤4;步骤3:将当前栅格节点设定为不可用点,从已达点列表中删除,并放入不可用点列表中,机器人退回到上一个栅格,转至步骤1;步骤4:读取激光数据,判断正前方栅格是否有障碍,若有,转至步骤5,否则转至步骤6;步骤5:更新地图,将正前方栅格在数组地图中对应的节点值设置为1,转至步骤1;步骤6:将正前方栅格节点添加到已达点列表,机器人向前前进一个栅格,转至步骤1。
地址 100124 北京市朝阳区平乐园100号