ZMC900E是致遠電子研發的最新一代高性能EtherCAT控制器,支持ROS2系統,兼備強大功能和實時性,為工業應用帶來新的可能。本文將詳述ROS2特點和安裝,助力用戶在機器人上的二次開發和應用。
圖1ZMC900E高性能EtherCAT主站控制器
ZMC900E是ZLG致遠電子開發的最新一代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因其強大的功能而備受機器人應用開發者的歡迎,而新一代的ROS2更具有產品化特性,結合新一代高性能的ZMC900E EtherCat控制器將給工業應用帶來更多想象力。下面就詳細介紹ROS特性以及ROS2在ZMC900E上的安裝步驟。
?ROS是什么?
ROS(Robot Operating System),這一為機器人軟件程序編寫的軟件架構,展現了其獨特的靈活性。其起源可追溯到斯坦福大學的STanford Artificial Intelligence Robot(STAIR)與Personal Robotics(PR)項目,象征著機器人領域的創新與探索。
在機器人行業,工業界與學術界在軟件工具的使用上呈現出截然不同的態度。工業界傾向于構建封閉的生態系統和設置高技術壁壘,以保護其核心優勢。而學術界則更偏向于擁抱開源社區,選擇現有的工具進行研發,其中,ROS便是學術界廣受歡迎的開源工具。自2010年首個ROS版本發布以來,它基于PR2機器人構建了一系列基礎軟件包,并不斷進行迭代更新。隨著Ubuntu系統長期支持(LTS)版本的演進,ROS也逐步升級,目前最新的版本已經與Ubuntu 20.04 LTS完美兼容。盡管ROS的CI測試主要在Ubuntu上進行,但社區成員的努力使得ROS在其他Linux版本、Mac OS X、Android、Windows等平臺上也具備一定的兼容性,盡管功能支持可能受到一些限制。圖3ROS軟件集合
?ROS的的優缺點分析
ROS作為一種廣泛使用的機器人軟件架構,為開發者提供了許多便利,但同時也存在一些明顯的問題和挑戰。以下是對ROS的優缺點進行的分析:
1. 優點
- 松散耦合的機制提供框架:ROS采用了一種松散耦合的設計,使得各個組件之間的通信更加靈活和方便。這種設計使得開發者可以根據需要輕松地添加、刪除或修改功能,而無需對整個系統進行大規模的修改。
- 豐富的機器人功能庫:ROS提供了大量的機器人功能庫,涵蓋了感知、導航、控制、定位、建圖等多個方面。這些庫為開發者提供了豐富的資源,可以加速機器人應用的開發進程。
- 龐大的用戶群體:ROS在機器人領域擁有龐大的用戶群體,這意味著開發者可以更容易地找到幫助、解決問題和分享經驗。同時,這也促進了ROS社區的發展,使得ROS不斷完善和進步。
- 免費開源:ROS是一個開源項目,這意味著任何人都可以免費地使用其中的代碼、庫和工具。這為開發者提供了更多的選擇和靈活性,同時也促進了機器人技術的普及和發展。
- 便利的數據記錄、分析、仿真工具:ROS提供了一系列的數據記錄、分析和仿真工具,使得開發者可以更方便地進行機器人系統的測試、調試和優化。
2. 缺點:
- 通信實時性能有限:由于ROS的通信機制是基于消息的發布/訂閱模式,因此在實際應用中可能會遇到實時性能有限的問題。特別是在高負載或復雜場景下,通信延遲和丟包等問題可能會影響系統的性能。
- 系統穩定性尚不滿足工業級要求:雖然ROS在學術界和科研領域得到了廣泛應用,但在工業級應用中,其系統穩定性仍然存在一定的不足。這主要是因為ROS在設計時更多地考慮了靈活性和可擴展性,而在穩定性方面的考慮相對較少。
- 安全性上沒有防護措施:ROS的安全性是另一個值得關注的問題。由于ROS是一個開源項目,缺乏統一的安全標準和防護措施,因此在實際應用中可能會面臨一定的安全風險。例如,惡意攻擊者可能會利用ROS的漏洞進行攻擊或破壞。
- 僅支持Linux(Ubuntu):雖然ROS在Linux系統上得到了廣泛的支持和應用,但這也限制了其在其他操作系統上的使用。這可能會使得一些開發者在選擇ROS時面臨一些挑戰和限制。
- 核心機制的性能沒有優化占用資源:ROS的核心機制在某些情況下可能存在性能瓶頸和資源占用過高的問題。這可能會影響系統的整體性能和效率,尤其是在資源有限的嵌入式系統或移動機器人上。
?ROS2:推動ROS進入產業化與產品化時代ROS在學術界和科研領域取得了顯著的成就。然而,對于工業界和產業應用而言,原始的ROS版本(即ROS1)存在一些明顯的不足,阻礙了其真正的產業化與產品化進程。為了解決這些問題,ROS社區推出了ROS2,一個更為成熟、穩定和適應產業化需求的版本。1. 實時化與分布式通信
ROS2的核心改進之一是實現了實時化和分布式通信。在ROS1中,所有的節點通信都依賴于一個中心化的Master節點。這意味著如果Master節點發生故障,整個系統的通信將中斷,導致所有節點功能失效。這種設計限制了ROS1在需要高可靠性和穩定性的工業環境中的應用。
圖4ROS1和ROS2比較
為了克服這一挑戰,ROS2引入了Data Distribution Service(DDS)作為其通信基礎。DDS是一種廣泛應用于國防、民航、工業控制等領域的實時系統數據發布/訂閱標準解決方案。通過DDS,ROS2實現了去中心化的通信方式,允許節點之間進行直接通信,無需依賴于Master節點。這種分布式通信方式不僅提高了系統的可靠性和穩定性,還有助于解決多機器人系統中的通信問題。
2. 適應全平臺與低性能硬件
除了實時化和分布式通信外,ROS2還致力于提高其對不同平臺和硬件的適應性。在ROS1中,由于其對特定操作系統(如Ubuntu)的依賴,使得其在其他平臺上的應用受到限制。而ROS2則致力于實現跨平臺兼容性,支持更多的操作系統和硬件平臺。此外,ROS2還針對低性能硬件(如MCU+RTOS)進行了優化。這意味著在資源有限的嵌入式系統或移動機器人上,ROS2仍然能夠保持良好的性能和效率。3. 數據加密與現代編程語言支持
在數據安全方面,ROS2引入了數據加密機制,確保通信過程中的數據安全性。這一特性對于需要高度安全保護的工業應用至關重要。
同時,ROS2還支持現代編程語言,如C++和Python。這使得開發者能夠使用更加高效和靈活的編程工具來開發機器人應用。
通過引入實時化、分布式通信、跨平臺兼容性、低性能硬件適應性、數據加密以及現代編程語言支持等特性,ROS2為機器人技術的產業化與產品化奠定了堅實的基礎。隨著ROS2的不斷發展和完善,我們有理由相信它將在未來的機器人領域中發揮更加重要的作用。
?ROS2環境安裝ZMC900E支持ROS2的開發,本地安裝的系統是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. 設置語言環境
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存儲庫添加到系統中,為此,首先使用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
在另一個終端中,更新配置文件,運行listener:
source /opt/ros/eloquent/setup.bashros2 run demo_nodes_py listener
可以看到talker發布Publishing消息,同時listener接收并告知I heard消息, 如下圖所示,說明安裝成功。
-
控制器
+關注
關注
112文章
16433瀏覽量
178940 -
機器人
+關注
關注
211文章
28607瀏覽量
207881 -
ROS
+關注
關注
1文章
279瀏覽量
17045
發布評論請先 登錄
相關推薦
評論