一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

EtherCAT運(yùn)動控制器在ROS上的應(yīng)用(下)

正運(yùn)動技術(shù) ? 來源:正運(yùn)動技術(shù) ? 作者:正運(yùn)動技術(shù) ? 2024-03-13 14:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本篇文章我們主要介紹正運(yùn)動技術(shù)動態(tài)鏈接庫環(huán)境配置以及EtherCAT運(yùn)動控制器ROS下的單軸運(yùn)動。

在正式學(xué)習(xí)之前,我們先了解一下正運(yùn)動技術(shù)的EtherCAT運(yùn)動控制器ZMC432和ZMC408CE。這兩款產(chǎn)品分別是32軸,8軸EtherCAT運(yùn)動控制器。

ZMC432功能簡介

wKgZomXn4fKAVYIBAAJR4whVX6Y975.png

ZMC432是正運(yùn)動推出的一款多軸高性能EtherCAT總線運(yùn)動控制器,具有EtherCAT、EtherNET、RS232CAN和U盤等通訊接口,ZMC系列運(yùn)動控制器可應(yīng)用于各種需要脫機(jī)或聯(lián)機(jī)運(yùn)行的場合。

wKgZomXn4hSAMd83AAEyz1gy7rY995.png

ZMC432最多可支持32軸運(yùn)動控制,支持直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨等功能。

ZMC432支持32軸脈沖輸入與編碼器反饋,通用IO包含24路輸入口和12個(gè)輸出口;2路AD,2路DA;其中特定輸出口支持高速PWM控制。

ZMC432通過EtherCAT和CAN總線進(jìn)行硬件資源擴(kuò)展,可擴(kuò)展至4096路輸入和4096路輸出。

ZMC408CE功能簡介

wKgZomXn4imACupLAAJFIra5-ZM715.png

ZMC408CE是正運(yùn)動推出的一款多軸高性能EtherCAT總線運(yùn)動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運(yùn)動控制器可應(yīng)用于各種需要脫機(jī)或聯(lián)機(jī)運(yùn)行的場合。

wKgZomXn4i-ADKjqAAFcbFclaK0179.png

ZMC408CE支持8軸運(yùn)動控制,最多可擴(kuò)展至32軸,支持直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨等功能。

ZMC408CE支持8軸運(yùn)動控制,可采用脈沖軸(帶編碼器反饋)或EtherCAT總線軸,通用IO包含24路輸入口和16路輸出口,部分IO為高速IO,模擬量AD/DA各兩路,EtherCAT最快125us的刷新周期。

ZMC408CE支持8個(gè)通道的硬件比較輸出、硬件定時(shí)器、運(yùn)動中精準(zhǔn)輸出,還支持8通道PWM輸出,對應(yīng)的輸出口為OUT0-7,支持8個(gè)通道同時(shí)觸發(fā)硬件比較輸出。

ZMC408CE可靈活進(jìn)行硬件資源擴(kuò)展,通過CAN或EtherCAT總線可擴(kuò)展至4096個(gè)輸入和4096個(gè)輸出。

→ZMC432,ZMC408CE均使用同一套API函數(shù),均支持C、C++C#、LabVIEW、Python、Delphi等開發(fā)語言,支持VC6.0、VB6.0、Qt、.Net等平臺,支持Windows、Linux、WinCE、iMac操作系統(tǒng)。

wKgZomXn4jiAaZ_jAACDWh6og8s828.png

上節(jié)課程中,我們介紹了ROS應(yīng)用背景和Ubuntu18.04安裝ROS Melodic詳細(xì)過程,并且通過ROS編程案例“消息發(fā)布和訂閱”來詳細(xì)說明正運(yùn)動技術(shù)EtherCAT運(yùn)動控制器ROS的應(yīng)用開發(fā)。詳情點(diǎn)擊→EtherCAT運(yùn)動控制器在ROS上的應(yīng)用(上)。

01 配置正運(yùn)動技術(shù)動態(tài)鏈接庫環(huán)境

1.添加動態(tài)鏈接庫

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

wKgaomXxTE2ANWBhAAE0bz0vPRM519.png

wKgZomXxTFGAB3F0AADrh5Pp-Aw252.png

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

link_directories( lib ${catkin_LIB_DIRS} )

并在CMakeLists.txt文件中鏈接動態(tài)鏈接庫(調(diào)用鏈接庫時(shí)文件名去掉lib和.so):

target_link_libraries(talker ${catkin_LIBRARIES} zmotion)

2.添加庫函數(shù)zmcaux.cpp、zmotion.h、zmcaux.h

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

wKgaomXxTFmAUAJMAAEOLQ107os992.png

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

wKgZomXxTF-AKj7cAAEAzVSQJoc960.png

并在CMakeLists.txt中添加這三個(gè)庫文件:

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"

wKgZomXxTGOACFAZAAI6J4kD-9k101.png

02 正運(yùn)動控制器在ROS下的單軸運(yùn)動

talker節(jié)點(diǎn)實(shí)現(xiàn)軸0的運(yùn)動,并將其位置實(shí)時(shí)發(fā)送給listener節(jié)點(diǎn),修改talker.cpp如下:

1.添加句柄和頭文件

#include "zmotion/zmotion.h" #include "zmotion/zmcaux.h" ZMC_HANDLE g_handle=NULL;

2.通過EtherNET鏈接運(yùn)動控制器

ZMC_LinuxLibInit(); //以太網(wǎng)(Ethernet)鏈接 char ipaddr[16] = {"192.168.0.11"}; int x =ZAux_OpenEth(ipaddr,&g_handle); //***ZMC ROS_INFO("以太網(wǎng)鏈接控制器:%d",x);//返回0則連接成功

3.實(shí)現(xiàn)單軸運(yùn)動

ZAux_Direct_SetSpeed(g_handle, 0, 200); //設(shè)置軸0運(yùn)動速度為200units/s ZAux_Direct_SetAccel(g_handle, 0, 2000); //設(shè)置軸0加速度為2000units/s/s ZAux_Direct_SetDecel(g_handle, 0, 2000); //設(shè)置軸0減速度為2000units/s/s ZAux_Direct_SetSramp(g_handle, 0, 100); //設(shè)置軸0 S曲線時(shí)間100ms ZAux_Direct_Single_Move(g_handle, 0, 300); //軸0 相對與當(dāng)前位置運(yùn)動100 units

4.將實(shí)時(shí)位置發(fā)送給listener節(jié)點(diǎn)

float piValue; while (ros::ok()) { std_msgs::Float64 msg; ZAux_Direct_GetMpos(g_handle, 0, & piValue);//獲取時(shí)候 msg.data = piValue; //輸出,用來替代prinf/cout ROS_INFO("Position is: %f", msg.data); chatter_pub.publish(msg); ros::spinOnce(); //休眠,來使發(fā)布頻率為10Hz loop_rate.sleep(); }

5.編譯

cd ~/catkin_ws/ catkin_make

6.運(yùn)行程序

//打開一個(gè)新終端 roscore //打開另一個(gè)新終端 cd ~/catkin_ws/ rosrun zmotion talker //打開另一個(gè)新終端 cd ~/catkin_ws/ rosrun zmotion listener

運(yùn)行效果如下,實(shí)時(shí)輸出位置:

wKgaomXxTGmAZbzqAAOAJYe0rDc774.png

此外,我們在上位機(jī)上的示波器上可以看見,軸0做S曲線運(yùn)動:

wKgaomXxTGyAA3ZMAACYGRvA_UM648.png

本次,正運(yùn)動技術(shù)EtherCAT運(yùn)動控制器在ROS上的應(yīng)用(下),就分享到這里。

更多精彩內(nèi)容請關(guān)注“正運(yùn)動小助手”公眾號,需要相關(guān)開發(fā)環(huán)境與例程代碼,請咨詢正運(yùn)動技術(shù)銷售工程師。

本文由正運(yùn)動技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運(yùn)動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 運(yùn)動控制器
    +關(guān)注

    關(guān)注

    2

    文章

    448

    瀏覽量

    25210
  • ethercat
    +關(guān)注

    關(guān)注

    19

    文章

    1079

    瀏覽量

    39788
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    286

    瀏覽量

    17637
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    脈沖全閉環(huán)EtherCAT運(yùn)動控制器的固件升級

    固件是常用功能。推薦優(yōu)先使用最新的RTSys軟件。 本文以ZMC406R-V2運(yùn)動控制器為例給大家介紹正運(yùn)動固件升級的多種方式。 ZMC406R-V2 6軸總線型運(yùn)動
    的頭像 發(fā)表于 11-07 10:58 ?893次閱讀
    脈沖全閉環(huán)<b class='flag-5'>EtherCAT</b><b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制器</b>的固件升級

    SSI絕對值編碼EtherCAT運(yùn)動控制器中的應(yīng)用

    SSI絕對值編碼EtherCAT運(yùn)動控制器中的應(yīng)用
    的頭像 發(fā)表于 10-09 10:13 ?1400次閱讀
    SSI絕對值編碼<b class='flag-5'>器</b><b class='flag-5'>在</b><b class='flag-5'>EtherCAT</b><b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制器</b>中的應(yīng)用

    EtherCAT運(yùn)動控制器PT/PVT實(shí)現(xiàn)用戶自定義軌跡規(guī)劃

    EtherCAT運(yùn)動控制器PT/PVT實(shí)現(xiàn)用戶自定義軌跡規(guī)劃。
    的頭像 發(fā)表于 08-15 11:49 ?1177次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制器</b>PT/PVT實(shí)現(xiàn)用戶自定義軌跡規(guī)劃

    BissC絕對值編碼EtherCAT運(yùn)動控制器中的應(yīng)用

    BissC多圈絕對值編碼EtherCAT運(yùn)動控制器中的應(yīng)用!
    的頭像 發(fā)表于 07-24 10:02 ?1445次閱讀
    BissC絕對值編碼<b class='flag-5'>器</b><b class='flag-5'>在</b><b class='flag-5'>EtherCAT</b><b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制器</b>中的應(yīng)用