一文讀懂自動駕駛中的機器人操作系統(tǒng)ROS
一.什么是機器人操作系統(tǒng)ROS
1.ROS(Robot Operating System)是一個操作系統(tǒng)
ROS是對機器人的硬件進行了封裝,不同的機器人、不同的傳感器,在ROS里可以用相同的方式表示(topic等),供上層應(yīng)用程序(運動規(guī)劃等)調(diào)用。

2.ROS是一種跨平臺模塊化軟件通訊機制
ROS用節(jié)點(Node)的概念表示一個應(yīng)用程序,不同node之間通過事先定義好格式的消息(Topic),服務(wù)(Service),動作(Action)來實現(xiàn)連接。
因為ROS本身是基于消息機制的,開發(fā)者可以根據(jù)功能把軟件拆分成為各個模塊,每個模塊只是負責讀取和分發(fā)消息,模塊間通過消息關(guān)聯(lián)。

3.ROS是一系列開源工具
很多知名的機器人開源庫,比如基于quaternion的坐標轉(zhuǎn)換、3D點云處理驅(qū)動、定位算法SLAM等都是開源貢獻者基于ROS開發(fā)的。
二.機器人操作系統(tǒng)ROS特性
1.系統(tǒng)安全可靠
去中心化
ROS重要節(jié)點需要熱備份,以便宕機時可以隨時切換。主節(jié)點宕機后,備份節(jié)點被切換為主節(jié)點,并且用備份的主節(jié)點完成信息初始化。
實時監(jiān)控和報警
對于運行的節(jié)點實時監(jiān)控其運行數(shù)據(jù),并檢測到嚴重的錯誤信息時報警。

節(jié)點宕機狀態(tài)恢復(fù)
節(jié)點宕機的時候,需要通過重啟的機制恢復(fù)節(jié)點,這個重啟可以是無狀態(tài)的,但有些時候也必須是有狀態(tài)的,因此狀態(tài)的備份格外重要。節(jié)點的宕機檢測也是非常重要的,如果察覺到節(jié)點宕機,必須很快地使用備份的數(shù)據(jù)重啟。
2.系統(tǒng)通信性能提升
由于無人駕駛系統(tǒng)模塊很多,模塊間的信息交互很頻繁,提升系統(tǒng)通信性能會對整個系統(tǒng)性能提升的作用很大。
3.系統(tǒng)資源管理與安全性
如何解決資源分配與安全問題是無人駕駛技術(shù)的一個大課題。
三.ROS在自動駕駛上的應(yīng)用
想要制造無人駕駛汽車,有很多關(guān)鍵問題需要解決。
怎么在車內(nèi)搭建可靠的網(wǎng)絡(luò),如何管理內(nèi)存、存儲數(shù)據(jù)和日志記錄,如何使傳感器和計算機能夠同時相互通信,以及如何確保它們都很穩(wěn)定且安全。
機器人操作系統(tǒng)ROS為許多問題提供了開源解決方案。

要保證一個復(fù)雜的系統(tǒng)穩(wěn)定、高效地運行,每個模塊都能發(fā)揮出最大的潛能,需要一個成熟有效的管理機制。
在無人駕駛場景中,ROS提供了這樣一個管理機制,使得系統(tǒng)中的每個軟硬件模塊都能有效地進行互動。原生的ROS提供了許多必要的功能,但是這些功能并不能滿足無人駕駛的所有需求,因此我們在ROS之上進一步地提高了系統(tǒng)的性能與可靠性,完成了有效的資源管理及隔離。
我們相信隨著無人駕駛技術(shù)的發(fā)展,更多的系統(tǒng)需求會被提出,比如車車互聯(lián)、車與城市交通系統(tǒng)互聯(lián)、云車互聯(lián)、異構(gòu)計算硬件加速等,我們也將會持續(xù)優(yōu)化這個系統(tǒng),力求讓它變成無人駕駛的標準系統(tǒng)。
本文轉(zhuǎn)載于公眾號:BFT機器人
關(guān)注了解更多機器人知識