2007年4月11日 星期三

作業五

學號:b94611009 姓名:楊子羲

一:
1.
試分別以一線畫繪出上手臂,下手臂及手掌的外形,令其座標組合名稱分別為arm1, arm2, palm,各組合之起點與終點分別為其連結點(注意:每人所做的應該不同,請勿抄襲)。

假設手掌、上臂與下臂皆為直線,手掌長15CM 下臂為25CM 上臂為30CM

theta1=0
theta2=30
theta3=45
arm1=[ 0 0 ; 30*cosd(theta1) 30*sind(theta1)]
arm2=[ 30*cosd(theta1) 30*sind(theta1); 25*cosd(theta2)+30*cosd(theta1) 30*sind(theta1)+25*sind(theta2)]
palm=[25*cosd(theta2)+30*cosd(theta1) 30*sind(theta1)+25*sind(theta2); 15*cosd(theta3)+25*cosd(theta2)+30*cosd(theta1) 30*sind(theta1)+25*sind(theta2)+15*sind(theta3)]

line(arm1(:,1),arm1(:,2));axis equal
line(arm2(:,1),arm2(:,2));axis equal
line(palm(:,1),palm(:,2));axis equal


2.
寫出一程式函數function body(L1,L2,L3,theta1,theta2,theta3),令其繪出整個手臂的外型。其對應角度除第一個上手臂之水平角度為theta1外,theta2為下手臂對上手臂的角度,theta3為手掌對下手臂之夾角,後二者反時針方向為正,順時針方向為負。其連桿連結角度關係如圖二。試就所撰寫之程式結構作一說明。

function body(L1,L2,L3,theta1,theta2,theta3)

theta1=-theta1
theta2=theta1+180+theta2
theta3=theta2+180+theta3
arm1=[ 0 0 ; L1*cosd(theta1) L1*sind(theta1)]
arm2=[L1*cosd(theta1) L1*sind(theta1); L2*cosd(theta2)+L1*cosd(theta1) L1*sind(theta1)+L2*sind(theta2)]
palm=[L2*cosd(theta2)+L1*cosd(theta1) L1*sind(theta1)+L2*sind(theta2); L3*cosd(theta3)+L2*cosd(theta2)+L1*cosd(theta1) L1*sind(theta1)+L2*sind(theta2)+L3*sind(theta3)]

line(arm1(:,1),arm1(:,2));axis equal
line(arm2(:,1),arm2(:,2));axis equal
line(palm(:,1),palm(:,2));axis equal

3.
試量自己的手臂尺寸作為輸入,當theta1=90度,theta2=-45度,theta3=-30度時,其位置如何。



4.
設theta1角度在-90度與-75度間變動,theta2在-45度至-35度間變動,而theta3則在-30度至-10度間變動。試將其變動區間分為十等分,模擬其動畫,並在部落格中顯示其動作。



二:
1.就人的手指頭關節而言,可以將其解析成為下列之三連桿。試參考第二章及第三章中利用連桿與旋轉結的觀念,分析一個手掌的指頭在同一平面上作移動的情形。請詳明分析過程中所可以涉及之假設。
2.就你自己的手掌尺寸為輸入,並請繪出四根指頭(大姆指除外)所可能展示的極限位置。

第一題與第二題我一起做 以下是我做的function
function finger(L1,L2,L3)

for th1=90:-30:0;

for th2=th1:-30:th1-90;

for th3=th2:-30:th2-90;
clf ;
theta1=th1;
theta2=th2;
theta3=th3;

linkshape([ 0 0 ],[ L1*cosd(theta1) L1*sind(theta1)],2);axis equal;
linkshape([L1*cosd(theta1) L1*sind(theta1)],[ L2*cosd(theta2)+L1*cosd(theta1) L1*sind(theta1)+L2*sind(theta2)],2);axis equal;
linkshape([L2*cosd(theta2)+L1*cosd(theta1) L1*sind(theta1)+L2*sind(theta2)] , [L3*cosd(theta3)+L2*cosd(theta2)+L1*cosd(theta1) L1*sind(theta1)+L2*sind(theta2)+L3*sind(theta3)],2);axis equal;
pause(0.1);
axis([-10 10 -10 10]);
end;
end;
end;

以下是假設三節手指頭的長度分別為4、3、2CM的影片
>>finger(4,3,2)



3.


若手指為三個桿,其位置向量分別為[4 3 2]cm,對應位移角度為[10 135 12]度;角速度分別為10, 20, 30 rad/s,角加速均度為20rad/s^2

>> [sv,th]=acc2([4 3 2],[10 135 12],[10 20 30],20)

sv =
1.0e+003 *

0.0050 0.0832 1.8328

th =
40.5724 138.0167 -138.4050

沒有留言: