当前位置:   article > 正文

四足机器人仿真 Matlab_四足机器人matlab仿真

四足机器人matlab仿真

Adams模型导入

导入模型为parasolid所产生文件

文件->导入->文件类型->Parasolid->读取文件选择文件路径->模型名称右键->模型->创建

添加转动副

连接->运动副->旋转副->右击主体1选择->右击主体2选择->在关节出设置坐标系

添加驱动

驱动->转动驱动

设置状态变量

Adams快捷键

T+左键 平动模型
R+左键 旋转模型
Z+左键 动态缩放
F或Ctrl+F 以最大比例全面显示模型

matlab

足端轨迹绘制

参考了B站大佬视频

函数

axis

axis( [xmin xmax ymin ymax] ): 设置当前坐标轴 x轴 和 y轴的限制范围
axis equal: 设置屏幕高宽比,使得每个坐标轴的具有均匀的刻度间隔

hold on

hold on: 主要是用于添加新绘图的时候保留当前绘图

linspace

linspace: Matlab中的均分计算指令,用于产生x1,x2之间的N点行线性的矢量。
eg:X=linspace(5,100,20)将输出:
X =5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100

length

length: 函数主要是求数组元素的个数

绘制代码

axis([-3 5 -2 8]);
axis equal;
hold on;

x=0:0.01:3;xi=x;
yi=-0.5*xi.*(xi-3);
plot(xi,yi,'color','r');%足端轨迹
yz=linspace(6,6,length(x));
plot([x,3],[yz,6],'color','r');%上端横线

%x1=0:0.2:3;%上端移动
%x3=x1;%上端移动
x1=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];%上端不动
x3=0:0.2:3;%上端不动
y1=linspace(6,6,length(x1));
pp=spline(xi,yi);
y3=ppval(pp,x3);
[x2,y2]=solvepoint2(x1,y1,x3,y3);
for i=1:length(x1)
	hold on;
	plot([x1(i),x2(i),x3(i)],[y1(i),y2(i),y3(i)],'color','b');
	pause(0.1);
end
hold on;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
执行效果

在这里插入图片描述
在这里插入图片描述

%% 支撑相
clear;clc;clf;
axis equal;
axis([-6 5 -2 8]);% 坐标范围
hold on; 
grid; %xyzlabel;
plot([0],[0],'Marker','diamond');
plot([-3],[6],'Marker','diamond');
plot([3],[6],'Marker','diamond');
text(0,0,' 支撑点','color','b');
text(-3,6,' 初始髋关节点','color','b');
text(3,6,' 末髋关节点','color','b');
x1=-3:0.5:3;
y1=linspace(6,6,length(x1));
x3=zeros(length(x1),1)';y3=zeros(length(x1),1)';
plot([x1(1),x1(length(x1))],[y1(1),y1(length(y1))],'color','r');
% [x2,y2]=solvepoint2(x1,y1,x3,y3);
for i=1:length(x1)
    hold on;
    [x2(i),y2(i)]=solvepoint2(x1(i),y1(i),x3(i),y3(i));
    plot([x1(i),x2(i),x3(i)],[y1(i),y2(i),y3(i)],'color','b');
%     axis([-6 5 -2 8]);
    pause(0.1);
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

在这里插入图片描述

%% 摆动相
clear;clc;clf;
axis equal;
axis([-3 15 -1 7]);% 坐标范围
hold on; 
grid; 
%xyzlabel;
plot([0],[0],'Marker','diamond');text(0,0,' 初支撑点','color','b','HorizontalAlignment','right');
plot([9],[6],'Marker','diamond');text(9,6,' 末髋关节点','color','b');
plot([3],[6],'Marker','diamond');text(3,6,' 初髋关节点','color','b','HorizontalAlignment','right');
plot([12],[0],'Marker','diamond');text(12,0,' 末支撑点','color','b');
a=6; b=6;
x1=0.5*a:0.5:1.5*a; y1=linspace(b,b,length(x1));
step_x3=2*a/(length(x1)-1);
x3=0:step_x3:2*a;   y3=-0.03*x3.*(x3-2*a);
plot([x1(1),x1(length(x1))],[y1(1),y1(length(y1))],'color','r');
plot(x3,y3,'color','r');
for i=1:length(x1)
    hold on;
    [x2(i),y2(i)]=solvepoint2(x1(i),y1(i),x3(i),y3(i));
    plot([x1(i),x2(i),x3(i)],[y1(i),y2(i),y3(i)],'color','b');
%     axis([-6 5 -2 8]);
    pause(0.1);
end
%% 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

在这里插入图片描述

绘制过程所用到函数

function [x2,y2]=solvepoint2(x1,y1,x3,y3)
    l1=4;l2=4;% 两条腿长
    l3=sqrt((x1-x3).*(x1-x3)+(y1-y3).*(y1-y3));
    theta3=acos((l2.*l2+l3.*l3-l1.*l1)/(2*l2.*l3));
    theta2=acos((l1.*l1+l2.*l2-l3.*l3)/(2*l1.*l2));
    if x1 > x3
        theta_need=theta2-(pi-atan((y1-y3)./(x1-x3))-theta3);
    elseif x1==x3
        theta_need=theta2-(pi/2-theta3);
    else
        theta_need=theta2-(atan((y1-y3)./(x3-x1))-theta3);
    end
    x2=x1-l1*cos(theta_need);
    y2=y1-l1*sin(theta_need);
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Simulink仿真

B站参考视频

模型导入

  1. 模型下载
    宇树科技官方CAD下载地址
  2. 利用UG完成零件坐标设置如下图
    在这里插入图片描述

身体在这里插入图片描述
左上肢
注意z轴与旋转轴重合
在这里插入图片描述
右上肢
在这里插入图片描述
髋关节
在这里插入图片描述
小腿
在这里插入图片描述
4. 模型导入simulink
1. smnew快捷键打开物理建模
在这里插入图片描述
在这里插入图片描述
产生一平面
在这里插入图片描述

导入3D模型,拖动至simulink界面中(Ctrl+R可旋转)在这里插入图片描述
在这里插入图片描述
双击file solid
在这里插入图片描述

注:由于宇树科技官方结构坐标系方向设置遇到障碍,故改用视频配套结构
仿真结果
在这里插入图片描述
身体上各个关节位置坐标转换
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
仿真后可观察到坐标对应成功

腿部模型导入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Ctrl+G封装
在这里插入图片描述
添加旋转副
在这里插入图片描述
在这里插入图片描述
关节运动方式改为角度输入
在这里插入图片描述
在这里插入图片描述
同侧腿一致,可以直接复制,但是要改一个参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

加入力反馈

在这里插入图片描述
在这里插入图片描述
下载对应版本解压并添加到目录
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

仿真会报错
在这里插入图片描述此处改为warning
在这里插入图片描述

加入六自由度变化

在这里插入图片描述
仿真结果在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/488021
推荐阅读
相关标签
  

闽ICP备14008679号