前幾天,南京郵電大學的一場畢業(yè)典禮引起了吃瓜群眾的熱議,先來看看這個畫風:
由于疫情原因,很多高校的學生只能在家里通過線上視頻的方式完成畢業(yè)論文答辯。答辯通過后,畢業(yè)典禮就要來了,但疫情原因還不能返校怎么辦?畢竟畢業(yè)典禮一生可能就這一次,儀式感還是要有的!于是南京郵電大學就用自研的機器人,為部分無法到場的畢業(yè)生整了這么一出畫風清奇的“云畢業(yè)典禮”。
據(jù)南郵的老師介紹,畢業(yè)典禮上的這些機器人出自學校的機器人創(chuàng)新團隊之手,是在以前參賽機器人的基礎上改裝的。這次改裝主要是為機器人配置了與真人身高相仿的模型,現(xiàn)場由專門的同學對機器人進行遠程控制,屏幕則是用 ZOOM 與參加畢業(yè)典禮的同學進行視頻交互。這個由南郵學生組成的機器人團隊曾在國內(nèi)外各大機器人競賽中獲得不錯的成績。
其實現(xiàn)在的 AI 技術已經(jīng)非常成熟且親民,就算是編程能力不太強的同學也可以玩轉很多 AI 工具,比如很多好玩的開源機器人項目。據(jù)悉,南郵這款機器人內(nèi)部的控制系統(tǒng)也是在開源軟件的基礎上改進而來,雖然具體用的哪款開源軟件并不知曉,但我想借此機會給大家分享一些有趣的開源機器人項目,感興趣的朋友可以自己動手 DIY 一個 AI 機器人。
PyRobotPyRobot 是 Facebook AI 團隊與卡耐基梅隆大學研究團隊合作研發(fā)的開源機器人框架,基于 Facebook 的機器學習框架 PyTorch ,能夠運行由 PyTorch 訓練的深度學習模型。
PyRobot 基于機器人操作系統(tǒng) ROS 提供了一組無關硬件的 API,供開發(fā)人員控制各種型號的機器人。PyRobot 抽象了硬件底層控制器與應用程序之間交互的細節(jié),因此對于 AI 愛好者來說,可以在不具備設備驅(qū)動程序、控制或規(guī)劃等專業(yè)知識的情況下,使用各種機器人的通用功能,比如控制機器人關節(jié)的位置、速度或是力矩,甚至包括笛卡爾路徑規(guī)畫或是視覺 SLAM 等。
PyRobot 原生支持兩款機器人,分別是低成本的 LoCoBot (就是上面動圖里的那款)和 Sawyer (工業(yè)制造機械臂),感興趣的朋友可以買一臺 LoCoBot 來玩玩看(也可以在 3D 模擬器上玩)。當然,如果想用在自己 DIY 的機器人上,開發(fā)團隊也提供了教程,可以接著往下看:詳情點擊。
安裝使用
使用 LoCoBot
同時安裝 PyRobot 和 LoCoBot 依賴項
1. 安裝 Ubuntu 16.04
2. 下載安裝腳本
sudo apt updatesudo apt-get install curlcurl 'https://raw.githubusercontent.com/facebookresearch/pyrobot/master/robots/LoCoBot/install/locobot_install_all.sh' > locobot_install_all.sh
3. 運行腳本安裝所有內(nèi)容(ROS、realsense 驅(qū)動程序等)。
4. 如果你已經(jīng)擁有一臺 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 3chmod +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 3chmod +x locobot_install_all.sh ./locobot_install_all.sh -t sim_only -p 2
注: 如果安裝了與 PyRobot 兼容的 Python 3 ,把上面的 -p 2 改成 -p 3 。
使用 DIY 機器人
安裝 PyRobot
安裝 Ubuntu 16.04
安裝 ROS kenitc
安裝 PyRobot
cd ~mkdir -p low_cost_ws/srccd ~/low_cost_ws/srcgit clone --recurse-submodules https://github.com/facebookresearch/pyrobot.gitcd pyrobot/chmod +x install_pyrobot.sh./install_pyrobot.sh -p 2 #For python3, modify the argumet to -p 3
兼容問題:由于 realsense 一直在更新,如果不小心從 ubuntu 中的軟件更新程序更新了 realsense相關的軟件包,可能會出現(xiàn)兼容性問題。因此,作者建議不要更新任何與 realsense 相關的庫。當 ubuntu 提示軟件更新時,請仔細檢查更新列表。
新建 DIY 機器人配置文件
1. 創(chuàng)建一個新的配置文件
想要與新機器人交互的第一步是創(chuàng)建新的配置文件。首先配置文件名應遵循以下命名規(guī)則:
2. 繼承 PyRobot 父類
下一步是繼承現(xiàn)有的 PyRobot 父類(手臂,抓取器,基礎,相機等)。在 src / pyrobot 中創(chuàng)建一個名為
建議在父類中重用盡可能多的方法,如果新的機器人不支持方法,則可以覆蓋該方法,并在調(diào)用該方法時引發(fā)錯誤??傮w而言,該庫非常靈活,你可以覆蓋任何方法??梢栽?src / pyrobot / sawyer 中找到編寫 arm.py 的示例。例如 Sawyer 機器人,只需要覆蓋命令發(fā)布功能即可使其代碼與 PyRobot 兼容。
3. 編寫單元測試
寫完代碼后,需要為新機器人編寫單元測試。單元測試的示例可以在 tests / 中找到。
4. 添加示例
可以在 examples / 中添加示例。創(chuàng)建一個名為
PyRobot 的下載地址:點擊下載
PHOENIXEngine如果覺得購買 LoCoBot 的渠道太麻煩,可以試試這個國產(chǎn)項目。PHOENIXEngine 是一個可以用來開發(fā)機器人、游戲的引擎。集成 HectorSlam 算法為機器人室內(nèi)導航,使用 A* 算法進行全局路徑規(guī)劃,使用 DWA 算法進行局部避障。該項目為國產(chǎn)項目,作者提供了一整套低成本的機器人物理組件。目前,PHOENIXEngine 已經(jīng)支持 Windows、ARM、Linux、LinuxARM、iOS 平臺,以 Lua 為主要開發(fā)語言,底層構建用的 C/C++,支持跨平臺編譯。
安裝使用
該項目有比較完整的視頻教程:
Part1 結構安裝:https://www.bilibili.com/video/av70786355
Part2 系統(tǒng)安裝:https://www.bilibili.com/video/av70788879
Part3 展示:https://www.bilibili.com/video/av71408115
PHOENIXEngine 的下載地址:點擊下載
PythonRobotics娛樂之余,如果大家想進一步學習和了解機器人相關的各種 AI 算法原理,推薦看看這個機器人算法庫。PythonRobotics 是用 Python 實現(xiàn)的機器人算法案例集合,該庫包括了機器人設計中常用的定位算法、測繪算法、路徑規(guī)劃算法、SLAM、路徑跟蹤算法。作者的初衷是希望幫助 AI 愛好者更容易理解每個算法的基本思想,選擇的算法示例都是一些應用非常廣泛的實用算法。強烈推薦給想要進一步了解和學習 AI 機器人相關算法原理的朋友。
部分算法案例:
機器人定位算法:
擴展卡爾曼濾波器(EKF)定位
這是使用擴展卡爾曼濾波器(EKF)的傳感器融合定位。藍線是真實的軌跡,黑線是推算的軌跡,綠點是定位觀測(例如 GPS),紅線是 EKF 的估計軌跡,紅色橢圓是 EKF 估計的協(xié)方差橢圓。
無損卡爾曼濾波定位
這是一個使用無損卡爾曼濾波器(UKF)的傳感器融合定位,線條和點與 EKF 模擬的含義相同。
PythonRobotics 的下載地址:點擊下載
感興趣的朋友不妨業(yè)余時間 DIY 一個 AI 機器人吧。