0 摘要:
本文以Win10系統中安裝使用ROS1Melodic和ROS2Dashing爲基礎,並通過開源硬件設備Arduino與ROS的通信爲示例,具體介紹機器人操作系統ROS1和ROS2的細節。部分內容已經在高校本科課程中進行講解,詳情可搜索:機器人控制器編程。
- ROS官網windows安裝文檔網址:https://wiki.ros.org/Installation/Windows
Arduino:https://blog.csdn.net/ZhangRelay/article/details/104668711
Gazebo:https://blog.csdn.net/ZhangRelay/article/details/104900528
1 引言:
機器人操作系統ROS,可以被理解爲一個特定的應用於機器人領域的物聯網(IoT)系統,很多知識點和技能相似相通,學習並掌握這個工具非常重要。ROS接口豐富,並可與OpenCV,OpenAI等多種第三方開源工具結合,開發出新奇實用的各類機器人。
全平臺(Windows/Linux/MacOS/……)和全語言(C++/Python/Java/……)是ROS的另一個典型特點。大部分ROS課程基於Ubuntu講解。本課程從設計之初就考慮到不同平臺使用用戶特定場景之差異,課程涵蓋了Windows/Linux/MacOS。但測試過程並未公開,依據大量反饋,以學生爲中心,目標導向和持續改進爲內核,課程將全面免費公開Windows版本內容,該版本在測試與反饋中獲得較爲溫和評價,Windows系統目前仍然是國內佔有率最高的桌面平臺。
課程部分介紹資料參考鏈接:機器人編程實踐-ROS2基礎與應用-
2 ROS1:
安裝:http://wiki.ros.org/Installation/Windows
使用:https://ms-iot.github.io/ROSOnWindows/
中文:https://blog.csdn.net/ZhangRelay/article/details/82928141
注意:中文版本是一年以前寫的,現在已經有些變動,將在下文列出。
這些在之前博客中已經詳細介紹過了,這裏就不再重複了。只列出一些要點:
Windows操作系統
- Windows的ROS1&2需要64位Windows 10桌面或Windows 10 IoT Enterprise。
預留安裝空間
-
在繼續操作之前,請清理並備份c:\opt下的所有現有數據。
-
c:\opt是指定的安裝位置。當前未啓用重定位。不支持安裝在其他位置!!!
- 請確保C:\ 驅動器上有10 GB的可用空間用於安裝和開發。
安裝Visual Studio 2019
爲Windows生成ROS項目需要Visual Studio和Windows的Microsoft SDK。
-
下載Visual Studio 2019 (社區版免費)
- 包括“使用C++桌面開發”工作部件(工作負載)。
- 如果要構建WinML,請包括“通用Windows應用程序”工作部件。
安裝到D:
安裝Windows軟件包管理器
Chocolatey是Windows的程序包管理器。它用於簡化安裝構建和運行ROS項目所需的工具和庫的過程。
- 在“開始”菜單中,找到“ VS 2019 x64本機工具命令提示符”項。
- 右鍵單擊,選擇“更多”,然後選擇“以管理員身份運行”
- 複製以下命令行:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
- 將其粘貼到命令窗口中。
- 批准任何提示(確定)
- 完成後,關閉命令提示符以完成安裝。
安裝Git:
- 如上所述,重新打開Visual Studio命令窗口。
- 即使您已將其安裝爲應用程序,也請使用此處的命令安裝Git。
choco install git -y
- 安裝Git之後,請確保ROS命令提示符中現在提供了Git。
git --version
- 如上所述,關閉並重新打開Visual Studio命令窗口。
二進制軟件包安裝
要爲Windows設置ROS,請遵循以下建議步驟:
ROS 1最新的(LKG)編譯好的安裝包-Melodic
要開始,請安裝推薦的desktop_full元軟件包。元軟件包是其他軟件包的集合。桌面完全元軟件包是指構建,運行,調試和可視化機器人所需的許多其他軟件包。
如上所述,以管理員身份打開Visual Studio命令提示符。
choco source add -n=ros-win -s="https://roswin.azurewebsites.net/api/v2" --priority=1
choco upgrade ros-melodic-desktop_full -y --execution-timeout=0
ROS 2最新的編譯好的安裝包-Dashing
要開始使用ROS 2,也可以按照類似的步驟從同一Chocolatey Feed中安裝ROS 2。
例如,如果要安裝最新ROS2 Dashing版本,請打開上面創建的ROS命令提示符,如果尚未打開,請批准管理標高。
choco source add -n=ros-win -s="https://roswin.azurewebsites.net/api/v2" --priority=1
choco upgrade ros-dashing-desktop -y --execution-timeout=0 --pre
請一定,一定,一定測試安裝是否成功!!!
ROS1:
ROS2:
創建ROS命令窗口快捷方式
爲了在Windows上使用ROS,需要在每個命令窗口中調用ROS設置腳本。爲了將來不會忘記,使用自動執行此操作的ROS快捷方式將很有幫助。
- 爲Visual Studio創建一個管理命令行快捷方式:
-
右鍵單擊Windows資源管理器文件夾,選擇“新建”>“快捷方式”
- 在快捷方式路徑中,根據上面安裝的Visual Studio,從以下選項中複製突出顯示的命令行:
- 如果使用Community社區版本:
C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && c:\opt\ros\melodic\x64\setup.bat
- 如果使用的是Professional:
C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && c:\opt\ros\melodic\x64\setup.bat
- 如果使用的是Enterprise:
C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && c:\opt\ros\melodic\x64\setup.bat
- 將快捷方式命名爲“ ROS”
- 將該快捷方式設置爲管理員
- 右鍵單擊快捷方式,然後選擇“屬性”。
- 選擇“快捷方式”選項卡(如果尚未選擇)。
- 按下[進階]按鈕
- 檢查按鈕“以管理員身份運行”。
- 在“高級屬性”對話框上按“確定”。
- 在“ ROS屬性”快捷方式對話框上按“確定”。
參考:
ROS1:
C:\Windows\System32\cmd.exe /k "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && c:\opt\ros\melodic\x64\setup.bat
ROS2:
C:\Windows\System32\cmd.exe /k "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && c:\opt\ros\dashing\x64\local_setup.bat
(可選)使用新的Windows終端
Microsoft正在爲Windows開發新的開源終端,該終端對內置命令行進行了許多改進,包括選項卡和外觀自定義。您可以從Microsoft Store安裝它。
爲ROS設置終端:
- 從開始菜單中找到Windows終端,右鍵單擊並選擇“以管理員身份運行”
- 從添加選項卡(+)按鈕旁邊的下拉箭頭中選擇設置。
- 在“配置文件”部分,爲ROS添加一個新塊。
"profiles" :
[
{
"acrylicOpacity" : 0.5,
"background" : "#012456",
"closeOnExit" : true,
"colorScheme" : "Campbell",
"commandline" : "C:\\Windows\\System32\\cmd.exe /k \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Common7\\Tools\\VsDevCmd.bat\" -arch=amd64 -host_arch=amd64 && c:\\opt\\ros\\melodic\\x64\\setup.bat",
"cursorColor" : "#FFFFFF",
"cursorShape" : "bar",
"fontFace" : "Consolas",
"fontSize" : 10,
"guid" : "{xxxxx}",
"historySize" : 9001,
"icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
"name" : "ROS",
"padding" : "0, 0, 0, 0",
"snapOnInput" : true,
"startingDirectory" : "c:\\ws",
"useAcrylic" : true
},
- 使用guid生成器自定義“ guid”條目。
- (可選)在“全局”部分中將此GUId設置爲“ defaultProfile”。
{
"globals" :
{
"alwaysShowTabs" : true,
"copyOnSelect" : false,
"defaultProfile" : "{xxxx}",
....
}
}
啓動新的Windows終端時,請記住以“以管理員身份運行”,方法是右鍵單擊Windows終端並選擇“以管理員身份運行”。在取消此要求之前,需要實施“ 始終運行終端”提升功能請求。
保持最新
如果要更新ROS安裝,請使用Chocolatey的升級功能:
打開上面創建的ROS命令提示符,並批准管理海拔(如果尚未打開)。
運行以下命令:
choco upgrade ros-melodic-desktop_full -y --execution-timeout=0
建議添加 --execution-timeout=0 ,以避免由於網絡緩慢而導致的chocolatey 安裝失敗。
3 ROS2:
安裝:https://index.ros.org/doc/ros2/Installation/Dashing/Windows-Install-Binary/
使用類似ROS1方式更爲簡潔,也可以使用源碼編譯。
ROS1和ROS2在Windows 10中詳細安裝調試記錄參考,如下鏈接:
安裝配置完成後,可以直接與Linux或MacOS中的ROS通訊互聯,也可以連接豐富外部設備。
4 Ardurno:
什麼是Arduino?(課程包含avr和arm)
Arduino是一個基於易於使用的硬件和軟件的開源電子平臺。 Arduino開發板能夠讀取傳感器上輸入,控制燈,按鈕或Twitter消息-並將其轉換爲輸出-啓動電動機,打開LED並在線發佈內容。可以通過向板上的微控制器發送一組指令來告訴該怎麼做。爲此,可以使用Arduino編程語言(基於Wiring)和Arduino軟件(IDE)(基於Processing)。
多年來,Arduino一直是數千個項目的大腦,從日常對象到複雜的科學儀器。這個開放源代碼平臺聚集了世界各地的開發人員社區,包括學生,業餘愛好者,藝術家,程序員和專業人士,他們的貢獻積累了無與倫比的可訪問性知識,對新手和專家都可以提供極大的幫助。
Arduino出生於Ivrea交互設計學院,是一種快速原型製作的簡便工具,主要面向沒有電子和編程背景的學生。Arduino板一旦進入更廣泛的社區,便開始進行更改以適應新的需求和挑戰,將其產品從簡單的8位板擴展到IoT應用,可穿戴,3D打印和嵌入式環境的產品。所有Arduino開發板都是完全開源的,使用戶能夠獨立構建它們,並最終使它們適應其特定需求。該軟件也是開源的,並且通過全球用戶的貢獻而不斷髮展。
爲什麼選擇Arduino?
由於其簡單易用的用戶體驗,Arduino已用於數千個不同的項目和應用程序中。Arduino軟件對於初學者來說易於使用,但對於高級用戶而言足夠靈活。它可以在Mac,Windows和Linux上運行。老師和學生使用它來構建低成本的科學儀器,證明化學和物理原理,或開始編程和機器人技術。設計師和建築師構建交互式原型,音樂家和藝術家將其用於安裝並嘗試新的樂器。例如,製造商當然會使用它來構建在Maker Faire上展出的許多項目。Arduino是學習新事物的關鍵工具。任何人-兒童,業餘愛好者,藝術家,程序員-都可以按照套件的逐步說明進行修補,
還有許多其他微控制器和微控制器平臺可用於物理計算。Parallax Basic Stamp,Netmedia的BX-24,Phidgets,MIT的Handyboard以及許多其他產品都提供了類似的功能。所有這些工具都採用了微控制器編程的繁瑣細節,並將其包裝在易於使用的程序包中。Arduino還簡化了使用微控制器的過程,但與其他系統相比,它爲教師,學生和感興趣的業餘愛好者提供了一些優勢:
- 便宜 -與其他微控制器平臺相比,Arduino板相對便宜。可以手動組裝最便宜的Arduino模塊版本,甚至預組裝的Arduino模塊的價格也不到50美元
- 跨平臺 -Arduino軟件(IDE)在Windows,Macintosh OSX和Linux操作系統上運行。大多數微控制器系統僅限於Windows。
- 簡單,清晰的編程環境 -Arduino軟件(IDE)對於初學者來說易於使用,但足夠靈活,高級用戶也可以利用。對於老師來說,它很方便地基於處理編程環境,因此學習在該環境中進行編程的學生將熟悉Arduino IDE的工作方式。
- 開源和可擴展軟件 -Arduino軟件作爲開源工具發佈,可供經驗豐富的程序員進行擴展。可以通過C ++庫擴展該語言,並且希望瞭解技術細節的人們可以從Arduino過渡到基於該語言的AVR C編程語言。同樣,您可以根據需要將AVR-C代碼直接添加到Arduino程序中。
- 開源和可擴展的硬件 -Arduino開發板的計劃是在Creative Commons許可下發布的,因此經驗豐富的電路設計人員可以製作自己的模塊版本,進行擴展和改進。甚至相對沒有經驗的用戶也可以構建該模塊的試驗板版本,以瞭解其工作原理並節省資金。
如何使用Arduino?
請參閱入門指南。如果您正在尋找靈感,可以在Arduino Project Hub上找到各種各樣的教程。
Arduino入門指南的文本已獲得 Creative Commons Attribution-ShareAlike 3.0 License的許可。該指南中的代碼示例已發佈到公共領域。
安裝:https://www.arduino.cc/en/Main/Software
選擇windows版本直接安裝即可使用,在庫中可以直接安裝加載ROS庫。
5 Webots:
爲什麼選擇Webots?
Webots是一個開放源代碼的機器人模擬仿真器,它提供了完整的開發環境來對機器人進行建模,編程和仿真。全球數以千計的機構將其用於研發和教學。自1996年以來,Webots由洛桑的瑞士聯邦理工學院聯合開發,經過全面測試,充分記錄並持續維護。它是快速獲得專業成果的最有效解決方案,包括:
- 複雜機器人系統的開發 -從頭開始快速原型製作
- 模擬無人駕駛汽車 -配備傳感器並與環境互動
- 驗證新的機器人技術 —深度學習,進化算法,多智能體等。
- 訓練練習的設置 -用於機器人教室 通過操縱桿,驅動輪,踏板和VR接口
- 對飛行員進行培訓 直接向您的客戶
- 提供定製的仿真
Webots功能
- 精確的物理仿真模擬 -逼真的模擬依賴於已校準的模型
- 機器人,傳感器,執行器和對象庫 -模擬的構建塊
- 導入/導出 — CAD模型,OpenStreetMap,電影,Web
- API和插件 -編程語言,集成的IDE,場景樹編輯器
- 多平臺 -Windows,Linux,macOS(以及更多)
投資組合:基於Webots
- 行業 -他們在研發,測試和應用程序中使用Webots
- 學術界 -他們與Webots一起進行教學和研究
- 諮詢 -我們爲他們提供自定義的Webots模擬
- 歐洲研究部 -我們以財團成員的身份爲他們提供專業知識
開始使用
請遵循以下步驟以熟練掌握Webots:
- 在Webots中學習3D導航: Viewpoint Control [在線模擬]。
- 用Python編程機器人: 機器人編程 [在線模擬]。
- 探索更多高級編程: robotbenchmark.net [在線模擬]。
- 下載,安裝Webots並遵循《 Webots用戶指南》的教程。
- 運用Cyberbotics機器人課程進一步學習。
安裝:https://www.cyberbotics.com/#download
選擇windows版本,免費版本無服務支持。
6 V-Rep:
具有集成開發環境的機器人模擬仿真器V-REP基於分佈式控制體系結構:每個對象/模型都可以通過嵌入式腳本,插件,ROS或BlueZero節點,遠程API客戶端或自定義進行單獨控制解。這使得V-REP非常通用,非常適合多機器人應用。控制器可以用C / C ++,Python,Java,Lua,Matlab或Octave編寫。
V-REP用於快速算法開發,工廠自動化仿真,快速原型製作和驗證,機器人技術相關的教育,遠程監控,安全性雙重檢查以及數字孿生等等。可以在此處找到功能概述。
安裝:http://coppeliarobotics.com/downloads.html
7 Matlab:
官網:https://ww2.mathworks.cn/products/matlab.html
8 ……
待完善……
依據反饋更新修正,感謝~