四足机器人单腿逆运动学解-几何方法
四足机器人控制与仿真入门学习笔记
古月居《四足机器人控制与仿真入门》学习笔记,视频链接: link
视角分解
静止状态
上图描述了一个四足机器人右前腿静止状态下的的后视图和右视图。O点为该腿的坐标系原点,P点为腿的末端点。共有3个自由度即3个旋转关节,3个关节连杆第一段关节长度为h,第二段关节长度为hu,第三段关节长度为hl。三个旋转角从上到下分别定义为gamma,alpha,beta。
运动状态
上图描述了一个四足机器人右前腿运动状态下的的后视图和右视图。规定关节顺时针旋转为正方向。
运动学逆解
单腿运动学逆解的目标是给定足末端点的坐标(x,y,z),求解能够达到这一目标的各关节角度,即:
( x , y , z ) → ( g a m m a , a l p h a , b e t a ) s . t . h , h u , h l 已知 (x,y,z)\to(gamma,alpha,beta) \\ s.t. \ \ \ h,hu,hl已知 (x,y,z)→(gamma,alpha,beta)s.t. h,hu,hl已知
求解gamma角
设dyz为从O点到P点的线段在yz平面上的投影,则dyz长度为:
d y z = y 2 + z 2 dyz = \sqrt{y^2+z^2} dyz=y2+z2
设lyz为顶点距足端点在yz平面上投影的距离,长度为:
l y z = d y z 2 − h 2 lyz = \sqrt{dyz^2-h^2} lyz=dyz2−h2
则
gamma_yz = -arctan(y/z)
gamma_h_offset = -arctan(h/lyz)
最终可得:
gamma = gamma_yz - gamma_h_offset
求解beta角
将上述关节投影在yz平面上可得如下几何关系:
其中
l x z ′ = l y z 2 + x 2 lxz' = \sqrt{lyz^2+x^2} lxz′=lyz2+x2
于是可得如下方程组:
{ ( h u + n ) 2 + m 2 = l x z ′ 2 n 2 + m 2 = h l 2 \left\{ \begin{array}{c} (hu+n)^2+m^2=lxz'^2 \\ n^2+m^2=hl^2 \end{array} \right. {(hu+n)2+m2=lxz′2n2+m2=hl2
联立解得: n = ( l x z ′ 2 − h l 2 − h u 2 ) 2 ∗ h u n=\frac{(lxz'^2-hl^2-hu^2)}{2*hu} n=2∗hu(lxz′2−hl2−hu2)
于是可得beta=-arccos(n/hl)
求解alpha角
同样几何关系描述如下:
易得
alpha_xz’ = -arctan(x/lyz)
alpha_off = arccos( (hu+n) / lxz’ )
则:
alpha = alpha_xz’+alpha_off
matlab代码实现
输入为足末端点坐标(x,y,z),输出为三个关节的角度
函数如下:
function [gamma,alfa,beta] = xyz(x,y,z)
h=0.15;
hu=0.35;
hl=0.382;
dyz=sqrt(y.^2+z.^2);
lyz=sqrt(dyz.^2-h.^2);
gamma_yz=-atan(y/z);
gamma_h_offset=-atan(h./lyz);
gamma=gamma_yz-gamma_h_offset;
%
lxzp=sqrt(lyz.^2+x.^2);
n=(lxzp.^2-hl.^2-hu.^2)/(2*hu);
beta=-acos(n/hl);
%
alfa_xzp=-atan(x/lyz);
alfa_off=acos((hu+n)/lxzp);
alfa=alfa_xzp+alfa_off;
%输出角度为弧度
end
课程链接:四足机器人控制与仿真入门

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)