時(shí)間:2024-03-12 10:23:39來(lái)源:深圳市正運(yùn)動(dòng)技術(shù)有限公司
本篇文章我們主要介紹正運(yùn)動(dòng)技術(shù)動(dòng)態(tài)鏈接庫(kù)環(huán)境配置以及EtherCAT運(yùn)動(dòng)控制器在ROS下的單軸運(yùn)動(dòng)。
在正式學(xué)習(xí)之前,我們先了解一下正運(yùn)動(dòng)技術(shù)的EtherCAT運(yùn)動(dòng)控制器ZMC432和ZMC408CE。這兩款產(chǎn)品分別是32軸,8軸EtherCAT運(yùn)動(dòng)控制器。
ZMC432功能簡(jiǎn)介
ZMC432是正運(yùn)動(dòng)推出的一款多軸高性能EtherCAT總線運(yùn)動(dòng)控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤(pán)等通訊接口,ZMC系列運(yùn)動(dòng)控制器可應(yīng)用于各種需要脫機(jī)或聯(lián)機(jī)運(yùn)行的場(chǎng)合。
ZMC432最多可支持32軸運(yùn)動(dòng)控制,支持直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨等功能。
ZMC432支持32軸脈沖輸入與編碼器反饋,通用IO包含24路輸入口和12個(gè)輸出口;2路AD,2路DA;其中特定輸出口支持高速PWM控制。
ZMC432通過(guò)EtherCAT和CAN總線進(jìn)行硬件資源擴(kuò)展,可擴(kuò)展至4096路輸入和4096路輸出。
ZMC408CE功能簡(jiǎn)介
ZMC408CE是正運(yùn)動(dòng)推出的一款多軸高性能EtherCAT總線運(yùn)動(dòng)控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤(pán)等通訊接口,ZMC系列運(yùn)動(dòng)控制器可應(yīng)用于各種需要脫機(jī)或聯(lián)機(jī)運(yùn)行的場(chǎng)合。
ZMC408CE支持8軸運(yùn)動(dòng)控制,最多可擴(kuò)展至32軸,支持直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨等功能。
ZMC408CE支持8軸運(yùn)動(dòng)控制,可采用脈沖軸(帶編碼器反饋)或EtherCAT總線軸,通用IO包含24路輸入口和16路輸出口,部分IO為高速I(mǎi)O,模擬量AD/DA各兩路,EtherCAT最快125us的刷新周期。
ZMC408CE支持8個(gè)通道的硬件比較輸出、硬件定時(shí)器、運(yùn)動(dòng)中精準(zhǔn)輸出,還支持8通道PWM輸出,對(duì)應(yīng)的輸出口為OUT0-7,支持8個(gè)通道同時(shí)觸發(fā)硬件比較輸出。
ZMC408CE可靈活進(jìn)行硬件資源擴(kuò)展,通過(guò)CAN或EtherCAT總線可擴(kuò)展至4096個(gè)輸入和4096個(gè)輸出。
→ZMC432,ZMC408CE均使用同一套API函數(shù),均支持C、C++、C#、LabVIEW、Python、Delphi等開(kāi)發(fā)語(yǔ)言,支持VC6.0、VB6.0、Qt、.Net等平臺(tái),支持Windows、Linux、WinCE、iMac等操作系統(tǒng)。
上節(jié)課程中,我們介紹了ROS應(yīng)用背景和Ubuntu18.04安裝ROS Melodic詳細(xì)過(guò)程,并且通過(guò)ROS編程案例“消息發(fā)布和訂閱”來(lái)詳細(xì)說(shuō)明正運(yùn)動(dòng)技術(shù)EtherCAT運(yùn)動(dòng)控制器ROS的應(yīng)用開(kāi)發(fā)。詳情點(diǎn)擊→EtherCAT運(yùn)動(dòng)控制器在ROS上的應(yīng)用(上)。
01、配置正運(yùn)動(dòng)技術(shù)動(dòng)態(tài)鏈接庫(kù)環(huán)境
1.添加動(dòng)態(tài)鏈接庫(kù)
在程序包目錄zmotion(catkin_ws/src/zmotion/)下新建文件夾lib,存放動(dòng)態(tài)鏈接庫(kù)libzmotion.so。
在CMakeLists.txt中添加第三方庫(kù)路徑(build下):
·
link_directories( lib ${catkin_LIB_DIRS})
并在CMakeLists.txt文件中鏈接動(dòng)態(tài)鏈接庫(kù)(調(diào)用鏈接庫(kù)時(shí)文件名去掉lib和.so):
·
target_link_libraries(talker ${catkin_LIBRARIES} zmotion)
2.添加庫(kù)函數(shù)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中添加這三個(gè)庫(kù)文件:
·
add_executable(talker src/talker.cppsrc/zmcaux.cppinclude/zmotion/zmotion.hinclude/zmotion/zmcaux.h)
修改頭文件引用,如下圖所示(要填include文件的相對(duì)地址,zmotion為程序包名):
·
#include "zmotion/zmotion.h"#include "zmotion/zmcaux.h"
02、正運(yùn)動(dòng)控制器在ROS下的單軸運(yùn)動(dòng)
talker節(jié)點(diǎn)實(shí)現(xiàn)軸0的運(yùn)動(dòng),并將其位置實(shí)時(shí)發(fā)送給listener節(jié)點(diǎn),修改talker.cpp如下:
1.添加句柄和頭文件
·
#include "zmotion/zmotion.h"#include "zmotion/zmcaux.h"ZMC_HANDLE g_handle=NULL;
2.通過(guò)EtherNET鏈接運(yùn)動(dòng)控制器
·
ZMC_LinuxLibInit();//以太網(wǎng)(Ethernet)鏈接char ipaddr[16] = {"192.168.0.11"};int x =ZAux_OpenEth(ipaddr,&g_handle); //***ZMCROS_INFO("以太網(wǎng)鏈接控制器:%d",x);//返回0則連接成功
3.實(shí)現(xiàn)單軸運(yùn)動(dòng)
·
ZAux_Direct_SetSpeed(g_handle, 0, 200); //設(shè)置軸0運(yùn)動(dòng)速度為200units/sZAux_Direct_SetAccel(g_handle, 0, 2000); //設(shè)置軸0加速度為2000units/s/sZAux_Direct_SetDecel(g_handle, 0, 2000); //設(shè)置軸0減速度為2000units/s/sZAux_Direct_SetSramp(g_handle, 0, 100); //設(shè)置軸0 S曲線時(shí)間100msZAux_Direct_Single_Move(g_handle, 0, 300); //軸0 相對(duì)與當(dāng)前位置運(yùn)動(dòng)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; //輸出,用來(lái)替代prinf/cout ROS_INFO("Position is: %f", msg.data); chatter_pub.publish(msg); ros::spinOnce(); //休眠,來(lái)使發(fā)布頻率為10Hz loop_rate.sleep();}
5.編譯
·
cd ~/catkin_ws/catkin_make
6.運(yùn)行程序
·
//打開(kāi)一個(gè)新終端roscore//打開(kāi)另一個(gè)新終端cd ~/catkin_ws/rosrun zmotion talker//打開(kāi)另一個(gè)新終端cd ~/catkin_ws/rosrun zmotion listener
運(yùn)行效果如下,實(shí)時(shí)輸出位置:
此外,我們?cè)谏衔粰C(jī)上的示波器上可以看見(jiàn),軸0做S曲線運(yùn)動(dòng):
本次,正運(yùn)動(dòng)技術(shù)EtherCAT運(yùn)動(dòng)控制器在ROS上的應(yīng)用(下),就分享到這里。
更多精彩內(nèi)容請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào),需要相關(guān)開(kāi)發(fā)環(huán)境與例程代碼,請(qǐng)咨詢正運(yùn)動(dòng)技術(shù)銷售工程師:400-089-8936。
本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來(lái)源。
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.surachana.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>2025-07-08
2025-06-09
從外觀到內(nèi)核的「超進(jìn)化」!NK550M五軸...
2025-06-06
2025-05-26