天天看點

一文讀懂自動駕駛中的機器人作業系統ROS

作者:BFT白芙堂機器人

一.什麼是機器人作業系統ROS

1.ROS(Robot Operating System)是一個作業系統

ROS是對機器人的硬體進行了封裝,不同的機器人、不同的傳感器,在ROS裡可以用相同的方式表示(topic等),供上層應用程式(運動規劃等)調用。

一文讀懂自動駕駛中的機器人作業系統ROS

計算機OS與機器人OS對比示意圖,圖檔引用自Nao

2.ROS是一種跨平台子產品化軟體通訊機制

ROS用節點(Node)的概念表示一個應用程式,不同node之間通過事先定義好格式的消息(Topic),服務(Service),動作(Action)來實作連接配接。

因為ROS本身是基于消息機制的,開發者可以根據功能把軟體拆分成為各個子產品,每個子產品隻是負責讀取和分發消息,子產品間通過消息關聯。

一文讀懂自動駕駛中的機器人作業系統ROS

3.ROS是一系列開源工具

很多知名的機器人開源庫,比如基于quaternion的坐标轉換、3D點雲處理驅動、定位算法SLAM等都是開源貢獻者基于ROS開發的。

二.機器人作業系統ROS特性

1.系統安全可靠

去中心化

ROS重要節點需要熱備份,以便當機時可以随時切換。主節點當機後,備份節點被切換為主節點,并且用備份的主節點完成資訊初始化。

實時監控和報警

對于運作的節點實時監控其運作資料,并檢測到嚴重的錯誤資訊時報警。

一文讀懂自動駕駛中的機器人作業系統ROS

基于ZooKeeper的監控和報警

節點當機狀态恢複

節點當機的時候,需要通過重新開機的機制恢複節點,這個重新開機可以是無狀态的,但有些時候也必須是有狀态的,是以狀态的備份格外重要。節點的當機檢測也是非常重要的,如果察覺到節點當機,必須很快地使用備份的資料重新開機。

2.系統通信性能提升

由于無人駕駛系統子產品很多,子產品間的資訊互動很頻繁,提升系統通信性能會對整個系統性能提升的作用很大。

3.系統資源管理與安全性

如何解決資源配置設定與安全問題是無人駕駛技術的一個大課題。

三.ROS在自動駕駛上的應用

想要制造無人駕駛汽車,有很多關鍵問題需要解決。

怎麼在車内搭建可靠的網絡,如何管理記憶體、存儲資料和日志記錄,如何使傳感器和計算機能夠同時互相通信,以及如何確定它們都很穩定且安全。

機器人作業系統ROS為許多問題提供了開源解決方案。

一文讀懂自動駕駛中的機器人作業系統ROS

要保證一個複雜的系統穩定、高效地運作,每個子產品都能發揮出最大的潛能,需要一個成熟有效的管理機制。

在無人駕駛場景中,ROS提供了這樣一個管理機制,使得系統中的每個軟硬體子產品都能有效地進行互動。原生的ROS提供了許多必要的功能,但是這些功能并不能滿足無人駕駛的所有需求,是以我們在ROS之上進一步地提高了系統的性能與可靠性,完成了有效的資源管理及隔離。

我們相信随着無人駕駛技術的發展,更多的系統需求會被提出,比如車車互聯、車與城市交通系統互聯、雲車互聯、異構計算硬體加速等,我們也将會持續優化這個系統,力求讓它變成無人駕駛的标準系統。

本文轉載于公衆号:BFT機器人

關注了解更多機器人知識

繼續閱讀