ZMC900E是致遠電子研發(fā)的最新一代高性能EtherCAT控制器,支持ROS2系統(tǒng),兼?zhèn)鋸姶蠊δ芎蛯崟r性,為工業(yè)應用帶來新的可能。本文將詳述ROS2特點和安裝,助力用戶在機器人上的二次開發(fā)和應用。
圖1ZMC900E高性能EtherCAT主站控制器
ZMC900E是ZLG致遠電子開發(fā)的最新一代EtherCAT主站控制器,其核心采用多核異構的應用處理器,內核包括4+1個64位的ArmCortex-A55核,主頻2GHz;3個Cortex-R5F內核,主頻800MHz。同時板載4GB LPDDR4、8GB eMMC以及32KB FRAM。
ZMC900EEtherCAT主站控制器為了滿足不同的自動化應用需求,集成1路專用EtherCAT口、3路通用以太網、1路CANFD、1路RS485、1路TF卡、1路USB3.0 Host、1路HDMI接口、16路Dl數字輸入、16路DO數字輸出等接口,靈活滿足自動化設備應用需求。
圖2ZMC900E接口
ROS因其強大的功能而備受機器人應用開發(fā)者的歡迎,而新一代的ROS2更具有產品化特性,結合新一代高性能的ZMC900E EtherCat控制器將給工業(yè)應用帶來更多想象力。下面就詳細介紹ROS特性以及ROS2在ZMC900E上的安裝步驟。
?ROS是什么?
ROS(Robot Operating System),這一為機器人軟件程序編寫的軟件架構,展現了其獨特的靈活性。其起源可追溯到斯坦福大學的STanford Artificial Intelligence Robot(STAIR)與Personal Robotics(PR)項目,象征著機器人領域的創(chuàng)新與探索。
在機器人行業(yè),工業(yè)界與學術界在軟件工具的使用上呈現出截然不同的態(tài)度。工業(yè)界傾向于構建封閉的生態(tài)系統(tǒng)和設置高技術壁壘,以保護其核心優(yōu)勢。而學術界則更偏向于擁抱開源社區(qū),選擇現有的工具進行研發(fā),其中,ROS便是學術界廣受歡迎的開源工具。自2010年首個ROS版本發(fā)布以來,它基于PR2機器人構建了一系列基礎軟件包,并不斷進行迭代更新。隨著Ubuntu系統(tǒng)長期支持(LTS)版本的演進,ROS也逐步升級,目前最新的版本已經與Ubuntu 20.04 LTS完美兼容。盡管ROS的CI測試主要在Ubuntu上進行,但社區(qū)成員的努力使得ROS在其他Linux版本、Mac OS X、Android、Windows等平臺上也具備一定的兼容性,盡管功能支持可能受到一些限制。圖3ROS軟件集合
?ROS的的優(yōu)缺點分析
ROS作為一種廣泛使用的機器人軟件架構,為開發(fā)者提供了許多便利,但同時也存在一些明顯的問題和挑戰(zhàn)。以下是對ROS的優(yōu)缺點進行的分析:
1. 優(yōu)點
- 松散耦合的機制提供框架:ROS采用了一種松散耦合的設計,使得各個組件之間的通信更加靈活和方便。這種設計使得開發(fā)者可以根據需要輕松地添加、刪除或修改功能,而無需對整個系統(tǒng)進行大規(guī)模的修改。
- 豐富的機器人功能庫:ROS提供了大量的機器人功能庫,涵蓋了感知、導航、控制、定位、建圖等多個方面。這些庫為開發(fā)者提供了豐富的資源,可以加速機器人應用的開發(fā)進程。
- 龐大的用戶群體:ROS在機器人領域擁有龐大的用戶群體,這意味著開發(fā)者可以更容易地找到幫助、解決問題和分享經驗。同時,這也促進了ROS社區(qū)的發(fā)展,使得ROS不斷完善和進步。
- 免費開源:ROS是一個開源項目,這意味著任何人都可以免費地使用其中的代碼、庫和工具。這為開發(fā)者提供了更多的選擇和靈活性,同時也促進了機器人技術的普及和發(fā)展。
- 便利的數據記錄、分析、仿真工具:ROS提供了一系列的數據記錄、分析和仿真工具,使得開發(fā)者可以更方便地進行機器人系統(tǒng)的測試、調試和優(yōu)化。
2. 缺點:
- 通信實時性能有限:由于ROS的通信機制是基于消息的發(fā)布/訂閱模式,因此在實際應用中可能會遇到實時性能有限的問題。特別是在高負載或復雜場景下,通信延遲和丟包等問題可能會影響系統(tǒng)的性能。
- 系統(tǒng)穩(wěn)定性尚不滿足工業(yè)級要求:雖然ROS在學術界和科研領域得到了廣泛應用,但在工業(yè)級應用中,其系統(tǒng)穩(wěn)定性仍然存在一定的不足。這主要是因為ROS在設計時更多地考慮了靈活性和可擴展性,而在穩(wěn)定性方面的考慮相對較少。
- 安全性上沒有防護措施:ROS的安全性是另一個值得關注的問題。由于ROS是一個開源項目,缺乏統(tǒng)一的安全標準和防護措施,因此在實際應用中可能會面臨一定的安全風險。例如,惡意攻擊者可能會利用ROS的漏洞進行攻擊或破壞。
- 僅支持Linux(Ubuntu):雖然ROS在Linux系統(tǒng)上得到了廣泛的支持和應用,但這也限制了其在其他操作系統(tǒng)上的使用。這可能會使得一些開發(fā)者在選擇ROS時面臨一些挑戰(zhàn)和限制。
- 核心機制的性能沒有優(yōu)化占用資源:ROS的核心機制在某些情況下可能存在性能瓶頸和資源占用過高的問題。這可能會影響系統(tǒng)的整體性能和效率,尤其是在資源有限的嵌入式系統(tǒng)或移動機器人上。
?ROS2:推動ROS進入產業(yè)化與產品化時代ROS在學術界和科研領域取得了顯著的成就。然而,對于工業(yè)界和產業(yè)應用而言,原始的ROS版本(即ROS1)存在一些明顯的不足,阻礙了其真正的產業(yè)化與產品化進程。為了解決這些問題,ROS社區(qū)推出了ROS2,一個更為成熟、穩(wěn)定和適應產業(yè)化需求的版本。1. 實時化與分布式通信
ROS2的核心改進之一是實現了實時化和分布式通信。在ROS1中,所有的節(jié)點通信都依賴于一個中心化的Master節(jié)點。這意味著如果Master節(jié)點發(fā)生故障,整個系統(tǒng)的通信將中斷,導致所有節(jié)點功能失效。這種設計限制了ROS1在需要高可靠性和穩(wěn)定性的工業(yè)環(huán)境中的應用。
圖4ROS1和ROS2比較
為了克服這一挑戰(zhàn),ROS2引入了Data Distribution Service(DDS)作為其通信基礎。DDS是一種廣泛應用于國防、民航、工業(yè)控制等領域的實時系統(tǒng)數據發(fā)布/訂閱標準解決方案。通過DDS,ROS2實現了去中心化的通信方式,允許節(jié)點之間進行直接通信,無需依賴于Master節(jié)點。這種分布式通信方式不僅提高了系統(tǒng)的可靠性和穩(wěn)定性,還有助于解決多機器人系統(tǒng)中的通信問題。
2. 適應全平臺與低性能硬件
除了實時化和分布式通信外,ROS2還致力于提高其對不同平臺和硬件的適應性。在ROS1中,由于其對特定操作系統(tǒng)(如Ubuntu)的依賴,使得其在其他平臺上的應用受到限制。而ROS2則致力于實現跨平臺兼容性,支持更多的操作系統(tǒng)和硬件平臺。此外,ROS2還針對低性能硬件(如MCU+RTOS)進行了優(yōu)化。這意味著在資源有限的嵌入式系統(tǒng)或移動機器人上,ROS2仍然能夠保持良好的性能和效率。3. 數據加密與現代編程語言支持
在數據安全方面,ROS2引入了數據加密機制,確保通信過程中的數據安全性。這一特性對于需要高度安全保護的工業(yè)應用至關重要。
同時,ROS2還支持現代編程語言,如C++和Python。這使得開發(fā)者能夠使用更加高效和靈活的編程工具來開發(fā)機器人應用。
通過引入實時化、分布式通信、跨平臺兼容性、低性能硬件適應性、數據加密以及現代編程語言支持等特性,ROS2為機器人技術的產業(yè)化與產品化奠定了堅實的基礎。隨著ROS2的不斷發(fā)展和完善,我們有理由相信它將在未來的機器人領域中發(fā)揮更加重要的作用。
?ROS2環(huán)境安裝ZMC900E支持ROS2的開發(fā),本地安裝的系統(tǒng)是Ubuntu 18.04,可以安裝對應的eloquent版本的ROS2。依次按以下步驟操作。1. 更換apt源
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.baksudo vi /etc/apt/sources.list
2. 替換成以下內容
deb http://mirrors.huaweicloud.com/ubuntu-ports/ bionic main multiverse restricted universedeb http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-backports main multiverse restricted universedeb http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-proposed main multiverse restricted universedeb http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-security main multiverse restricted universedeb http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-updates main multiverse restricted universedeb-src http://mirrors.huaweicloud.com/ubuntu-ports/ bionic main multiverse restricted universedeb-src http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-backports main multiverse restricted universedeb-src http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-proposed main multiverse restricted universedeb-src http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-security main multiverse restricted universedeb-src http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-updates main multiverse restricted universe
3.安裝aptitude包
sudo apt update && sudo apt install aptitude
4. 設置語言環(huán)境
sudo apt update && sudo apt install localessudo locale-gen en_US en_US.UTF-8sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8
5. 需要將ROS2apt存儲庫添加到系統(tǒng)中,為此,首先使用apt授權GPG密鑰
sudo apt update && sudo apt install curl gnupg2 lsb-releasecurl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
6. 然后將存儲庫添加到源列表
sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
7.安裝ROS2軟件包,設置存儲庫后,更新apt存儲庫緩存,安裝桌面版
sudo apt update && sudo aptitude install ros-eloquent-desktop
注:安裝過程可能出現問題。
問題1:
GPGerror:http://packages.ros.org/ros2/ubuntubionicInRelease:Thefollowingsignaturescouldn'tbeverifiedbecausethepublickeyisnotavailable:NO_PUBKEYF42ED6FBAB17C654
方案1:
sudoapt-keyadv--keyserverkeyserver.ubuntu.com--recv-keysF42ED6FBAB17C654
經過上述操作, eloquent版ROS2安裝完成。
?ROS2測試
在終端中,更新配置文件,運行talker:
source /opt/ros/eloquent/setup.bashros2rundemo_nodes_cpptalker
在另一個終端中,更新配置文件,運行l(wèi)istener:
source /opt/ros/eloquent/setup.bashros2 run demo_nodes_py listener
可以看到talker發(fā)布Publishing消息,同時listener接收并告知I heard消息, 如下圖所示,說明安裝成功。
-
控制器
+關注
關注
112文章
16464瀏覽量
179602 -
機器人
+關注
關注
211文章
28687瀏覽量
208628 -
ROS
+關注
關注
1文章
280瀏覽量
17122
發(fā)布評論請先 登錄
相關推薦
評論