好,我們剛剛看過了如何在頭尾是靜止的時候
中間原本是一個等速的線段,在那個頭尾邊加上一個二次式讓它圓滑
那剛剛那個算是一個導讀,也是一個比較特例的狀況。
那我們現在就來進入到一般的 case 一般的 case 比較像是說,我今天可能有一條軌跡
那我中間可能有很多個 via points 那等於說我們今天就先假設說,我今天的這些
via points 跟頭尾之間,中間都希望是以 直線的方式相連,那直線方式相連的
時候我又希望我的轉折點可以補上我的二次式 讓它圓滑化,這是我們現在想做的事情
所以第一個就像我剛才講的,我們希望說所有的 每個
via point,或是說每個這裡標出來的點之間 都先想成說,我原則上是希望是一個直線段去相連
就像這裡畫出來的 θj 到 θk 是一個
等速的狀況變動,那 θk 到 θl 也一樣是一個等速的狀況在變動
那這裡跟剛剛的設定 大家也知道說,那如果中間是等速的話,其實是相似的設定
跟剛剛不同的在於說,我們今天就從 θk 到 θl 的這一段來看好了
這個如果對應到剛剛前,之前的一個 課程裡面的講義,我們發現說這個 θk 跟
θl 的頭尾希望說它是靜止的,那在這裏的 不一樣是說,這裏的頭尾各自有一個本來的速度,這個本來的速度其實也可以從這個的斜率去-
把它算出來 所以我們現在可以想象說,我們現在想做的事情
有時一路上各自有一段一段的線段,那頭尾可能各自有一個既定的 一個速度。
那我們等於說在這個既定速度之下,我們要去想象說要怎麽去利用二次式把它串接起來
那這裏就是我剛剛講的,好,我們可以想象說今天的所有的轉折點
都有串接一個二次式上來,所以可以看到說我這裏都畫了一個圓弧 圓弧、
圓弧,那基本上它就是一個二次式的軌跡,讓它可以從
某個速度經過這個二次式轉換到另外一個速度
那我們先看中間的這個部分,就等於說我們今天要開始做這樣子的規劃的時候 裏面就有一些參數設定上面的細節
那大家可以發現說我們本來的紅色的部分 是我定義的
via points 的位置跟它所需要發生的時間 所以等於說我們這有個
θj,它發生的時間就是 tθj 然後下一個是 tθk,那它就需要到達 θk
的這個位置 那我們現在,因為我們知道說有二次式跟一次式去交互
交錯起來,我們才會說所有的轉折點都有做一個圓滑的動作 那我們在二次式的部分,我們每一個
via point 那邊都會是有一個二次式去做一個連接的動作
所以在我們這裏有一個定義一個 θj,事實上指的是在這一個
二次段所需要花的時間,這個就不是一個 絕對的時間,不是從 0 開始絕對的時間
而是我們這個二次段所需要花的時間是 tj 所以 θk
這邊也一樣,它二次段所需要的時間我們叫做 tk,那中間
tj 跟 tk 中間的一次段所需要花的時間,我們叫做
tjk 我們就等於說今天 tj,tk 跟 tjk
的這個下標 這是個方式,是指的是一次段跟二次段所需要的時間各是什麽
那我們今天要定義這個整段,就等於說從 θj
到 θk 的時間差的話,我們是用 td 的 jk,所以
那個 d 有點是 duration 的意思,就等於說我今天這個 j 到 k
這兩個點中間的時間的的長度是 td 的 j jk,那
j 到 k 是這樣子的定義, k 到 l 也一樣的定義,所以這是一個 tk
然後這個是 tkl 是一次段的,然後這邊我沒有畫出來的是,這其實就是一個 tl
那這個下面 θk 到 θl 的時間差就是 tdkl
好,那這個是一般在第 n 步,或是說任意一步的時候我們的設定
那頭尾的設定會有一點點不同,那這個我們等一下再做進一步的說明,我們先把中間的部分
看要怎麽去把它的軌跡把它量化出來 好,那這個部分等於說我就是把中間剛剛的那段
軌跡把它放大,內容設定的方式跟剛剛事實上是一模一樣
那我們現在就等於說這個是任意取一段,那我們現在要做的就是 我們現在就來看 θj 到 θk 和
θk 到 θl,我們兩個通通都一起看 那我們知道說今天我們在這個軌跡上面,我們的直線段
我們這裏反而就是沒有就沒有去變動到它 所以等於說我今天的這個在直線段的速度
會跟有沒有圓滑前跟後是沒有差異的,所以等於說我今天這個直線段的速度
反而就可以用很簡單的方式去把它算出來 所以我們今天直接是
δθ 除以 δt 就可以了 所以我们的 θjk dot
就等於說是從 θj 到 θk 的這段等速,我們基本上就是
δθ 除上 δt,那 δθ 就是後減前嘛,所以是
θk 減 θj,那 δt 就是,事實上是 tθk
減 tθj,那照剛剛的新定義,它就是 tdjk
所以等於說我們今天是一個 δθ,下面是一個 δt 的方式
就可以把中間直線段的速度算出來 那 θkl dot
也事實上是一樣,我們直接 θl 減 θk,去除上
tdkl,就等於說我們是 δθ 除上 δt 就可以得到從
k 到 l 這一段的速度,所以這個是一次式的部分
那各位同學可以看到說,這個一次式就像是我再一次強調的 我們這裏的一次式的速度,並不像我們剛剛才做的範例
在導讀的時候的那個速度會移動會變動到,這裏的速度 就跟我們本來的設定是一樣的。
那我們現在來看這個二次式要怎麽接上去,就等於說我們今天 知道了前後各一段的速度了之後
我中間要怎麽找到這個二次式的一個方程式 把它做一個圓滑的速度變化。
那我們設定的方式有兩個,那第一個是說
我們就先針對我們系統的加速度,先設一個我們想要的值
那我們從剛剛導讀的例子也知道說,加速度其實是
有時候是決定於它的系統的物理條件,所以等於說設定加速度的方式的話
可以等於說至少讓系統的變動不會那麽地快,或者說至少 它的變動是在一個真實上面可以達到的一個範圍,所以等於說我們就是用
設定 θk double dot 的一個方式來想,大概是這樣子
所以如果說我們今天先設定一個加速度了
那我們也知道說今天這個加速度,我們第一個式子其實是爲了要看說 它到底這個加速度應該是正的還是負的
那以我們這個例題來看的話,我們一開始的速度式是負的 後面的速度是正的,所以我的 θk
double dot 事實上是正的 所以就等於說它這裏要我們算的就是說,我們今天這個決定的量值前面決定的方向
來確定說我的 θk double dot 正負號有沒有錯。
那今天 在 θk 這個是正的狀態下面,我們這樣算出來的時間才會是正的
因爲等於說我們的 θ dot kl 減 θ dot 的 jk
這個相減了之後它是一個正的嘛,因爲我們是從 負的到正的,所以正減負是正的。
那 θk double dot 它加速度變化也是正的,所以算出來的時間才會是正的
那這是一個設定加速度,然後來算出我們到底這個二次式所需要時間的方法
因爲我們這裏可以看到說,我們一開始有一個速度 後來有一個速度,所以我中間的轉換其實
就是兩個參數在互相配合 一個是所謂的加速度,加速度越快的話,我需要這個轉換的時間
tk 就會越小 加速度越慢,它可能就需要比較長的時間,去讓它從本來的速度 慢慢拉到新的速度。
所以等於說我的 θk double dot 大小 間接就決定我 tk
的時間的長短,那這兩個是成反比的 因爲等於說上面是速度差,就等於說是
v 減 v0,那這個相乘起來就相當於我們的 at 好這是方法一。
那我們下來看方法二 方法二就是反過來,就等於說我今天
我是先設定了一個時間,我希望說它在這個時間內完成
然後從這個完成的時間來反推我系統所需要的加速度是什麼
那從這個方式等於說也比較直觀一點,因爲我們的 tk 時間長度就是一個正值
那上面相減了之後是一個我們所需要的 δθ dot
除上時間之後自動就會是我們的 θ double dot
的大小 那我們這兩個方式都可以算,那算完之後等於說我們就知道
θk 跟 tk 各是什麼了 那最後等於說我們只是來算就好,那最後到底我的直線段我前後的直線段
就剩下什麼樣的時間,那這裏也可以看出來說我的 tjk
的這個時間長度基本上就是 tdjk,等於說 θj 到 θk
的全部的時間,扣掉 tj 的 一半跟 tk
的一半,就等於說我前後的等加速有一半 會分到前面,一半會分到後面。
所以等於說我最後的時間就是前面的減掉一半,後面的減掉一半 最後剩下的這個
tjk 就是我整個過程中一次段,等於說等速段所需要的 的時間。
那設定加速度跟設定時間 各有它的好壞,我們等一下在後續還會有進一步的說明