歡迎您光臨本站 註冊首頁

畫風清奇,用開源機器人專案實現“雲畢業典禮”

←手機掃碼閱讀     admin @ 2020-05-29 , reply:0

前幾天,南京郵電大學的一場畢業典禮引起了吃瓜群眾的熱議,先來看看這個畫風:

由於疫情原因,很多高校的學生只能在家裡透過線上影片的方式完成畢業論文答辯。答辯透過後,畢業典禮就要來了,但疫情原因還不能返校怎麼辦?畢竟畢業典禮一生可能就這一次,儀式感還是要有的!於是南京郵電大學就用自研的機器人,為部分無法到場的畢業生整了這麼一出畫風清奇的“雲畢業典禮”。

 

據南郵的老師介紹,畢業典禮上的這些機器人出自學校的機器人創新團隊之手,是在以前參賽機器人的基礎上改裝的。這次改裝主要是為機器人配置了與真人身高相仿的模型,現場由專門的同學對機器人進行遠端控制,螢幕則是用 ZOOM 與參加畢業典禮的同學進行影片互動。這個由南郵學生組成的機器人團隊曾在國內外各大機器人競賽中獲得不錯的成績。

其實現在的 AI 技術已經非常成熟且親民,就算是程式設計能力不太強的同學也可以玩轉很多 AI 工具,比如很多好玩的開源機器人專案。據悉,南郵這款機器人內部的控制系統也是在開源軟體的基礎上改進而來,雖然具體用的哪款開源軟體並不知曉,但我想藉此機會給大家分享一些有趣的開源機器人專案,感興趣的朋友可以自己動手 DIY 一個 AI 機器人。 

PyRobot

PyRobot 是 Facebook AI 團隊與卡耐基梅隆大學研究團隊合作研發的開源機器人框架,基於 Facebook 的機器學習框架 PyTorch ,能夠執行由 PyTorch 訓練的深度學習模型。

PyRobot 基於機器人作業系統 ROS 提供了一組無關硬體的 API,供開發人員控制各種型號的機器人。PyRobot 抽象了硬體底層控制器與應用程式之間互動的細節,因此對於 AI 愛好者來說,可以在不具備裝置驅動程式、控制或規劃等專業知識的情況下,使用各種機器人的通用功能,比如控制機器人關節的位置、速度或是力矩,甚至包括笛卡爾路徑規畫或是視覺 SLAM 等。

 PyRobot 原生支援兩款機器人,分別是低成本的 LoCoBot (就是上面動圖裡的那款)和 Sawyer (工業製造機械臂),感興趣的朋友可以買一臺 LoCoBot 來玩玩看(也可以在 3D 模擬器上玩)。當然,如果想用在自己 DIY 的機器人上,開發團隊也提供了教程,可以接著往下看:詳情點選

安裝使用

  • 使用 LoCoBot

同時安裝 PyRobot 和 LoCoBot 依賴項

1. 安裝 Ubuntu 16.04

2. 下載安裝指令碼


 sudo apt update
 sudo apt-get install curl
 curl 'https://raw.githubusercontent.com/facebookresearch/pyrobot/master/robots/LoCoBot/install/locobot_install_all.sh' > locobot_install_all.sh

3. 執行指令碼安裝所有內容(ROS、realsense 驅動程式等)。

4. 如果你已經擁有一臺 LoCoBot 。執行以下命令:(請在執行以下命令之前將 nuc 計算機連線到 realsense 相機)


 #-t Decides the type of installation. Available Options: full or sim_only
 #-p Decides the python version for pyRobot. Available Options: 2 or 3
 chmod +x locobot_install_all.sh
 ./locobot_install_all.sh -t full -p 2

5. 沒有真的 LoCoBot 也沒關係,可以在 Gazebo 這款 3D 模擬器上執行一個虛擬的 LoCoBot,測試各種機器人的演算法。跳過第 4 步,執行以下命令:


 #-t Decides the type of installation. Available Options: full or sim_only
 #-p Decides the python version for pyRobot. Available Options: 2 or 3
 chmod +x locobot_install_all.sh 
 ./locobot_install_all.sh -t sim_only -p 2

注: 如果安裝了與 PyRobot 相容的 Python 3 ,把上面的 -p 2 改成 -p 3 。

  • 使用 DIY 機器人

安裝 PyRobot

  1. 安裝 Ubuntu 16.04
  2. 安裝 ROS kenitc
  3. 安裝 PyRobot

 cd ~
 mkdir -p low_cost_ws/src
 cd ~/low_cost_ws/src
 git clone --recurse-submodules https://github.com/facebookresearch/pyrobot.git
 cd pyrobot/
 chmod +x install_pyrobot.sh
 ./install_pyrobot.sh -p 2  #For python3, modify the argumet to -p 3 

相容問題:由於 realsense 一直在更新,如果不小心從 ubuntu 中的軟體更新程式更新了 realsense相關的軟體包,可能會出現相容性問題。因此,作者建議不要更新任何與 realsense 相關的庫。當 ubuntu 提示軟體更新時,請仔細檢查更新列表。

新建 DIY 機器人配置檔案

1. 建立一個新的配置檔案

想要與新機器人互動的第一步是建立新的配置檔案。首先配置檔名應遵循以下命名規則:<ROBOT_NAME> _config.py。建立此檔案最簡單的方法是繼承 src / pyrobot / cfg / config.py 中的預定義配置。在 config.py 中,作者定義了 Robot 和 ARM 類所需的一些配置。此處的每個配置都應指定適當的值。在 pyrobot / cfg / sawyer_config.py 中可以找到有關如何編寫配置檔案的示例。 sawyer_config.py 繼承了 config.py 中定義的配置,並更改了這些配置的預設值。 sawyer_config.py 還顯示瞭如何在配置檔案中新增特定於新機器人的更多配置。

2. 繼承 PyRobot 父類

下一步是繼承現有的 PyRobot 父類(手臂,抓取器,基礎,相機等)。在 src / pyrobot 中建立一個名為 <ROBOT_NAME> 的資料夾。根據新機器人擁有的硬體,建立一個名為 arm.py,gipperper.py,base.py 或 camera.py 的 python 指令碼。例如,如果新機器人具有所有這 4 個元件,則應在上面建立 4 個檔案。如果新機器人只有手臂和抓手,則應只建立 arm.py 和 nipper.py 。在每個檔案中,建立一個新類(類名稱應該與 <ROBOT_NAME> _config.py 中的配置 CLASS一致)並繼承 PyRobot 父類。 

建議在父類中重用儘可能多的方法,如果新的機器人不支援方法,則可以覆蓋該方法,並在呼叫該方法時引發錯誤。總體而言,該庫非常靈活,你可以覆蓋任何方法。可以在 src / pyrobot / sawyer 中找到編寫 arm.py 的示例。例如 Sawyer 機器人,只需要覆蓋命令釋出功能即可使其程式碼與 PyRobot 相容。

3. 編寫單元測試

寫完程式碼後,需要為新機器人編寫單元測試。單元測試的示例可以在 tests / 中找到。

4. 新增示例

可以在 examples / 中新增示例。建立一個名為 <ROBOT_NAME> 的新資料夾,然後新增示例檔案。

PyRobot 的下載地址:點選下載

PHOENIXEngine

如果覺得購買 LoCoBot 的渠道太麻煩,可以試試這個國產專案。PHOENIXEngine 是一個可以用來開發機器人、遊戲的引擎。整合 HectorSlam 演算法為機器人室內導航,使用 A* 演算法進行全域性路徑規劃,使用 DWA 演算法進行區域性避障。該專案為國產專案,作者提供了一整套低成本的機器人物理元件。目前,PHOENIXEngine 已經支援 Windows、ARM、Linux、LinuxARM、iOS 平臺,以 Lua 為主要開發語言,底層構建用的 C/C++,支援跨平臺編譯。

安裝使用

該專案有比較完整的影片教程:

Part1 結構安裝:https://www.bilibili.com/video/av70786355

Part2 系統安裝:https://www.bilibili.com/video/av70788879

Part3 展示:https://www.bilibili.com/video/av71408115

PHOENIXEngine 的下載地址:點選下載

PythonRobotics

娛樂之餘,如果大家想進一步學習和了解機器人相關的各種 AI 演算法原理,推薦看看這個機器人演算法庫。PythonRobotics 是用 Python 實現的機器人演算法案例集合,該庫包括了機器人設計中常用的定位演算法、測繪演算法、路徑規劃演算法、SLAM、路徑跟蹤演算法。作者的初衷是希望幫助 AI 愛好者更容易理解每個演算法的基本思想,選擇的演算法示例都是一些應用非常廣泛的實用演算法。強烈推薦給想要進一步瞭解和學習 AI 機器人相關演算法原理的朋友。

部分演算法案例:

機器人定位演算法:

擴充套件卡爾曼濾波器(EKF)定位

這是使用擴充套件卡爾曼濾波器(EKF)的感測器融合定位。藍線是真實的軌跡,黑線是推算的軌跡,綠點是定位觀測(例如 GPS),紅線是 EKF 的估計軌跡,紅色橢圓是 EKF 估計的協方差橢圓。

無損卡爾曼濾波定位

這是一個使用無損卡爾曼濾波器(UKF)的感測器融合定位,線條和點與 EKF 模擬的含義相同。

PythonRobotics 的下載地址:點選下載

感興趣的朋友不妨業餘時間 DIY 一個 AI 機器人吧。


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/116033/how-to-graduate-by-internet
畫風清奇,用開源機器人專案實現“雲畢業典禮”已經有166次圍觀

http://coctec.com/news/all/show-post-236179.html