當(dāng)前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 運(yùn)動控制 > 工業(yè)機(jī)器人 > 直角坐標(biāo)型工業(yè)機(jī)器人
發(fā)布日期:2022-04-18 點(diǎn)擊率:48
隨著這兩年國內(nèi)機(jī)器人的升溫,自主定位導(dǎo)航技術(shù)作為機(jī)器人智能化的第一步正不斷引起行業(yè)內(nèi)的重視。為了實現(xiàn)這一功能,不少廠家選擇采用機(jī)器人操作系統(tǒng)ROS(Robot Operation System),今天我們就聊一聊ROS系統(tǒng)。
1 什么是ROS?
ROS系統(tǒng)起源于2007年,斯坦福大學(xué)人工智能實驗室與機(jī)器人技術(shù)公司W(wǎng)illow Garage針對其個人機(jī)器人項目(Personal Robots Program)開發(fā)了ROS的雛形。2008年后,由Willow Garage公司推動了ROS的進(jìn)一步發(fā)展。2012年后,ROS團(tuán)隊從WillowGarage公司獨(dú)立出來,成為非盈利組織the Open Source Robotics Foundation(OSRF),負(fù)責(zé)維護(hù)和更新ROS,并為機(jī)器人社區(qū)提供相應(yīng)的支持和開源工具。
Willow Garage PR2機(jī)器人平臺
ROS大致每年發(fā)布一個版本,目前正在維護(hù)的ROS版本包括indigo,jade,kinetic,一些早期版本現(xiàn)在已經(jīng)停止維護(hù)。ROS依賴于Linux內(nèi)核,因此每當(dāng)Ubuntu版本發(fā)生變化,ROS不同版本的依賴也會出現(xiàn)相應(yīng)的變化。
2 ROS的特性與優(yōu)勢
ROS被稱為機(jī)器人操作系統(tǒng),其實ROS充當(dāng)?shù)氖峭ㄐ胖虚g件的角色,即在已有操作系統(tǒng)的基礎(chǔ)上搭建了一整套針對機(jī)器人系統(tǒng)的實現(xiàn)框架。ROS還提供一組實用工具和軟件庫,用于維護(hù)、構(gòu)建、編寫和執(zhí)行可用于多個計算平臺的軟件代碼。
值得一提的是,ROS的設(shè)計者考慮到各開發(fā)者使用的開發(fā)語言不同,因此ROS的開發(fā)語言獨(dú)立,支持C++,python等多種開發(fā)語言。因此,除了官方提供的功能包之外,ROS還聚合了全世界開發(fā)者實現(xiàn)的大量開源功能包,如思嵐科技(SLAMTEC)就發(fā)布了針對其自主研發(fā)的激光雷達(dá)RPLIDAR的ROS功能包rplidar_ros。這些開源功能包與ROS一起構(gòu)成了強(qiáng)大的開源生態(tài)環(huán)境。
ROS的系統(tǒng)結(jié)構(gòu)設(shè)計也頗有特色,ROS運(yùn)行時是由多個松耦合的進(jìn)程組成,每個進(jìn)程ROS稱之為節(jié)點(diǎn)(Node),所有節(jié)點(diǎn)可以運(yùn)行在一個處理器上,也可以分布式運(yùn)行在多個處理器上。在實際使用時,這種松耦合的結(jié)構(gòu)設(shè)計可以讓開發(fā)者根據(jù)機(jī)器人所需功能靈活添加各個功能模塊。
例如,在一個支持SLAM功能的移動機(jī)器人中,激光數(shù)據(jù)采集和里程數(shù)據(jù)獲取分別由兩個node實現(xiàn),用于感知環(huán)境;SLAM算法運(yùn)行在另一個node中,用于處理傳感器數(shù)據(jù),繪制地圖;SLAM節(jié)點(diǎn)和數(shù)據(jù)采集節(jié)點(diǎn)之間采用topics方式通信。當(dāng)新增一個攝像頭模塊時,僅需在現(xiàn)有結(jié)構(gòu)里增加一個新的視頻節(jié)點(diǎn),讓其與SLAM節(jié)點(diǎn)采用topics方式通信即可,另外兩個功能節(jié)點(diǎn)不需任何改動。
ROS構(gòu)建的室內(nèi)地圖
與其他開源產(chǎn)品(Linux,GCC等)一樣,ROS具有優(yōu)良的開源基因,松耦合設(shè)計方法,可擴(kuò)展的軟件結(jié)構(gòu),功能復(fù)用思想,極大降低了機(jī)器人領(lǐng)域的進(jìn)入門檻,讓開發(fā)者無需像前人一樣走過眾多彎路,掌握多種知識后才能開始實現(xiàn)其機(jī)器人設(shè)計的夢想。開發(fā)者可以用ROS的基礎(chǔ)框架配合選定的功能包快速實現(xiàn)系統(tǒng)原型,從而讓開發(fā)人員將更多時間用于核心算法的開發(fā)改進(jìn)上。用戶也可以單獨(dú)選用某些功能包,將其集成在已有產(chǎn)品中,實現(xiàn)特定功能。
3 ROS的缺陷與不足
對于機(jī)器人廠家來說,采用ROS進(jìn)行開發(fā),更多的希望借助系統(tǒng)實現(xiàn)機(jī)器人的導(dǎo)航、定位與路徑規(guī)劃,這其中就要依靠SLAM算法(simultaneous localization and mapping,即時定位與地圖構(gòu)建)。
但作為一個開源項目,ROS也存在一些問題。例如,ROS因為將功能分布在各個節(jié)點(diǎn)之中,節(jié)點(diǎn)間基于消息機(jī)制通信,通訊部分消耗了很多系統(tǒng)資源。尤其是當(dāng)所有節(jié)點(diǎn)位于同一個處理器時,ROS仍然一直執(zhí)行相應(yīng)的消息分發(fā),節(jié)點(diǎn)間的數(shù)據(jù)傳遞通過內(nèi)存復(fù)制,大量的系統(tǒng)資源都浪費(fèi)在通訊上,使得系統(tǒng)必須選用高性能的處理器和存儲系統(tǒng)以彌補(bǔ)損耗。換句話說,利用ROS來實現(xiàn)SLAM,需要配備性能優(yōu)越的硬件設(shè)備,這對于一些小型化嵌入式平臺,尤其是實際的機(jī)器人產(chǎn)品里,其對計算資源、存儲空間的消耗會使成本大幅上升。
除了ROS本身系統(tǒng)設(shè)計的局限性外,利用ROS實現(xiàn)SLAM需要深入的調(diào)整優(yōu)化,需要耗費(fèi)大量人力與時間成本。更為重要的是,針對具體的機(jī)器人產(chǎn)品,如掃地機(jī)器人,還需要獨(dú)特的貼邊清掃、折回清掃、多房間自主導(dǎo)航等功能,目前已有的ROS系統(tǒng),只能實現(xiàn)簡單的建圖,無法滿足掃地機(jī)器人的實際需要。
4 ROS之外,還能怎么做?
在機(jī)器人商用應(yīng)用開發(fā)的道路上,很多技術(shù)團(tuán)隊和公司針對機(jī)器人特定功能開發(fā)著相應(yīng)商用產(chǎn)品,特別是在移動機(jī)器人領(lǐng)域,如思嵐科技的Slamware控制模塊,就將SLAM算法,導(dǎo)航,定位等功能集成在一個體積很小的模塊,并且提供了多平臺的SDK方便用戶使用。針對掃地機(jī)器人等具體領(lǐng)域應(yīng)用,思嵐科技也提供完整的解決方案,整合了其特有的貼邊清掃、往復(fù)式打掃、區(qū)域劃分、斷點(diǎn)續(xù)掃、自動回充等功能,方便掃地機(jī)器人廠家進(jìn)行整合,不需要進(jìn)行二次開發(fā)。
當(dāng)然,相較于采用開源ROS系統(tǒng),選擇已有的成熟解決方案,無疑會增加機(jī)器人廠家的成本,但考慮到廠家必須投入大量的人力與時間進(jìn)行算法優(yōu)化與調(diào)整,這也不失為一種更好的選擇。
綜上,ROS為機(jī)器人研究開發(fā)提供了標(biāo)準(zhǔn)化的框架,其方便的代碼重用,研究人員間的有效交流,可以加快機(jī)器人產(chǎn)品的原型設(shè)計和算法開發(fā)驗證。但真正要做穩(wěn)定可靠的產(chǎn)品,選擇已有的成熟解決方案,可以大幅降低研發(fā)成本,快速獲得產(chǎn)品原型,投入市場。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV