在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 機器人 > 設(shè)計應(yīng)用 > 以馬達控制器ROS1驅(qū)動程序?qū)崿F(xiàn)機器人操作系統(tǒng)

            以馬達控制器ROS1驅(qū)動程序?qū)崿F(xiàn)機器人操作系統(tǒng)

            作者: 時間:2025-01-20 來源: 收藏

            (ROS)是基于產(chǎn)品而開發(fā),因此可直接在ROS生態(tài)系統(tǒng)中使用這些產(chǎn)品。本文概述如何在應(yīng)用、產(chǎn)品和系統(tǒng)(例如自主導(dǎo)航、安全氣泡地圖和數(shù)據(jù)采集機器人)中使用和整合這些;以及如此將如何有助于迅速評估新技術(shù),并避免出現(xiàn)與第三方產(chǎn)品的互操作性問題。
            在本文探討的所有產(chǎn)品中,將重點關(guān)注用于 的ROS,該驅(qū)動程序是用于嵌入式運動控制的完整板級模塊,融合 運動控制專業(yè)知識,以及ADI的模擬技術(shù)和電源設(shè)計技能。

            什么是ROS?
            ROS是機器人中間件,包含一組軟件庫和強大的開發(fā)工具(從驅(qū)動程序到先進算法),可作為機器人系統(tǒng)或應(yīng)用的開發(fā)基礎(chǔ)。ROS涉及多領(lǐng)域(例如消費性電子、工業(yè)、汽車等),支持多個平臺(Linux、Windows、MacOS和一些嵌入式平臺),而且100%開源。得益于來自全球技術(shù)社群的專用資源,ROS可獲得豐富的支持,進而幫助用戶簡化其設(shè)計和應(yīng)用。

            技術(shù)工作原理
            ROS始于2007年,已成為自駕車、工業(yè)機器人、飛行器等領(lǐng)域備受歡迎的機器人開發(fā)原型制作平臺。經(jīng)過不斷發(fā)展,該技術(shù)現(xiàn)在已經(jīng)有兩個版本:和ROS2。和ROS2系統(tǒng)必須相互隔離,但通過ROS橋,這兩個系統(tǒng)之間可進行通訊和交換數(shù)據(jù)。

            本文引用地址:http://www.biyoush.com/article/202501/466493.htm

            表一:和ROS2的主要區(qū)別

            因素

            ROS1

            ROS2

            通訊協(xié)議

            XMLRPC   + TCPROS

            DDS

            構(gòu)建

            ROS 主控制器 + 分布式

            完全分布式

            構(gòu)建系統(tǒng)

            Catkin (基于cmake)

            colcon/ament

            (基于cmake)

            構(gòu)建輸出

            ros_ws/devel

            ros_ws/install

            參數(shù)

            全局參數(shù)服務(wù)器
              動態(tài)重新配置

            每節(jié)點參數(shù)

            發(fā)布

            XML

            Python (+XML、YAML 替代語言)

            命令

            roslaunch、rosrun、rostopic等

            ros2   launch、 ros2 run、 ros2 topic等

            平臺

            主要是ubuntu

            Linux、MacOS、 Windows

            ROS支援的平臺
            ROS Noetic是ROS1的最終版本,將于2025年5月終止支持,而ROS2自2020年6月推出以來則不斷滾動更新發(fā)行版。

            ROS基本概念
            圖一顯示了ROS的一些基本概念,包括功能包、節(jié)點、主題、服務(wù)和消息。

            圖片.png圖片.png
             
            圖一 : ROS基本數(shù)據(jù)流。

            注:對ROS1和ROS2而言,下文討論的ROS基本概念相似。
            功能包
            ROS功能包是ROS程序或節(jié)點的主要組織系統(tǒng)。這是ROS中最核心的構(gòu)建/發(fā)表項。創(chuàng)建ROS功能包時,請務(wù)必設(shè)定專用的ROS工作空間。該工作空間被稱為catkin工作空間,其中catkin是ROS的官方構(gòu)建系統(tǒng)。
            節(jié)點
            ROS節(jié)點是在ROS中創(chuàng)建的可執(zhí)行程序。它們是執(zhí)行特定任務(wù)的進程。ROS節(jié)點可使用ROS客戶端庫(如Python客戶端庫rospy和C++ 客戶端庫roscpp)相互通訊。節(jié)點可以訂閱和/或發(fā)表主題,也可以提供或使用服務(wù)。
            主題
            ROS主題是ROS節(jié)點生成(或者發(fā)表,以ROS術(shù)語而言)的數(shù)據(jù)信道。
            在ROS中,發(fā)表者節(jié)點是主題的廣播者,而訂閱者節(jié)點是主題的收聽者。
            在圖二中,generic_motor_control的節(jié)點是廣播者。/cmd_vel是velocity_ publisher發(fā)表的主題。這表示,velocity_publisher提供基于馬達控制(或命令速度)的速度信息。

            圖片.png
             
            圖二 : 發(fā)表者-訂閱者

            而ros_application的節(jié)點是收聽者,velocity_subscriber訂閱主題/cmd_vel。這表示,velocity_subscriber存取或使用velocity_publisher提供的速度信息。
            消息
            主題是數(shù)據(jù)信道,而消息是數(shù)據(jù),采用與ROS兼容、適用于不同傳感器的格式。
            以下是適用于ROS消息格式的示例傳感器:
            ? 飛時測距(ToF)攝影機:sensor_msgs/Image、sensor_msgs/PointCloud
            ? 慣性測量單元(IMU)傳感器:sensor_msgs/Imu
            ? 馬達控制:geometry_msgs/Twist
            ? 車輪編碼器:geometry_msgs/TwistStamped、geometry_msgs/TwistWithCovarianceStampe

            ROS主題透過發(fā)送消息(主題發(fā)布者)或接收消息(主題訂閱者)進行通訊,并且必須采用匹配的數(shù)據(jù)類型。
            例如,在圖二中,來自velocity_publisher節(jié)點的速度信息(命令速度)希望被velocity_subscriber節(jié)點存取/使用。如果主題發(fā)布者velocity_publisher使用數(shù)據(jù)類型geometry_msgs/Twist,則主題訂閱者velocity_subscriber也應(yīng)使用相同的數(shù)據(jù)類型。

            服務(wù)
            發(fā)表者-訂閱者通訊模式是開放式模式,不適用于分布式系統(tǒng)中通常需要的回復(fù)交互。服務(wù)支持節(jié)點透過發(fā)送請求和接收響應(yīng)進行通訊。發(fā)表者-訂閱者通訊模式使用.srv檔,在這些檔中,指定了請求和響應(yīng)的消息類型等服務(wù)描述。
            服務(wù)是雙向同步通訊模式,其中包含客戶端和服務(wù)器。服務(wù)器節(jié)點提供服務(wù),而客戶端節(jié)點發(fā)送請求并等待服務(wù)器節(jié)點做出回應(yīng)。
            例如,在圖三中,server_node提供服務(wù)SetVelocity.srv以更改命令速度vel。該服務(wù)接受float32格式的速度值,并以字符串格式返回狀態(tài);如果設(shè)置了請求的速度,則為"success";否則,為"FAIL"。

            圖片.png 
            圖三 : 使用服務(wù)示例

            client_node發(fā)送請求,將命令速度設(shè)定為2.5 mbps。server_node收到請求后,立即發(fā)送"success"響應(yīng)。

            將解決方案整合至ROS生態(tài)系統(tǒng)
            ADI是ROS-Industrial聯(lián)盟的正式成員,ROS-Industrial是一個開源項目,旨在將ROS軟件的先進功能擴展到與工業(yè)相關(guān)的硬件與應(yīng)用中。作為該技術(shù)社群的一份子,ADI最初的目標(biāo)是針對工業(yè)領(lǐng)域開發(fā)專用模塊。
            ADI針對不同的專用模塊開發(fā)了ROS驅(qū)動程序。為了展示所開發(fā)的驅(qū)動程序并利用ROS的功能,ADI也開發(fā)了ADI自主移動機器人(ADAM)作為內(nèi)部自主移動平臺(參見圖四)。

            圖片.png 
            圖四 : ADAM

            ADAM:ADI自主移動機器人
            ADAM由ROS提供支持,并搭載ROS支持的不同組件。該平臺展示了ADI的ROS驅(qū)動程序如何整合到移動機器人應(yīng)用中,特別是自主導(dǎo)航應(yīng)用。
            圖五所示為具有不同模塊的ADAM的簡化硬件圖。該ADAM主要連接以下組件:
            ? ADIS16470或IMU傳感器采用精密陀螺儀、加速度計、磁力計和壓力傳感器的多軸組合,這些組件主要用作檢測回饋,用 于改善位置/方向估算。
            ? ADBMS6948是一款多單元電池監(jiān)控器,可測量多達16個串聯(lián)連接的電芯,在整個溫度范圍內(nèi)具有較高的測量精度。
            ? EVAL-ADTF3175D-NXZ或 CMOS ToF提供出色的高分辨率,與深度運算和處理、激光驅(qū)動器、電源管理以及具有參考韌體/軟件的開發(fā)工具相輔相成,可帶來更多優(yōu)勢。
            ? ADI 是用于嵌入式運動控制的完整板級解決方案,融合ADI Trinamic運動控制專業(yè)知識,以及ADI的仿真工藝技術(shù)和電源設(shè)計技能。1

            圖片.png 
            圖五 : ADAM硬件圖

            圖六所示為ADAM的簡化ROS架構(gòu),該ADAM使用ROS驅(qū)動程序和自主導(dǎo)航所需的多個應(yīng)用/算法節(jié)點。IMU數(shù)據(jù)(/imu/data_raw)和ADI Trinamic回饋(/tmc_info)用作姿態(tài)估算的輸入,從而得到機器人的里程測量結(jié)果(/odom)。激光雷達數(shù)據(jù)(/scan) 是用于生成地圖的同步定位與地圖繪制(SLAM)算法的主要輸入;ToF數(shù)據(jù)(/image_raw) 還可用作其他SLAM算法的輸入。然后,move_base節(jié)點 將等待用戶發(fā)出任何目標(biāo)姿態(tài),并向ADI Trinamic馬達控制器發(fā)送速度指令(/cmd_vel),使機器人能夠移動。

            圖片.png
             
            圖六 : ADAM導(dǎo)航堆棧的簡化ROS架構(gòu)。

            ADI Trinamic馬達控制器ROS驅(qū)動程序
            ADI Trinamic馬達控制器(TMC)是用于嵌入式運動控制的完整板級解決方案,融合ADI Trinamic運動控制專業(yè)知識,以及ADI的模擬技術(shù)和電源設(shè)計技能。支援單軸/多軸步進馬達、無刷直流馬達(BLDC)等各類馬達,可用接口包括 CAN、 EtherCAT、RS-232、RS-485 和USB,支持的協(xié)議涵蓋Trinamic運動控制語言(TMCL)、CANopen、 over EtherCAT (CoE)、 CANopen 或 Modbus。
            名為TMCL-IDE的IDE可協(xié)助用戶開發(fā)應(yīng)用并對這些模塊輕松重新編程。該IDE使用TMCL實現(xiàn)獨立操作,或使用標(biāo)準(zhǔn)化CANopen協(xié)議,允許用戶設(shè)定參數(shù)、實時針對資料進行可視化處理,并開發(fā)/調(diào)試獨立應(yīng)用。
            由于TMC使新型智慧執(zhí)行器成為可能,并且隨著ROS而日益普及,尤其是在機器人領(lǐng)域中,我們針對這些模塊開發(fā)了額外的支持,如ROS驅(qū)動程序,進而進一步擴展制造業(yè)和工業(yè)自動化的用例。具體來說,預(yù)計這些ROS驅(qū)動程序?qū)⒛軌蚩刂岂R達的速度、位置或扭矩,以及監(jiān)控馬達控制器和馬達信息。
            TMC ROS驅(qū)動程序與TMCL-IDE提供的功能相似,但其能夠讓支持ROS的系統(tǒng)節(jié)點輕松使用這些TMC,無需安裝任何其他驅(qū)動程序。截至本文發(fā)表之時,該驅(qū)動程序僅支持CAN接口(特別是SocketCAN),其他接口正在開發(fā)中,很快也將提供支持。此處列出目前支持的ADI Trinamic馬達控制器模塊(TMCM)。

            軟件架構(gòu)
            圖七所示為adi_tmcl的簡化軟件架構(gòu)。

            圖片.png
             
            圖七 : adi_tmcl的簡化軟件架構(gòu)

            如圖七所示,由于adi_tmcl使用大多數(shù)Linux系統(tǒng)默認支持的SocketCAN 驅(qū)動程序,所以不需要任何額外的驅(qū)動程序。此外,adi_tmcl具有自己的TMCL協(xié)議解析器,因而能夠理解用戶請求的符合TMCL的發(fā)送/接收指令。作為最后一層,tmcl_ros_node以發(fā)表者、訂閱者和服務(wù)的形式在ROS系統(tǒng)上提供直接接口。每種形式均提供特定的功能,這些功能可選擇使用一組參數(shù)進行配置。

            結(jié)論
            運用ADI Trinamic馬達控制器可實現(xiàn)新型智慧執(zhí)行器。隨著ROS日益普及,尤其是在機器人領(lǐng)域,針對這些模塊開發(fā)額外支持,如ROS驅(qū)動程序,旨在進一步擴展制造業(yè)和工業(yè)自動化用例。
            本文展示ROS如何擴展組件,其帶來的優(yōu)勢為提供附加價值,例如擴展工業(yè)應(yīng)用;透過ROS通訊框架,與第三方產(chǎn)品可輕松實現(xiàn)互操作;提供更廣泛的選項,方便客戶在其系統(tǒng)中選用產(chǎn)品;快速評估新技術(shù)并立即開始使用。
            (本文作者為ADI軟件系統(tǒng)工程師Krizelle Paulene Apostol,資深軟件系統(tǒng)工程師Jamila Macagba及軟件系統(tǒng)設(shè)計工程經(jīng)理Maggie Maralit)



            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉