本書主要介紹了機器人、水中機器人及仿生機器人的定義、分類及發展狀況,較深入的闡述了兩類水中仿生機器人(仿鯵科機器魚及單關節機器魚)的機械結構、軟硬件系統及其推進系統的運動原理及控制機理。
魚類,這種自然界中的古老物種,現在,有了新的伙伴——仿生機器魚,本書從機器人、水中機器人及仿生機器人的定義與發展等方面向讀者很好的介紹了水中仿生機器人的由來,分析了水中仿生機器人的運動及控制機理。結構清晰、語言平實,值得每一個對此有興趣的讀者學習、參考。
本書主要介紹了機器人、水中機器人及仿生機器人的定義、分類及發展狀況,較深入地闡述了兩類水中仿生機器人(仿鯵科機器魚及單關節機器魚)的機械結構、軟硬件系統及其推進系統的運動原理及控制機理。
本書包括機器人概述、水中機器人概述、水中仿生機器人系統實現、水中仿生機器人運動實現、水中仿生機器人避障實現、面向工程應用的單關節機器魚等6章。
第1章由劉甜甜編著,第2章由夏慶鋒、李銘編著,第3章由李宗剛、劉甜甜編著,第4章由謝廣明、李衛京編著,第5章由王新海編著,第6章由李衛京、王新海編著。全書由謝廣明統稿。
在本書的成稿過程中,山東大學李銘參與了插圖和文字的修訂工作,在此表示感謝。
本書深淺適宜,通俗易懂,作為教材兼科技類圖書,既可以作為大中專學生的選修課教材,也可以作為機器人相關課程的參考書籍。
對于書中的缺點和錯誤,敬請讀者不吝指出,以便再版時修正。
作者
2017年3月
第1章機器人概述
1.1了解機器人
1.1.1機器人的發展史
1.1.2機器人的定義
1.1.3機器人的分類
1.1.4機器人與人類社會
1.2仿生機器人
1.2.1仿生機器人的定義與分類
1.2.2仿生機器人的特點與應用
1.2.3仿生機器人的現狀與趨勢
第2章水中機器人概述
2.1水中機器人簡介
2.1.1水中機器人的定義與分類
2.1.2國內外水中機器人的研究現狀
2.1.3水中機器人的研究內容
2.1.4水中機器人的發展展望
2.1.5水中機器人的研究目的和意義
2.2水中機器人的應用
2.2.1水中機器人的技術應用
2.2.2水下搜救
2.2.3生物科考
2.2.4水下檢測
2.3單片機在機器人中的應用
2.3.1單片機的概念
2.3.2單片機在機器人中的應用
2.3.3機器魚所用AVR單片機簡介
第3章水中仿生機器人系統實現
3.1水中仿生機器人系統總體設計
3.1.1機器魚推進運動設計原理
3.1.2機器魚的控制系統結構
3.2水中仿生機器人硬件實現
3.2.1機器魚硬件概述
3.2.2機器魚硬件原理圖及介紹
3.3水中仿生機器人軟件實現
3.3.1機器魚軟件設計流程
3.3.2機器魚控制平臺簡介
3.3.3機器魚手機控制平臺
3.4水中仿生機器人機械系統
3.4.1機器魚的擺動部分
3.4.2機器魚結構參數優化
3.4.3機器魚防水設計
3.4.4基本軟件SolidWorks簡介
第4章水中仿生機器人運動實現
4.1水中仿生機器人運動模式分類
4.1.1按魚類游動推進模式的分類
4.1.2按機器魚驅動方式的分類
4.2水中仿生機器人運動原理
4.2.1魚類波狀游動的受力分析
4.2.2魚體游動的運動學模型
4.2.3魚體波動方程改進
4.2.4機器魚結構參數優化
4.3水中仿生機器人倒游運動
4.3.1機器魚結構
4.3.2機器魚運動學分析
4.4水中仿生機器人運動控制研究
4.4.1機器魚游動速度控制
4.4.2機器魚游動方向控制
4.4.3機器魚游動加速度控制
4.5水中仿生機器人頂球算法
4.5.1基礎算法
4.5.2相切圓頂球算法
4.5.3基于位置的頂球算法
4.5.4基于區域的頂球算法
4.5.5弦端點法頂球算法
4.6基于舵機的水中仿生機器人運動實現
4.6.1概述
4.6.2舵機的組成
4.6.3舵機的規格和選型
4.6.4舵機的控制原理
4.6.5PWM波的產生及控制
4.7水中仿生機器人運動參數簡介
4.7.1機器魚運動參數設置
4.7.2機器魚初始化參數設置
4.8水中仿生機器人運動的無線控制
4.8.1RF001通信模塊的基本性能及特點
4.8.2RF001通信模塊的使用
4.8.3機器魚數據發送
4.8.4機器魚控制協議
4.8.5機器魚無線控制代碼
第5章水中仿生機器人避障實現
5.1水中仿生機器人避障簡介
5.1.1機器魚避障傳感器選擇
5.1.2機器魚避障策略
5.2模擬量紅外傳感器簡介
5.2.1模擬量紅外傳感器的原理
5.2.2模擬量紅外傳感器的使用
5.3開關型紅外傳感器簡介
5.3.1開關型紅外傳感器的原理
5.3.2開關型紅外傳感器的使用
5.4水中仿生機器人避障實現
5.4.1開關型紅外避障實現
5.4.2SHARP紅外避障實現
5.5上升下潛
5.5.1上升下潛的原理
5.5.2上升下潛的實現
第6章面向工程應用的單關節機器魚
6.1概述
6.1.1開發背景
6.1.2產品結構
6.1.3功能結構
6.1.4產品特點
6.2單關節機器魚的組成與組裝
6.2.1單關節機器魚的組成
6.2.2單關節機器魚的組裝流程
6.3單關節機器魚控制平臺的使用
6.3.1WiFi連接
6.3.2基本控制功能
6.3.3初始化設置功能
6.3.4關節調直功能
6.3.5充電功能
6.4單關節機器魚程序燒寫
6.4.1熔絲位配置
6.4.2BootLoader實現
參考文獻
第3章水中機器人系統實現
魚和鯨類生物是非常高效的“游泳天才”,對于曾羨慕過它們的速度和優雅地穿過水族館墻壁障礙的人來說這是一個不爭的事實。但是,為什么學習這個系統呢?答案是,因為它們已經解決了水動力學、機構控制和群體協作等一系列問題。魚和水下機器人待在一樣的物理環境里,它們受支配于同樣的物理規則,它們也要經歷相同的粘性和慣性帶來的影響。在進化環境中,大自然母親用了兩千三百萬年持續的精煉來提高大多數生物的設計,用了6000萬年提高大型遠洋魚類的生物設計。在嚴格的工程觀念里,速度、機動性和忍耐力對于生存是至關重要的。就這一方面而言,魚類是接近完美的一種設計。
作為極其出色的流體力學專家,魚類通過恰當的利用流體力學原理,獲得了極高的推進效率和機動性能,遠高于普通的螺旋槳推進機構。在推進效率方面,金槍魚在速度高達80km/h的情況下,推進效率達到90%,而相比之下,普通螺旋槳推進系統只有40%~50%。在機動性能方面,魚類起動時的加速度竟然可以達到50倍重力加速度,遠高于螺旋槳機構。轉彎時魚類的轉彎半徑只有體長的10%~30%,而普通螺旋槳推進系統要達到體長的3~5倍。鑒于此,以魚類為仿生對象研制新型的水下推進器具有重要的科學研究與現實意義。自20世紀90年代起,已有眾多的仿生機器魚樣機相繼研制成功。本章以三關節仿鲹科機器魚為例,討論水中仿生機器人系統機械結構、控制系統、下位機系統以及上位機系統的設計方法。
3.1水中仿生機器人系統總體設計
3.1.1機器魚推進運動設計原理
魚類行為學研究者認為,魚類的推進運動中隱含著一由后頸部向尾部傳播的行波,該推進波主要表現為脊柱和肌肉組織的彎曲,其幅度由前向后逐漸增加,其傳播速度大于魚體的前進速度,該推進波又叫“魚體波”,其相應的函數為魚體波函數。科魚類的魚體波曲線可看作是魚體波幅包絡線和正弦曲線的合成,它開始于魚體的慣性力的中心,延伸至尾柄,曲線方程可表示為:
ybody(x,t)=(c1+c2x2)sin(kx+ωt)
(31)
其中
,ybody
表示整個魚體左右軸方向上的縱向位移,變量x
表示魚體頭尾軸方向上的軸向位移,參數k表示波長的倍數
(k=2π/λ)
,而
λ
則表示魚體波的波長,系數
c1
、
c2
分別表示魚體波波幅包絡線的一次項系數和二次項系數,
ω
則表示魚體波的波動頻率
(ω=2πf=2π/T)
。
仿生機器魚設計的重點是確定合適的魚體波參數
c1,c2,k,ω等,使得機器魚能夠很好地擬合魚體波曲線方程式(31)。為此,需要通過離散化的方法把魚體波曲線中時間參數t從函數
ybody
中分離出來。并且將整個魚體波分為兩個部分:一部分是樣條曲線序列
ybody(x,i)(i=0,1,…,M-1)
,此序列在一個擺動周期內與時間無關;另一部分是與時間有關的擺動頻率f,即在時間單位內整個擺動機構所完成體波運動的數量。因此
ybody(x,i)=(c1+c2x2)sin
kx-2πMi
(32)
其中,M表示所形成魚體波的分辨率,即魚體波被離散化的程度,其上限值為魚體擺動可達到的*高頻率
;i表示在一個擺動運動周期內的樣條曲線序列。
(xi,j-xi,j-1)2+(yi,j-yi,j-1)2=l2j
yi,j=(c1xi,j+c2x2i,j)sin
kxi,j-2πMi
(33)
在游動過程中,可以通過改變擺動頻率f實現在水中不同的推進速度,從而實現整個魚體的速度控制。基于上述原理所設計出的仿生機器魚樣機如圖31和圖32所示。
圖31仿生機器魚設計圖
圖32仿生機器魚樣機
3.1.2機器魚控制系統結構
基于全局視覺的多機器魚系統采用集中控制式結構,通過全局感知和集中策略使得整個系統具有全局規劃和推理能力,并對環境作出合理的反映。所有機器魚在空間上是分布式的,運動狀態和相對位置共享,通過采用角色分配行為決策角色轉換策略來實現機器魚間的協調運動,多仿生機器魚系統(MultipleRoboticFishSystem,MRFS)協作控制系統構成如圖33所示。
圖33仿生機器魚系統(MultipleRoboticFishSystem,MRFS)
1.決策主機;2.無線發射模塊;3.支架;4.攝像頭;5.水池;6.小球;7.機器魚
為了有效地完成協作任務,機器魚必須學會某些技能,如奔向目標、避障等,且必須學會與別的機器魚協調、協作來共同完成一項任務。不同的技能有不同的要求,適用于不同的應用場合。例如,假定控制系統每隔Δt發送一次指令,在一個指令周期內,對于簡單的任務,機器魚應能立刻“反應式”地做出決策;對于復雜的任務,機器魚應從群體協作的角度在幾個指令周期內做出相應的決策。
基于上面的想法,按照“信息集成,任務分解”的原則,提出了一種面向協作的機器魚(CooperativeLocalBasic,CLB)三層控制結構,如圖34所示。
機器魚控制結構分三層:協作規劃層(cooperativeplanninglayer)、本地規劃層(localplanninglayer)和行為規劃層(basicbehaviorlayer)。上層收集下層的信息,規劃產生下層的目標。行為層作為*底層,具有對外部環境直接反應的能力。在每一層中,又可分為三個單元:感知單元、規劃單元和目標單元。感知單元負責收集下一層的傳感信息,行為層感知單元收集傳感器采集的環境信息。目標單元負責收集上一層傳來的子目標信息作為當前的目標。規劃單元綜合感知單元和目標單元的信息產生下一層的子目標,行為層的規劃單元輸出的是規劃好的一個個基本動作,如前進(forward)、轉彎(Bend)等。
圖34三層控制結構
為了使機器魚在任務執行過程中相互配合,更好地完成任務而不出現沖突,在協作規劃層和本地規劃層的規劃中,設立了通信模塊和知識庫模塊。其中,通信模塊負責多機器魚間協作規劃層和本地規劃層的規劃信息交互,并傳送目標;知識庫模塊在整個協作系統中起著非常重要的作用,體現著機器魚的“智能”,并承擔一些任務:維護協作活動,實現系統的目的性;解決沖突,分配角色,實現系統的協調一致性;結合感知信息,實現自我推理。例如,可以設定如下群體協作規則:
規則1:IF系統要求多機器魚協同完成某一項任務,THEN按照一定的標準(如距離*近)選擇滿足該條件的機器魚;
規則2:IF系統收到某機器魚參與群體協作的消息,THEN更改協作信息,并通知其他機器魚;
規則3:IF預先規劃的軌跡中突然出現了機器魚,THEN請求避障或重新規劃路徑。
知識庫是環境知識、控制算法和協作策略的有機集成。從長遠來看,為了提高機器魚控制的魯棒性、穩定性從而更好地完成協作任務,必須采用學習算法來改善機器魚的游動性能和機動性。
多仿生機器魚系統的工作流程如下:根據視覺子系統提供的機器魚運動信息和環境信息,按照給定任務,進行勢態分析與策略選擇,決策各機器魚的行為,*后輸出機器魚的運動方向和運動速度。于是,多機器魚間的協調協作過程由四部分構成:輸入信息預處理(計算有關實體的運動速度、相對距離等);勢態分析與策略選擇;各機器魚行為確定;機器魚運動速度和運動方向確定。
為了實現這一體系結構,將多仿生機器魚系統劃分為四個子系統分別加以實現,并連成一個整體,如圖35所示。其中,攝像頭采集機器魚的運動信息和環境信息,經圖像識別后,作為決策與仿真的輸入量,決策的輸出經無線通信子系統發送給機器魚子系統,從而控制多機器魚的行為,共同完成某一項任務。
圖35多仿生機器魚系統中子系統的劃分
(1)機器魚子系統:該子系統是系統任務的執行者,因此對機器魚子系統的基本要求是可靠性高、魯棒性好和運動精度高。此外,機器魚的工作環境是水中,還必須考慮魚體的防水性和無線通信信號的衰減與干擾。
(2)視覺子系統:該子系統的任務是快速采集機器魚的運動信息和障礙物信息,及時傳給決策與仿真子系統,其基本要求是要具有快速性和準確性。
(3)決策與仿真子系統:該子系統以圖像識別結果作為控制和決策的輸入,根據給定的任務,規劃多機器魚的運動。
(4)無線通信子系統:該子系統主要負責決策與仿真子系統和機器魚子系統的信息交互。現階段,機器魚子系統和決策與仿真子系統之間采取單向通信,即機器魚被動地接收決策與仿真子系統輸出的控制指令,完成指定的任務。
3.2水中仿生機器人硬件實現
3.2.1機器魚硬件概述
基于前面提出的仿生機器魚設計原理和方法,制作一款三關節、無線通信的小型仿生機器魚。圖36和圖37給出了仿生機器魚機械結構示意圖,可以知道機器魚總體結構可分為魚頭、魚體、魚尾和魚皮四個部分。
……