0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ZMC900E控制器之ROS2環(huán)境安裝指南

ZLG致遠(yuǎn)電子 ? 2024-04-29 08:24 ? 次閱讀

ZMC900E是致遠(yuǎn)電子研發(fā)的最新一代高性能EtherCAT控制器,支持ROS2系統(tǒng),兼?zhèn)鋸?qiáng)大功能和實(shí)時(shí)性,為工業(yè)應(yīng)用帶來新的可能。本文將詳述ROS2特點(diǎn)和安裝,助力用戶在機(jī)器人上的二次開發(fā)和應(yīng)用。

圖1ZMC900E高性能EtherCAT主站控制器

ZMC900E是ZLG致遠(yuǎn)電子開發(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主站控制器為了滿足不同的自動化應(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ù)字輸出等接口,靈活滿足自動化設(shè)備應(yīng)用需求。

e84fa194-05be-11ef-9118-92fbcf53809c.jpg

圖2ZMC900E接口

ROS因其強(qiáng)大的功能而備受機(jī)器人應(yīng)用開發(fā)者的歡迎,而新一代的ROS2更具有產(chǎn)品化特性,結(jié)合新一代高性能的ZMC900E EtherCat控制器將給工業(yè)應(yīng)用帶來更多想象力。下面就詳細(xì)介紹ROS特性以及ROS2在ZMC900E上的安裝步驟。

e86c9fba-05be-11ef-9118-92fbcf53809c.jpg ?ROS是什么?

ROS(Robot Operating System),這一為機(jī)器人軟件程序編寫的軟件架構(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)勢。而學(xué)術(shù)界則更偏向于擁抱開源社區(qū),選擇現(xiàn)有的工具進(jìn)行研發(fā),其中,ROS便是學(xué)術(shù)界廣受歡迎的開源工具。自2010年首個(gè)ROS版本發(fā)布以來,它基于PR2機(jī)器人構(gòu)建了一系列基礎(chǔ)軟件包,并不斷進(jìn)行迭代更新。隨著Ubuntu系統(tǒng)長期支持(LTS)版本的演進(jìn),ROS也逐步升級,目前最新的版本已經(jīng)與Ubuntu 20.04 LTS完美兼容。盡管ROS的CI測試主要在Ubuntu上進(jìn)行,但社區(qū)成員的努力使得ROS在其他Linux版本、Mac OS X、Android、Windows等平臺上也具備一定的兼容性,盡管功能支持可能受到一些限制。e8741844-05be-11ef-9118-92fbcf53809c.png圖3ROS軟件集合

e87831ea-05be-11ef-9118-92fbcf53809c.jpg ?ROS的的優(yōu)缺點(diǎn)分析

ROS作為一種廣泛使用的機(jī)器人軟件架構(gòu),為開發(fā)者提供了許多便利,但同時(shí)也存在一些明顯的問題和挑戰(zhàn)。以下是對ROS的優(yōu)缺點(diǎn)進(jìn)行的分析:

1. 優(yōu)點(diǎn)

  • 松散耦合的機(jī)制提供框架:ROS采用了一種松散耦合的設(shè)計(jì),使得各個(gè)組件之間的通信更加靈活和方便。這種設(shè)計(jì)使得開發(fā)者可以根據(jù)需要輕松地添加、刪除或修改功能,而無需對整個(gè)系統(tǒng)進(jìn)行大規(guī)模的修改。
  • 豐富的機(jī)器人功能庫:ROS提供了大量的機(jī)器人功能庫,涵蓋了感知、導(dǎo)航、控制、定位、建圖等多個(gè)方面。這些庫為開發(fā)者提供了豐富的資源,可以加速機(jī)器人應(yīng)用的開發(fā)進(jìn)程。
  • 龐大的用戶群體:ROS在機(jī)器人領(lǐng)域擁有龐大的用戶群體,這意味著開發(fā)者可以更容易地找到幫助、解決問題和分享經(jīng)驗(yàn)。同時(shí),這也促進(jìn)了ROS社區(qū)的發(fā)展,使得ROS不斷完善和進(jìn)步。

  • 免費(fèi)開源:ROS是一個(gè)開源項(xiàng)目,這意味著任何人都可以免費(fèi)地使用其中的代碼、庫和工具。這為開發(fā)者提供了更多的選擇和靈活性,同時(shí)也促進(jìn)了機(jī)器人技術(shù)的普及和發(fā)展。

  • 便利的數(shù)據(jù)記錄、分析、仿真工具:ROS提供了一系列的數(shù)據(jù)記錄、分析和仿真工具,使得開發(fā)者可以更方便地進(jìn)行機(jī)器人系統(tǒng)的測試、調(diào)試和優(yōu)化。

2. 缺點(diǎn):

  • 通信實(shí)時(shí)性能有限:由于ROS的通信機(jī)制是基于消息的發(fā)布/訂閱模式,因此在實(shí)際應(yīng)用中可能會遇到實(shí)時(shí)性能有限的問題。特別是在高負(fù)載或復(fù)雜場景下,通信延遲和丟包等問題可能會影響系統(tǒng)的性能。
  • 系統(tǒng)穩(wěn)定性尚不滿足工業(yè)級要求:雖然ROS在學(xué)術(shù)界和科研領(lǐng)域得到了廣泛應(yīng)用,但在工業(yè)級應(yīng)用中,其系統(tǒng)穩(wěn)定性仍然存在一定的不足。這主要是因?yàn)镽OS在設(shè)計(jì)時(shí)更多地考慮了靈活性和可擴(kuò)展性,而在穩(wěn)定性方面的考慮相對較少。
  • 安全性上沒有防護(hù)措施:ROS的安全性是另一個(gè)值得關(guān)注的問題。由于ROS是一個(gè)開源項(xiàng)目,缺乏統(tǒng)一的安全標(biāo)準(zhǔn)和防護(hù)措施,因此在實(shí)際應(yīng)用中可能會面臨一定的安全風(fēng)險(xiǎn)。例如,惡意攻擊者可能會利用ROS的漏洞進(jìn)行攻擊或破壞。
  • 僅支持Linux(Ubuntu):雖然ROS在Linux系統(tǒng)上得到了廣泛的支持和應(yīng)用,但這也限制了其在其他操作系統(tǒng)上的使用。這可能會使得一些開發(fā)者在選擇ROS時(shí)面臨一些挑戰(zhàn)和限制。
  • 核心機(jī)制的性能沒有優(yōu)化占用資源:ROS的核心機(jī)制在某些情況下可能存在性能瓶頸和資源占用過高的問題。這可能會影響系統(tǒng)的整體性能和效率,尤其是在資源有限的嵌入式系統(tǒng)或移動機(jī)器人上。


e87831ea-05be-11ef-9118-92fbcf53809c.jpg ?ROS2:推動ROS進(jìn)入產(chǎn)業(yè)化與產(chǎn)品化時(shí)代ROS在學(xué)術(shù)界和科研領(lǐng)域取得了顯著的成就。然而,對于工業(yè)界和產(chǎn)業(yè)應(yīng)用而言,原始的ROS版本(即ROS1)存在一些明顯的不足,阻礙了其真正的產(chǎn)業(yè)化與產(chǎn)品化進(jì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)用。

e884bd2a-05be-11ef-9118-92fbcf53809c.png

圖4ROS1和ROS2比較

為了克服這一挑戰(zhàn),ROS2引入了Data Distribution Service(DDS)作為其通信基礎(chǔ)。DDS是一種廣泛應(yīng)用于國防、民航、工業(yè)控制等領(lǐng)域的實(shí)時(shí)系統(tǒng)數(shù)據(jù)發(fā)布/訂閱標(biāo)準(zhǔn)解決方案。通過DDS,ROS2實(shí)現(xiàn)了去中心化的通信方式,允許節(jié)點(diǎn)之間進(jìn)行直接通信,無需依賴于Master節(jié)點(diǎn)。這種分布式通信方式不僅提高了系統(tǒng)的可靠性和穩(wěn)定性,還有助于解決多機(jī)器人系統(tǒng)中的通信問題。

2. 適應(yīng)全平臺與低性能硬件

除了實(shí)時(shí)化和分布式通信外,ROS2還致力于提高其對不同平臺和硬件的適應(yīng)性。在ROS1中,由于其對特定操作系統(tǒng)(如Ubuntu)的依賴,使得其在其他平臺上的應(yīng)用受到限制。而ROS2則致力于實(shí)現(xiàn)跨平臺兼容性,支持更多的操作系統(tǒng)和硬件平臺。此外,ROS2還針對低性能硬件(如MCU+RTOS)進(jìn)行了優(yōu)化。這意味著在資源有限的嵌入式系統(tǒng)或移動機(jī)器人上,ROS2仍然能夠保持良好的性能和效率。3. 數(shù)據(jù)加密與現(xiàn)代編程語言支持

在數(shù)據(jù)安全方面,ROS2引入了數(shù)據(jù)加密機(jī)制,確保通信過程中的數(shù)據(jù)安全性。這一特性對于需要高度安全保護(hù)的工業(yè)應(yīng)用至關(guān)重要。

同時(shí),ROS2還支持現(xiàn)代編程語言,如C++Python。這使得開發(fā)者能夠使用更加高效和靈活的編程工具來開發(fā)機(jī)器人應(yīng)用。

通過引入實(shí)時(shí)化、分布式通信、跨平臺兼容性、低性能硬件適應(yīng)性、數(shù)據(jù)加密以及現(xiàn)代編程語言支持等特性,ROS2為機(jī)器人技術(shù)的產(chǎn)業(yè)化與產(chǎn)品化奠定了堅(jiān)實(shí)的基礎(chǔ)。隨著ROS2的不斷發(fā)展和完善,我們有理由相信它將在未來的機(jī)器人領(lǐng)域中發(fā)揮更加重要的作用。

e87831ea-05be-11ef-9118-92fbcf53809c.jpg ?ROS2環(huán)境安裝ZMC900E支持ROS2的開發(fā),本地安裝的系統(tǒng)是Ubuntu 18.04,可以安裝對應(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è)置語言環(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授權(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. 然后將存儲庫添加到源列表

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è)置存儲庫后,更新apt存儲庫緩存,安裝桌面版

sudo apt update && sudo aptitude install ros-eloquent-desktop

注:安裝過程可能出現(xiàn)問題。

問題1:

GPGerror:http://packages.ros.org/ros2/ubuntubionicInRelease:Thefollowingsignaturescouldn'tbeverifiedbecausethepublickeyisnotavailable:NO_PUBKEYF42ED6FBAB17C654

方案1:

sudoapt-keyadv--keyserverkeyserver.ubuntu.com--recv-keysF42ED6FBAB17C654

經(jīng)過上述操作, eloquent版ROS2安裝完成。


e87831ea-05be-11ef-9118-92fbcf53809c.jpg ?ROS2測試

在終端中,更新配置文件,運(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消息, 如下圖所示,說明安裝成功。e893a72c-05be-11ef-9118-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16033

    瀏覽量

    176656
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    27994

    瀏覽量

    205551
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    276

    瀏覽量

    16919
收藏 人收藏

    評論

    相關(guān)推薦

    使用OPT4003-Q1環(huán)境光傳感進(jìn)行光源檢測

    電子發(fā)燒友網(wǎng)站提供《使用OPT4003-Q1環(huán)境光傳感進(jìn)行光源檢測.pdf》資料免費(fèi)下載
    發(fā)表于 08-28 09:31 ?0次下載
    使用OPT4003-Q1<b class='flag-5'>環(huán)境</b>光傳感<b class='flag-5'>器</b>進(jìn)行光源檢測

    多軸高性能EtherCAT總線運(yùn)動控制器ZMC408CE硬件介紹

    ZMC408CE是正運(yùn)動推出的一款多軸高性能EtherCAT總線運(yùn)動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運(yùn)動控制器可應(yīng)用于各種
    發(fā)表于 04-28 12:40 ?566次閱讀
    多軸高性能EtherCAT總線運(yùn)動<b class='flag-5'>控制器</b><b class='flag-5'>ZMC</b>408CE硬件介紹

    EtherCAT運(yùn)動控制器ROS上的應(yīng)用開發(fā)案例(下)

    本篇文章我們主要介紹正運(yùn)動技術(shù)動態(tài)鏈接庫環(huán)境配置以及EtherCAT運(yùn)動控制器ROS下的單軸運(yùn)動。
    的頭像 發(fā)表于 03-17 11:11 ?787次閱讀
    EtherCAT運(yùn)動<b class='flag-5'>控制器</b>在<b class='flag-5'>ROS</b>上的應(yīng)用開發(fā)案例(下)

    EtherCAT運(yùn)動控制器ROS上的應(yīng)用開發(fā)案例(上)

    本文以正運(yùn)動技術(shù)EtherCAT運(yùn)動控制器ZMC432和ZMC408CE為例,介紹正運(yùn)動技術(shù)運(yùn)動控制器ROS上的應(yīng)用開發(fā)。
    的頭像 發(fā)表于 03-17 11:06 ?1118次閱讀
    EtherCAT運(yùn)動<b class='flag-5'>控制器</b>在<b class='flag-5'>ROS</b>上的應(yīng)用開發(fā)案例(上)

    EtherCAT運(yùn)動控制器ROS上的應(yīng)用(下)

    正運(yùn)動技術(shù)動態(tài)鏈接庫環(huán)境配置以及EtherCAT運(yùn)動控制器ROS下的單軸運(yùn)動。
    的頭像 發(fā)表于 03-13 14:54 ?455次閱讀
    EtherCAT運(yùn)動<b class='flag-5'>控制器</b>在<b class='flag-5'>ROS</b>上的應(yīng)用(下)

    ZMC900E 國產(chǎn)EtherCAT主站控制器 — 電源口傳導(dǎo)騷擾整改

    為確保EtherCAT主站控制器在工業(yè)自動化中的可靠和穩(wěn)定應(yīng)用,EMC測試至關(guān)重要。本文以ZMC900E電源傳導(dǎo)騷擾整改為例,深入解析EMC原理,助您精準(zhǔn)定位問題,避免無效整改。圖1ZMC900E
    的頭像 發(fā)表于 03-07 08:23 ?724次閱讀
    <b class='flag-5'>ZMC900E</b> 國產(chǎn)EtherCAT主站<b class='flag-5'>控制器</b> — 電源口傳導(dǎo)騷擾整改

    EtherCAT運(yùn)動控制器ROS上的應(yīng)用(上)

    本文以正運(yùn)動技術(shù)EtherCAT運(yùn)動控制器ZMC432和ZMC408CE為例,介紹正運(yùn)動技術(shù)運(yùn)動控制器ROS上的應(yīng)用開發(fā)。
    的頭像 發(fā)表于 03-06 11:47 ?1075次閱讀
    EtherCAT運(yùn)動<b class='flag-5'>控制器</b>在<b class='flag-5'>ROS</b>上的應(yīng)用(上)

    系統(tǒng)鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?

    請問一下,百度文庫資料里面,下圖所示的系統(tǒng)鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?與前面4GB版本的鏡像有什么區(qū)別?
    發(fā)表于 03-01 23:06

    【米爾-TIAM62開發(fā)板-接替335x-試用評測】(一)基于TIAM62開發(fā)板的ROS2交叉編譯

    /environment-setup-aarch64-oe-linux修改環(huán)境變量,將編譯換成交叉編譯工具。之后運(yùn)行$CC -v查看結(jié)果 3. ROS2交叉編譯 (1) 準(zhǔn)備工作 首先使要將
    發(fā)表于 12-05 20:58

    在TogetherROS中如何安裝ROS2功能包

    安裝ROS2功能包 接下來,還有一個(gè)很重要的配置,那就是安裝ROS2功能包,我們說TogetherROS是基于ROS2深度優(yōu)化的,很多模塊還
    的頭像 發(fā)表于 12-01 16:02 ?859次閱讀
    在TogetherROS中如何<b class='flag-5'>安裝</b><b class='flag-5'>ROS2</b>功能包

    ROS2中自帶例程測試

    如果你是一個(gè)ROS2的開發(fā)者,可能對剛才我們使用的ROS2命令比較熟悉,這時(shí)你可能也會產(chǎn)生一個(gè)問題:我們之前也安裝ROS2系統(tǒng),那ROS2
    的頭像 發(fā)表于 11-28 16:29 ?838次閱讀
    <b class='flag-5'>ROS2</b>中自帶例程測試

    ros1和ros2的通信模型

    數(shù)據(jù) ROS2: 參與者(DomainParticipant):一個(gè)參與者Participant就是一個(gè)容器,對應(yīng)于一個(gè)使用DDS的用戶,任何DDS的用戶都必須通過Participant來訪問全局
    的頭像 發(fā)表于 11-27 11:26 ?706次閱讀
    <b class='flag-5'>ros</b>1和<b class='flag-5'>ros2</b>的通信模型

    DDS在ROS2中的應(yīng)用

    DDS在ROS2中的應(yīng)用 DDS在ROS2系統(tǒng)中的位置至關(guān)重要,所有上層建設(shè)都建立在DDS之上。在這個(gè)ROS2的架構(gòu)圖中,藍(lán)色和紅色部分就是DDS。 剛才我們也提到,DDS是一種通信的標(biāo)準(zhǔn),就像4G
    的頭像 發(fā)表于 11-24 17:54 ?806次閱讀
    DDS在<b class='flag-5'>ROS2</b>中的應(yīng)用

    ROS中的TF該如何使用

    啟動,之后我們可以控制其中的一只小海龜,另外一只小海龜會自動跟隨運(yùn)動。 ** sudo apt install ros-humble-turtle-tf2
    的頭像 發(fā)表于 11-22 17:24 ?938次閱讀
    <b class='flag-5'>ROS</b>中的TF該如何使用

    ZMC運(yùn)動控制器多任務(wù)編程一

    廣泛應(yīng)用,有效提升生產(chǎn)和運(yùn)行效率。 ZMC運(yùn)動控制器多任務(wù)概念:任務(wù)是執(zhí)行 I/O 刷新和用戶程序等一系列指令處理的功能,一個(gè)任務(wù)是指一個(gè)正在運(yùn)行的程序。如果多個(gè)程序模塊能夠互不干擾的同時(shí)運(yùn)行,則稱為
    發(fā)表于 11-07 09:52