主权项 |
一种机器人地图构建存储方法,其特征在于,该方法包括以下步骤:1)将基站坐标设为机器人起始坐标(x<sub>0</sub>,y<sub>0</sub>),并设定机器人从基站出发时,工作区域内x坐标的最大值x<sub>max</sub>的初始值、最小值x<sub>min</sub>的初始值,y坐标的最大值y<sub>max</sub>的初始值、最小值y<sub>min</sub>的初始值分别为x<sub>max</sub>=x<sub>0</sub>,x<sub>min</sub>=x<sub>0</sub>,y<sub>max</sub>=y<sub>0</sub>,y<sub>max</sub>=y<sub>0</sub>;2)然后机器人从基站出发,沿着工作区域的边界线运行一周后返回基站,运行过程中,按照如下方式不断更新x坐标的最大值x<sub>max</sub>、最小值x<sub>min</sub>,y坐标的最大值y<sub>max</sub>、最小值y<sub>min</sub>:在任意i时刻分别对比坐标(x<sub>i</sub>,y<sub>i</sub>)与上一次更新的x<sub>max</sub>、x<sub>min</sub>、y<sub>max</sub>、y<sub>min</sub>的大小关系,若x<sub>i</sub><x<sub>min</sub>则x<sub>min</sub>=x<sup>i</sup>,否则x<sub>min</sub>的值保持不变,若x<sub>i</sub>>x<sub>max</sub>则x<sub>max</sub>=x<sub>i</sub>,否则x<sub>max</sub>的值保持不变,若y<sub>i</sub><y<sub>min</sub>则y<sub>min</sub>=y<sub>i</sub>,否则y<sub>min</sub>的值保持不变,若y<sub>i</sub>>y<sub>max</sub>则y<sub>max</sub>=y<sub>i</sub>,否则y<sub>max</sub>的值保持不变,其中,(x<sub>i</sub>,y<sub>i</sub>)为i时刻时机器人的坐标;3)根据机器人沿边界线运行一周后最终更新得到的x<sub>max</sub>、x<sub>min</sub>、y<sub>max</sub>、y<sub>min</sub>,确定表征边界线最大范围的四个坐标点分别为(x<sub>a</sub>,y<sub>max</sub>)、(x<sub>b</sub>,y<sub>min</sub>)、(x<sub>max</sub>,y<sub>a</sub>)、(x<sub>min</sub>,y<sub>b</sub>),其中x<sub>a</sub>为y<sub>max</sub>对应的横坐标、x<sub>b</sub>为y<sub>min</sub>对应的横坐标,y<sub>a</sub>为x<sub>max</sub>对应的横坐标,y<sub>b</sub>为x<sub>min</sub>对应的横坐标;然后根据这四个表征边界线最大范围的坐标计算出工作区域内x坐标最大差值X<sub>max</sub>=x<sub>max</sub>‑x<sub>min</sub>和y坐标最大差值Y<sub>max</sub>=y<sub>max</sub>‑y<sub>min</sub>;同时计算出工作区域的中心坐标(x<sub>c</sub>,y<sub>c</sub>),其中,x<sub>c</sub>=[(x<sub>max</sub>+x<sub>min</sub>)/2],y<sub>c</sub>=[(y<sub>max</sub>+y<sub>min</sub>)/2];4)根据下式计算出表征地图大小的参数n:n=[X/2Δ]+1;其中Δ为正方形地图栅格的边长,X为工作区域最大范围内x坐标最大差值X<sub>max</sub>和y坐标最大差值Y<sub>max</sub>的较大值,即当X<sub>max</sub>≥Y<sub>max</sub>时,X=X<sub>max</sub>,而X<sub>max</sub><Y<sub>max</sub>时,X=Y<sub>max</sub>;5)根据表征地图大小的参数n实现地图数据与存储单元地址的映射,具体方法为:将所有地图栅格的数据按照{x<sub>i</sub>,y<sub>i</sub>,地图栅格属性}的格式存储在存储单元中,其中每个地图栅格数据占用存储单元空间大小为m字节,地图中心坐标(x<sub>c</sub>,y<sub>c</sub>)存储在存储单元的起始地址,该起始地址在存储单元中与最小地址的偏移量为k,k≥0,其他坐标(x<sub>i</sub>,y<sub>i</sub>)的存储位置根据下式求得的该坐标与最小地址的偏移量来确定:M(2n+1)m+Nm+k;其中,M、N由以下方法确定:L<sub>1</sub>=(x<sub>i</sub>‑x<sub>c</sub>)/Δ,L<sub>2</sub>=(y<sub>i</sub>‑y<sub>c</sub>)/Δ;当L<sub>1</sub>>0时,M=2|L<sub>1</sub>|,当L<sub>1</sub><0时,M=2|L<sub>1</sub>|‑1;当L<sub>2</sub>>0时,N=2|L<sub>2</sub>|,当L<sub>2</sub><0时,N=2|L<sub>2</sub>|‑1。 |