接触检测
步态规划器给出的接触序列是严格按照时间进行周期性计算的。而在实际运行当中,由于地形的不平整,又或者存在坡度等情况,腿部会发生提前或者延迟接触等情况,因此只靠步态规划器给出的接触序列来控制机器人往往是不可靠的。
因此这里提出一个基于卡尔曼滤波的概率接触检测。其综合考虑了步态规划其给出的恒定接触序列,足端高度,地形的不平整性,以及通过关节编码器数据所计算出来的关节力矩,来提高接触检测的精度,同时减少了腿部由于电机力矩控制所引起的关节回弹现象
预测模型
卡尔曼滤波器的标准预测方程如下:
该模型有以下函数曲线:
当参数(μ,σ)取不同值时,图像如下所示,可以看出,σ取不同值时,曲线的曲率会有所变化,当曲率比较大时,其预测结果更精确,但是许用误差范围较小,容易造成系统的不稳定;
而当曲率变小时,预测模型的稳定性更强,其许用误差范围较大,但预测结果相对来说没那么精确,实际参数的选取可根据实机结果进行调整:
测试代码如下:
def prediction_model(phi, state, params): given the gait schedule and the current phase of a leg, the gait scheduler provides an expected contact state of each leg :param phi: phase :param state: contact state :param params: [mu, mu_bar, sigma, sigma_bar] mu = [mu1, mu2] and so on :return: the probability of contact mu0, mu1 = params[0] mu0_bar, mu1_bar = params[1] sigma0, sigma1 = params[2] sigma0_bar, sigma1_bar = params[3] a = math.erf((phi-mu0)/(sigma0*np.sqrt(2))) + math.erf((mu1-phi)/(sigma1*np.sqrt(2))) b = 2+math.erf((mu0_bar-phi)/(sigma0_bar*np.sqrt(2))) + math.erf((phi-mu1_bar)/(sigma1_bar*np.sqrt(2))) if state == 1: prob = 0.5 * (state * a) else: prob = 0.5 * (state * b) return prob因此,对于k个接触点,该预测模型可以作为系统的瞬时输入为:
协方差矩阵如下,该矩阵表示我们对预测精度的信赖程度
由于我们只关注瞬时接触检测(通过融合当前可用的测量),所以状态矩阵和输入矩阵被定义为如下:
怎样防蚊更有效?
如何用单片机制作电子密码锁电路
【技术贴】图像传感器的动态范围
NB-IoT和5G之间有什么联系,对物联网会产生什么影响
汽车芯片短缺的原因有哪些
四足机器人接触检测和模型
储能安全认证和银行担保的关系,UL1973和UL9540有什么用?
瑞萨电子投资甲府工厂,300mm功率半导体产线恢复
手机芯片市场格局将发生怎样的改变?
天线方向图及增益测试场景及设备
助力伺服系统,光电编码工艺革新磁编码芯片升级
Uber多伦多投资1.5亿美元无人驾驶研究
指纹识别认证的应用现状分析
XPS测试介绍
雷诺梅甘娜RS以漂移驰名,一款性能非常出色的前驱钢炮,售价为25.99-38.76万元,喜欢漂移的不妨试试这台车!
动力电池的衰减对电动汽车的影响
排序算法merge-sort的基础知识
指甲般大小显示芯片 国内独一无二
4239万!大理经济技术开发区全域智慧停车一期项目招标(含智慧灯杆)
电压不平衡的情况下逆变器无交流电压传感器控制策略