四足机器人站立姿态解算-几何方法

古月居课程四足机器人控制与仿真入门笔记,视频链接:link

四足机器人站立姿态解算-几何方法

参数定义

古月居
定义机器人足端在长度方向的距离为l,在宽度方向的距离为w,两前足基座原点之间的距离为b。
古月居
O为地面坐标系原点,位于足端位置的对角线交点;
O’为身体部分几何中心。

姿态解算

古月居
提示:未作特殊说明情况下,以下向量均表示在世界坐标系下的向量,即O为坐标原点
对于1号腿,由几何关系易得:
O B 1 → + B 1 A 1 → = O O ′ → + O ′ A 1 → \overrightarrow{OB_1}+\overrightarrow{B_1A_1} = \overrightarrow{OO'}+\overrightarrow{O'A_1} OB1 +B1A1 =OO +OA1
由于 O ′ A 1 → \overrightarrow{O'A_1} OA1 为世界坐标系下的向量,可以根据机体坐标系下的向量乘以旋转矩阵得到,即
O ′ A 1 → = R ⋅ O ′ A 1 → 机体 \overrightarrow{O'A_1}=R \cdot \overrightarrow{O'A_1}_{机体} OA1 =ROA1 机体

A 1 B 1 → = − O O ′ → − R ⋅ O ′ A 1 → 机体 + O B 1 → \overrightarrow{A_1B_1} = -\overrightarrow{OO'}-R \cdot \overrightarrow{O'A_1}_{机体}+\overrightarrow{OB_1} A1B1 =OO ROA1 机体+OB1
由于在一条腿上,坐标原点位于关节位置,即A点,因此向量AB即代表B点在该坐标系下的坐标(x,y,z),原因可见上一篇文章四足机器人单腿逆运动学解-几何方法
同理可得四条腿足端坐标公式:
A n B n → = − O O ′ → − R ⋅ O ′ A n → 机体 + O B n →    ( n = 1 , 2 , 3 , 4 ) \overrightarrow{A_nB_n} = -\overrightarrow{OO'}-R \cdot \overrightarrow{O'A_n}_{机体}+\overrightarrow{OB_n}\ \ (n=1,2,3,4) AnBn =OO ROAn 机体+OBn   (n=1,2,3,4)

matlab程序

输入为机器狗期望的位置和姿态,输出为四个脚的位置坐标。

function [rb_x,rb_y,rb_z,rf_x,rf_y,rf_z,lb_x,lb_y,lb_z,lf_x,lf_y,lf_z] = pose_control(row,pitch,yaw,pos_x,pos_y,pos_z)
b=0.4;
l=0.8;
w=0.7;
h=0.732;
R=row*pi/180   ;
P=pitch*pi/180 ;
Y=yaw*pi/180   ;
pos=[pos_x,pos_y,pos_z]';
rotx=([[ 1,        0,         0      ]
       [ 0,        cos(R),   -sin(R) ]
       [ 0,        sin(R),    cos(R) ]]);
roty=([[ cos(P),   0,        -sin(P) ]
       [ 0,        1,         0      ]
       [ sin(P),   0,         cos(P) ]]);
rotz=([[ cos(Y),  -sin(Y),    0      ]
       [ sin(Y),   cos(Y),    0      ]
       [ 0,        0,         1      ]]);
rot_mat = rotx * roty * rotz;
%结构参数
  body_struct = ([[ l / 2,  -b / 2,  h]     
                 [  l / 2, b / 2,   h]     
                 [ -l / 2,  b / 2,    h]     
                 [ -l / 2, -b / 2,   h]])'; 
             
 footpoint_struct = ([[ l/2,   -w/2,  0]
                     [  l/2,   w/2,  0]
                     [  -l/2,    w/2,  0]
                     [  -l/2,    -w/2,  0]])';
leg_pose = zeros(3, 4);
for i= 1:4
    leg_pose(:,i) =  pos + rot_mat * body_struct(:, i) - footpoint_struct(:, i);
end

 rb_x = (leg_pose(1, 1));
 rb_y = -(leg_pose(2, 1));
 rb_z = -(leg_pose(3, 1));
 rf_x = (leg_pose(1, 2));
 rf_y = (leg_pose(2, 2));
 rf_z = -(leg_pose(3, 2));
 lb_x = (leg_pose(1, 3));
 lb_y = (leg_pose(2, 3));
 lb_z = -(leg_pose(3, 3));
 lf_x = (leg_pose(1, 4));
 lf_y = -(leg_pose(2, 4));
 lf_z = -(leg_pose(3, 4));
end

参考文献:
四足机器人的站立姿态控制原理

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
四足机器人的动力学模型是描述其运动过程中的力学特性和力的作用关系的数学模型。其中控制是指通过控制系统对四足机器人进行外部力和力矩的施加,以实现目标运动。 在四足机器人的动力学模型中,滑动(slip)是指机器人的脚在接触地面时发生相对于地面的滑动现象。滑动会导致摩擦力的减小,进而影响机器人的稳定性和运动控制。因此,控制四足机器人的滑动是实现稳定行走和动态运动的重要问题之一。 为了控制滑动,可以采用以下方法: 1. 传感器监测:通过在机器人的脚底安装力传感器或接触传感器,实时监测脚部与地面的接触状态。利用传感器提供的信息,可以判断是否发生滑动并采取相应的控制措施。 2. 反馈控制:根据传感器反馈的信号,通过控制算法调整机器人的力和力矩分配,使得脚部在接触地面时具有足够的摩擦力以避免滑动。例如,可以实时调整脚下施加的垂直力和水平力分量,以实现在不同地形上的稳定步态。 3. 地形感知:在机器人上安装地形感知传感器,如激光雷达或摄像头,以获取地面的信息。通过对地形的感知,可以预测地面的摩擦性质,并在运动控制中进行相应的调整,使机器人能够适应不同地形上的滑动情况。 总之,控制四足机器人的滑动是实现其稳定行走和动态运动的重要问题。通过传感器监测、反馈控制和地形感知等方法,可以有效地控制滑动,提高机器人的稳定性和运动性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值