亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ROS的移動機器人控制系統(tǒng)實現(xiàn)機制與方法

        2019-09-02 11:56:14劉廣亮劉成業(yè)鄭江花
        山東科學 2019年4期
        關(guān)鍵詞:配置文件控制器電機

        劉廣亮,劉成業(yè), 鄭江花

        (齊魯工業(yè)大學(山東省科學院),山東省科學院自動化研究所,山東省機器人與制造自動化技術(shù)重點實驗室,山東 濟南 250014)

        移動機器人由于功能需求不同,結(jié)構(gòu)形式和控制實現(xiàn)方式差別較大。具備相同功能的機器人,不同的生產(chǎn)廠家會采用不同的硬件(如電機、控制器等)和接口協(xié)議,使用的導航、路徑規(guī)劃、機器視覺等相關(guān)算法也不盡相同。一個穩(wěn)定可靠的機器人系統(tǒng)需要將眾多不同的硬件和不同接口協(xié)議算法集成起來,從而成為擴展性強、可配置、接口適應性良好的機器人系統(tǒng)。

        ROS(robot operating system)是面向機器人應用的開源的元操作系統(tǒng)[1],與平常我們理解的計算機操作系統(tǒng)不同,是一種平臺架構(gòu)[2],設(shè)計的主要目的是為機器人研究和開發(fā)者提供框架和代碼復用的支持,因此ROS具有良好的擴展性。ROS提供了大量的工具包和廣泛的庫文件,已經(jīng)形成一種生態(tài)系統(tǒng),擁有大量開發(fā)者支持,提供了一站式的解決方案。

        ROS應用領(lǐng)域眾多,如移動機器人、關(guān)節(jié)機器人、服務機器人、水下機器人等,已經(jīng)成為機器人開放性的標準配置,通過ROS可以實現(xiàn)對已有機器人的二次開發(fā)。百度無人駕駛系統(tǒng)Apollo平臺在設(shè)計中就參考了ROS的系統(tǒng)架構(gòu),同時優(yōu)化了通信機制及數(shù)據(jù)兼容性[3]。

        ROS實現(xiàn)移動機器人運動控制的核心是ros_control設(shè)計與配置,通過自定義,可以實現(xiàn)對不同硬件接口協(xié)議的耦合,滿足不同機器人硬件配置的要求。本文設(shè)計了移動機器人控制架構(gòu),基于ros_control控制機制,配置差速運動控制器和機械臂關(guān)節(jié)控制器,設(shè)計了RobotHW硬件控制接口,采用CAN協(xié)議實現(xiàn)數(shù)據(jù)底層通信,完成對移動機器人的運動控制??刂破髟O(shè)計部分可以通過修改配置文件中的參數(shù),在不用重新編譯源代碼的情況下實現(xiàn)對機器人的靈活配置,以適應不同機器人的結(jié)構(gòu)形式和控制模式。

        1 移動機器人控制架構(gòu)

        系統(tǒng)總體架構(gòu)包括遙控端和本體端兩大部分[2,4](圖1),遙控端與本體端之間通過遠程通信模塊進行通信。遠程通信模塊可以實現(xiàn)數(shù)據(jù)和圖像長距離穩(wěn)定通信,可視通信距離可以達到1 km。

        1.1 遙控端

        遙控端由操控計算機、顯示屏、操控桿、視頻服務器、數(shù)傳模塊和圖傳模塊等6部分組成。操控計算機負責發(fā)出控制指令并接收本體端的數(shù)據(jù)信息,顯示屏完成實時遠程視頻圖像監(jiān)控,同時監(jiān)控車體姿態(tài)、電流電壓以及其他探測傳感器信息。

        操控部分包括搖桿操控、鍵盤或者屏幕的鼠標操控,系統(tǒng)可以同時適應不同操控模式,實現(xiàn)對機器人的遠程操控。

        遠程通信模塊包括數(shù)傳模塊和圖傳模塊,圖傳模塊負責接收機器人本體端的視頻信息并顯示在監(jiān)視器上,數(shù)傳模塊負責操控端指令下達和車體數(shù)據(jù)接收。

        1.2 本體端

        機器人本體端由車載計算機、電源模塊、視覺系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、運動控制系統(tǒng)、數(shù)傳模塊和圖傳模塊等7部分組成。

        車載計算機是核心,負責機器人系統(tǒng)運算和各部分的通信。

        視覺系統(tǒng)負責機器人視頻和圖像采集,機器人本體由多部攝像機提供視頻和圖像,包括左右云臺攝像機、全景攝像系統(tǒng)和機械臂端攝像機。視覺系統(tǒng)根據(jù)遠程操控端指令分別提供各個攝像機圖像視頻信息,經(jīng)處理后通過圖傳模塊發(fā)送給遠程操控端。

        數(shù)據(jù)采集系統(tǒng)負責傳感器的數(shù)據(jù)采集,經(jīng)處理后發(fā)送給遠程操控端顯示。傳感器包括姿態(tài)傳感器、超聲避障傳感器、激光雷達和Kinect相機。

        運動控制系統(tǒng)包括車體運動控制和機械臂運動控制部分。

        2 ros control架構(gòu)與設(shè)計

        針對機器人的控制,ROS系統(tǒng)提供了獨立開發(fā)包ros_control,ros_control是ROS為開發(fā)者提供的應用系統(tǒng)與機器人載體之間的中間件,包含控制器接口、傳動裝置接口、硬件接口、控制器工具箱等功能包。用戶可以在ros_control已有功能包基礎(chǔ)上,根據(jù)接口協(xié)議編寫硬件接口,簡單而快速地完成機器人應用的開發(fā)[5](圖2)。

        圖2 ros_control 實現(xiàn)機制Fig.2 ros_control implementation mechanism

        開發(fā)者要真正實現(xiàn)對機器人的控制,需要根據(jù)機器人具體設(shè)計指標要求進行設(shè)計和配置工作,實現(xiàn)控制系統(tǒng)對不同硬件環(huán)境條件的適應,因為不同的硬件(如不同的伺服電機、編碼器)需要不同的硬件接口協(xié)議設(shè)計,同時要在配置文件中進行參數(shù)配置(如速度和加速度等),從而保證控制系統(tǒng)的靈活性和可擴展性。

        2.1 控制系統(tǒng)的設(shè)計與配置

        控制系統(tǒng)的設(shè)計與配置工作主要包括控制器設(shè)計、控制器配置、硬件接口配置、硬件接口設(shè)計、硬件通信實現(xiàn)5個部分。

        控制器設(shè)計是根據(jù)機器人功能要求設(shè)計自己的定制控制器。在ros_control中內(nèi)置很多控制器,如Diff_drive_controller、effort_controllers、joint_state_controller、position_controllers、velocity_controllers、joint_trajectory_controllers等。本文的機器人控制主要用到了Diff_drive_controller、joint_state_controller、velocity_controllers、joint_trajectory_controllers。因為控制設(shè)計沒有特殊要求,所以直接使用了ros_control基礎(chǔ)包,然后進行必要的控制配置就可以實現(xiàn)所要求的功能。

        控制器配置主要是對每個控制器具體參數(shù)進行配置,如機器人差速運動參數(shù)包括左右輪對應關(guān)節(jié)、左右輪直徑、輪距、更新頻率、速度限制、加速度限制等。通過參數(shù)配置實現(xiàn)對機器人運動速度進行S曲線[6]平滑,保證運動速度控制穩(wěn)定連續(xù)流暢,避免了手動控制時控制速度值的跳動。

        2.2 硬件接口配置與設(shè)計

        硬件接口配置是指不同硬件(如電機)具有不同通信參數(shù)(如通信方式和地址)和通信協(xié)議,系統(tǒng)提供專門的配置文件進行參數(shù)配置。例如電機通信參數(shù)設(shè)置我們是通過配置電機參數(shù)文件(motors_spec.yaml)來完成。在此文件中可以配置電機轉(zhuǎn)速、力矩參數(shù)、位置讀取和寫入地址、速度讀取和寫入地址、電流讀取和寫入地址等參數(shù)。這些配置參數(shù)將被繼承自RobotHW的接口類讀取到,并用于接口通信和兩輪差速運動控制中。

        硬件接口設(shè)計是指在兩輪差速運動模型中,差速運動控制器需要對每個輪運動速度進行穩(wěn)定流暢的控制,而運動速度是由電機轉(zhuǎn)速決定的,如何實現(xiàn)對不同型號電機的控制是ros_control功能包設(shè)計的關(guān)鍵。在圖2中可以看到,對電機控制是通過RobotHW接口來實現(xiàn)的。我們設(shè)計了接口類GammabotHW ,繼承自 hardware_interface::RobotHW。在接口類GammabotHW中可以監(jiān)聽遙控桿節(jié)點發(fā)出的以cmd_vel為話題(topic)的控制信息即Twist消息。Twist消息包含了機器人運動的線速度和角速度信息,二者又分別包括了3個運動方向的線速度和3個角度方向的角速度。

        在兩輪差速運動中,只是用到一個運動方向的線速度值和一個水平轉(zhuǎn)向的角速度值。接口類GammabotHW監(jiān)聽到搖桿發(fā)出的消息中的這兩個速度值,同時結(jié)合read函數(shù)讀取的當前機器人速度值和配置文件速度加速度控制策略,依據(jù)S曲線模型[6]進行速度值平滑優(yōu)化,得到最優(yōu)速度值,然后再通過write函數(shù)下達指令。

        接口類GammabotHW中實現(xiàn)的另一個重要功能是建立循環(huán)進程,實時執(zhí)行read和write操作。read函數(shù)完成電機轉(zhuǎn)速的讀取,write函數(shù)完成電機運轉(zhuǎn)速度指令下達。實時性是由ros_control差速運動模型來保證。

        硬件通信的底層實現(xiàn)核心是read和write函數(shù)的功能實現(xiàn),由電機控制器的通信系統(tǒng)來完成。采用PCAN-Basic API通信方式,在硬件上,通過USB轉(zhuǎn)CAN硬件設(shè)備實現(xiàn)與電機控制器的數(shù)據(jù)通信。在通信軟件系統(tǒng)中,按照CAN通信協(xié)議和電機控制器指令協(xié)議,設(shè)計了PCAN-USB的通信模塊接口類和串口通信協(xié)議,實現(xiàn)了電機指令的底層數(shù)據(jù)傳輸。

        構(gòu)建主要的ROS功能包和接口層,見表1~2。

        表1 主要的ROS功能包

        表2 主要接口層

        3 實現(xiàn)步驟

        通過ros_control控制機制實現(xiàn)對機器人運動的控制,必須按照ros_control的機制模式與步驟進行編程設(shè)計和配置。ros_control的運動控制機制設(shè)計實現(xiàn)步驟包括4個部分(圖3):上層配置文件、配置服務器、硬件接口層設(shè)計和硬件執(zhí)行層設(shè)計[7-8]。

        圖3 ros_control 接口實現(xiàn)Fig.3 Interface implementation of ros_control

        機器人運行控制系統(tǒng)編寫具體實現(xiàn)包括如下步驟:

        3.1 編寫上層配置文件

        機器人系統(tǒng)包括遠程操控端和車體端兩個系統(tǒng)部分,因此上層配置文件也包括了遠程操控端和車體端兩個部分。車體端配置文件是gammbot_bringup包中的gammabot.launch,此文件主要由3個部分的內(nèi)容組成:系統(tǒng)參數(shù)設(shè)置、系統(tǒng)啟動節(jié)點和啟動其他模塊或服務的launch啟動文件。系統(tǒng)參數(shù)設(shè)置中可以設(shè)置是否可以啟動或停止某些傳感器(如深度相機)的啟動、端口參數(shù)設(shè)置以及是否仿真運行等。系統(tǒng)需要的啟動節(jié)點主要有robot_state_publisher、gammabot_services_node。gammabot.launch中執(zhí)行的其他啟動文件有g(shù)ammabot_hw.launch(接口啟動文件)、gammabot_hw_controllers.launch(控制器啟動文件)、twist_mux.launch(多路復用姿態(tài)信息控制啟動文件)等。

        遠程操控端的配置啟動文件是gammabot_gui包中的showgui.launch文件,在此文件中啟動gammabot_gui節(jié)點用來顯示監(jiān)控屏幕,同時啟動joy_node節(jié)點接收遙控桿控制信息。

        3.2 配置服務器

        ROS另一個強大功能就是參數(shù)配置服務器。用戶可以在launch文件中直接配置節(jié)點參數(shù),也可通過加載參數(shù)文件(一般為yaml格式文件)配置參數(shù),系統(tǒng)啟動后參數(shù)自動加載,用戶就可以在系統(tǒng)的其他部分通過參數(shù)服務器調(diào)用或者設(shè)置參數(shù)。系統(tǒng)中的參數(shù)文件包括遙控桿配置參數(shù)文件(joy_profiles.yaml)、控制器配置文參數(shù)文件(gammabot_control.yaml)、仿真參數(shù)文件(gammabot_gazebo.xacro)、關(guān)節(jié)配置文件(joints_config.yaml)、電機配置文件(motors_spec.yaml)等。

        3.3 編寫硬件接口層

        依據(jù)ros_control的設(shè)計機制[9],在硬件接口層我們構(gòu)建3層架構(gòu)模式:接口管理層(GammabotHW)、接口配置層和接口實現(xiàn)層。

        接口管理層(GammabotHW)通過接口注冊函數(shù)完成各類接口的注冊,執(zhí)行實時監(jiān)聽消息。同時建立循環(huán)進程,循環(huán)執(zhí)行的read和write完成狀態(tài)讀取和指令下達。接口配置層包括差速運動控制接口配置類(BaseDiffDrive)、機械臂控制配置類(ArmBuilder)、控制板控制配置類(BaseboardPub),主要完成從ROS讀取在步驟2中配置的參數(shù),并調(diào)用接口執(zhí)行。接口實現(xiàn)層包括差速運動接口類(DiffDrive、Motor)、機械臂運動接口類(ArmhwInterface)、控制板控制接口類(MbdInterface),具體完成運動控制實現(xiàn),調(diào)用通信層實現(xiàn)與底層硬件(控制板和電機等)數(shù)據(jù)交互。

        3.4 編寫硬件執(zhí)行層

        此部分采用了CAN通信方式,通過編寫獨立的CAN通信模塊來完成。Motor類通過CAN通信接口完成電機讀寫操作。

        圖4 移動機器人探測抓取放射源Fig.4 Detecting and capturing radioactive source by mobile robot

        這樣,基于ROS移動探測作業(yè)機器人的控制系統(tǒng),實現(xiàn)了機器人本體運動、云臺控制、六軸機械臂控制、圖像采集、IMU姿態(tài)數(shù)據(jù)采集以及探測傳感器數(shù)據(jù)采集等功能。

        4 樣機測試

        研發(fā)的移動探測作業(yè)機器人樣機經(jīng)過測試(圖4),機器人能夠自動探測環(huán)境輻射劑量率,并給出放射源方位信息。操作人員遠程操控機器人找到放射源,并借助遠程視頻監(jiān)視系統(tǒng)操作機器人機械手臂及抓手,實現(xiàn)對放射源進行拾取和有效處置。

        5 結(jié)論

        本文采用ros_control控制機制,設(shè)計實現(xiàn)了機器人差速運動控制系統(tǒng),系統(tǒng)具有良好擴展性和定制化可配置能力,通過設(shè)置配置文件的不同參數(shù)和定制化硬件接口協(xié)議,可以快速適用不同硬件的機器人控制系統(tǒng)。研發(fā)的機器人樣機系統(tǒng)可以適應不同的電機驅(qū)動模式、通信接口、速度與加速度控制模式、攝像視頻系統(tǒng)以及機械臂結(jié)構(gòu)形式等,同時系統(tǒng)支持搖桿、鼠標、鍵盤等多種操控方式,具有方便、靈活、遠程操控功能。所有這些適應不同機器人的硬件配置組合都可以通過配置文件參數(shù)修改或者模塊定制化接口實現(xiàn)快速切換。

        但是,基于ROS搭建的機器人控制系統(tǒng)也存在結(jié)構(gòu)松散、通信阻塞和穩(wěn)定性等方面的不足。因此,我們下一步將在原有機器人控制系統(tǒng)的基礎(chǔ)上,在集中式控制、通信接口模塊和前端交互模塊進行優(yōu)化設(shè)計,在已完成輪式電池驅(qū)動探測機器人樣機的基礎(chǔ)上,繼續(xù)開展液壓驅(qū)動和內(nèi)燃機驅(qū)動移動探測機器人控制系統(tǒng)的研究。

        猜你喜歡
        配置文件控制器電機
        提示用戶配置文件錯誤 這樣解決
        關(guān)于電機滾動軸承的選擇與計算
        防爆電機(2021年3期)2021-07-21 08:13:00
        瞻望電機的更新?lián)Q代
        防爆電機(2021年1期)2021-03-29 03:02:52
        歡迎訂閱2022年《電機與控制應用》
        搭建簡單的Kubernetes集群
        互不干涉混用Chromium Edge
        忘記ESXi主機root密碼怎么辦
        電機隱憂
        能源(2016年2期)2016-12-01 05:10:31
        模糊PID控制器設(shè)計及MATLAB仿真
        MOXA RTU控制器ioPAC 5542系列
        自動化博覽(2014年9期)2014-02-28 22:33:17
        日韩a无v码在线播放| 视频一区二区三区国产| 美利坚合众国亚洲视频| 国产日韩厂亚洲字幕中文| 97人人模人人爽人人喊网| 蜜臀av性久久久久蜜臀aⅴ| 99热最新在线观看| 天堂网av在线| 国产午夜精品久久精品| 完整版免费av片| 又大又紧又粉嫩18p少妇| 成人免费毛片内射美女-百度 | 精品无码国产自产在线观看水浒传| 色综合久久久久久久久久 | 老色鬼永久精品网站| 好爽要高潮了在线观看| 国产极品大奶在线视频| 少妇裸体性生交| 亚洲精品97久久中文字幕无码| 亚洲最大无码AV网站观看| 精品人妻一区二区三区av| av在线免费观看大全| 丰满的人妻hd高清日本| 野花社区www高清视频| 亚洲成a人片在线观看中文!!!| 亚洲国产精品天堂久久久| 亚洲最大中文字幕熟女| 欧美成免费a级毛片| 国产av无码专区亚洲av手机麻豆| 黄片在线观看大全免费视频| av网站不卡的av在线| 欧美成人国产精品高潮| 9lporm自拍视频区| 激情 一区二区| 色婷婷久久综合中文久久一本| 无码专区一ⅴa亚洲v天堂| 国产 字幕 制服 中文 在线| 亚洲另在线日韩综合色| 精品国产麻豆免费人成网站| 久久熟妇少妇亚洲精品| 无码不卡av东京热毛片|