本发明涉及一种基于虚拟传感器的足式机器人地形感知方法,涉及一种室外作业的足式机器人的地形感知,适用于足式机器人对内部和外部环境信息的获取,属于机器人感知领域。
背景技术:
地形感知能力对于室外作业尤其是深空探测机器人极为重要,复杂的非结构化地质条件给机器人的移动性能带来很大影响,使其无法完成预定任务,甚至对其本身造成危险。单纯的基于视觉的地形感知方法很难获得表层土壤下的地形结构和物理特性,而基于触觉的感知方法大多需要在机器人足部安装触觉传感器,该传感器与各种地形相互作用,极易造成损坏,从而降低系统鲁棒性。并且,航天器具有在轨故障不易维修的特点,该触觉传感系统将严重影响整个系统的可靠性。
技术实现要素:
本发明要解决的技术问题是:克服现有技术的不足,提供了一种基于虚拟传感器的足式机器人地形感知方法,包括如下步骤:s1、建立触地检测神经网络模型和土壤分类机器学习模型;s2、在不同地形、不同步态条件下,采集足式机器人的腿关节的角度、腿关节的角速度、电机电流、腿与地面的接触力数据作为样本;s3、利用s2中采集的样本,对触地检测神经网络模型和土壤分类机器学习模型进行训练;s4、将s3中训练后的触地检测神经网络模型和土壤分类机器学习模型作为足式机器人的地形感知系统,用于地形感知。本发明方法能够提高机器人的行走稳定性和运动能力,同时增强机器人的鲁棒性及其行为的可靠性;此外简化了机器人的硬件,降低了设计、加工和维护成本。
本发明目的通过以下技术方案予以实现:
一种基于虚拟传感器的足式机器人地形感知方法,包括如下步骤:
s1、建立触地检测神经网络模型和土壤分类机器学习模型;
s2、在不同地形、不同步态条件下,采集足式机器人的腿关节的角度、腿关节的角速度、电机电流、腿与地面的接触力数据作为样本;
s3、利用s2中采集的样本,对触地检测神经网络模型和土壤分类机器学习模型进行训练;
s4、将s3中训练后的触地检测神经网络模型和土壤分类机器学习模型作为足式机器人的地形感知系统,用于地形感知。
上述基于虚拟传感器的足式机器人地形感知方法,s3中对触地检测神经网络模型进行训练时,同时利用网络输出与期望输出的误差,和,网络输出与期望输出对输入的导数误差,修正触地检测神经网络模型的网络权值。
上述基于虚拟传感器的足式机器人地形感知方法,s3中首先采用离散小波变换对足式机器人的单腿关节信息的样本数据进行提取,然后利用支持向量机分类器对提取的足式机器人的单腿关节信息进行分类,获得训练后的土壤分类机器学习模型。
上述基于虚拟传感器的足式机器人地形感知方法,将足式机器人的腿关节的角度、腿关节的角速度、电机电流作为触地检测神经网络模型的输入样本,将腿与地面的接触力作为触地检测神经网络模型的输出样本。
上述基于虚拟传感器的足式机器人地形感知方法,将足式机器人的腿关节的角度、腿关节的角速度、电机电流和土壤样本作为土壤分类机器学习模型的样本。
一种基于虚拟传感器的足式机器人地形感知系统,包括样本采集模块、线下学习模块、线上应用模块;
所述样本采集模块用于在不同地形、不同步态条件下,采集足式机器人的腿关节的角度、腿关节的角速度、电机电流、腿与地面的接触力数据作为样本;
所述线下学习模块用于建立触地检测神经网络模型和土壤分类机器学习模型,然后利用所述样本采集模块采集的样本,对触地检测神经网络模型和土壤分类机器学习模型进行训练;
所述线上应用模块利用所述线下学习模块中训练后的触地检测神经网络模型和土壤分类机器学习模型,完成地形感知。
上述基于虚拟传感器的足式机器人地形感知系统,所述线下学习模块对触地检测神经网络模型进行训练时,同时利用网络输出与期望输出的误差,和,网络输出与期望输出对输入的导数误差,修正触地检测神经网络模型的网络权值。
上述基于虚拟传感器的足式机器人地形感知系统,所述线下学习模块首先采用离散小波变换对足式机器人的单腿关节信息的样本数据进行提取,然后利用支持向量机分类器对提取的足式机器人的单腿关节信息进行分类,获得训练后的土壤分类机器学习模型。
上述基于虚拟传感器的足式机器人地形感知系统,将足式机器人的腿关节的角度、腿关节的角速度、电机电流作为触地检测神经网络模型的输入样本,将腿与地面的接触力作为触地检测神经网络模型的输出样本。
上述基于虚拟传感器的足式机器人地形感知系统,将足式机器人的腿关节的角度、腿关节的角速度、电机电流和土壤样本作为土壤分类机器学习模型的样本。
本发明相比于现有技术具有如下有益效果:
(1)本发明提出了一种基于虚拟传感器的足式机器人地形感知方法,应用该方法能够显著提高足式机器人的以下性能:能够预测足式机器人的触地状态,以提高机器人的行走稳定性;能够识别地形的基本特征,确定土壤类型,从而提高机器人的地形适应能力和运动能力,经验证,本方法对土壤的分类精度可达90%以上;
(2)本发明方法仅需通过机器人腿部关节角度、角速度和电机电流,即可估计触地状态及地形特性,无需额外设计安装足部传感器,简化了机器人的硬件,降低了设计、加工和维护成本。尤其在深空探测应用中,能够有效减轻航天器的运载压力,且避免在轨故障不易维修的缺陷,增强了机器人的可靠性;
(3)本发明方法给出了足式机器人的地形感知机器学习模型,建立了触地检测神经网络模型和土壤分类机器学习模型,并考虑到空间环境中的样本数量有限,提出了一种考虑导数信息的神经网络学习算法,克服了小样本学习的过拟合问题,此外,该模型还具有预测精度高、动态响应速度快的优点;
(4)本发明方法建立了考虑导数信息的神经网络学习算法的触地检测神经网络模型,不仅根据网络输出与期望输出的误差修正网络权值,还根据网络输出与期望输出对输入的导数误差修正网络权值,减少了网络的“过拟合”问题,提高了网络的泛化能力。
附图说明
图1为触地检测神经网络结构模型;
图2为土壤分类机器学习模型建模方法框图;
图3为bp神经网络学习训练流程;
图4为虚拟传感器地形感知应用框图;
图5为六足机器人单腿触地运动实验方案示意图;
图6为六足机器人触地检测神经网络结构模型;
图7为质心高度0.36m,单步周期4s,碰撞表面材料为软质塑料的神经网络训练输出与样本输出对比曲线;
图8为质心高度0.42m,单步周期6s,碰撞表面材料为铝的神经网络训练输出与样本输出对比曲线;
图9为质心高度0.36m,单步周期8s,碰撞表面材料为软质塑料的虚拟传感器的预测结果与实验测试结果的对比曲线;
图10为质心高度0.42m,单步周期10s,碰撞表面材料为铝的虚拟传感器的预测结果与实验测试结果的对比曲线;
图11为四种不同的svm模型的分类混淆矩阵(st-1:铝,st-2:橡胶,st-3:硬质塑料,st-4:软质塑料),其中图11(a)为线性核函数的svm模型,11(b)为二次核函数的svm模型,11(c)为三次核函数的svm模型,11(d)为高斯径向基核函数的svm模型。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步详细描述。
实施例1:
步骤(1)地形感知机器学习模型建模
地形感知机器学习模型建模主要分为两部分:触地检测神经网络建模和土壤分类机器学习模型建模
1)触地检测神经网络建模
建立一种考虑导数信息的神经网络学习算法建立足式机器人单腿的触地检测神经网络模型,以实现触地检测。触地检测神经网络模型包括三层:输入层、隐含层和输出层,各层之间通过函数运算关系连接。输入层的输入信号为单腿各关节的关节角度、关节角速度和关节电机电流。若腿关节数为n,则触地检测神经网络模型的输入层包含3n个节点。输出层的输出信号为该腿足端与地面的接触力,分为法向接触力和切向摩擦力,因此输出层的节点数为2。隐含层节点个数一般先根据经验设置一个初值,再根据反复试算确定最终数值。可参考如下经验公式设置初值:
其中,n为隐含层节点数目,h为输入层节点数目,m为输出层节点数目,a为1~10之间的调节常数。
图1为建立的神经网络结构模型,各层间的数学关系表示如下:
yj=f1(netj)j=1,2,…,n(3)
ok=f2(netk)k=1,2(5)
其中,输入向量为x=(x1,x2,…,xi,…,x3n)t,xi是输入层第i个单元的输入数据;隐层输出向量为y=(y1,y2,…,yj,…,yn)t,n是隐含层单元数,yj是隐含层第j个单元的输出数据;输出层输出向量为o=(o1,o2)t,期望输出向量为d=(d1,d2)t,ok和dk分别是输出层第k个单元的网络输出和期望输出;输入层到隐层之间的权值矩阵用v表示,v=(v1,v2,…,vj,…,vn)t,隐层到输出层之间的权值矩阵用w表示,w=(w1,w2)t,vij和wjk分别是输入层与隐含层、隐含层与输出层之间的权值,netj和netk分别是隐含层第j个单元和输出层第k个单元的输入数据,f1和f2分别是隐含层和输出层的传递函数。非线性网络中的传递函数可采用sigmoid激活函数,此处选用双曲正切函数和对数函数。
2)土壤分类机器学习模型建模
首先采用离散小波变换(discretewavelettransformation,dwt)对足式机器人的单腿关节信息的样本数据进行特征提取。每个样本数据为该足式机器人行走一步的单腿关节信息,单腿关节信息包含各关节的角度、角速度和电机电流。若单腿关节数为n,则单腿关节信息包含3n个量。采用daubechies小波函数进行特征提取,小波函数ψ(t)和尺度函数φ(t)中的支撑区为2n-1,ψ(t)的消失矩为n。
然后设计支持向量机(supportvectormachine,svm)分类器对上步提取的单腿关节特征进行分类。可选择不同的核函数形成不同的支持向量机,如线性核函数、多项式核函数和高斯核函数,其公式分别为:
线性核函数:
k(xi,xj)=(xi·xj)(8)
多项式核函数(二次:d=2;三次:d=3)
k(xi,xj)=[(xi·xj) 1]d(9)
高斯径向基核函数
k(xi,xj)=exp(-γ||xi·xj||2)γ>0(10)
使用启发式程序选择内核比例,并采用一对一法(one-vs-one)构造svm多类分类器,即组合多个二分类器实现多分类器的构造,具体为在任意两类样本之间设计一个svm,因此l个类别的样本就需要设计l(l-1)/2个svm。该土壤分类机器学习模型建模方法框图如图2所示。
步骤(2)样本数据采集。
在应用机器学习模型进行训练前,首先需要完成样本数据的采集。本方法采集足式机器人在不同地形,以不同步态行走过程中腿关节的角度、角速度和电机电流,以及该腿与地面的接触力作为样本。取行走一步为一个样本。
针对触地检测神经网络模型,将关节角度、关节角速度和关节电机电流作为神经网络的输入样本,将接触力作为输出样本。然后,将样本数据分为训练集、验证集和测试集三部分。当数据量比较小时,训练集、验证集和测试集比例为6:2:2;当数据量非常大时,训练数据、验证数据和测试数据比例为98:1:1。通常,神经网络在训练之前需对样本数据归一化处理,即将数据映射到更小的区间内,比如[0,1]或[-1,1]。
针对土壤分类机器学习模型,将关节角度、关节角速度和关节电机电流,及所对应的土壤类型作为样本。将样本数据进行标准化处理,常用方法为z-score标准化,经过处理后的数据均值为0,标准差为1。
步骤(3)机器学习模型算法。
机器学习模型算法包含触地检测神经网络模型算法和土壤分类机器学习模型算法。
1)触地检测神经网络模型算法
本文所述考虑导数信息的神经网络学习算法流程如图3所示。
定义网络输出与期望输出的误差为:
引入梯度下降法对权值vij和wjk进行调整使e1不断减小,即:
其中,η表示学习速率,u表示网络学习训练过程的迭代次数,i、j、k分别为网络输入层的节点序数、隐含层的节点序数、输出层的节点序数。
另外,由式(2)-(5)可知,网络输出o相对于网络输入x的偏导数矩阵为:
其中,[f2(netk)]'表示f2(netk)对netk求导;[f1(netj)]'表示f1(netj)对netj求导,q=(q1,q2)t,qk为输出层第k个单元的网络输出对网络输入的偏导数向量,qk=(qk1,qk2,…,qki,…,qkn)。
设网络输出对网络输入的偏导数的期望值矩阵为t=(t1,t2)t,其中tk为输出层第k各单元的网络输出对网络输入的偏导数的期望值向量,tk=(tk1,tk2,…,tki,…,tkn),则定义网络输出对网络输入的偏导数与其期望值的误差为:
同样,应用梯度下降法对权值vij和wjk进行调整使e2不断减小,即:
2)土壤分类机器学习模型算法
所建土壤分类模型的训练过程根据核函数对样本数据的所有特征向量进行计算,构造一个使样本可分的特征空间。具体步骤为用所选分类器对所有样本数据的特征进行分类,根据所选核函数分别计算每个分类器中每个特征向量的相关值,然后根据相关值计算协方差矩阵空间,并进行householder变换得到对应的超平面矩阵,计算特征系数,得到模型参数,从而可根据模型参数执行分类。在训练过程中采用交叉验证方法防止训练中的过拟合现象。
步骤(4)虚拟传感器地形感知系统。
该虚拟传感器主要通过机器人腿关节的当前状态,推算出该时刻足端的触地状态和地形特性,并将该信息汇总于地形感知系统。此虚拟传感器在地形感知应用时主要分为样本采集、线下学习和线上应用三大部分,其示意图如图4所示,其中以六足机器人为例,该方法适用于任意多足机器人。样本采集部分设计的机器人腿行走路径,尽可能包络其关节的所有运动状态,以提高预测精度。线下学习部分,分别建立各个足的地形感知机器学习模型,并应用各足的样本数据对相应的机器学习模型进行学习训练。线上应用部分,将训练好的机器学习模型应用于足式机器人的地形感知系统中,线上预测机器人行走过程中的触地状态和地形特性。
实施例2:
一种虚拟传感器用于足式机器人的地形感知方法,主要包含4个组成部分:(1)样本数据采集;(2)地形感知机器学习模型建模;(3)机器学习模型算法;(4)虚拟传感器地形感知系统。下面详细说明各个部分的组成。
(1)样本数据采集
为了验证本方法的有效性,设计了一六足机器人的单腿触地运动实验。实验方案示意图如图5所示,该机器人一腿部足底安装有一维力传感器,采样频率为1000hz。实验分别进行了机器人以不同质心高度,不同行走速度、在不同材质地面进行的触地行走测试。其中,单步行走周期取:3s、4s、5s、6s、7s、8s、9s、10s;质心高度:0.36m、0.42m;地面材料:铝、橡胶、硬质塑料、软质塑料。实验过程中采集关节的角度、角速度、电机电流和力传感器所测碰撞力。其中,关节角度信息从关节编码器中采集得到;关节角速度通过关节角度差分法得到;关节电机采用永磁同步电机,从中提取关节电流信号。实验采集得到的总样本数为64组。
对于触地检测神经网络模型,输入样本为:关节角度、关节角速度和关节电机电流;输出样本为:碰撞力。训练集、验证集和测试集的分配比例为3:1:1。所有样本数据在使用前均进行了归一化处理,归一化后的数据分布于区间[0,1]内,归一化公式为:
其中,x为数据原始值,x'为归一化后的值,xmin为x的最小值,xmax为x的最大值。
对于土壤分类机器学习模型,样本为关节角度、关节角速度和关节电机电流,及所对应的地面材料类型。采用z-score对样本数据进行标准化处理,经过处理后的数据均值为0,标准差为1,标准化公式为:
x'=x-μσ(19)
其中,μ是样本均值,σ是样本标准差。
(2)地形感知机器学习模型建模
所建触地检测神经网络模型的输入层输入信号为单腿各关节角度、角速度和电机电流,由于单腿关节数为2,因此输入层节点数为6。输出层输出信号为一维碰撞力,因此输出层节点数为1。隐含层节点数根据经验公式(1)预先设置为10。图6为此算例所建触地检测神经网络结构模型,各层间的数学关系如公式(2)-(7)。
所建土壤分类机器学习模型,采用dwt对足式机器人的单腿关节信息的样本数据进行特征提取。每个样本数据为该足式机器人行走一步的单腿关节信息,单腿关节信息包含各关节角度、角速度和电机电流。由于单腿关节数为2,则单腿关节信息包含6个量。设样本数为s,行走一步时间为t,采样频率为1000hz,则提取的特征矩阵大小为f×s,其中f≤(1000t×3n)。采用daubechies小波函数进行特征提取,小波函数ψ(t)和尺度函数φ(t)中的支撑区为2n-1,ψ(t)的消失矩为4。然后设计svm分类器对上述提取的单腿关节特征进行分类。分别选择线性核函数、二次核函数、三次核函数和高斯径向基核函数形成四种不同的svm。其核函数公式为(8)-(10)。使用启发式程序选择内核比例,并采用一对一法(one-vs-one)构造svm多类分类器,由于本例中含4类样本,因此需要设计6个svm。
(3)机器学习模型算法
1)根据考虑导数信息的神经网络学习算法对所建触地检测神经网络模型进行训练,其具体实现步骤如下:
①初始化
初始权值,置其为(-1,1)间的随机数;学习速率η设置为(0,1)间的小数,此处设置为0.2;学习精度e1、e2设置为一个正的小数,此处设置为1×10-4;最大学习次数设置为5000。
②输入样本数据,计算各层输出
用当前样本对输入量xi赋值,并应用公式(2)-(7)计算其中各分量。
③计算误差e1
应用公式(11)计算误差e1的值。
④修正各层权值使e1减小
应用式(12)、(13)对权值v、w进行调整。
⑤计算误差e2
应用公式(15)计算误差e2的值。
⑥修正各层权值使e2减小
应用式(16)、(17)对权值v、w进行调整。
⑦检查是否对所有样本完成一次轮训
若否返回步骤②,是则转步骤⑧。
⑧检查网络误差是否达到精度要求或网络达到最大学习次数
若否返回步骤②,是则训练结束。
当神经网络训练结束后,即可查看训练结果。图7和图8为随机抽取的两组网络训练输出与样本输出的对比曲线,直观的表明了网络训练值与实验值的吻合性良好。
2)根据svm训练方法对所建土壤分类机器学习模型进行训练,具体步骤为用所选分类器对所有样本数据的特征进行分类,根据所选核函数分别计算每个分类器中每个特征向量的相关值,然后根据相关值计算协方差矩阵空间,并进行householder变换得到对应的超平面矩阵,计算特征系数,得到模型参数,从而可根据模型参数执行分类。
(4)虚拟传感器地形感知系统
当触地检测神经网络模型和土壤分类机器学习模型训练好后,即可将该两模型作为虚拟传感器,作为机器人的地形感知系统,用于地形感知。此部分应用测试样本测试两模型的泛化能力,测试样本共16组都为机器学习模型未训练过的数据。
对于触地检测神经网络模型,将归一化后的关节角度、角速度和电机电流信号作为模型输入,反归一化的输出即为预测的碰撞力。将模型预测的碰撞力结果与实验测得的碰撞力信号进行比较,以验证虚拟传感器的有效性。图9和图10即为两组预测结果与实验结果的对比曲线,从图中可以看出,其预测值与实验测试值具有较好的一致性。为了评估预测精度,计算了16组预测值与实验值的均方根误差(rmse)和绝对误差平均值(mmae),其定义为
其中,n为测试值总数;di和oi分别为第i个测试值和预测值。
由公式(20)和公式(21)可得本测试的rmse为0.5876;mmae为0.4525。
对于土壤分类机器学习模型,将标准化后的关节角度、角速度和电机电流作为测试样本执行分类,以验证该模型的泛化能力。图11为四种不同的svm模型的分类混淆矩阵。从结果中可以看出,三次核函数的分类准确率最高,为92%。其中st-1:铝,st-2:橡胶,st-3:硬质塑料,st-4:软质塑料,图11(a)为线性核函数的svm模型,11(b)为二次核函数的svm模型,11(c)为三次核函数的svm模型,11(d)为高斯径向基核函数的svm模型。
以上结果表明,所建地形感知机器学习模型具有较好的预测精度和泛化能力,由其设计的虚拟传感器具有较高的精度和可靠性,可应用于机器人的地形感知系统进行触地检测和地形识别。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
1.一种基于虚拟传感器的足式机器人地形感知方法,其特征在于,包括如下步骤:
s1、建立触地检测神经网络模型和土壤分类机器学习模型;
s2、在不同地形、不同步态条件下,采集足式机器人的腿关节的角度、腿关节的角速度、电机电流、腿与地面的接触力数据作为样本;
s3、利用s2中采集的样本,对触地检测神经网络模型和土壤分类机器学习模型进行训练;
s4、将s3中训练后的触地检测神经网络模型和土壤分类机器学习模型作为足式机器人的地形感知系统,用于地形感知。
2.根据权利要求1所述的一种基于虚拟传感器的足式机器人地形感知方法,其特征在于,s3中对触地检测神经网络模型进行训练时,同时利用网络输出与期望输出的误差,和,网络输出与期望输出对输入的导数误差,修正触地检测神经网络模型的网络权值。
3.根据权利要求1或2所述的一种基于虚拟传感器的足式机器人地形感知方法,其特征在于,s3中首先采用离散小波变换对足式机器人的单腿关节信息的样本数据进行提取,然后利用支持向量机分类器对提取的足式机器人的单腿关节信息进行分类,获得训练后的土壤分类机器学习模型。
4.根据权利要求1或2所述的一种基于虚拟传感器的足式机器人地形感知方法,其特征在于,将足式机器人的腿关节的角度、腿关节的角速度、电机电流作为触地检测神经网络模型的输入样本,将腿与地面的接触力作为触地检测神经网络模型的输出样本。
5.根据权利要求1或2所述的一种基于虚拟传感器的足式机器人地形感知方法,其特征在于,将足式机器人的腿关节的角度、腿关节的角速度、电机电流和土壤样本作为土壤分类机器学习模型的样本。
6.一种基于虚拟传感器的足式机器人地形感知系统,其特征在于,包括样本采集模块、线下学习模块、线上应用模块;
所述样本采集模块用于在不同地形、不同步态条件下,采集足式机器人的腿关节的角度、腿关节的角速度、电机电流、腿与地面的接触力数据作为样本;
所述线下学习模块用于建立触地检测神经网络模型和土壤分类机器学习模型,然后利用所述样本采集模块采集的样本,对触地检测神经网络模型和土壤分类机器学习模型进行训练;
所述线上应用模块利用所述线下学习模块中训练后的触地检测神经网络模型和土壤分类机器学习模型,完成地形感知。
7.根据权利要求6所述的一种基于虚拟传感器的足式机器人地形感知系统,其特征在于,所述线下学习模块对触地检测神经网络模型进行训练时,同时利用网络输出与期望输出的误差,和,网络输出与期望输出对输入的导数误差,修正触地检测神经网络模型的网络权值。
8.根据权利要求6或7所述的一种基于虚拟传感器的足式机器人地形感知系统,其特征在于,所述线下学习模块首先采用离散小波变换对足式机器人的单腿关节信息的样本数据进行提取,然后利用支持向量机分类器对提取的足式机器人的单腿关节信息进行分类,获得训练后的土壤分类机器学习模型。
9.根据权利要求6或7所述的一种基于虚拟传感器的足式机器人地形感知系统,其特征在于,将足式机器人的腿关节的角度、腿关节的角速度、电机电流作为触地检测神经网络模型的输入样本,将腿与地面的接触力作为触地检测神经网络模型的输出样本。
10.根据权利要求6或7所述的一种基于虚拟传感器的足式机器人地形感知系统,其特征在于,将足式机器人的腿关节的角度、腿关节的角速度、电机电流和土壤样本作为土壤分类机器学习模型的样本。
技术总结