[发明专利]一种基于自主导航的畜禽信息感知机器人与地图构建方法有效
申请号: | 201910238750.5 | 申请日: | 2019-03-27 |
公开(公告)号: | CN109900280B | 公开(公告)日: | 2020-12-11 |
发明(设计)人: | 林涛;任国强;林智贤;徐金凡;蒋焕煜;丁冠中;应义斌 | 申请(专利权)人: | 浙江大学 |
主分类号: | G01C21/32 | 分类号: | G01C21/32;G01C22/00;G01D21/02;G05D1/02 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 林超 |
地址: | 310058 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 自主 导航 畜禽 信息 感知 机器人 地图 构建 方法 | ||
1.一种基于自主导航的畜禽信息感知机器人与地图构建方法,其特征在于:方法包括以下步骤:
步骤S1:控制机器人在室内工作环境移动,同时利用激光雷达、RGB-D相机、惯性测量单元和里程计获取移动过程的周围环境信息,包括障碍物距离信息、图像及深度信息、局部坐标系下的位姿信息和里程计信息,位姿信息包括第一实时全局坐标,里程计信息包括第二实时全局坐标、速度、航向角和车轮的角速度;
步骤S2:主控模块接收周围环境信息进行处理,通过坐标变换得到机器人在世界坐标系下的实时全局坐标;
步骤S3:将机器人在世界坐标系下的定位全局坐标、速度、航向角以及角速度作为卡尔曼滤波器的状态向量;所述定位全局坐标由第一实时全局坐标、第二实时全局坐标和里程计信息处理获得;
步骤S4:根据状态向量构建卡尔曼滤波器的状态模型,根据里程计的观测模型、惯性测量单元的观测模型以及激光雷达的观测模型构建卡尔曼滤波器的观测模型,根据卡尔曼滤波算法对状态模型和观测模型进行求解获得t时刻下状态向量的全局最优解;
所述的步骤S4,具体为:
S401:t时刻,状态向量Xc(t)构建为Xc(t)=[xt,yt,θt,vt,ωt]T,其中,xt、yt为机器人在世界坐标系下的定位全局坐标,θt为航向角,vt为速度,ωt为角速度,T为矩阵转置;
S402:按照以下构建卡尔曼滤波器状态模型:
Xc(t+1)=f(Xc(t+1))+Wt
其中,Xc(t+1)表示t+1时刻的状态向量,f(Xc(t+1))为t+1时刻的状态向量Xc(t+1)的非线性状态转移函数,Wt为卡尔曼滤波器过程噪声,Δt为相邻两个时刻之间的时间间隔;
S403:将卡尔曼滤波器拆分为各自并列独立的第一子滤波器和第二子滤波器的两部分,其中:
第一子滤波器的观测模型为Zt+1=h1Xc(t)+W1(t),具体为:
其中,ZLas为激光雷达的观测模型,ZIMU为惯性测量单元的观测模型,Wl(t)为激光雷达与惯性测量单元的噪声,h1为第一子滤波器的观测矩阵;
第二子滤波器的观测模型为Z2(t+1)=h2Xc(t)+W2(t),具体的:
其中,Zodom为里程计的观测模型,W2(t)为里程计与惯性测量单元的噪声,h2为第二子滤波器的观测矩阵;
S404:采用以下公式将卡尔曼滤波器的过程噪声Wt的协方差Q(t)、卡尔曼滤波器的估计误差协方差P(t)进行处理并分配到第一子滤波器和第二子滤波器,具体为:
Q1(t′)=α1-1Q(t)
P1(t′)=(1-α1-1)P(t)
Q2(t′)=α2-1Q(t)
P2(t′)=(1-α2-1)P(t)
其中,Q1(t′)为第一子滤波器的t时刻量测噪声的协方差,P1(t′)为第一子滤波器t时刻的估计误差协方差,α1表示第一子滤波器权值的分配系数;Q2(t′)为第二子滤波器的t时刻量测噪声的协方差,P2(t′)为第二子滤波器t时刻的估计误差协方差,α2表示第二子滤波器权值的分配系数;为t时刻状态向量Xc(t)的全局最优解,为各子滤波器t时刻状态向量的全局最优解;
步骤S5:结合RGB-D相机采集的图像信息和蒙特卡罗即时定位与地图构建算法,确定步骤S4所述的卡尔曼滤波器的状态模型和观测模型下所述状态向量的全局最优解;
S501:机器人在地图待构建区域移动,通过激光雷达采集的障碍物距离信息判断机器人移动过程中是否转弯和是否有障碍物,通过RGB-D相机采集的图像信息判断是否有拍到特征道路标记;激光雷达、惯性测量单元和里程计对在地图待构建区域采集到的信息数据进行特征匹配得到世界坐标系下的位姿;
S502:作以下判断处理:
当机器人移动过程中无转弯、无障碍物或RGB-D相机没有拍到特征道路标记时,则卡尔曼滤波器的状态模型的控制向量为世界坐标系下的位姿;
当机器人移动过程中有转弯、有障碍物或RGB-D相机拍到特征道路标记时,则卡尔曼滤波器的状态模型的控制向量为状态向量的最优解;
步骤S6:对卡尔曼滤波器的状态模型和观测模型进行迭代求解得到定位位置,进而构建获得全局地图;
所述的步骤S6,具体为:
S601:将运动观测模型转换为似然函数;
S602:将地图待构建区域均分为多个栅格,采用激光雷达扫描地图待构建区域,将存在障碍物的栅格设置为1,将没有障碍物的栅格设置为0,从而得到局部栅格地图,并作为初始全局地图;
S603:根据蒙特卡洛算法建立粒子,以粒子的位置作为机器人的定位位置,将里程计和惯性测量单元获得的实时全局坐标进行加权融合获得机器人新定位位置,具体为:
P1=Podam·θΔt+PIMU·(1-θΔt′)
其中,Pi是加权融合后的第i个粒子的位置,Podam是里程计获得的第二实时全局坐标,PIMU是惯性测量单元获得的第一实时全局坐标,θΔt′是里程计权重,Δt′是定位持续时间;γ是里程计获得的第二实时全局坐标到达稳定的定位持续时间,n′表示时间指数参数,由实际情况而定;
S604:采用均值为0、方差为σ2的高斯分布描述粒子权重更新方法,更新蒙特卡罗算法的粒子权重,更新后的粒子权重为:
其中,是第i个粒子时刻k的平面位置;e表示自然常数,表示第i个粒子初始的平面位置,表示第i个粒子时刻k的权重;
然后对更新后的粒子权重进行归一化处理;
S605:根据更新后的粒子权重计算机器人的当前定位位置:
其中,n表示粒子的总数;
S606:根据更新后的粒子权重,舍弃权重较小的粒子,包括权值较大的粒子,具体如下:
S6061:对更新后的所有粒子的权重采用多项式重采样,构建离散累积分布函数:
其中,F(i)表示第i个粒子的累计权重;
S6062:在[0,1]上产生服从均匀分布的随机数集合{uj},uj表示上述产生的随机数集合,j表示上述集合中随机产生第j个随机数,然后进行以下判断:
当累计权重F(i)≤uj时,则认为粒子的权重较小;
当累计权重F(i)>uj时,则认为粒子的权重较大,复制当前粒子作为新粒子,且权重设置为1/N;
S6063:重复步骤S6062的多项式重采样进行N次,生成N个新粒子,完成粒子更新,以最终更新得到的粒子的位置作为机器人在世界坐标系上的定位位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910238750.5/1.html,转载请声明来源钻瓜专利网。