Google+ 機動學論壇(TALKING MECHANISMS)

2007年3月24日 星期六

賣藝者的迴圈

本來想賣藝者的轉輪應該是較為簡單的應用,有些同學是做出來了,但以乎不知其所以然。所以在討論當中著墨甚少。要寫此程式,必須考慮一筆畫的畫法,尤其高度要與輪圈的直徑有關,有時必須有一個大假設:就是當人體張開成大字形時,其身高應略等於其所張開的四肢範圍。有些人找到達文西的人體畫,是很好的資料。

要寫這個程式,有幾個問題必須分別解決。其一是輪圈滾動的問題。就動力學而言,若一圓滾動,其轉動經過之弧長應等於圓心在地面行走的距離。這一個可利用下式計算:

行進的距離=回轉的弧長=半徑X迴轉的角度(弧度)

其次要解決的是座標轉動與移動的問題,其公式可依據講義之第一章座標之迴轉:


x'= xcosθ+ysinθ
y'=-xsinθ+ycosθ


因此,圓圈之滾動前進可視為在原地轉動到適當角度後再將整個圓的座標平移至適當地方。亦即在X方面增加特定距離,但Y軸座標則維持不變。

如何繪出人及輪圈的座標這就要利用一筆畫的功夫,兩個座標可分開。人的座標可依人的簡單尺寸標出連續點之座標位置。輪圈則可依 R*cos(t); R*sin(t)的方式求得,但記得轉成行向量。人體座標在程式中以man稱之;圓圈則以circ稱之。


這是人體與迴圈的簡化一筆畫法

其程式內容如下,同學可參考:

function acrobat(height)
% height:height of man.cm
clf;
R=height/2;
r=R*sind(45);r3=r/2.5;r2=r/4.5;r4=r/1.5;r5=r/7;r1=r/6.5;
man=[0 0;0 r4;r5 r4;r5 r3;-r5 r3;-r5 r4;0 r4;0 r2;...
r5 r2;r r;r5 r1;r5 -r1;r,-r;r5 -r2;-r5 -r2;...
-r -r;-r5 -r1;-r5 r1;-r r;-r5 r2;0 r2;0 0];
t=linspace(0,2*pi,20)';
circ=[0 0;R*cos(t) R*sin(t);0 0];
for i=0:pi/3:2*pi
st=sin(i);ct=cos(i);
d=R*i;
mx=man(:,1)*ct+man(:,2)*st+d;
my=-man(:,1)*st+man(:,2)*ct;
line(mx,my,'color','r','linewidth',3)
cx=circ(:,1)*ct+circ(:,2)*st+d;
cy=-circ(:,1)*st+circ(:,2)*ct;
line(cx,cy)
end
axis equal


我的身高178公分,故可用上述函數執行如下:

>> acrobat(178)

Read more!

有關作業三

一談到分析的題目,有些同學常會慌了手腳,不知如何下手。但是解決工程上的問題,並不是意氣用事,而是有步驟的。這次作業的結果,可以看出大部份的同學都是在最後一刻找答案,抄答案。也沒花時間事前思考,更遑論分析。到底是基礎不足或者學習上有障礙,實在很難完全瞭解。

在第一題目中,主要針對人體工學的問題作討論,並設法應用於機動學上之觀念。當人手在一平面上移動時,實際上已經將問題簡化許多,因此不必考慮到三維之動作問題。當然為使問題簡化,仍然必須有些假設,使解題的步驟清晰。這些假設包括:

  • 拳頭僅當做一點,因此成為手腕或下手臂A的一部份。
  • 上手臂之轉動實際上與中心線仍有一段距離。此處假設上手臂之長度L係自心臟部位算起。
  • 頭的高度H因此也需由心臟部位算起。
  • 當伸直時,實際上手臂可能無法完全伸直。為簡化起見,其伸直之位置不考慮頭部的阻礙。




整個手臂的動作如上圖,實際上類似一個滑塊的動作。其動作來源仍然為上手臂L。由於拳頭的動作由頭部開始。故上下手臂與頭部高度H所構成之三角形或角度θo為限制點,因此若以上手臂之角度θ表示任意位置之角度時,其值應在θo<θ<π/2之間,而θo應為

cos(θo)=[H^2+L^2-A^2]/(2HL)


設兩手臂交點為P,則其座標應為:

x1=Lcosθ
y1=Lsinθ


其在頭頂上之點Q之座標為:


x2= 0
y1=y1+ sqrt(A^2-(Lcosθ)^2)

因此繪線時,只需將原點O與PQ等三點連線即可構成手臂的位置。其程式內容如下:


function [theta]=fistheight(L,A,H)
% Variables:
% L:length of upper arm, cm
% A:length of lower arm, cm
% H:head height, cm
% theta:initial angle, degrees
% Example [theta]=fistheight(30,25,30)
clf;
th=pi/2-acos((H*H+L*L-A*A)/(2*H*L));% Initial angle
theta=th*180/pi;
t=linspace(th,pi/2,10);
for i=1:length(t),
x1=L*cos(t(i));y1=L*sin(t(i));
line([0 x1 0],[0 y1 y1+sqrt(A*A-x1*x1)]);
end
line([L 0 0],[0 0 L+A],'color','r','linewidth',3);%繪座標
line(L*cos(t),L*sin(t),'linestyle',':');%繪P點軌跡圓
axis equal;
xlabel('X-Axis')
ylabel('Y-Axis')

角度θ在θo與π/2之間,係利用linspace指令將其分成十個區段。執行下列指令後,其結果如下圖:

>> t=fistheight(30,30,25) %設L=30cm,A=30cm,H=25cm
t =
24.6243


Read more!

2007年3月19日 星期一

關於第二次作業

老師不好意思我的連結無法連上 因此補寄    我是B94611010方柏璇   這是我的第三題     http://pennyfph.blogspot.com/

Read more!

2007年3月17日 星期六

我來遲了!抱歉

教授因為之前電腦硬碟壞掉
所以現再才能給你我第二次作業第三小題的正確圖
因為之前的圖片超連結連錯了
謝謝!
B94611037
Read more!

2007年3月16日 星期五

第二週作業有感

下圖是陳柏成同學所搜尋得到的人體關節圖,與機構所討論的運動結有極類似的比喻,相當好的資料。只可惜沒有注明出處。希望他能補充。

  • 肩關節:上臂由肩關節和身體連結,做球面運動,應屬於球對(Spherical pair)
  • 肘關節:只能做大約120度的迴轉運動,應 為平面低對中的旋轉對(Revolute pair)。這種對偶只能迴轉不能平移,故自由度等於一
  • 鞍狀關節:大拇指和手掌連接的關節,和肘關節類似,做大約90度的迴轉運動
  • 其餘手指與手掌間的關節:做有限度的球面運動,屬於球對(Spherical pair)
  • 膝關節:和肘關節類似,做有限度的迴轉運動,為旋轉對(Revolute pair)
  • 踝關節:腳掌可做兩方向的旋轉,自由度為二

若以伏地挺身為例,手掌作為支撐點,此時上臂和下臂像是雙頭接桿(Binary link)
肩關節、肘關節和掌關節為旋轉對。手掌固定不動,靠著這三個關節(接頭)和上下臂
(連桿)的旋轉,加上肌肉的收縮舒張,即可完成這個動作。


人體關節圖

上述圖若能配合林軍耀同學的網頁說明,則更為清楚。徐嘉鴻的圖也很不錯,只可惜沒有適當的網頁可以顯示。例如:


球臼型結


比較特別不解的是林瑋倫與張志鵬的第二次作業同樣放在一個部落格內。我不知道這兩位同學為什麼要如此做,節省空間嗎?今後最好分開,各人自己擁有自己的部落格。

最後再強調一次,送交作業不要像在網站上隨便取一個名字送上即可。拜託不要讓我花太多時間去核對諸如INVES ,Charlie,stone,nlnmtitmihiu等等是誰,實在浪費我太多的時間。我再說一次,如果每次繳交時忘記報上姓名或學號,我不想讓自己的血壓升高,只好將你的作業成績以零分計算了。

在同學搜尋的資料中,下面之網頁甚有參考價值:
http://www.shockfamily.net/skeleton/JOINTS.HTML
http://www.saburchill.com/chapters/chap0008.html
http://www.bbc.co.uk/science/humanbody/body/factfiles/joints/ellipsoidal_joint.shtml
http://www.preventdisease.com/fitness/fundament/articles/types_of_joints.html
請同學參考。 Read more!