利用fsolve函数求解Stewart平台运动学正解

function  STEWART_fsolve()
format long
x=fsolve(@myfun,[0;0;20;0;0;0]) %调用函数
end

function f=myfun(x)
syms x1 x2 x3 a b g
X=[x1;x2;x3];
RX=[1 0 0;0 cos(a) -sin(a);0 sin(a) cos(a)];
RY=[cos(b) 0 sin(b);0 1 0;-sin(b) 0 cos(b)];
RZ=[cos(g) -sin(g) 0;sin(g) cos(g) 0; 0 0 1];
R=RZ*RY*RX;
p1=[12;-2;0];
p2=[12;2;0];
p3=[-4.26794919;11.39230485;0];
p4=[-7.73205081;9.39230485;0];
p5=[-7.73205081;-9.39230485;0];
p6=[-4.26794919;-11.39230485;0];
r1=[12;-14;5];
r2=[12;14;5];
r3=[6.12435565;17.39230485;5];
r4=[-18.12435565;3.39230485;5];
r5=[-18.12435565;-3.39230485;5];
r6=[6.12435565;-17.39230485;5];
l1=20;
l2=20;
l3=25;
l4=25;
l5=25;
l6=30;
f1=(norm(X+R*p1-r1))^2-l1^2;
f2=(norm(X+R*p2-r2))^2-l2^2;
f3=(norm(X+R*p3-r3))^2-l3^2;
f4=(norm(X+R*p4-r4))^2-l4^2;
f5=(norm(X+R*p5-r5))^2-l5^2;
f6=(norm(X+R*p6-r6))^2-l6^2;
f=[f1;f2;f3;f4;f5;f6];
x1=x(1);
x2=x(2);
x3=x(3);
a=x(4);
b=x(5);
g=x(6);
f=eval(f);
end

 

六自由度 Stewart 平台是一种具有六个可自由运动的机构,由一个固定底座和一个可以在其上运动的平台构成。在运动学正解中,我们要确定平台上的每个点的位置和姿态。 首先,我们需要确定平台上的三个平动自由度。分别表示为x、y和z方向的位置坐标。这可以通过底座和平台上的传感器来测量。 其次,我们要确定平台上的三个旋转自由度,即绕x、y和z轴的旋转角度。这可以通过底座和平台上的陀螺仪或编码器来测量。 运动学正解的目标是求解由底座到平台上每个点的位置和姿态的关系。这可以通过使用逆运动学方法来实现。逆运动学方法是基于已知底座和平台上的位置和姿态,通过一系列数学计算来确定底座和平台之间的连杆长度。 在运动学正解的计算过程中,我们需要使用三角几何和向量运算来求解。首先,根据已知的平台位置和姿态,我们可以计算出各连杆的长度。然后,通过求解三角形或使用平方和开方来确定底座上每个点的位置和姿态。 最后,我们可以将运动学正解的结果应用于控制和路径规划中。通过已知的平台位置和姿态,我们可以计算出底座和平台之间的连杆长度,并根据这些长度来控制平台的运动。 总结而言,六自由度 Stewart 平台运动学正解是通过逆运动学方法计算底座和平台之间的连杆长度,以确定平台上每个点的位置和姿态。这些计算是基于已知的平台位置和姿态,使用三角几何和向量运算来实现的。运动学正解的结果可以应用于控制和路径规划中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值