<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 傳感技術 > 正文

    實現機器人操作系統——ADI Trinamic電機控制器ROS1驅動程序簡介

    發布時間:2024-04-24 來源:ADI公司 責任編輯:lina

    【導讀】機器人操作系統(ROS)驅動程序基于ADI產品而開發,因此可直接在ROS生態系統中使用這些產品。本文將概述如何在應用、產品和系統(例如,自主導航、安全氣泡地圖和數據收集機器人)中使用和集成這些驅動程序;以及這樣將如何有助于迅速評估新技術,并避免出現與第三方產品的互操作性問題。

      

    摘要


    機器人操作系統(ROS)驅動程序基于ADI產品而開發,因此可直接在ROS生態系統中使用這些產品。本文將概述如何在應用、產品和系統(例如,自主導航、安全氣泡地圖和數據收集機器人)中使用和集成這些驅動程序;以及這樣將如何有助于迅速評估新技術,并避免出現與第三方產品的互操作性問題。在本文探討的所有產品中,將重點關注最近發布的用于ADI Trinamic?電機控制器的ROS驅動程序,該驅動程序是用于嵌入式運動控制的完整板級模塊,融合ADI Trinamic運動控制專業知識,以及ADI的模擬工藝技術和電源設計技能。1


    什么是ROS?


    ROS是機器人中間件,包含一組軟件庫和強大的開發工具(從驅動程序到先進算法),可作為機器人系統或應用的開發基礎。ROS涉及多領域(例如,消費電子、工業、汽車等),支持多個平臺(Linux、Windows、MacOS和一些嵌入式平臺),而且100%開源,并提供商業選項。得益于來自全球技術社區的專用資源,ROS可獲得豐富的支持,從而幫助用戶簡化其設計和應用。


    該技術的工作原理是什么?


    ROS始于2007年,已成為自動駕駛汽車、工業機器人、飛行器等領域備受歡迎的機器人開發原型制作平臺。經過不斷發展,該技術現在有兩個版本:ROS1和ROS2。


    ROS1和ROS2系統必須相互隔離,但通過ROS橋,這兩個系統之間可進行通信和交換數據。


    表1.ROS1和ROS2的主要區別2


    因素

    ROS1

    ROS2

    通信協議

    XMLRPC + TCPROS

    DDS

    架構

    ROS主控制器 + 分布式

    完全分布式

    構建系統

    Catkin(基于cmake)

    colcon/ament(基于cmake)

    構建輸出

    ros_ws/devel

    ros_ws/install

    參數

    全局參數服務器動態重新配置

    每節點參數

    發布

    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月推出以來,不斷滾動更新發行版。


    如需獲取完整列表,請查看這些鏈接,以了解ROS1支持的平臺和ROS2支持的平臺。


    ROS基本概念


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


    實現機器人操作系統——ADI Trinamic電機控制器ROS1驅動程序簡介

    圖1.ROS基本數據流。


    注:對ROS1和ROS2而言,下文討論的ROS基本概念相似。


    功能包

    ROS功能包是ROS程序或節點的主要組織系統。這是ROS中最核心的構建/發布項。創建ROS功能包時,請務必設置專用的ROS工作空間。該工作空間被稱為catkin工作空間,其中catkin是ROS的官方構建系統。


    節點

    ROS節點是在ROS中創建的可執行程序。它們是執行特定任務的進程。ROS節點可使用ROS客戶端庫(如Python客戶端庫rospy和C++客戶端庫roscpp)相互通信。節點可以訂閱和/或發布主題,也可以提供或使用服務。3


    主題

    ROS主題是ROS節點生成(或者發布,用ROS的術語來說)的數據通道。


    在ROS中,發布者節點是主題的廣播者,而訂閱者節點是主題的收聽者。


    在圖2中,generic_motor_control的節點是廣播者。/cmd_vel是velocity_publisher發布的主題。這表示,velocity_publisher提供基于電機控制(或命令速度)的速度信息。


    而ros_application的節點是收聽者,velocity_subscriber訂閱主題/cmd_vel。這表示,velocity_subscriber訪問或使用velocity_publisher提供的速度信息。


    實現機器人操作系統——ADI Trinamic電機控制器ROS1驅動程序簡介

    圖2.發布者-訂閱者。


    消息

    主題是數據通道,而消息是數據,采用與ROS兼容、適用于不同傳感器的格式。


    以下是適用于ROS消息格式的示例傳感器:

    ?飛行時間(ToF)攝像頭:sensor_msgs/Image、sensor_msgs/PointCloud

    ?慣性測量單元(IMU)傳感器:sensor_msgs/Imu

    ?電機控制:geometry_msgs/Twist

    ?車輪編碼器:geometry_msgs/TwistStamped、geometry_msgs/ TwistWithCovarianceStamped


    ROS主題通過發送消息(主題發布者)或接收消息(主題訂閱者)進行通信,并且必須采用匹配的數據類型。


    例如,在圖2中,來自velocity_publisher節點的速度信息(命令速度)希望被velocity_subscriber節點訪問/使用。如果主題發布者velocity_publisher使用數據類型geometry_msgs/Twist,則主題訂閱者velocity_subscriber也應使用相同的數據類型。


    服務


    發布者-訂閱者通信模式是開放式模式,不適用于分布式系統中通常需要的回復交互。4


    服務支持節點通過發送請求和接收響應進行通信。發布者-訂閱者通信模式使用.srv文件,在這些文件中,指定了請求和響應的消息類型等服務描述。


    服務是雙向同步通信模式,其中包含客戶端和服務器。服務器節點提供服務,而客戶端節點發送請求并等待服務器節點做出響應。


    例如,在圖3中,server_node提供服務SetVelocity.srv以更改命令速度vel。該服務接受float32格式的速度值,并以字符串格式返回狀態;如果設置了請求的速度,則為“success”;否則,為“FAIL”。


    實現機器人操作系統——ADI Trinamic電機控制器ROS1驅動程序簡介

    圖3.使用服務示例。


    client_node發送請求,將命令速度設置為2.5 mbps。server_node收到請求后,立即發送“success”響應。


    將ADI解決方案集成到ROS生態系統中


    ADI是ROS-Industrial聯盟的正式成員,ROS-Industrial是一個開源項目,旨在將ROS軟件的高級功能擴展到與工業相關的硬件與應用。5作為該技術社區的一份子,ADI最初的目標是面向工業領域開發專用模塊。


    ADI針對不同的專用模塊開發了ROS驅動程序。為了展示所開發的驅動程序并利用ROS的功能,ADI公司開發了ADI自主移動機器人(ADAM)作為內部自主移動平臺(參見圖4)。


    實現機器人操作系統——ADI Trinamic電機控制器ROS1驅動程序簡介

    圖4.ADAM。


    ADAM:ADI自主移動機器人


    ADAM由ROS提供支持,并搭載ROS支持的不同器件。該平臺展示了ADI公司的ROS驅動程序如何集成到移動機器人應用中,特別是自主導航應用。


    圖5所示為具有不同模塊的ADAM的簡化硬件圖。該ADAM主要連接以下器件:

    ?ADIS16470IMU傳感器采用精密陀螺儀、加速度計、磁力計和壓力傳感器的多軸組合,這些器件主要用作檢測反饋,用于改善位置/方向估算。

    ?ADBMS6948是一款多單元電池監控器,可測量多達16個串聯連接的電芯,在整個溫度范圍內具有較高的測量精度。

    ?EVAL-ADTF3175D-NXZ或CMOS ToF提供出色的高分辨率,與深度計算和處理、激光驅動器、電源管理以及具有參考固件/軟件的開發工具相輔相成,可帶來更多優勢。

    ?ADI Trinamic電機控制器是用于嵌入式運動控制的完整板級解決方案,融合ADI Trinamic運動控制專業知識,以及ADI的模擬工藝技術和電源設計技能。1


    實現機器人操作系統——ADI Trinamic電機控制器ROS1驅動程序簡介

    圖5.ADAM的簡化硬件圖。


    圖6所示為ADAM的簡化ROS架構,該ADAM使用ROS驅動程序和自主導航所需的多個應用/算法節點。IMU數據(/imu/data_raw)和ADI Trinamic電機控制器反饋(/tmc_info)用作姿態估算的輸入,從而得到機器人的里程測量結果(/odom)。激光雷達數據(/scan)是用于生成地圖的同步定位與地圖繪制(SLAM)算法的主要輸入;ToF數據(/image_raw)還可用作其他SLAM算法的輸入。然后,move_base節點將等待用戶發出任何目標姿態,并向ADI Trinamic電機控制器發送速度命令(/cmd_vel),使機器人移動。


    實現機器人操作系統——ADI Trinamic電機控制器ROS1驅動程序簡介

    圖6.ADAM導航堆棧的簡化ROS架構。


    ADI Trinamic電機控制器ROS驅動程序


    ADI Trinamic電機控制器(TMC)是用于嵌入式運動控制的完整板級解決方案,融合ADI Trinamic運動控制專業知識,以及ADI的模擬工藝技術和電源設計技能。1支持單軸/多軸步進電機、無刷直流電機(BLDC)等各類電機,可用接口包括CAN、EtherCAT?、RS-232、RS-485和USB,支持的協議涵蓋Trinamic運動控制語言(TMCL?)、CANopen? over EtherCAT (CoE)、CANopen或Modbus。1


    名為TMCL-IDE的IDE可幫助用戶開發應用并對這些模塊輕松重新編程。該IDE使用TMCL實現獨立操作,或使用標準化CANopen?協議,允許用戶設置參數、實時對數據進行可視化處理,并開發/調試獨立應用。


    由于TMC使新型智能執行器成為可能,并且隨著ROS日益普及,尤其是在機器人領域,我們針對這些模塊開發了額外支持,如ROS驅動程序,從而進一步擴展制造業和工業自動化的用例。具體來說,預計這些ROS驅動程序將能夠:

    ?控制電機的速度、位置或扭矩

    ?監控電機控制器和電機信息


    TMC ROS驅動程序與TMCL-IDE提供的功能相似,但它能夠讓支持ROS的系統節點輕松使用這些TMC,無需安裝任何其他驅動程序。截至本文發表之時,該驅動程序僅支持CAN接口(特別是SocketCAN),其他接口正在開發中,很快也將提供支持。


    此處列出了目前支持的ADI Trinamic電機控制器模塊(TMCM)。


    軟件架構


    圖7所示為adi_tmcl的簡化軟件架構。


    如圖7所示,由于adi_tmcl使用大多數Linux系統默認支持的SocketCAN驅動程序,所以不需要任何額外的驅動程序。此外,adi_tmcl具有自己的TMCL協議解析器,因而能夠理解用戶請求的符合TMCL的發送/接收命令。作為最后一層,tmcl_ros_node以發布者、訂閱者和服務的形式在ROS系統上提供直接接口。每種形式均提供特定的功能,這些功能可使用以下部分詳細介紹的一組參數進行配置。


    實現機器人操作系統——ADI Trinamic電機控制器ROS1驅動程序簡介

    圖7.adi_tmcl的簡化軟件架構。


    特性

    adi_tmcl提供一系列特性,包括:

    1.     支持不同的TMC板

    2.      使用TMCL-IDE對TMC模塊進行一次性配置

    3.      移動/停止電機

    4.      能夠獲取TMC/電機信息

    5.      執行自定義TMC命令

    6.      能夠獲取所有軸參數值

    7.     能夠獲取所有全局參數值

    8.      支持多個TMC板設置

    9.      輕松集成到ROS系統/應用中


    敬請關注下月《模擬對話》中的文章“掌控搭載ROS1驅動程序的Trinamic電機控制器”,文中將詳細探討這些特性,并舉例說明如何使用這些特性。


    結論


    利用ADI Trinamic電機控制器可實現新型智能執行器。隨著ROS日益普及,尤其是在機器人領域,我們針對這些模塊開發了額外支持,如ROS驅動程序,旨在進一步擴展制造業和工業自動化用例。

    在本文中,我們展示了ROS如何擴展器件,帶來以下優勢:

    ?提供附加價值,比如擴展工業應用;

    ?通過ROS通信框架,與第三方產品可輕松實現互操作;

    ?提供更廣泛的選項,方便客戶在其系統中選用ADI產品;

    ?快速評估新技術并立即開始使用。


    探索永不停息

    ?敬請關注有關ADI Trinamic電機控制器ROS1驅動程序的文章,深入了解相關信息

    ?敬請關注未來發表的有關用于ADI Trinamic電機控制器的ROS2的文章

    ?下載ADI Trinamic電機控制器ROS1ROS2驅動程序

    ?購買ADI Trinamic電機和電機控制器評估板


    參考文獻

    1“用于電機和運動控制的ADI Trinamic硬件?!盇DI公司

    2“ros2/ros2_documentation。” GitHub, Inc.

    3“了解ROS節點?!?ROS.org.

    4“服務?!盧OS.org.

    5“ROS-Industrial。”ROS.org.

    適合運動控制應用的工業通信協議和接口。”ADI公司

    (來源:ADI公司,作者:Krizelle Paulene Apostol,軟件系統工程師;Jamila Macagba,軟高級件系統工程師;Maggie Maralit,軟件系統涉及工程經理)


    免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理。


    推薦閱讀:

    ST 的RS-485收發器兼備傳輸穩定性與速度,適用于工業自動化、智能建筑和機器人

    羅姆集團旗下SiCrystal與意法半導體新簽協議,擴大碳化硅襯底供應

    MCX N系列微處理器之NPU使用方法簡介

    自主移動機器人的發展方向與解決方案

    電動壓縮機設計-ASPM模塊篇


    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    国产 日韩 中文字幕 制服| 国产99久久九九精品无码| 亚洲AV中文无码乱人伦在线视色| 久久无码AV一区二区三区| 亚洲乳大丰满中文字幕| 国产精品无码免费专区午夜| 亚洲AV人无码综合在线观看| 日韩欧美中文字幕一字不卡 | 精品久久久久久无码中文野结衣| 国产高新无码在线观看| 无码精品国产VA在线观看| 国产台湾无码AV片在线观看| 久久99中文字幕久久| 无码高清不卡| 久久亚洲精品无码播放| 国产高新无码在线观看| AV无码精品一区二区三区| 久久亚洲AV成人无码电影| 亚洲AV无码成人网站久久精品大| 免费无码又爽又刺激高潮软件| 亚洲日本中文字幕天堂网| 最近免费中文字幕mv电影| 中文字幕高清在线| 中文字幕本一道先锋影音| 中文字幕精品视频| 日韩乱码人妻无码中文视频| 日本久久中文字幕| 人妻无码精品久久亚瑟影视| 免费无码av片在线观看| 在线a亚洲v天堂网2019无码| 亚洲情XO亚洲色XO无码| 亚洲AV永久无码区成人网站| 无码专区永久免费AV网站| 无码精品久久久天天影视| 久久精品无码专区免费东京热| 日韩一区二区三区无码影院 | 久久久精品无码专区不卡| 久久人妻少妇嫩草AV无码蜜桃| 亚洲av中文无码| 最近2019免费中文字幕6| 精品久久久久久久久久中文字幕 |