<dd id="saiiy"></dd>
  1. <s id="saiiy"></s>

    1. <s id="saiiy"></s>
      1. <span id="saiiy"><blockquote id="saiiy"></blockquote></span>

        YouBot機器人動(dòng)態(tài)控制與示教編程研究

        發(fā)布時(shí)間:2025-06-04 09:49:56   來(lái)源:心得體會(huì )    點(diǎn)擊:   
        字號:

        渠慎林,溫秀蘭,唐國寅,伍 凡,倪浩君,赫忠樂(lè )

        (南京工程學(xué)院自動(dòng)化學(xué)院, 江蘇 南京 211167)

        近年來(lái),工業(yè)機器人的發(fā)展逐漸得到重視,為實(shí)現核心技術(shù)自主創(chuàng )新、加快國產(chǎn)替代進(jìn)程,國家出臺了各種相應鼓勵措施,地方也爭相設立發(fā)展目標.我國啟動(dòng)的“中國制造2025”計劃,以智能制造為主攻方向,大力推動(dòng)高檔數控機床和機器人等重點(diǎn)領(lǐng)域的突破發(fā)展[1-2].我國工業(yè)機器人行業(yè)正處于初步產(chǎn)業(yè)化階段,從發(fā)展期逐漸邁向成熟期.機器人作為智能制造中高端裝備的典型代表之一,是衡量一個(gè)國家高端制造業(yè)水平和科技創(chuàng )新水平的重要標志[3].

        目前,有關(guān)教學(xué)機器人的研究成果多以非實(shí)驗研究為主,缺少在教學(xué)實(shí)踐中有效性的檢驗[4].隨著(zhù)人工智能、多傳感器融合等技術(shù)的不斷發(fā)展,加強跨學(xué)科取向的機器人教育課程開(kāi)發(fā)和教學(xué)研究是當下教學(xué)機器人的熱點(diǎn)研究領(lǐng)域[5],很多高校也逐步開(kāi)設了一系列機器人實(shí)踐操作教學(xué)課程.文獻[6]以視覺(jué)教學(xué)機器人為探討對象,開(kāi)展智能機器人實(shí)驗課程,深入剖析其在實(shí)驗教學(xué)中的啟發(fā)作用,以教學(xué)應用為切入點(diǎn),幫助學(xué)生擴展基礎理論知識,積累軟件編程實(shí)戰經(jīng)驗;文獻[7]研究設計了集機、電、控、圖像處理于一體、兼具拖動(dòng)示教與開(kāi)放性實(shí)驗特點(diǎn)的雙臂協(xié)作教學(xué)機器人,通過(guò)設計的上位機完成示教編程和視覺(jué)引導下的雙臂協(xié)作抓取;文獻[8]設計了一種基于上位機控制的拖動(dòng)示教機器人系統,采用混合濾波算法降低了噪聲、誤差積累等對機器人位姿數據采集的影響,該系統與傳統手動(dòng)示教機器人相比,具有示教過(guò)程簡(jiǎn)單、效率高、開(kāi)發(fā)成本低等特點(diǎn);文獻[9]開(kāi)發(fā)了一種具有7個(gè)回轉自由度的冗余關(guān)節式教學(xué)機器人,可以帶動(dòng)末端執行器按照預設的軌跡、位置和姿態(tài)要求完成相應的動(dòng)作,并考慮到面向不同層次、不同對象的實(shí)踐教學(xué)內容及教學(xué)模式,規劃了一系列的實(shí)踐教學(xué)項目.

        為解決實(shí)驗室KUKA YouBot機器人控制復雜、對于初接觸的學(xué)生操作難等問(wèn)題,本文設計一種機械臂動(dòng)態(tài)控制軟件,通過(guò)拖動(dòng)滑條控制機器人各關(guān)節和末端夾持器達到目標位置,通過(guò)ROS_bag功能包記錄運動(dòng)軌跡,完成快速再現示教,讓學(xué)生深入了解工業(yè)機器人底層控制算法的實(shí)現過(guò)程.

        YouBot機器人實(shí)驗平臺組成如圖1所示,由機器人本體和上位機組成.機器人本體包括全方位移動(dòng)底盤(pán)、五軸機械臂、末端夾持器和放置平臺;上位機為一臺裝有Ubuntu系統ROS開(kāi)發(fā)環(huán)境的PC機.

        圖1 YouBot機器人控制實(shí)驗平臺

        本文研究的YouBot控制系統為擴展oodl API[10],它由一組解耦的功能子系統組成,可以視為機器人的一個(gè)高級驅動(dòng)程序.在機器人中,機械臂運動(dòng)關(guān)系可簡(jiǎn)化為五自由度運動(dòng)鏈,其API系統區分了由關(guān)節提供的不同類(lèi)型的數據,其中每個(gè)物理量如電流、電機線(xiàn)圈電阻等都由它自己的類(lèi)型表示,包括已設定內容和未感知數據.設置或獲取機械臂位姿和夾持器數據時(shí),必須依賴(lài)相對應的數據類(lèi)型配置關(guān)節參數組,控制系統支持的參數數量和特性由驅動(dòng)控制器上運行的指令定義.

        2.1 定義配置參數文件

        大多數軟件的配置文件是.cfg格式文件,也是編譯器在內部維護時(shí)所產(chǎn)生的相關(guān)文件.本設計在創(chuàng )建的工作空間下新建名為youbot_dynamic_reconfig動(dòng)態(tài)參數功能包,在創(chuàng )建功能包時(shí)添加rospy、roscpp、dynamic_reconfigure等依賴(lài)項來(lái)編譯建立的python和C++文件;在功能包下新建cfg文件夾,創(chuàng )建DynamicParam.cfg配置文件,該配置文件需要導入dynamic_reconfigure功能包提供參數生成器,4種不同類(lèi)型的參數int_t、double_t、str_t、bool_t由參數生成器定義,基于參數生成器的add name、type、level、description等生成相關(guān)功能參數.

        YouBot機器人搭載的五軸機械臂各關(guān)節扭轉角度即電機角度,單位為rad,表1為設置的機械臂關(guān)節角初始值和關(guān)節角范圍;機器人末端夾持器為二指夾爪,且每指存在單獨的開(kāi)合參數,設置末端夾持器初始參數為0.008 m,開(kāi)合范圍為(0,0.115 m),夾爪最大開(kāi)合值為0.023 m,最大夾持重量為500 g.為防止機械臂和末端夾持器啟動(dòng)時(shí)處于抱死狀態(tài),在動(dòng)態(tài)控制初始狀態(tài)下給予關(guān)節角和夾持器一定參數值.創(chuàng )建的youBot_arm_gripper.cfg部分代碼為:

        --導入參數生成器

        import roslib

        roslib.load_manifest(PACKAGE)from dynamic_reconfigure.parameter_generator_catkin import * PACKAGE = "youbot_ros_simple_trajectory"

        gen = ParameterGenerator()

        --定義機械臂關(guān)節角和二指夾爪初始值和參數范圍

        gen.add("arm1", double_t, 0, "An double radian parameter", 0.11, 0.010069, 5.84014)

        gen.add("arm2", double_t, 0, "An double radian parameter", 0.11, 0.010069, 2.61799)

        gen.add("gripper_r_param", double_t, 0, "An double parameter unit meter", 0.008, 0, 0.0115)

        exit(gen.generate(PACKAGE, "youbot_ros_simple_trajectory", "youbot_arm_gripper"))

        配置文件創(chuàng )建完成后,通過(guò)chmod a+x cfg/DynamicParam.cfg執行命令,為配置文件添加可執行權限.

        表1 機械臂關(guān)節角初始值和范圍 rad

        2.2 創(chuàng )建Server服務(wù)端函數

        基于C++語(yǔ)言,創(chuàng )建Server主函數節點(diǎn).為創(chuàng )建的節點(diǎn)提供加法運算的功能,返回求和之后的結果,需要在程序中包含服務(wù)數據類(lèi)型的頭文件,頭文件根據創(chuàng )建的服務(wù)數據類(lèi)型的描述文件生成.在主函數部分初始化節點(diǎn)、創(chuàng )建節點(diǎn)句柄、指定服務(wù)器的名稱(chēng)以及接收到服務(wù)數據后的回調函數,指令端發(fā)出服務(wù)請求后,Server節點(diǎn)進(jìn)入回調函數進(jìn)行處理,回調函數所傳入的參數結構是服務(wù)數據的類(lèi)型描述文件中定義與反饋的數據結構.部分代碼為:

        --Server主函數

        dynamic_reconfigure::Server server;

        dynamic_reconfigure::Server::CallbackType f;

        f = boost::bind(&callback, _1, _2);

        server.setCallback(f);

        ROS_INFO("Spinning node");

        --數據回調函數

        void callback(youbot_ros_simple_trajectory::youbot_arm_gripperConfig &config, uint32_t level)

        ROS_INFO("Reconfigure request : %f %f %lf %f %f %f %f ",

        config.arm1,

        config.arm2,

        config.arm3,

        config.arm4,

        但無(wú)一例外的是,每天的工作和學(xué)習都像一場(chǎng)真正意義上的修行,它讓我更冷靜地觀(guān)察,更深沉地思考,用更沉潛的心來(lái)體會(huì )。

        config.arm5,

        config.gripper_l_param,

        config.gripper_r_param);

        2.3 創(chuàng )建Client客戶(hù)端函數

        創(chuàng )建Server主函數后要創(chuàng )建相應的Client函數,完成服務(wù)端與客戶(hù)端的數據發(fā)送與接收,Client節點(diǎn)運行后YouBot機器人會(huì )作為客戶(hù)端進(jìn)行數據接收.部分代碼為:

        import roslib;roslib.load_manifest(PACKAGE)

        import rospy

        import dynamic_reconfigure.client

        rospy.loginfo("Config set to {arm1}, {arm2}, {arm3}, {arm4}, {arm5}, {gripper_l_param}, {gripper_r_param}".format(**config))

        2.4 創(chuàng )建動(dòng)態(tài)控制界面

        本設計的控制方法是將機械臂的各關(guān)節角范圍和末端執行器參數放在數組中,當基于rqt_dynamic reconfigure生成動(dòng)態(tài)控制界面完成動(dòng)態(tài)的實(shí)時(shí)控制后,將機械臂的各關(guān)節旋轉參數和二指夾爪開(kāi)合范圍寫(xiě)入同一個(gè)程序,由人機交互界面讀取到參數變量、賦值給數組.在程序中確定可以通過(guò)launch文件或者命令行調整的變量.部分代碼為:

        arm_command.positions[i].joint_uri = jointName.str();

        arm_command.positions[i].value = INIT_POS[i];

        arm_command.positions[i].unit = boost::units::to_string(boost::units::si::radians);

        armPositionsPublisher.publish(arm_command);

        cout << arm_command << endl;

        for( int k = 0; k < NUM_GRIPPER_JOINTS; ++k)

        std::stringstream gripperJointName;

        2.5 配置CMakeList.txt文件

        CMakeList.txt文件是ROS_CMake編譯系統編譯功能包的輸入文件,編譯指令通過(guò)鏈接生成可執行文件,其編譯環(huán)境可以為設計增加多種編譯選項,從而根據需求選擇最合適的方案.在本設計的動(dòng)態(tài)控制配置文件中添加actionlib、control_msgs、std_msgs等編譯依賴(lài)環(huán)境,規定從指定源文件中生成可執行性文件和動(dòng)態(tài)庫.

        3.1 動(dòng)態(tài)控制實(shí)驗驗證

        為了驗證本設計的可行性,創(chuàng )建客戶(hù)端與服務(wù)端后在上位機上啟動(dòng)YouBot機器人,ctrl+alt+t開(kāi)啟終端后指令運行服務(wù)端發(fā)送server、client和control命令,機器人通信及動(dòng)態(tài)控制節點(diǎn)如圖2所示,通過(guò)ros下rqt_graph插件可以看到機器人各個(gè)驅動(dòng)節點(diǎn)已經(jīng)完成通信,server和clien話(huà)題已經(jīng)發(fā)送給輸出端,初始參數下的機器人動(dòng)態(tài)控制軟件界面如圖3所示.

        圖2 機器人通信及動(dòng)態(tài)控制節點(diǎn)圖

        圖3 初始參數下動(dòng)態(tài)控制軟件界面

        通過(guò)調節滑條上滑塊的位置或在右端數值框中輸入目標值來(lái)改變機器人各個(gè)關(guān)節角和末端夾持器的開(kāi)合范圍,可實(shí)現動(dòng)態(tài)調整機械臂位置和姿態(tài)完成高精度抓取任務(wù).實(shí)驗設置機械臂及夾持器位姿參數下動(dòng)態(tài)控制軟件界面如圖4所示.啟動(dòng)動(dòng)態(tài)控制軟件后在右端數值框中輸入圖4中位姿參數值,機器人運動(dòng)到對應參數值下的位置和姿態(tài).

        (a) (0.80,0.80,-3.52,0.50,2.00,0.001,0.001)

        (b) (0.80,1.20,-4.00,1.70,1.32,0.010,0.010)

        (c) (3.50,2.20,-3.50,0.32,1.47,0.011,0.005)

        機械臂各軸和夾持器到達目標位姿時(shí),在仿真環(huán)境下設置相對應的位姿(見(jiàn)圖5),對比發(fā)現,實(shí)際與仿真環(huán)境下機器人位姿一致,驗證了通過(guò)動(dòng)態(tài)控制軟件設置的機器人位置和姿態(tài)的準確性.

        (a) 實(shí)際位姿(a)

        (b) 實(shí)際位姿(b)

        (c) 實(shí)際位姿(c)

        (d) 仿真位姿(a)

        (e) 仿真位姿(b)

        (f) 仿真位姿(c)

        3.2 示教編程實(shí)驗驗證

        基于設計的機器人動(dòng)態(tài)控制軟件,在上位機完成手動(dòng)示教分析.在機器人的工作范圍內放置兩件目標物體,通過(guò)不斷調整機器人抓取姿態(tài)完成盒狀物體和棒狀物體的抓取、放置,如圖6、圖7所示.記錄起始位姿、待抓取位姿、抓取位姿、待放置位姿以及放置位姿下的關(guān)節旋轉角和夾持器開(kāi)合參數,在開(kāi)啟ROS_bag后,輸入上述位姿參數值,ROS_bag記錄動(dòng)態(tài)控制指令發(fā)布出的實(shí)時(shí)數據后,快速完成物體抓取放置示教過(guò)程,將目標再次放回起始位置,通過(guò)數據再現,實(shí)現基于離線(xiàn)數據的目標抓取、放置過(guò)程.通過(guò)對比發(fā)現還原動(dòng)作幾乎完全接近示教動(dòng)作,驗證了此方法下的YouBot機器人示教編程的可行性,可進(jìn)行重復、低成本的分析和調試.

        (a) 示數

        (b) 還原

        (a) 示數

        (b) 還原

        針對KUKA YouBot機器人操作復雜、可控性不高、示教過(guò)程難等問(wèn)題,本文設計了一種基于ROS的動(dòng)態(tài)控制軟件,提出了基于該軟件下的示教編程方法,實(shí)現了該機器人無(wú)需編譯控制算法即可完成對機械臂的動(dòng)態(tài)控制.通過(guò)在線(xiàn)動(dòng)態(tài)調整機械臂位置和姿態(tài)完成目標物體的抓取和示教編程,不僅能夠激發(fā)學(xué)生的學(xué)習興趣和動(dòng)手能力,還對實(shí)驗教學(xué)具有一定的現實(shí)意義.

        猜你喜歡動(dòng)態(tài)控制配置文件位姿基于全過(guò)程動(dòng)態(tài)控制下的建筑工程進(jìn)度管理研究房地產(chǎn)導刊(2022年5期)2022-06-01探究施工階段工程造價(jià)動(dòng)態(tài)控制的方法與策略建材發(fā)展導向(2022年6期)2022-04-18建筑工程造價(jià)特點(diǎn)及動(dòng)態(tài)控制實(shí)施方法探討建材發(fā)展導向(2021年7期)2021-07-16互不干涉混用Chromium Edge電腦愛(ài)好者(2019年20期)2019-12-10基于Zookeeper的配置管理中心設計與實(shí)現鐵路計算機應用(2018年10期)2018-11-09忘記ESXi主機root密碼怎么辦網(wǎng)絡(luò )安全和信息化(2018年5期)2018-11-09為View桌面準備父虛擬機網(wǎng)絡(luò )安全和信息化(2017年4期)2017-11-22工程施工階段造價(jià)動(dòng)態(tài)控制研究湖南城市學(xué)院學(xué)報(自然科學(xué)版)(2016年2期)2016-12-01基于共面直線(xiàn)迭代加權最小二乘的相機位姿估計光學(xué)精密工程(2016年5期)2016-11-07基于CAD模型的單目六自由度位姿測量光學(xué)精密工程(2016年4期)2016-11-07
        国产另类无码专区|日本教师强伦姧在线观|看纯日姘一级毛片|91久久夜色精品国产按摩|337p日本欧洲亚洲大胆精

        <dd id="saiiy"></dd>
        1. <s id="saiiy"></s>

          1. <s id="saiiy"></s>
            1. <span id="saiiy"><blockquote id="saiiy"></blockquote></span>