RoboWare平臺
1.1 RoboWare簡介
Robo Ware機器人開發(fā)平臺是一種應用于各種機器人技術及設備的標準化開發(fā)軟件平臺,給用戶提供可視化的集成開發(fā)環(huán)境和編譯調(diào)試環(huán)境,同時還提供了與相應硬件的對應接口,提供一整套面向部件生產(chǎn)者、機器人開發(fā)者以及機器人應用者的機器人中間件技術開發(fā)平臺。

目前市場上70%以上的服務機器人都是以機器人操作系統(tǒng)為平臺進行開發(fā)的,但是常見的機器人操作系統(tǒng)都面臨開發(fā)環(huán)境復雜、配置困難、調(diào)試不便等困難,且在嵌入式板卡上的運行時需要自己搜尋大量的支持庫,應用門檻高。為了滿足市場需求,RoboWare機器人開發(fā)平臺實現(xiàn)了以下功能:
w 具有友好的圖形化界面,采用“拖拉拽”及參數(shù)配置即能完成機器人控制軟件的開發(fā);
w 具備組態(tài)軟件模塊,在機器人投運后,可實時監(jiān)控機器人運行狀況,并對機器人及集群進行實時(集中)監(jiān)控。
w 具備可高度復用的組建庫和完備的調(diào)試/仿真環(huán)境,對多種機器人硬件設備提供“驅(qū)動”程序支持;
w 以機器人操作系統(tǒng)為內(nèi)核,具有統(tǒng)一的編程環(huán)境和編譯執(zhí)行環(huán)境。
w 通用的大量功能控制組件,例如計算機視覺技術、導航技術和機械手臂控制等。
w 集成大量的人工智能算法庫,能方便提供機器人智能模塊開發(fā)。
Robo Ware技術優(yōu)勢
(1)Robo Ware以機器人操作系統(tǒng)為內(nèi)核,采用當前最流行的異步編程語言NodeJS開發(fā),基于先進的electron跨平臺圖形界面應用開發(fā)框架和微軟公司的vscode編輯器,實現(xiàn)了分布式環(huán)境下具有不同硬件結(jié)構、操作系統(tǒng)、通信協(xié)議和編程語言的機器人之間的互通互聯(lián),系統(tǒng)界面友好、操作簡便,大大提升移植性、擴展性,易于維護,為多異構機器人的協(xié)作提供了最佳的技術路線,填補了國際上機器人開發(fā)領域的空白。
(2)RoboWare開創(chuàng)性的實現(xiàn)了遠程調(diào)試功能,解決了一直困擾機器人開發(fā)人員的無法實現(xiàn)在遠端部署與調(diào)試的問題。RoboWare Studio遠程調(diào)試減少軟件工程師的工作量,同時降低開發(fā)門檻,縮短開發(fā)周期,提升開發(fā)效率,減少開發(fā)成本。
(3)RoboWare機器人開發(fā)平臺具備了機器人開發(fā)過程所需要的軟件模塊、硬件組件和開發(fā)案例,已經(jīng)形成了機器人開發(fā)組件、部件、控件的生態(tài)圈。填補了機器人開發(fā)全球?qū)I(yè)化部件市場的空白。
RoboWare POD產(chǎn)品系列
RoboWare POD系列工具,采用面向產(chǎn)品設計(POD,Product Oriented Design)思路,整個POD系列產(chǎn)品涵蓋了從機器人架構設計、本體開發(fā)調(diào)試到后臺人機交互界面開發(fā)的全套工具。包括Designer、Studio和Viewer三部分,分別進行機器人架構設計、代碼開發(fā)和界面開發(fā)。
(1)RoboWare Designer
RoboWare Designer是一個圖形化的機器人硬件架構設計工具,集成了各種ROS硬件及其ROS資源包,在設計中允許你拖動它們、配置它們、編輯它們、連接他們,并生成對應的ROS工程代碼。
RoboWare Designer具有如下特性:
w 可視化:以圖形的方式構建機器人硬件架構,可視、簡單、易操作;
w 支持ROS:與ROS的生態(tài)體系緊密結(jié)合,自動生成ROS工程代碼;
w 良好開放性:支持硬件廠商制作自己的Designer部件提交到數(shù)據(jù)倉庫;
w 豐富的部件倉庫:由RoboWare開發(fā)團隊持續(xù)更新和維護ROS資源。

可視化架構設計、自動創(chuàng)建ROS軟件包
(2)RoboWare Studio
RoboWare Studio是一個ROS集成開發(fā)環(huán)境,可進行ROS工作區(qū)及包的管理、代碼編輯、構建及調(diào)試等工作。
RoboWare Studio的主要特性有:
w 圖形化ROS開發(fā)界面:以圖形化的方式進行ROS工作區(qū)及包的創(chuàng)建、源碼添加、文件創(chuàng)建等,實現(xiàn)CMakelists.txt、package.xml文件的自動更新,兼容indigo/jade/kinetic等版本;
w 友好的編碼體驗:具有語法高亮、代碼補全、定義跳轉(zhuǎn)、查看定義、錯誤診斷與顯示等IDE功能,支持集成終端,可在IDE界面同時打開多個終端窗口,支持Vim編輯模式;
w 提供C++和Python代碼調(diào)試:提供Release Debug及Isolated編譯選項,以界面交互的方式調(diào)試C++及Python代碼,可設置斷點、顯示調(diào)用堆棧、單步運行等;
w 內(nèi)置Git功能:可在編輯器界面進行差異比對、文件暫存、修改提交,對任意Git服務倉庫進行推送、拉取等;
w 支持遠程部署及調(diào)試:支持代碼的遠程部署、構建及實時調(diào)試,支持X86或ARM架構;
代碼調(diào)試

ROS包管理器
(3)RoboWare Viewer
RoboWare Viewer是一個基于JavaScript開發(fā)的ROS UI交互界面開發(fā)工具。通過簡易的拖拽組件、配置參數(shù)完成開發(fā),支持組件自定義。
主要特性包括:
?拖拽式開發(fā):RoboWare Viewer封裝了大量的ROS組件,開發(fā)者只需要將需要的組件拖拽到內(nèi)容區(qū),不需要編寫任何代碼就可以開發(fā)出漂亮的ROS人機交互界面。

?參數(shù)配置:調(diào)整組件的相關參數(shù)來改變組件的顏色、大小、位置等,也可以通過配置ROS MASTER URI和TOPIC來改變數(shù)據(jù)源。

類屬性設置
?效果預覽:開發(fā)者可以在編碼過程中查看應用程序的運行效果,包括在PC上的運行效果以及在手機上的運行效果。
?跨平臺使用及打包發(fā)布:RoboWare Viewer可在Linux、Windows、Mac OSX等操作系統(tǒng)下安裝使用,打包生成相應的PC應用程序,也可以打包成Android、IOS下的移動端應用程序。

ROS與RoboWare開發(fā)過程對比