開源不只在改變我們與世界互動的方式,它也在改變世界與我們互動的方式。體現(xiàn)這一點的案例便是:開源機器人。
機器人在我們的世界中正在扮演越來越重要的角色,盡管我們還沒有實現(xiàn)在電視劇 Jetson 中的機器人管家那樣的烏托邦式的未來,機器人學已經(jīng)在許多領域取得了進展,這在五十年前是完全無法想象的。
機器人復興的最大受益者毫無疑問是制造業(yè),不過我們也看到機器人正在進入主流生活方式當中。我們許多人都擁有用來掃地、清理雨水槽和割草等等的機器人。
如今,隨著自動駕駛汽車、無人駕駛飛機和其他交通技術的進步,機器人和交通工具之間的界限逐漸變得模糊了。
不過說實話,我們中的許多人之所以對機器人學感興趣,僅僅是因為它很好玩!而好消息是,你不需要成為一名電子工程師,就能像享受個人愛好一樣享受機器人學。很幸運,我們已經(jīng)有不少的開源項目。即使最沒有經(jīng)驗的初學者也能在它們的幫助下上手。
硬件開源項目
機器人是一個物理實體,因此,使用它的代碼和硬件都需要獲得許可。幸運的是,有幾個開源硬件平臺可供學習制造機器人。下面這幾家是你或許你想要了解的:
Sparki 是一家在任何意義上都完全開源的機器人學平臺。它上面的電路圖、3D 建模文件和其底層的源代碼都是開源的。Sparki 被設計用來幫助從小學生到成年人的學習者們制造出價格合理的初級機器人。它提供距離傳感器、加速度計、紅外通訊、羅盤、光傳感器、循線器(line-follower)等。Sparki 機器人靠輪子行走,不過它還有一個用腳行走的近親?Hexythe hexapod,該項目也是一個開源平臺項目。
機器人不僅能走路,有時他們還會飛。有幾家開源無人飛行器利用了像 OpenPilot 或 Ardupilot 系統(tǒng)這樣的項目。例如,ArduPilot Copter 無人機可以被組裝成直升機、四旋翼飛行器或者其他配置,它既可以自己動手 DIY, 也可以從若干制造商那里購買元件套裝和部件。
TurtleBot 是另一家機器人平臺,它既提供來自幾家制造商的元件套裝,也提供完全開源的說明書。這可以幫助你用上網(wǎng)筆記本電腦、Kinect 體感外設和 Kobuki 移動平臺來建造自己的機器人,或者在 iRobot Create 開發(fā)平臺上建造機器人。
軟件開源項目
機器人可不只是一套金屬骨架。它需要某種智能才能聽從直接命令或自己做出某些初步?jīng)Q定,以便為它的主人服務。這里是幾個有趣的機器人軟件方面的開源項目。
對初學者入門而言,LeJOS 或許是一個好的機器人軟件項目。它實質(zhì)上是樂高 Mindstorms 機器人固件的一種替代物。你可以依靠它來用 Java 編程語言為樂高機器人編程。
Rock,即「機器人 建造工具包」,是一種基于?OrocosRTT (Real Time Toolkit, 實時工具包)的軟件框架。它被設計成可擴展的,并包括一些已有應用程序的驅(qū)動程序。
ROS, 即「機器人操作系統(tǒng)」,是一個用來為機器人寫軟件的框架,它包括多種用來簡化編程過程的工具和庫。它被設計用來為協(xié)作研發(fā)服務,擁有模塊化組件和全球性社區(qū)。在中國,已經(jīng)有 ROS 中文社區(qū)的存在。
在你開始隨意裝配硬件之前,你需要定一個計劃。在現(xiàn)實世界中,機器人的運行受到重力、地形、天氣等限制。在紙上設計了看起來不錯的機器人,并不意味著在現(xiàn)實中可行。所以,為什么不先對你的機器人進行功能性模擬呢?
機器人模擬器
Gazebo 是著名的非盈利開源組織 Apache 許可采用的完整模擬解決方案,有著先進的 3D 圖形、虛擬感應器功能,還有一個應用廣泛的命令行工具集合。此外,Gazebo 還能在云中運行模擬,支持多種插件和數(shù)種建立模型常用的機器人平臺。
Morse(模塊化開源機器人模擬引擎 the Modular OpenRobots Simulation Engine)是 BSD 協(xié)議開源項目,是一款通用的多機器人仿真平臺,主要特點是能控制實際仿真的自由度,可以自由設計符合自己需求的組件模型。它提供了大量可配置的傳感器和執(zhí)行器模塊,高度的可擴展性,提供人與機器人的交互仿真。Morse 使用 Python 編程,也可使用 Blender 游戲引擎進行渲染。Morse 專注于學術型機器人模擬,目前有5所學校和科研機構使用。
V-REP 是 GPL 協(xié)議許可的虛擬機器人實驗平臺,在 Windows 系統(tǒng)、Mac 、Linux 系統(tǒng)上都能運行。V-REP 支持多種編程方式( (嵌入式腳本、插件、附加組件、ROS節(jié)點、遠程客戶端應用編程接口、或自定義的解決方案)和語言(C/C++、Python、Java、Lua、Matlab、Octave、和Urbi),既能模擬先進的物理情境,也能模擬從近距離傳感器和視覺傳感器上獲得的數(shù)據(jù)。