『壹』 求極坐標機械手的雅可比矩陣jq和tjq
雅可比矩陣的物理意義,舉例來說,就是第5行第3列的值表示當第3個關節轉動/平移足夠小的一定量(微分概念)時,乘上這個值就等於end effector在第5個自由度上相應的轉動/平移量。
你可能會想,上面說end effector的第5個自由度,到底是指哪個自由度呢?顯然,這取決於你如何描述end effector的運動。舉個例子來說,假如我們有一個全自由度的end effector(即有3個轉動DOF,3個平動DOF),那我們可以定義前三個自由度為沿某個坐標系的x, y, z軸平移,後三個自由度為繞該坐標系的x, y, z軸旋轉——這樣當我說第5個自由度,就是指繞這個坐標系的y軸旋轉。實際雅可比矩陣的結果,完全取決於你選取的坐標系以及你描述end effector運動的順序。
先寫出end effector位置的正運動學表達式——
所以,我們把用笛卡爾坐標描述線速度(linear velocity)和角速度(angular velocity)、以機械臂的基準坐標系(Base frame或frame{0})作為參照系來描述end effector速度所求得的雅可比矩陣,稱為基本雅可比矩陣;其它所有表示方法(比如將笛卡爾坐標改為柱坐標、球坐標;角度改為歐拉角或四元數quaternion等)都可由這個基本雅可比矩陣轉換得到。根據上面基本雅可比矩陣的定義,end effector的速度可以這么寫:
只需要將紅色框框圈出來的這個3×1向量(xe, ye,ze)對關節空間向量(θ1, d2,θ3,θ4)即求導即可!
『貳』 機器人運動閉環控制中雅各比矩陣起什麼作用
如果動作是重復性的,或者是配合視覺等感測器可以預見性的,可以在控制裡面可以加入幾個位置記憶點,每個點用末端(機械手)標注,每個點都有各個關節位置記憶,如果可能也可以是多關節時間序列記憶。比如,目標是將盤子里的工件放到傳送帶上,需要記憶機械手在盤子上方將要開始抓取的位置,和機械手完成抓取在最高點的位置,以及機械手在傳送帶上將要放手的位置。然後可以來回重復播放這兩點的位置,其他位置插補計算得出。每個關節完全可以與其他關節解耦,用2點之間的各自關節的角度差就可以計算平均角速度。
『叄』 如何利用單片機做一個 簡單的機械手實現對手機上面的觸摸屏 循環點擊 求教程 大哥幫下忙啊
這個太簡單了把
只要明白矩陣鍵盤原理就可以了啊,然後按照自己的意願做個打擊指頭點擊就是
,不過這個需要矩陣鍵盤的軟體和打擊的硬體,原理雖然簡單,做起來還是要點功底
『肆』 求問機械手臂過程如何計算
首先建立機械手臂各個關節的位姿坐標,一般用矩陣描述,然後通過雅克比矩陣對各個位姿進行轉換,求出串聯機械手的剛度矩陣,如果用視教方法,要對各個點的數據點進行記錄,然後通過記錄值在分別控制各個關節運動,達到理想位姿,如果採用自適應控制可能比較麻煩,多學習一些自適應控制理論,模糊演算法,可能有用。
『伍』 單片機c51液晶矩陣機械手簡單程序
下面是大液晶12864最簡單的程序#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit rst=P2^0;
sbit cs2=P2^1;
sbit cs1=P2^2;
sbit e=P2^3;
sbit rw=P2^4;
sbit rs=P2^5;
#define dislcd P0
uchar code hz[]={
/*-- 文字: 侯 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x40,0x20,0xF8,0x07,0x12,0x10,0xF2,0x52,0x52,0xD2,0x52,0x5E,0x50,0x50,0x10,0x00,
0x00,0x00,0xFF,0x00,0x82,0x43,0x22,0x12,0x0A,0x07,0x1A,0x22,0x62,0xC2,0x42,0x00,/*-- 文字: 傑 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x08,0x08,0x08,0x88,0x48,0x38,0xFF,0x18,0x28,0x48,0x88,0x88,0x08,0x00,0x00,
0x40,0x32,0x02,0x01,0x10,0x60,0x00,0x07,0x10,0x60,0x00,0x00,0x11,0x63,0x01,0x00,/*-- 文字: 劉 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x08,0x28,0x49,0x8A,0x0C,0xC8,0x38,0x08,0x00,0xF8,0x00,0x00,0xFF,0x00,0x00,
0x40,0x20,0x10,0x08,0x04,0x03,0x06,0x38,0x10,0x00,0x07,0x20,0x40,0x3F,0x00,0x00,/*-- 文字: 桂 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x10,0xD0,0xFF,0x50,0x90,0x50,0x48,0x48,0x48,0x7F,0x48,0x48,0x48,0x48,0x40,0x00,
0x02,0x01,0xFF,0x00,0x41,0x40,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x04,0x8C,0x55,0x26,0x5C,0x84,0xE8,0x8A,0xFA,0xAA,0xA8,0x1F,0x68,0x8E,0xE8,0x00,
0x01,0x80,0x80,0x5E,0x42,0x22,0x22,0x1E,0x22,0x42,0x42,0x9E,0x80,0x00,0x00,0x00,
};
uchar code zm[]={
/*-- 文字: 1 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*-- 文字: 3 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,/*-- 文字: 4 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
};
void check()
{
uchar dat;
rs=0;
rw=1;
do{
dislcd=0x00;
e=1;
dat=dislcd;
e=0;
dat=0x80 & dat;
}while(!(dat==0x00));
} sendzltolcd(uchar zl)
{
check();
rs=0;
rw=0;
dislcd=zl;
e=1;
e=1;
e=1;
e=0;
}
writesj(uchar sj)
{
check();
rs=1;
rw=0;
dislcd=sj;
e=1;
e=1;
e=1;
e=0;
}
void setye(uchar ye)
{
ye=0xb8|ye;
sendzltolcd(ye);
}
void sethang(uchar hang)
{
hang=0xc0|hang;
sendzltolcd(hang);
}
void setlie(uchar lie)
{
lie=0x40|lie;
sendzltolcd(lie);
}
void delay(uchar m)
{
uint i;
while(m--)
{
for(i=0;i<1000;i++);
}
}
void xuanpin(uchar xp)
{
switch(xp)
{
case 0:cs1=1;cs2=1;break;
case 1:cs1=1;cs2=0;break;
case 2:cs1=0;cs2=1;break;
default:break;
}
}
void qingpin(uchar qp)
{
uchar i,j;
xuanpin(qp);
for(i=0;i<8;i++)
{
setye(i);
setlie(0);
for(j=0;j<64;j++)
{
writesj(0x00);
}
}
}
setonoff(uchar onoff)
{
onoff=0x3e|onoff;
sendzltolcd(onoff);
}
void initlcd()
{
rst=0;
delay(10);
rst=1;
check();
xuanpin(0);
setonoff(0);
xuanpin(0);
setonoff(1);
xuanpin(0);
qingpin(0);
sethang(0);
}
void display(uchar ss,uchar ye,uchar lie,uchar num)
{
uint i;
xuanpin(ss);
lie=lie&0x3f;
setye(ye);
setlie(lie);
for(i=0;i<16;i++)
{
writesj(hz[i+32*num]);
}
setye(ye+1);
setlie(lie);
for(i=0;i<16;i++)
{
writesj(hz[i+32*num+16]);
}
}
void display1(uchar ss,uchar ye,uchar lie,uchar num)
{
uint i;
xuanpin(ss);
lie=lie&0x3f;
setye(ye);
setlie(lie);
for(i=0;i<8;i++)
{
writesj(zm[i+16*num]);
}
setye(ye+1);
setlie(lie);
for(i=0;i<8;i++)
{
writesj(zm[i+16*num+8]);
}
}
void main()
{
initlcd();
qingpin(0);
sethang(0);
display(1,0,16,0);
display(1,0,32,1);
display(1,0,48,2);
display(2,0,0,3);
display(2,0,16,4);
display1(1,2,48,0);
display1(1,2,56,1);
display1(2,2,0,0);
display1(2,2,8,2);
while(1)
{
}
}下面是運用到矩陣編寫的是電話機#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uchar dis_buf[8];
uchar i,j,a,temp;
sbit an=P1^0;
sbit wei=P1^1;
sbit wr=P1^2;
void mdelay(uint t)
{
uchar y;
while(t--)
{
for(y=0;y<114;y++);
}
}
uchar key()
{
P2=0xf0;
j=P2;
P2=0x0f;
i=P2;
temp=j|i;
switch(temp)
{
case 0xee:return(0);
case 0xde:return(1);
case 0xbe:return(2);
case 0x7e:return(3);
case 0xed:return(4);
case 0xdd:return(5);
case 0xbd:return(6);
case 0x7d:return(7);
case 0xeb:return(8);
case 0xdb:return(9);
case 0xbb:return(10);
case 0x7b:return(11);
case 0xe7:return(12);
case 0xd7:return(13);
case 0xb7:return(14);
case 0x77:return(15);
}
}
void display(uchar *dis_buf)
{
uchar a=0xfe;
an=1;
wei=1;
while(a!=0xff)
{
P0=tab[*dis_buf];
an=0;
wr=0;
wr=1;
an=1; P0=a;
wei=0;
wr=0;
wr=1;
wei=1; mdelay(2);
an=0;
wei=0;
wr=0;
P0=0xff;
wr=1;
wei=1;
an=1; dis_buf++;
a=a<<1|0x01;
}
}
void dis_play()
{
dis_buf[7]=dis_buf[6];
dis_buf[6]=dis_buf[5];
dis_buf[5]=dis_buf[4];
dis_buf[4]=dis_buf[3];
dis_buf[3]=dis_buf[2];
dis_buf[2]=dis_buf[1];
dis_buf[1]=dis_buf[0];
dis_buf[0]=key();
}
void main()
{
while(1)
{
P2=0x0f;
if(P2!=0x0f)
mdelay(10);
if(P2!=0x0f)
{
dis_play();
display(dis_buf);
}
while(P2!=0x0f);
display(dis_buf);
}
}這些都是我自己編寫的程序都試過了正確無誤 的機械手的程序暫時沒有 很抱歉
『陸』 什麼是機械手的姿態
機械手末端的位置和姿態通常用相對於基坐標系的齊次變換矩陣描述。以線性函數插值為例,可否對齊次變換矩陣的所有元素在相鄰點之間進行線性插值?回答是否定的。因為齊次變換矩陣的各元素並不獨立,它們需滿足一定的關系。。因此,對描述機械手末端的姿態不能直接有對應的旋轉矩陣來簡單地進行插值,,而描述位置的三個分量是相互獨立的,它們可以直接進行插值。 姿態有多種描述,當採用R(Rotation)P(Pitch) Y(Yaw)角來描述姿態時,關於三個軸的轉角間是否相互獨立,是否可以各自進行插值規劃。 直角坐標空間里的軌跡規劃有以下特點: (1)通常將位姿的六維矢量分成位置和姿態兩個三維矢量組來進行規劃 (2)為了讓機器人手臂實現規劃的軌跡, 在直角坐標空間規劃出的每個軌跡給定點(插值點)都必須進行坐標變換,按運動學逆問題轉換成關節角度值。 (3)直角坐標空間里的軌跡規劃,還需要謹慎地繞開機器人手臂的機構奇異點。否則,運動學逆問題將無解。 實際上,所有用於關節空間軌跡規劃的方法都可以直接用於直角坐標空間的軌跡規劃。
『柒』 如何理解矩陣相乘的幾何意義或現實意義
矩陣相乘,其幾何意義就是兩個線性變換的復合,比如A矩陣表示旋轉變換,B矩陣表示伸長變換,AB就是伸長加旋轉的總變換:同時伸長和旋轉。
其現實意義的例子,汽車生產線上的機械手有幾個關節,每個關節的轉動都可看作一個空間轉動矩陣,最後機械手末端的位置就是所有關節矩陣連乘(聯動)的結果。
矩陣是線性變換的表示,矩陣乘以一個向量等於對這個向量施加此矩陣代表的線性變換。這種線性變換通過變換基來實現,矩陣中的各列就是變換後的新基。兩個矩陣相乘,AB,就是把B中各列代表的「新基」又經過了A代表的線性變換得到了一組「新新基」。實際就是B線性變換和A線性變換的復合。
(7)機械手矩陣演算法擴展閱讀:
矩陣相乘最重要的方法是一般矩陣乘積。它只有在第一個矩陣的列數和第二個矩陣的行數相同時才有意義。一般單指矩陣乘積時,指的便是一般矩陣乘積。一個m×n的矩陣就是m×n個數排成m行n列的一個數陣。
兩個矩陣相乘的意義是將右邊矩陣中的每一列列向量變換到左邊矩陣中每一行行向量為基所表示的空間中去。更抽象的說,一個矩陣可以表示一種線性變換。很多同學在學線性代數時對矩陣相乘的方法感到奇怪,但是如果明白了矩陣相乘的物理意義,其合理性就一目瞭然了。
『捌』 機械手動力學模型中慣性矩陣怎麼確定
第1章 緒論1.1 機械繫統中常見的動力學問題1.2 解決機械動力學問題的一般過程1.3 機械繫統的動力學模型1.3.1 剛性構件1.3.2 彈性元件1.3.3 阻尼1.3.4 流體潤滑動壓軸承1.3.5 機械繫統的力學模型1.4 建立機械繫統的動力學方程的原理與方法1.4.1 ...
『玖』 旋量是什麼
跡規劃是機器人控制問題的重要方面,根據作業要求通地軌跡序列控制點控制機器人位姿軌跡。Paul〔1〕首先利用齊次變換矩陣將手部在直角坐標下的位置、速度和加速度變換成各關節的位移、速度和加速度,然後規劃成二次平滑函數。Paul方法的計算量非常大,Taylor〔2〕採用四元數表示法改進了Paul方法。後來Lin和Luh〔3,4〕提出規劃軌跡的3次樣條函數方法,可得到優化的關節運動規律,但當軌跡中間路徑點個數n較多時,此法所需計算量也較大,而且缺乏時姿態插補的考慮。在許多高精度應用場合,如切割、弧焊等不僅要求機器人位置精確,還需要在該位置具有任意確定的姿態,對外部品質的要求是很高的。因此,必須解決機器人姿態在插補結點處相應的空間坐標,以尋求更具一般意義的位姿軌跡生成的通用演算法。
本文運用旋量法來描述機器人末端夾持器在直角坐標空間中的位置和姿態對時間函數所顯示的運動軌跡,由於姿態旋量的直觀和簡便對描述瞬時姿態有獨特的優點,且計算量也小。文中還利用速度矢量是雅可比矩陣列向量的線性組合關系,對廣義坐標的速度量進行線性規劃,免去了求解運動學方程,並適合於具有冗餘自由度的操作器。
1 機器人位姿軌跡
1.1 姿態旋量
機器人的位姿就是終端夾持器的位置和姿態。我們可以用角位移矢量Ω來描述機器人的姿態,設ψ為基坐標系中繞瞬時軸加轉的等效旋轉角,K表示基系中瞬時轉軸的單位向量,則角位移矢量:
Ω=ψK。
根據旋量定義,可以證明等效角位移矢量的姿態矢量是旋量,表示為
式中,OP為用位移矢量上給定的初始點位置,基系原點O為旋量參考點。
由對偶數理論可知:三維歐氏空間中直線與三維對偶空間中的點是一一對應,於此可將直角坐標空間中的姿態旋量映射到對偶空間,得到對應點,位姿軌跡的規劃問題便轉化為對偶空間中由姿態旋量所映射的點運動軌跡的選擇問題。
圖1 姿態旋量
1.2 位姿軌跡
設T為機器人由起始點到結束點完成運動所需的總時間,t為分段軌跡算起的時間,令
若在時間間隔〔0,t〕內,機器人完成一個給定的工作,整個工作軌跡上需計算的采樣點數:
N0=Int(t/T)。
姿態旋量時應的對偶空間中的點假設沿著一連續軌跡運動
是λ(t)的對偶函數,寫成對偶坐標形式。
(1)
式中Ωxi,Ωyi,Ωzi為姿態坐標分量,的Plücker坐標(Ωi,Soi,用坐標分量的純量形式表示為(Ωxi,Ωyi,Ωzi,S0xi,S0yi,S0zi)
姿態矢量Ωi為瞬時轉動軸上的自由矢量,只有當Pi點位置確定後,它才在軸線上唯一定位。Ωi在空間的定位可通過瞬時轉動軸線上Pi的位置矢量rip給定,於此S0i=rip×Ωi〔5〕,將式(1)改寫成行列式形式的參數方程為
(2)
式中,xpi,ypi,zpi為夾持器姿態矢量Ωi在軸線上Pi點相對於基系的坐標,式(2)就是機器人位姿的姿態旋量表示。由Ωxi,Ωyi,Ωzi確定機器人夾持器的姿態軌跡,由xpi,ypi,zpi導出其位置軌跡,設定理想位置及姿態軌跡為
(3)
(4)
代入式(2)便可確定機器人在對偶空間的姿態旋量。機器人在進行焊接或切割工作,圓弧曲線軌跡運動中姿態的變化,需要按式(2)求出每一采樣時刻的姿態角。
2 機器人運動螺旋方程
設為終端速度旋量,為姿態角速度向量,vpi為終端位置速度,基旋量,
(5)
(6)
於端夾持器的瞬時運動螺旋方程為
(7)
螺旋軸線Plücker坐標為
3 關節運動速度
設固聯於機器人各可動件上的附件參考系原點O′i放在運動副關節處,相鄰運動副軸線之間的合法線長度為a12,a23,……;相鄰兩桿之間的偏距分別為d1,d2,…;相鄰軸線之間的扭向角為v12,v23,…;運動副相對回轉角為θ1,θ2,…。
定義函數
令
取第i關節的轉角θi,或滑移距離zi作為廣義坐標,qi=(1-μi)zi+μiθi(i=1,2,…,n)
將螺旋運動旋量方程(7)作轉換後可得
(8)
或表示為
(9)
式中,J1,J2,J3是雅可比矩陣J的三個3×3子陣,這里注意到六關節機器人決定姿態的關節4、5、6的變數沒有影響vx,vy,vz的移動,可將式(9)分解寫成
(10)
(11)
由上式可知終端執行器移動線速度和轉動角速度與各關節角速度的關系由雅可比矩陣聯系,它由機器人各桿件的位姿矩陣和旋轉矩陣組合給出。
根據工作過程的需要,規劃終端執行器的位姿軌跡及速度必需與末端的實際測定的數值一致。然而,機器人各桿件的彈性變動,關節間隙,重力負載及桿件離心效應等因素的影響致使機器人位姿動態精度形成誤差。設為期望軌跡上的速度旋量,為機器人末端測定的實際速度旋量,由感測器可獲得實際位姿軌跡與期望作業偏差為
機器人的位置和姿態誤差分別小於給定誤差R及G的概率〔6〕。為使誤差收斂反回軌跡,以消除誤差的累積效果,需使位置及姿態誤差得到校正補償,式(10),(11)改寫為
(12)
(13)
式(12)、(13)適用於J滿秩的情況,當機器人具有冗餘自由度時,對應的有無窮多解,對此可取能量損失為最小,選取最優解
(14)
為尋求滿足式(14)使損失函數N(),為最小,應用拉格朗日運算元解
(15)
W為n×n對稱正定矩陣,λ為Lagrange乘子,滿足最優解的必要條件是
即
(16)
(17)
在式(16),(17)中消去λ,得最優解。
(18)
考慮到使誤差得到收斂,式(18)改寫成
(19)
其中均為正定陣。式(19)適用於有冗餘自由度時的規劃。要求關節運動速度不應達到邊界位置極限速度,設M為允許的最大速度,必需使<M,以適應電機最大轉速的要求。
4 算 例
設斯坦福機械手在擬定軌跡中通過空間3個已知點P1(50,0,118),P2(110.5,50,84),P3(50.2,100,50),並在三點保持姿態為Ω1(0,0,1.57)T,Ω2(0,-0.045,0)T,Ω3(0,0,1.57)T。P1,Ω1狀態相對應的關節坐標及其相應的正弦和餘弦值如表1,試規劃其運動和位姿軌跡。
表1
關節坐標
坐 標 數 值 正 弦 余 弦
θ1 0° 0 1
θ2 90° 1 0
θ3 / /
θ4 0° 0 1
θ5 90° 1 0
θ6 90° 1 0
解 設機械手終端以圓弧軌跡規劃,其位置坐標函數及姿態坐標函數為
xp=f1〔λ(t)〕=60.5sin(2.9966°t)+50,
yp=f2〔λ(t)〕=-50.03cos(2.9966°t)+50,
zp=f3〔λ(t)〕=34cos(2.9966°t)+84,
Ωx=ζ1〔λ(t)〕=-0.05cos2(2.9966°t)+0.05sin(2.9966°t)+0.05,
Ωy=ζ2〔λ(t)〕=-0.065sin(2.9966°t)+0.02cos2(2.9966°t)+0.02,
Ωz=ζ3〔λ(t)〕=0.0012cos2(2.9966°t)-1.57sin(2.9966°t)+1.569。
設運動總時間為T=60s,據式(2)當t=40s時終端夾持器的位置,姿態為
據式(5)、(6)可求得t=40s終端的位姿速度值,
斯坦福機械手雅可比矩陣的三個子陣為
其中,
J11=-d2〔C2(C4C5C6-S4S6)-S2S5C6〕+S2d3(S4C5C6+C4S6),
J21=-d2〔-C2(C4C5C6+S4S6)+S2S5S6〕+S2d3(-S4C5S6+C4C6),
J31=-d2(C2C4S5+S2C5)+S2d3(S4S5),
J12=d3(C4C5C6-S4S6),J13=-S5C6,
J22=-d3(C4C5S6+S4C6),J23=S5S6,
J32=d3C4S5,J33=C5。
d2=-t6041S1+t6042C1,
d3=S2(t6041C1+t6042S1)+t6043C2,
Ci=cosθi,Si=sinθi,(i=1,2,…,6),
t6041=102.5,t6042=25.09,t6043=67.07,
可得d2=25.09,d3=102.5。
據測定手部位姿誤差統計值為Δx=0.08465,Δy=0.1269,Δz=0.1050,Δφx=0.0022,Δφy=0.0025,Δφz=0.0041。取
據式(12),(13)可得關節速度
5 結 論
1)本文用對偶映射原理來描述機器人的姿態旋量,用Plücker線坐標表達機器人位姿。
2)在機器人軌跡規劃中,利用旋量方法時描述瞬時姿態具有直觀、簡便的獨特優點,比較全面地表達了終端執行器的位置和姿態的軌跡生成,且計算量較少。
3)根據實際工作軌跡進行規劃,提高了操作器運行精確性,並使非線性優化問題化為線性優化問題,利用速度矢量是雅可比矩陣列向量的線性組合關系,免去了求解逆運動學方程,並適合於具有冗餘自由度的操作器。■
基金項目:福建省自然科學基金資助項目
作者單位:林瑞麟(華僑大學機電工程系,福建泉州362011)
參考文獻:
〔1〕Paul R P. Manipulator cartesian path contor〔J〕. IEEE Transaction on Systems,Man, and Cybernetics,1979,9(11):702~711.
〔2〕Taylor R H. Planning and execution of straight line trajectories〔J〕. IBM Journal of Research and Development,1979,23:424~436.
〔3〕Lin C S, Chang P R, Luh JYS. Formulation and optimization of cubic polynomial joint trajectories for instrial robots〔J〕. IEEE Jransaction on Automatic Control,1983,28(12):1066~1073.
〔4〕Luh J Y S, Lin C S. Approximate join trajectories for control of instrial robots along cartesian paths〔J〕. IEEE Trans System, Man and Cybernetico,1984,14(3):444~450.
〔5〕林瑞麟,蔣少茵,林碧. 旋量法在機器人動力學分析中的應用〔J〕.應用數學和力學,1996,17(1):75~80.
〔6〕徐衛良,張啟先. 機器人誤差分析的蒙特卡洛方法〔J〕.機器人,1988,2(4):1~5.
(湯任基推薦)
收稿日期:1998-02-05
修訂日期:1999-10-30
請看PDF全文
『拾』 高數怎麼運用到生活中
第一:高等數學,這門課通用性之廣可能是你所想不到的,舉個例子(因為我是機電專業,故而例子大部分是機電設計):
PID控制器,P是比例,I是積分,D是微分,PID控制器可以模擬電路,也可以是數字系統來模擬的電路,例如用單片機來模擬,但無論哪種方法,都涉及到系統的參數設定,顧名思義,PID需要比例參數,積分參數,微分參數,這三者的確定以及之後的運算,均是在高等數學的基礎上的。
液壓伺服閥,對於液壓方面的計算,其實原理應用均為「流體力學」,對於流體力學,你們日後大概會接觸到,通用公式,基本上都是需要高數基礎來推導的。詳情請去圖書館借閱《液體力學》
第二:線性代數,這門課,說實話,更是牛B,我想您在高中時代肯定學過坐標系的轉換,例如坐標平移,極坐標轉換等等,那你現在想一個問題,給你一個兩關節機械手,你如何控制這個機械手的運動問題,我如何控制各個伺服電機來決定這些機械的運動位置與力的大小呢?這些問題在《機器人運動學》與《機器人動力學》中有詳細的探討,如果讓我告訴你,他們運用到的知識,可以這么說,用的是「矩陣」,我想通過線代的學習,你應該對他不會陌生,對矩陣的運算,如求逆陣啦,伴隨陣啦,都需要。這只是在我了解的領域內知道的線代應用。
第三:概率與統計,我想這個不用我多說了,古典概率不必多講,生活中用到他的情況比比皆是,還有一些實例,我想在課本上應該有所涉及,如醫學上,用概率論來判斷一種新型葯物是否有效。統計呢,這個…………以後你到公司里,不能一涉及到賬單就找財務吧,那財務還不忙死……還有很多問題賬務也處理不了,因為如果涉及到工業工程,學經濟的財務還真不一定懂,你可以看一下《工程經濟學》,這裡面有很多統計方面的應用。
第四:幾何學,對於一些經典的幾何模型,其實我們每天都在用到,例如求圓周長,面積,求一些標准體的體積等等,只不過我們把這些知識劃歸了常識,而現代文明僅僅是這些基本的幾何知識是遠遠不夠的,所以我們要用很多高等數學的知識來解決一些幾何問題,例如幾何學中的一個重要的分支——解析幾何,工程中常用的Pro/E三維軟體,只要你構建了一個幾何體,無論它有多麼的不規則,只需要點一下求體積的按鍵,它就能給你算出來,如何實現呢?電腦運算快,但不智能,所以演算法要你來寫,用程序寫出來,這些演算法,其實就是高等數學中的解析幾何啦,當然,不會那麼簡單,其中定然還要用到一些更高深的數學,例如一些有限元的演算法之類的。(沒有深入了解過Pro/E中的求體積演算法,如若有誤還請見諒)
------------------------------------------------------------------------------------------
如@陳然所說,這些課的學習能讓你用一種區別於普通人的眼光來審視這個世界,你會驚奇的發現,這個世界其實是由數學構成的,(學美術的會認為世界是由顏色構成的,學文學的會認為世界是由思想匯聚的,學經濟的會認識世界是由貨幣鑄成的。)你可以更抽象地去認識這個世界,了解他的前因後果。 陳然的答案很棒,我也很贊同,不過我想,還是補充一些關於現實生活中能看到的「活生生」的例子比較好。
我在此作出這個解答的原因,也是希望大家知道,這些東西並不是所謂的一無所用,它們功用之大,超乎我們的想像,如果沒有高等數學,你連一台普通機床都做不出來,更不必說什麼數控系統了~
其實隨著你學習的深入你會發現,其實就你們學的這點兒高等數學,都不夠用,如果你以後要自己做工程,肯定還要補習一些拉氏變換,傅氏變換,Z變換,更有甚者要學一些專門領域才用到"專業「的數學,如《數值分析》,系統變式等,不過那時候,我想,你已經深入地了解到數學的意義了。