ROS Windows 人機互動軟體開發探索與總結

2021-02-13 古月居

本篇教程主要是介紹ROS Windows開發環境的搭建,ROS Windows基本的使用。以及在Windows中編譯ROS Qt功能包。

ROS librviz 人機互動軟體開發系列教程中我們實現了Ubuntu端的界面開發。但是很多小夥伴問到能不能在Windows上進行開發,當時回復是不能,主要就是庫的依賴問題難解決。

但是我想了想ROS是有windows版本的,並且也能運行rviz之類的,既然rviz都可以在windows上運行,就說明是有庫可以支持的。於是本人又進行了一番探索與總結~

ROS Windows Qt 功能包release版本

此release版本是本人將動態庫進行打包,可以在未安裝ROS的win10上直接運行(僅在一臺電腦測試,可能會缺少其他動態庫),下載後雙擊壓縮包內的ros_qt_demo.exe即可運行。


經測試可運行在未安裝ROS的Win10上並連接Ubuntu的Master主節點,並發布Chatter話題:

左:Ubuntu 右:win10
release地址:

https://github.com/chengyangkj/ros_qt_demo/releases/tag/v1.0

一,安裝windows版本的ROS
1,安裝Visual Studio
2,安裝ROS
3,創建ROS快捷終端
4,測試安裝
二,ROS Windows使用
1,初始化ROS工作空間
2,創建ROS功能包
3,編譯ROS功能包
4,添加ROS工作空間到環境變量
5,安裝ROS軟體包
三,ROS Qt功能包模板的編譯與使用

參考資料:ROS wiki
目標Windows ROS 支持kinetic,melodic,noetic,這裡主要演示melodic版本的,其他版本大同小異,可參考wiki教程,確保c盤有10g以上的安裝空間。


安裝時對網絡環境要求比較高,這就需要小夥伴們自己去尋找一個穩定的網絡環境

1,安裝Visual Studio

需要利用vs編譯ROS代碼,所以需要安裝Visual Studio 2019

這裡注意要使用vs2019,ROS wiki給的教程是使用2019,由於我安裝的是vs2015導致後面安裝出現了一些問題==

注意安裝以下組件:

「使用c++的桌面開發」。

「通用Windows平臺開發」。

這裡安裝過程約1-2小時,請耐心等待

2,安裝ROS

@"%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"

將其粘貼到命令窗口中,批准任何提示,完成後,關閉命令提示符以完成安裝。

    執行如下命令行,安裝ROS 

mkdir c:\opt\chocolateyset ChocolateyInstall=c:\opt\chocolateychoco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1choco upgrade ros-melodic-desktop_full -y --execution-timeout=0

但是我執行最後一步遇到了錯誤(Vcpkg is not installed):

我這裡是因為使用的不是vs2019版本(2015),所以解決方法是只能去安裝vs2019才能正常的去編譯。

這裡我已經正常安裝:

由於網絡原因可能安裝緩慢或者異常失敗,這裡建議使用穩定的網絡環境,錯誤後並多次嘗試。

3,創建ROS快捷終端

為避免每次打開終端都需要加載ROS環境變量,這裡我們可以為ROS創建一個終端

右鍵單擊Windows資源管理器文件夾,選擇「新建」>「快捷方式」

在路徑選項中粘貼以下,注意Visual Studio2019 VsDevCmd.bat的路徑和ROS版本需要根據自己實際路徑進行更改:

  C:\Windows\System32\cmd.exe /k "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64&& set ChocolateyInstall=c:\opt\chocolatey&& c:\opt\ros\melodic\x64\setup.bat

將快捷方式命名為「 ROS」

將該快捷方式設置為管理員

右鍵單擊快捷方式,然後選擇「屬性」。

選擇快捷方式選項卡(如果尚未選擇)。

按下[高級]按鈕

選中用管理員身份運行,並確認

4,測試安裝

雙擊打開剛剛創建的ROS終端,運行roscore,並允許訪問:

rocore

再次打開新的終端運行rviz:
rosrun rviz rviz

並且其他命令經測試都是完美支持的:

rostopic list rostopic echo

到這裡ROS Windows安裝已經完成。


1,初始化ROS工作空間

這裡我在E盤創建工作空間catkin_ws/src
使用e:命令跳轉到e盤

進入src目錄並初始化工作空間
cd catkin_ws\src
catkin_init_workspace

2,創建ROS功能包

依舊在src目錄下使用catkin_create_pkg進行創建,後跟依賴
catkin_create_pkg ros_test roscpp rviz

3,編譯ROS功能包

使用catkin_make命令在catkin_ws目錄下進行編譯:

4,添加ROS工作空間到環境變量

此時如果使用rosrun 運行我們創建的ros_test功能包是找不到的,因為沒有添加到環境變量中:

還記得安裝ROS時配置的那個終端的快捷方式的終端嗎?


我們在哪裡添加了c:\opt\melodic\setup.bat的環境變量,所以我猜測在那裡添加我們自己的工作空間的setup.bat應該是可以的:

C:\Windows\System32\cmd.exe /k "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64&& set ChocolateyInstall=c:\opt\chocolatey&& c:\opt\ros\melodic\x64\setup.bat&&E:\catkin_ws\devel\setup.bat

在最後使用添加E:\catkin_ws\devel\setup.bat,注意使用&&隔開。

此時再重新打開終端,運行我們的功能包,就提示可以找到包了:

這裡提示的是找不到executable是因為我們還沒有創建ros_test功能,但是不再提示找不到ros_test功能包,證明我們已經成功將工作空間添加到環境變量中。

5,安裝ROS軟體包

確定是否存在ROS軟體包的二進位發行版。
使用ROS Wiki ,找到二進位發行版名稱,然後嘗試使用進行安裝Chocolatey。
如果成功,那就萬事俱備了!
choco install ros-melodic-<package_name>


如果二進位安裝失敗就只能使用源碼編譯安裝了

1,編譯安裝依賴

這裡本人主要就是進行ROS Qt可視化程序開發,在前面一系列Ubuntu ROS Qt開發教程中提到如果想要創建Qt Pkg需要使用catkin_create_qt_pkg進行創建功能包,這個命令會創建一個qt的模板功能包,但是想要使用這個命令需要安裝qt_create和qt_build:

這裡使用Choco命令進行二進位安裝:
choco install ros-melodic-qt-create

顯然這個包目前不存在Windows二進位版本:

2,直接編譯功能包

因此我們可以直接使用Ubuntu創建的Qt Pkg模板進行開發,拿過來是可以直接進行編譯,不做任何更改。或者可以使用我這個ros_qt_demo


2.1 下載功能包

下載此包或者克隆本包到自己的工作空間src目錄下
如果需要更改功能包的名稱:

2.2 編譯

回到功能包根目錄,直接執行catkin_make

可以發現ROS下的功能包不用任何更改即可編譯成功:

2.3 運行

成功發布!

2.4 打包發布

並且此功能包本人進行動態打包發布,經測試可運行在未安裝ROS的Win10上並連接Ubuntu的Master主節點,並發布Chatter話題:

左:Ubuntu 右:win10
release地址:https://github.com/chengyangkj/ros_qt_demo/releases/tag/v1.0

到這裡ROS Windows開發環境搭建已經完成,在接下來繼續探索windows librviz開發~

關於開發ROS人機互動軟體,古月學院已上線相關課程專題供大家學習:
ROS Qt環境的搭建及基礎知識介紹 · 蔣程揚

點擊下方「閱讀原文」查看課程

相關焦點

  • 你需要ROS人機互動軟體嗎?
    本篇文章主要是對最近編寫的一個ROS人機互動軟體的介紹,希望大家多提意見和建議,謝謝。2、軟體頁面結構該軟體的結構如下圖所示:整個軟體被分為6個界面,主要分為設置、建圖導航、鍵盤控制、單點導航、巡航模式等頁面。
  • 如何利用Websocket實現ROS與Web的交互?
    ● rosbridge_suite:實現Web瀏覽器與ROS之間的數據交互;● roslibjs:實現了ROS中的部分功能,如Topic,Service,URDF等;● ros2djs:提供了二維可視化的管理工具,可以用來在Web瀏覽器中顯示二維地圖;● ros3djs:提供了三維可視化的管理工具,可以在Web端顯示三維模型。
  • 【眼動觀察】緯目科技創始人慄明大話眼動的顛覆:有關於人機互動的探索及思考
    大家上午好,我是VISM創始人慄明,我今天給大家作的(發言)我個人認為不是演講,而是簡單的分享,有關於人機互動的探索及思考。因為它需要我通過學習才能夠熟悉跟它交流的方式,也就是打鍵盤,但是這個問題很快就被解決了,這就是第三代的人機互動,它採用的是第二代的圖形交互方式,我們使用的是鍵盤和滑鼠,如果你不用打字只能一指禪方式,但這一代所有人都變成一指禪, 這一代產品特徵是什麼,所有交互方式變得更加簡潔和明了,跟上一代相比,大多數軟體需要連網功能,這意味著我們需要更加簡便和實時和網際網路交流溝通。
  • 摺疊屏時代的人機互動:華為MateXs的破題之作
    但是要理解這件事情,我們得先從人機互動的最開始講起。施樂實驗室的探索,蘋果 Macintosh的發布和微軟 windows 作業系統的普及,讓GUI和PC的交互邏輯得以進一步成熟,而這段發生在80年代的充滿戲劇性的故事,直到今天依然是科技界裡為人津津樂道的一段歷史。至此,在經歷了長時間的摸索後,人們才將人機互動發展帶到了快車道上。
  • ROS探索總結(十二)——坐標系統
    相關連結:http://www.ros.org/wiki/tf/Tutorials#Learning_tf一、tf簡介        我們通過一個小小的實例來介紹tf的作用。1、安裝turtle包$ rosdep install turtle_tf rviz $ rosmake turtle_tf rviz2、運行demo        運行簡單的demo:        $ roslaunch turtle_tf turtle_tf_demo.launch          然後就會看到兩隻小烏龜了
  • ROS機器人開發實踐(一)ROS架構及基礎
    本文為本人對於ROS官方Tutorials及胡春旭著「ROS機器人開發實踐」的閱讀筆記,內容取捨與重點著重於個人需求,每周五更新.絕對不🐦1 ROS架構1.1 ROS架構設計1.2 計算圖1.3 文件系統1.4 ROS通信機制2 ROS
  • 常用人機界面軟體(國內)
    人機界面軟體是工業自動化控制領域實現人機互動的必不可少的工具,給大家列舉一些常見的國內人機界面軟體廠家。
  • 大會 | CHI 2018:體驗未來的人機互動
    每年CHI上展示的各種新奇的交互設備和技術都會讓我們恍若置身未來。今天我們特別邀請微軟亞洲研究院軟體分析組實習生王韻與大家分享她此次參會的體驗,以及會上展示的人機互動領域的最新研究進展。而可視分析利用數據可視化與人機互動界面,在數據挖掘的基礎上,將機器的運算能力和人類的知識經驗進行結合,幫助人們更為直觀高效地洞悉數據。來自香港科技大學、華東師範大學、同濟大學、北卡羅來納大學教堂山分校、北京工業大學以及聖路易斯華盛頓大學的研究人員合作開發了分析醫療數據的可視分析系統ECGLens。
  • Windows官方終於支持ROS啦!查看安裝試用流程
    sku=Community&rel=15古月居使用的是community版本,下載完成後雙擊,開始下載軟體的安裝文件:/api/v2" --priority=1> choco upgrade ros-melodic-desktop -y第一句命令添加軟體源,第二句命令直接一鍵安裝。
  • 區別人機互動 (HCI) 和互動設計 (IXD)
    ),這就要從人機互動(HCI)和互動設計(IXD)的區別說起。互動設計 (IXD) ,顧名思義,是設計中的一個領域,是一種實踐方法,通常為了解決特定使用場景下特定人群的使用過程中,人與機器(或軟體、網站)如何更方便簡單地「對話」的問題。
  • 如何在Arduino開發板上使用機器人作業系統(ROS)
    但是,由於板載計算能力和軟體有限,開發人員常常無法升級到更複雜的機器人。通常,隨著開發人員變得越來越有經驗,他們會尋找專門用於機器人的軟體,因為Arduino僅提供部分控制項。在本篇文章中,我們主要介紹了中間件軟體框架Robot Operating System(ROS),並引導您通過Arduino設置和使用ROS來創建更智能的機器人系統。什麼是ROS?
  • 人機互動界面-搖杆支持
    人機互動界面-搖杆支持-Betaflight官方原文翻譯由Michael Keller(米歇爾·凱勒)編輯
  • ROS技術點滴 —— rviz plugin
    rviz作為一種可擴展化的視圖工具,可以使用插件機制來擴展豐富的功能,進行二次開發,我們在rviz中常常使用的雷射數據可視化顯示、圖像數據可視化顯示,其實都是官方提供的插件。所以,我們完全可以在rviz的基礎上,打造屬於我們自己的機器人人機界面。
  • 陸奇:Chatbot將成為未來的基礎設施和重要的人機互動窗口
    開發需求的開發人員,相信讀完此書,你都將收穫良多。3未來Chatbot將是重要的人機互動窗口本書用淺顯的語言,從團隊的實戰經驗出發,列舉了許多標準流程,總結了系統性的方法論,幫助讀者結構性地梳理垂直場景業務,使讀者能夠親自動手,以可視化的方式完整實現 Chatbot。
  • 9.基於snowboy實現ROS中的語音喚醒
    首先,我們需要先了解整個語音交互系統的流程是什麼樣的。這樣才能清楚語音喚醒在整個流程中的作用。下面通過一個簡單的示意圖來認識整個語音交互流程:在卷積神經網絡算法(CNN)沒有被人們應用在語音識別上時,人機語音交互系統體驗還很差勁。但是隨著CNN的不斷發展,在語音識別這個領域CNN大放異彩。使得語音識別發展突飛猛進,現在的人機語音交互系統體驗基本上都是非常好的。
  • HMI人機界面
    >4、WinCC:西門子  5、ASPEN-tech (艾斯苯公司)    6、Movicon:是義大利自動化軟體供應商PROGEA公司開發。產品自1999年開始銷售。   2.三維力控:由北京三維力控科技有限公司開發,核心軟體產品初創於1992年。   3.組態王KingView:由北京亞控科技發展有限公司開發,該公司成立於1997年,目前在國產軟體市場中佔據著一定地位。   4.紫金橋Realinfo:由紫金橋軟體技術有限公司開發,該公司是由中石油大慶石化總廠出資成立。
  • R-ROS|「ROS君,小生初來乍到,請多多指教!」
    雖然ROS官網的wiki上針對新手的教程很詳細(最好把所有的新手教程都搞清楚,這是後面開發最基礎的東西),但儘管如此,ROS對於新手來說還是很難上手,為此,智能工場搜集了相關的學習的歷程,為新手們作為一個參考。|ROS的安裝
  • Hello, ROS
    不過ROS並非是一個真正意義上的作業系統,而僅僅是一套用於機器人操作和控制軟體開發的開發框架(framework),包括各種庫和工具。ROS在2007年誕生於史丹福大學的人工智慧實驗室Stanford Artificial Intelligence Laboratory,簡稱SAIL;2008年至2013年,ROS的開發和推廣由Willow Garage公司(該公司2014年已關門大吉)主導。2013年8月,ROS的管理權轉移給了Open Source Robotics Foundation。
  • Synaptics引領人機互動的四大浪潮
    2015年4月29日,北京,全球人機互動解決方案的領先開發商Synaptics公司 (NASDAQ:SYNA) 今天宣布,面向即將到來的萬物互聯時代,率先發起一場用戶體驗完美化的革命,加速變革人與智能設備之間的交互體驗,全面引領人機互動領域的四次浪潮。
  • 滑鼠終將消失,未來我們有哪些人機互動方式?
    他帶領的研究小組是人機互動的先鋒,是開發超文本系統、網絡計算機以及圖形用戶界面的先驅。科技變革從不止步。半個世紀以來,我們雖然還在依賴滑鼠和鍵盤進行計算機交互,但隨著觸控螢幕技術、人工智慧、語音技術、AR/VR、腦科學的發展,我們與計算機的交互方式也正在慢慢地發生改變。目前,語音技術已經植入了我們的手機、音箱等消費電子產品中。