亚洲精华国产精华精华液网站,你懂的,娇生惯养4ph归寻(矜以),丰年经继拇中文3与其他教材比较

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 運動控制卡應用開發教程之ROS(下)

運動控制卡應用開發教程之ROS(下)

時間:2020-12-29 09:26:10來源:正運動技術

導語:?

  今天,正運動技術為大家分享一下《運動控制卡應用開發教程之ROS(下)》。本章節在《運動控制卡應用開發教程之ROS(上)》程序的基礎上稍作修改,實現在ROS下正運動技術運動控制卡的開發。

  在正式學習之前,我們先了解一下正運動技術的運動控制卡ECI2418和ECI2618。這兩款產品分別是4軸,6軸運動控制卡。

  

  運動控制

  

  ECI2418支持4軸脈沖輸入與編碼器反饋,板載24點輸入,16點輸出,2AD,2DA,支持手輪接口,其中特定輸出口支持高速PWM控制。

  

  運動控制

  

  ECI2618支持6軸脈沖輸入與編碼器反饋,板載24點輸入,16點輸出,2AD,2DA,支持手輪接口,其中特定輸出口支持高速PWM控制。

  

  運動控制

  

  ECI2418,ECI2618均使用同一套API函數,均支持C、C++、C#、LabVIEW、Python、Delphi等開發語言,支持VC6.0、VB6.0、Qt、.Net等平臺,支持Windows、Linux、WinCE、iMac等操作系統。

  在《運動控制卡應用開發教程之ROS(上)》里,我們講了ROS應用背景,以及Ubuntu18.04安裝ROS Melodic詳細過程,并且通過ROS編程案例——消息發布和訂閱,來詳細說明正運動技術運動控制卡ROS的應用開發。

  從上篇中,我們得知,ROS作為一個靈活的操作系統,系統上的節點具有很大的隨意性,它們可以位于不同的計算機上,甚至可以位于不同的網絡上。我們可以使用一個Arduino作為一個節點發布信息,使用一臺筆記本電腦作為一個節點訂閱上述信息以及使用一臺手機作為一個節點驅動電機等。上述靈活性使得ROS可以適應很多不同場合的應用。

  ROS具有分布式點對點設計、多語言支持、精簡與集成、工具包豐富以及免費并且開源等特點。ROS系統正在機器人行業一步一步的主導中國市場。

  本篇文章我們主要講配置正運動技術動態鏈接庫環境以及運動控制卡在ROS下的單軸運動。

              一 配置正運動技術動態鏈接庫環境    

  1.添加動態鏈接庫

  在程序包目錄zmotion(catkin_ws/src/zmotion/)下新建文件夾lib,存放動態鏈接庫libzmotion.so。

  

  運動控制

  運動控制

  

  在CMakeLists.txt中添加第三方庫路徑(build下):

  link_directories(

      lib

                  ${catkin_LIB_DIRS}    

  )

  并在CMakeLists.txt文件中鏈接動態鏈接庫(調用鏈接庫時            文件名去掉lib和.so    ):

              target_link_libraries    (talker            ${catkin_LIBRARIES}     zmotion)

  2.添加庫函數zmcaux.cpp、zmotion.h、zmcaux.h

  添加zmcaux.cpp文件到catkin_ws/src/zmotion/src目錄下:

  

  運動控制

  

  添加頭文件zmotion.h、zmcaux.h到catkin_ws/src/zmotion/include/ zmotion目錄下:

  

  運動控制

  

  并在CMakeLists.txt中添加這三個庫文件:

  add_executable(talker

  src/talker.cpp

  src/zmcaux.cpp

              include    /zmotion/zmotion.h

              include    /zmotion/zmcaux.h

  )

  修改頭文件引用,如下圖所示(要填include文件的相對地址,zmotion為程序包名)

         #include "zmotion/zmotion.h"    

         #include "zmotion/zmcaux.h"    

  

  運動控制

  

              二 ROS下的單軸運動    

  這部分主要講運動控制卡在ROS下的單軸運動。

  talker節點實現軸0的運動,并將其位置實時發送給listener節點,修改talker.cpp如下:

  1.添加句柄和頭文件

              #include "zmotion/zmotion.h"    

         #include "zmotion/zmcaux.h"    

  ZMC_HANDLE g_handle=            NULL    ;

  2.通過EtherNET鏈接運動控制卡

  ZMC_LinuxLibInit();

              //以太網(Ethernet)鏈接    

  char ipaddr[16] = {            "192.168.0.11"    };

  int x =ZAux_OpenEth(ipaddr,&g_handle);            //***ZMC    

  ROS_INFO(            "以太網鏈接控制器:%d"    ,x);            //返回0則連接成功    

  3.實現單軸運動

  ZAux_Direct_SetSpeed(g_handle, 0, 200); //設置軸0運動速度為200units/s

  ZAux_Direct_SetAccel(g_handle, 0, 2000); //設置軸0加速度為2000units/s/s

  ZAux_Direct_SetDecel(g_handle, 0, 2000); //設置軸0減速度為2000units/s/s

  ZAux_Direct_SetSramp(g_handle, 0, 100); //設置軸0 S曲線時間100ms

  ZAux_Direct_Single_Move(g_handle, 0, 300); //軸0 相對與當前位置運動100 units

  4.將實時位置發送給listener節點

  float piValue;

  while (ros::ok())

  {

      std_msgs::Float64 msg;

      ZAux_Direct_GetMpos(g_handle, 0, & piValue);            //獲取時候    

          msg.data = piValue;

                      //輸出,用來替代prinf/cout    

      ROS_INFO("Position is: %f", msg.data);

      chatter_pub.publish(msg);

      ros::spinOnce();

                      //休眠,來使發布頻率為10Hz    

          loop_rate.sleep();

  }

  5.編譯

  cd ~/catkin_ws/

  catkin_make

  6.運行程序

  //打開一個新終端

  roscore

  //打開另一個新終端

  cd ~/catkin_ws/

  rosrun zmotion talker

  //打開另一個新終端

  cd ~/catkin_ws/

  rosrun zmotion listener

  運行效果如下,實時輸出位置:

  

  運動控制

  

  此外,我們在上位機上的示波器上可以看見,軸0做S曲線運動:

  

  運動控制

  

  【參考文獻】

  1.ROS Wiki:http://wiki.ros.org/

  2.正運動技術:ZMotion PC函數庫編程手冊

  3.https://blog.csdn.net/weixin_42544625/article/details/86802753

  本次,正運動技術的《運動控制卡應用開發教程之ROS(下)》就分享到這里,更多精彩內容請關注“正運動小助手”公眾號。

  本文由            正運動技術    原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

  

  運動控制

  

標簽:

點贊

分享到:

上一篇:堡盟OXP200輪廓傳感器在焊縫...

下一篇:之山行業案例:五軸數控打磨機

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.siyutn.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 淮滨县| 广河县| 信宜市| 邢台市| 七台河市| 京山县| 尚义县| 金坛市| 台山市| 揭西县| 广东省| 绵阳市| 凤凰县| 仁布县| 高安市| 夏邑县| 易门县| 元氏县| 永泰县| 临西县| 靖远县| 区。| 突泉县| 界首市| 汝城县| 平邑县| 垦利县| 青冈县| 建阳市| 平定县| 锦屏县| 保靖县| 米泉市| 开化县| 莎车县| 托克逊县| 大悟县| 翁源县| 丹寨县| 八宿县| 鸡泽县|