構建不帶有差動式驅動的實體
不要被它的名稱騙了,Microsoft® Robotics Studio (MSRS) 可不單單能 夠掌控機器人。MSRS 大約在兩年前由 Microsoft Research 發布,可用於為多種 硬件設備構建基於服務的應用程序,但實際上卻被日常業務應用程序開發人員忽 略了。此工具包中提供的運行庫應立即為 Windows® Communication Framework (WCF) 開發人員所熟悉。另外,它還具有可視化編程語言 (VPL) 工具 和 Visual Simulation Environment (VSE)。
MSRS 提供了面向服務的運行庫,以及設計和部署基於機器人的應用程序所需 的工具。工具包中提供了面向首次涉足機器人世界的開發人員的可視化創作工具 、教程和文檔。商業開發人員必須支付少許費用購買此工具包,但愛好者和學術 研究人員可以免費下載使用。
MSRS 運行庫提供了兩個基於 CLR 2.0 的較低級別的運行庫。這兩個運行庫分 別是分散軟件服務 (DSS) 以及協調和並發運行庫 (CCR)。DSS 是一種面向服務的 輕型運行庫,基於具象狀態傳輸 (REST) 原理,用於啟動 Web。CCR 是一個 Microsoft .Net Framework 庫,支持異步處理。對於機器人應用程序而言,這非 常重要,因為要不斷在大量傳感器和傳動裝置上發送和接收數據。
除運行庫外,MSRS 工具包中還包括一個 VPL 工具。借助此工具,您只需將元 素拖放到設計平面中即可構建機器人應用程序。MSRS 中還提供了 VSE,可用於體 驗涉及多個機器人和障礙物的復雜模擬。MSRS 的這部分功能是本文的重點。我將 介紹可視模擬環境,並逐步介紹如何使用新的機器人實體創建模擬。值得高興的 是,您無需借助機器人來使用本文中的代碼。這也是模擬最具吸引力之處;借助 模擬,您無需在昂貴的硬件上投入資金即可達到學習的目的。
什麼是模擬?
如果您不熟悉模擬,可以想象一本翻頁的書 — 如果一本小書中的每頁 上都有一個圖像,那麼當連續快速地翻頁時,您會發現這些圖像在“移動 ”。模擬的工作方式與此類似。模擬包含一個或多個實體,每個實體都在幀 內部呈現。幀即等效於翻頁書中的一頁紙,而幀的呈現速率取決於主機的圖形卡 。
翻頁書和模擬之間的根本區別是,翻頁書是靜態的或可預測的,而模擬則不是 。模擬的每個幀都是動態呈現的,實體在每一幀內部的受力並不總能提前獲知。 模擬的有用之處也正體現在這裡。您可以使用機器人執行一個方案,然後查看機 器人如何與現實世界交互。
入門
如果您尚未下載和安裝 MSRS 工具包(位於 go.microsoft.com/fwlink/? LinkId=113902),請下載並安裝。目前,MSRS 網站可提供其 1.5 版本的全新安 裝。這包括 MSRS 1.5 的完整版本以及所有可用更新。
雖然 MSRS 提供的一些模板是針對 Visual Studio® 2005 的,但即便您 的計算機運行的是 Visual Studio 2008,也可以運行本文中提供的示例。您開發 所用的計算機需要使用與 DirectX® 9.0 兼容的圖形卡。特別值得一提的是 ,圖形卡必須支持頂點著色器 VS_2_0 或更高版本,以及像素著色器 PS_2_0 或 更高版本。對於大多數高端桌面和便攜式計算機而言,只要能夠運行如今的圖形 游戲,一般即已滿足此配置要求。
如果您不能確定自己的圖形卡支持什麼配置,請訪問 go.microsoft.com/fwlink/?LinkId=113904 獲取圖形卡的列表及其支持的著色器 。此外,您還可以在 VSE 中安裝 MSRS,並使用幫助菜單查看支持的像素著色器 和頂點著色器。如果您嘗試運行隨 MSRS 提供或本文中包含的某個模擬,但您的 屏幕顯示為空白,則表示您的圖形卡不兼容。
MSRS 使用 AGEIA PhysX 引擎為模擬環境提供物理支持。如果沒有物理支持, 模擬將沒有任何用處,因為它無法表示自己嘗試模擬的世界。例如,如果沒有重 力,實體就會四處飄蕩。如果閱讀 MSRS 隨附的文檔,您會發現其中介紹了由 AGEIA(請參見 ageia.com)提供的可選加速卡的用途。您不必專門為使用本文中 提供的模擬而購買和安裝此物理卡;AGEIA PhysX 軟件引擎同樣可以為您的模擬 提供物理支持。
運行模擬
此時,您可能很希望看到模擬。在創建自己的模擬之前,您應嘗試運行 MSRS 隨附的某一個模擬。安裝後,MSRS 將創建一個包含七個模擬的菜單文件夾。 “基本模擬環境”是此文件夾中的第一個模擬,可呈現與圖 1 類似的 場景。
圖 1 基本模擬環境