使用分層的方法設計 機械人軟體

2021-07-11 09:40:39 字數 4193 閱讀 1907

目錄

驅動層平台層

演算法層使用者介面層

機械人軟體架構是典 型的控制迴路的層次 集, 包含了高階計 算平台上的高階任務 規劃、運動控制迴路 以及最終的現場可編

程門陣列 (fpga)。 在 這中間,還有迴圈控 制路徑規劃、機械人 軌跡、障礙避讓和許 多其他任務。 這些 控制迴路可在不同計算節點(包括台式 機、實時作業系統以 及沒有作業系統的自 定製處理器)上以不 同的速率執行。

在某些時候,系統中 的各個部分必須一同 執行。 通常情況 下,這需要在軟體和 平台間預定義乙個非 常簡單的介面—就如

控制和監測方向與速 度般簡單。 共享軟 件棧的不同層次的傳 感器資料是乙個不錯 的想法,但會給整合 帶來相當大的麻 煩。

每個參與機器 人設計的工程師或科 學家的理念都有所不 同,舉例來說,同一 個架構對於計算機科 學家來說運作良好,

而在機械工程師那裡 可能就無法正常工 作。

如圖1所示,擬議的 移動機械人軟體架構 由下列圖形所表示的 三至四層系統構 成。 軟體中的每一 層只取決於特定的系

統、硬體平台或機器 人的終極目標,與其 上下層的內容完全不 相關。 典型的機器 人軟體包括驅動程 序、平台和演算法層組

件,而具備使用者互動 形式的應用包含了用 戶介面層(該層可能 不需要完全自主實 現)。

圖1. 機械人參考架構

該範例中的架構為帶 有機械手臂的自主移 動機械人,它能夠執 行路徑規劃、障礙避 讓和地圖繪製等任 務。 這類機械人的

應用範圍在真實世界 十分廣泛,包括農 業、物流或搜尋和救 援。 板載感測器包 括編碼器、慣性測量 單元(imu)、攝

像頭和多個聲納及紅 外(ir)感測 器。 感測器聚變可 以用來整合針對本地 化的編碼器和imu 資料 ,並定義機器 人環境地圖。

攝像 頭則用於識別載板機 械手臂握住的物體, 而機械手臂的位置由 平台層上執行的運動 學演算法所控制,聲納 和紅外感測器可以開障礙物。 最後, 轉向演算法被用來控制 機械人的移動,即車 輪或履帶的移動。 圖2就是基於移動機 器人架構的美國宇航

局機械人。

圖2. superdroid robots設計的 移動機械人

開發人員可以借助ni labview ( 系統設計軟體來實現 這些移動機械人的平 台層。 labview可用

2/4 www.ni.com

開發人員可以借助ni labview ( 系統設計軟體來實現 這些移動機械人的平 台層。 labview可用

於設計複雜的機械人 應用—從機械手臂延 伸到自主車輛開 發。 該軟體提取 i/o並可與多種硬 件平台整合,幫助工

程師和科學家提高了 他們的開發效率。 ni compactrio ( 硬體平台在機械人開

發中十分常用,它包 括了整合的實時處理 器與fpga技 術。 labview平台 的內建功能可實現每 一層之間的資料通

信,通過網路傳輸數 據並顯示在pc主機 上。

1. 驅動層

顧名思義,驅動層主 要處理機械人操控所 需的底層驅動函 數。 在這一層的組 件取決於系統中的傳 感器和執行器,以及

執行著驅動軟體的硬 件。 一般情況下, 這一層的模組採集工 程單位(位置,速 度,力量等等)中激 勵器的設定值,生成

底層訊號來建立相應 的觸發,其中可能包 括關閉這些設定值循 環的**。 同樣 的,該層的模組還能 採集原始感測器數

據,將其轉換成有用 的工程單位,並將傳 感器值傳輸至其它架 構層。 圖3中的驅 動層**就是使用labview fpga模組 (

開發的,並在 compactrio (

平台的嵌入式 fpga模組上執 行。 聲納、紅外和 電壓感測器都連線在 fpga的數字 i/o引腳上,訊號 在連續迴圈結構中進

行處理,這些結構在 fpga上真正的並 行執行。 這些函式 輸出的資料被傳送到 平台層上進行進一步 處理。

圖3. 感測器和激勵器的驅 動層介面

驅動層可以連線到實 際的感測器或激勵 器,或連線環境** 器中的i / o。 除了驅動層以 外,開發人員無需修 改系統中的任何層就能在**和實際硬 件之間進行切換 。 圖4為labview機器 人模組 ( 2011,它包含了

基於物理學的環境仿 真器,因此使用者可在 硬體和**之間切 換,除了硬體i / o模組以外就無 需修改任何**。

開發人員可以使用例 如labview機器 人環境**器 (等工具來在軟體中快

速驗證他們的演算法。

圖4. 如果需要進行**, 必須要在驅動層中使 用環境**器。

3/4 www.ni.com

圖4. 如果需要進行**, 必須要在驅動層中使 用環境**器。

2. 平台層

平台層中的**對應 了機械人的物理硬體 配置。該層中底層的 資訊和完整的高層軟 件之間能夠進行雙向 轉換,頻繁地在驅動

層和高層演算法層之間 切換。如圖5所示, 我們使用了labview fpga (讀/寫結點從 fpga中接受原始

紅外感測器資料,並 且在 compactrio (實時控制器上進行數 據處理。 我們使用 labview函將原始感測器資料轉 換成有用的資料—在 本案例中為距離,並 判斷我們是否在4公尺 至31公尺的範圍之 外。

圖5. 平台層在驅動層和算 法層之間進行轉換

3. 演算法層

該層中的元件代表了 機械人系統中高層的 控制演算法。圖6呈現 了機械人需要完成任 務,可以看到演算法層 中的模組採集系統信

根據機械人周圍的障 礙物規劃路徑。圖6 中的**顯示的是使 用向量場直方圖 (vfh)避障的範 例。在該範例中,距

離資料從平台層傳送 至距離感測器,再由 vfh模組接收。 vfh模組的輸出數 據包含了路徑方向, 該資訊直接傳送到平

台層上。在平台層 上,路徑方向輸入至 轉向演算法,並生成底 層**,然後直接發 送到驅動層上的電機 上。

圖6. 演算法層根據反饋資訊 作出控制決定

演算法層元件的另乙個 範例是搜尋紅色的球 狀物體,並使用機械 手臂將它拾起的機器 人。該機械人憑藉其 設定的方式,在避讓

障礙的同時探索環 境——這就需要搜尋 演算法與避障演算法相結 合。在搜尋時,平台 層模組會處理影象, 並且返回物體是否找

到的資訊。球被檢測 到以後,演算法會生成 一條運動軌跡,手臂 端點根據它就能抓住 並拾起球體。

範例中的每個任務都 具有乙個高層目標, 與平台或物理硬體無 關。 如果機械人擁 有多個高層目標,那 麼這一層還需包含仲

裁來為目標排序。

4. 使用者介面層

使用者介面層中的應用 程式並不需要完全獨 立,它為機械人和操 作員提供了物理互 動,或在pc主機上 顯示相關資訊。 圖

7顯示的是圖形使用者 介面,上面包含板載 相機上的實時影象數 據,以及地圖上周圍 障礙的xy軸坐 標。 伺服角度控制

讓使用者可以旋轉與相 機連線的板載伺服電 機。 在該層中還能 讀取滑鼠或遊戲杆的 輸入資料,或驅動簡 單的文字顯示。 該

層中的元件,例如 gui的優先順序非常 低;而急停按鈕等類 似元件則需要以確定 性的方式與**捆 綁。

圖7. 使用者介面層允許用 戶與機械人進行互動 或顯示資訊

根據目標硬體不同, 軟體層可能分布於多 個不同目標。 在很 多情況下,各個層都 在乙個計算平台上運 行。 對於不確定的

應用程式,軟體目標 為執行 windows或 linux系統的單 臺pc。 對於需要 更為嚴格定時限制的 系統,軟體目標為單

個處理節點,且具備 實時作業系統。

鑑於 compactrio (與ni single- board rio (

4/4 www.ni.com

鑑於 compactrio (與ni single- board rio (

的小體積、供電要求 和硬體架構, 它們 對於移動應用程式來 說是理想的計算平 臺。驅動程式、平台 和演算法層可在實時處

理器和fpga上分 布,如圖8所示,如 果需要,使用者介面層 可在一台主機pc上 執行。電機驅動器或 感測器過濾器等高速

元件可在fpga架 構上確定地執行,無 需占用處理器的時鐘 週期。平台和演算法層 上的中層控制**可 以以優先迴圈的方式

在實時處理器上確定 地執行,而內建的以 太網硬體可將資訊傳 輸到主機pc上生成 使用者介面層。

圖8. 對映到 compactrio (或ni single- board rio 嵌入式系統的移動機 器人參考架構

文獻中有關移動機器 人軟體架構的簡要介 紹表明了該主題還存 在很多不同方法來創 建機械人軟體。 本 文就如何構建移動機

器人軟體給出了一種 廣義的答案;然而任 何設計都需要預先作 出考慮與規劃,才能 適應架構。作為回 報,乙個定義明確的

架構有助於開發人員 輕鬆地並行處理項 目,將軟體劃分成明 確的介面層次。 此 外,將**劃分成具 有明確的輸入和輸出

功能模組有助於今後 專案中的**元件復 用。

仿生軟體機械人就業咋樣 軟體機械人的前景真的很可觀

提起機械人,大家的腦子裡大都浮現的是硬體機械人,而隨著科學技術的發展,機械人不僅僅只有硬體的,軟體的機械人已經有很多了,而且其用途非但不比硬體機械人差,還可能比硬體機械人有更多用途。這些軟體機械人有的會跳舞,有的可以抖動腰肢,還有的甚至可以攀上牆壁,這些讓人瞠目的軟體機械人的創造者們可以說是這些軟體...

機械人聊天軟體c C 聊天機械人

例項簡介 c 聊天機械人 例項截圖 核心 3181078聊天機械人 原始碼必讀.pdf 聊天機械人 1.ico 聊天機械人 1.ico form1.designer.cs form1.cs form1.resx program.cs properties assemblyinfo.cs resour...

機械人離線程式設計軟體

本文整理了目前市面上所使用的離線程式設計軟體,包括robotart robotmaster robotoworks robotmove robotcad delmia robotstudio roboguide kuka sim sprutcam robotsim 川思特 天皇 亞龍 旭上 匯博等等...