机器人骑自行车过程的MATLAB建模与数值仿真模拟
1.程序功能描述
机器人骑自行车过程的MATLAB建模与数值仿真模拟。
2.测试软件版本以及运行结果展示
MATLAB2022A版本运行
3.核心程序
[x0,y0,z0] = func_cylinder(15); [x,y,z] = func_cylinder(0.8); %% %f0 [Xf0,Yf0,Zf0] = f0(x0,y0,z0); %f1 [Xf1,Yf1,Zf1] = f1(x,y,z); %f2 [Xf2,Yf2,Zf2] = f2(x,y,z); %f3 [Xf3,Yf3,Zf3] = f3(x,y,z); %f4 [Xf4,Yf4,Zf4] = f4(x,y,z); %f5 [Xf5,Yf5,Zf5] = f5(x,y,z); %f6 [Xf6,Yf6,Zf6] = f6(x,y,z); %f7 [Xf7,Yf7,Zf7] = f7(0,0,0); figure; mesh(Xf0,Yf0,Zf0); hold on mesh(Xf1,Yf1,Zf1); hold on mesh(Xf2,Yf2,Zf2); hold on mesh(Xf3,Yf3,Zf3); hold on mesh(Xf4,Yf4,Zf4); hold on mesh(Xf5,Yf5,Zf5); hold on mesh(Xf6,Yf6,Zf6); hold on mesh(Xf7,Yf7,Zf7); hold on xlabel('x'); ylabel('y'); zlabel('z'); axis equal axis([-50,50,-50,50,-25,50]);
4.本算法原理
模型方程如下:
注意,躯干模型,我们使用长方体来表示,所以用函数m来表示。
L1,L2,L3分别表示不同圆柱体在Z轴的向上的距离
l1表示机器人手臂在函数f1左右两边的距离范围
T1表示自行车车把相对于f1函数的空间旋转因子,从上图可以看到,f2是相当于f1,绕着y轴旋转了90度,所以T1表达式可以表示为:
通过上述公式,可以将所有的模型转换为和函数g相关的空间三维函数。