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

技術頻道

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

運動控制卡在ROS上的應用(下)

時間:2021-09-26 17:43:21來源:深圳市正運動技術有限公司

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

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

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

運動控制

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

運動控制

  ECI2828支持8軸總線型輸入與編碼器反饋,板載24點輸入,16點輸出,2路AD,2路DA,支持手輪接口,其中特定輸出口支持高速PWM控制。

  ECI2618,ECI2828均使用同一套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.cppsrc/zmcaux.cppinclude/zmotion/zmotion.hinclude/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); //***ZMCROS_INFO("以太網鏈接控制器:%d",x);//返回0則連接成功

  3.實現單軸運動

  ·

  ZAux_Direct_SetSpeed(g_handle, 0, 200); //設置軸0運動速度為200units/sZAux_Direct_SetAccel(g_handle, 0, 2000); //設置軸0加速度為2000units/s/sZAux_Direct_SetDecel(g_handle, 0, 2000); //設置軸0減速度為2000units/s/sZAux_Direct_SetSramp(g_handle, 0, 100); //設置軸0 S曲線時間100msZAux_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上的應用(下)》就分享到這里,更多精彩內容請關注“正運動小助手”公眾號。

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

標簽: 運動控制

點贊

分享到:

上一篇:CC-Link 網絡在三菱 ROBOT 與...

下一篇:到底什么是“無源物聯網”?

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

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

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

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

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

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

主站蜘蛛池模板: 司法| 平舆县| 高州市| 丹江口市| 泗阳县| 贺州市| 广灵县| 竹山县| 铜梁县| 罗定市| 乐至县| 乐都县| 霞浦县| 闸北区| 公安县| 广南县| 乌什县| 合水县| 页游| 江阴市| 舟山市| 高清| 昌吉市| 朝阳区| 峨眉山市| 嘉禾县| 武夷山市| 新昌县| 南川市| 太谷县| 刚察县| 连城县| 惠来县| 宣武区| 肃北| 南京市| 双鸭山市| 清流县| 荣成市| 习水县| 珠海市|