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