查看: 3149|回复: 0

仿生机器人──小怪兽(运用篇)

[复制链接]
  • TA的每日心情
    擦汗
    2014-2-12 10:49
  • 签到天数: 150 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-12-19 10:37:46 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 XM明 于 2013-12-19 10:45 编辑

    基本上到目前「小怪獸」的硬體算是完成了。原來規劃還有LED與紅外線感測器部分,我們等到「小怪獸」可以行走了之後再來加裝。現在請開啟 InnoBASIC Workshop 2環境,到「動作編輯器」的主畫面(圖A)。機器人最基本的行走原理就類似早期的卡通影片,將許多的靜態畫面連續播放,就形成了動態的畫面。這時候如何正 確而精準地將一個動作拆成幾個分解動作,就是機器人運動能力優劣的關鍵了。現在就先讓「小怪獸」學會暖身來個「伏地挺身」吧。我把「伏地挺身」分成二個分解動作。第一就是標準站姿,第二就是腹部貼近地面。目前畫面上所顯示的初始值都是1500,也正好就是我們所要的標準站姿,注意要先將所有的核取盒打勾, 這樣才有啟動控制功能。接著我們就直接按下「儲存」鍵,將此動作儲存到SC8控制板裡。
    P130-小怪獸-8c.jpg
    A

    微調的重要性

    通 常這時候就會發現明明每個伺服機都按照要求設成1500的位置,但站姿好像不是很正,左看右看每個伺服機都想給它調整一下,這時候我們就需要做「微調」了 (圖B)。造成這各現象的原因有二:第一,伺服機輸出軸與「搖臂」結合處的齒數是有限的,所以不論如何鎖,一定會有機械性的角度誤差;第二,整體性的機構 偏差,例如支架歪斜,使得我們必須靠「微調」來補償機構上的偏差。動作編輯器主畫面的右上角有「設定微調值」的按鍵,按下後即可進入「設定微調值」的主畫 面。其中可以進行微調的通道,即為剛才所核取的通道。基本操作方式與動作設定相同,只是數值範圍較小從-128+127。邊微調邊觀察伺服機是否轉動到 要求的位置了。當各通道微調值設定好了之後,記得要按下「儲存到模組」按鍵,目前的設定值才會正式被儲存到SC8控制板,否則下次使用SC8控制板會發現 微調值還是舊的。現在大家了解「微調」的用處之後,我們繼續剛才的動作設定。


    P130-小怪獸-8e.jpg
    B

    完成伏地挺身的動作設定

    接 著我們要調整出第二個動作,讓身體貼近地面。其實只要轉動外側的四個伺服機就可以了。現在請慢慢拉動CH1CH3CH5CH7的捲軸或填入數值。這 時候就可以觀察是否有符合您的動作要求。這裡我使用的位置是12001800,從中心位置前後大約擺動各30度。因為伺服機安裝的方向不同,左前腳與右 後腳會是同一個數值,右前腳與左後腳會是另一個數值。動作若是一致的,就是要降低身體高度。如果覺得姿態沒問題就先將畫面左上方的動作編號改成1(圖 C),然後按下「儲存」鍵,將此動作儲存到SC8控制板裡。

    每次儲存新的動作時一定要記得改變動作編號,否則之前所設計的動作就會被覆蓋掉 了。因為你所設計的動作都儲存在SC8控制板裡,如果想檢視某一個編號的動作,只要改按「讀取」鍵,並輸入動作編號,例如編號0。這時候「小怪獸」就會呈 現原先設定的站立姿態了。好了,動作設定完成,現在開始寫程式吧。


    P130-小怪獸-8f.jpg
    C

    開始寫程式

    首 先從「檔案」/「開新檔案」選單之下開啟一個新檔案,然後輸入下列程式。單引號「’」之後的文字稱之為「註解」,方便自己或他人閱讀程式之用,對程式執行 沒有任何影響。練習的時候如果想省事,「註解」的部份是可以省略。但是正式寫程式的時候可千萬別偷懶,否則現在引以為傲的「武功祕笈」下次在閱讀時,套句 俏皮話,就變成諸葛亮的「出師表」,「臨表涕泣,不知所云」了。

    ==================================================
    ‘ 小怪獸伏地挺身五次
    ==================================================
    Peripheral mySer As ServoRunner8A @ 0
    ‘ 預設內建模組ID0
    Sub Main ()
    Dim I As Byte ‘ 宣告變數
    For I=1 to 5 FOR NEXT 迴圈開端,迴圈執行5
    mySer.LoadFrame(0) ‘ 載入編號0動作的資料
    mySer.RunAllServo() ‘ 執行編號0之動作
    Pause 1000 ‘ 程式等待一秒,等待伺服機完成動作
    mySer.LoadFrame(1) ‘ 載入編號1動作的資料
    mySer.RunAllServo() ‘ 執行編號1之動作
    Pause 1000 ‘ 程式等待一秒,等待伺服機完成動作
    Next I FOR NEXT 迴圈末端
    End Sub

    程 式輸入完畢之後(圖D),請在「建立」選單中選取「建立」功能然後開始進行程式編譯與通過USB線下載編譯後的程式碼至SC8控制板。此時「小怪獸」就會 每秒一次「上」或「下」進行「伏地挺身」,而且因為ForNext指令的指定,「小怪獸」將會執行5次「伏地挺身」。


    P130-小怪獸-9d.jpg
    D

    好啦!伏地挺身還算是簡單,我們現在開始設計步行的動作。原則上愈多分解動作可以達成較好的平衡性與流暢度。但是既然是「入門 級」的機器人,步態設計還是以簡單易懂為原則。這裡就整理出八個分解動作,經由不同的分解動作組合,可以做出前進、後退、轉彎等動作。下面就是這八個動作 的示意圖。首先大家會注意到每隻腳都有對應到三個圓圈,說明足部是在「前」、「中」、「後」哪個位置,這些位置是由內側伺服機控制。虛線的圓圈只是方便辨 識相對位置,實際落腳會以一個「實心圓」與「空心圓」分別表示不同高度,這些高度是由外側的伺服機控制,圖的上方為頭部的方向(圖E



    P130-小怪獸-9e.jpg

    E

    高度可以有「上」、「中」、「下」三個位置,但是目前為止動作規劃還沒有使用到「上」的位置。所以大家有進一步的動作規劃時,可 以再加入「上」的位置。為了方便動作設定,這裡就一併把設定這些動作所需要的伺服機位置數值,建成一張表給各位參考。各位就依照前面伏地挺身的動作設計方 法(圖F),把剩下的動作2到動作7儲存到SC8控制板裡面。

    [DIY作品展示]转:仿生机器人──小怪兽(制作篇)
    [DIY作品展示]仿生机器人──小怪兽(升级篇)

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-25 04:08 , Processed in 0.120240 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.