導(dǎo)讀
想深入了解ZMC600E運(yùn)動控制器的插補(bǔ)算法嗎?空間直線插補(bǔ)適用于精確定位,圓弧插補(bǔ)提供平滑曲線過渡。合理應(yīng)用這些算法,能提升多軸協(xié)同能力,保障工作精度與可靠性,讓工業(yè)自動化更高效、更智能。
ZMC600E是廣州致遠(yuǎn)電子股份有限公司開發(fā)的最新一代高性能智能總線型控制器,是面向工廠智能化時(shí)代的機(jī)器人控制器。ZMC600E采用多核異構(gòu)應(yīng)用處理器為核心,其內(nèi)核包括2個64位的ArmCortex-A53核,主頻1.0GHz;4個Cortex-R5F內(nèi)核,主頻800MHz。同時(shí)板載1GB DDR4、4GB eMMC以及32KB FRAM。
ZMC600E EtherCAT主站控制器為了滿足不同的自動化應(yīng)用需求,在硬件接口上面,精心設(shè)計(jì)了1路EtherCAT主站接口,ms 周期任務(wù)抖動±5μs 以內(nèi);3 路以太網(wǎng)接口,其中1路是千兆網(wǎng)口;2路RS485;2路CAN;32個用戶I/O,其中16路DI,16路DO,輸入支持最多2路正交編碼或兩路脈沖計(jì)數(shù);1個USB3.0接口;支持TF卡;系統(tǒng)電源采用高穩(wěn)定隔離電源,支持掉電檢測;提供多種程序加密手段,保護(hù)用戶應(yīng)用軟件知識產(chǎn)權(quán)。
ZMC600E 示意圖及接口圖如下所示:

圖1 產(chǎn)品示意圖

圖2 ZMC600E接口圖
ZMC600E EtherCAT主站控制器為設(shè)備制造商提供多軸數(shù)、多IO點(diǎn)數(shù)控制的新一代可靠智能的運(yùn)動控制解決方案,提供空間直線、圓弧插補(bǔ)算法,可以廣泛應(yīng)用于注塑行業(yè)、沖壓行業(yè)、車床行業(yè)、搬運(yùn)碼垛、關(guān)節(jié)機(jī)器人、噴涂、玻璃機(jī)、壓鑄機(jī)、包裝設(shè)備、3C設(shè)備、鋰電池設(shè)備、紡織、流水線工作站、非標(biāo)自動化裝備、特種機(jī)床等高端設(shè)備應(yīng)用。
?插補(bǔ)的概念
插補(bǔ)是數(shù)控機(jī)床中的一項(xiàng)關(guān)鍵技術(shù),它通過特定的算法精確確定刀具或機(jī)械部件的運(yùn)動軌跡。這一過程的核心目標(biāo)是根據(jù)預(yù)定的運(yùn)動要求,實(shí)時(shí)計(jì)算出各個坐標(biāo)軸的運(yùn)動指令,驅(qū)動執(zhí)行部件協(xié)調(diào)地運(yùn)動,確保機(jī)械部件能夠沿著理想的軌跡和速度精確移動。插補(bǔ)算法的基本原理涉及數(shù)字計(jì)算,它不斷地生成各軸的進(jìn)給指令,使得在運(yùn)動過程中各軸能夠同步且協(xié)調(diào)地運(yùn)動,從而確保設(shè)備能夠精確地完成預(yù)定的路徑。
插補(bǔ)通常涉及至少兩個軸的協(xié)同工作。首先,通過建立坐標(biāo)系,將運(yùn)動軸映射到相應(yīng)的坐標(biāo)系中。然后,運(yùn)動控制器依據(jù)插補(bǔ)算法來控制各個軸的運(yùn)動,實(shí)現(xiàn)所需的軌跡。在常見的插補(bǔ)類型中,直線插補(bǔ)用于實(shí)現(xiàn)兩個點(diǎn)之間的直線運(yùn)動,而圓弧插補(bǔ)則用于實(shí)現(xiàn)沿圓弧軌跡的運(yùn)動。這兩種插補(bǔ)都依賴于算法的實(shí)時(shí)計(jì)算,以保證軌跡運(yùn)動的精度和平穩(wěn)性。簡而言之,插補(bǔ)是數(shù)控系統(tǒng)中確保機(jī)械部件按照預(yù)定軌跡精確、高效運(yùn)動的一種技術(shù)。
?直線插補(bǔ)
以二維空間簡化說明,如圖1所示,直線插補(bǔ)運(yùn)動:由起始點(diǎn)處沿X 方向走一小段(給一個脈沖當(dāng)量軸走一段固定距離),發(fā)現(xiàn)終點(diǎn)在實(shí)際輪廓的下方,則下一條線段沿 Y 方向走一小段,此時(shí)如果線段終點(diǎn)還在實(shí)際輪廓下方,則繼續(xù)沿 Y 方向走一小段,直到在實(shí)際輪廓上方以后,再向 X 方向走一小段,依次循環(huán)類推,直到到達(dá)輪廓終點(diǎn)為止。空間直線適用于任意維空間的直線,插補(bǔ)方法也是一樣的道理。

圖3 直線插補(bǔ)示意圖 ?圓弧插補(bǔ)
圓弧插補(bǔ)與直線插補(bǔ)類似,都是通過給定起止點(diǎn)及相關(guān)參數(shù),計(jì)算出一系列逼近實(shí)際圓弧的離散點(diǎn)。這些點(diǎn)構(gòu)成插補(bǔ)軌跡,控制各個軸沿此軌跡運(yùn)動,最終完成圓弧路徑的加工。空間圓弧插補(bǔ)既可以在二維平面進(jìn)行,也可以是三維空間的協(xié)同運(yùn)動。
以二軸為例簡化說明,如圖2所示,圓的插補(bǔ)運(yùn)動:將通過一定的算法,逐步計(jì)算出圓弧的離散點(diǎn),并控制兩個軸按這些點(diǎn)進(jìn)行協(xié)調(diào)運(yùn)動,最終加工出目標(biāo)圓弧路徑。這一過程能夠?qū)崿F(xiàn)精確的曲線軌跡控制,確保機(jī)械部件沿指定的圓弧軌跡平穩(wěn)移動。

圖4 圓弧插補(bǔ)
空間圓弧默認(rèn)為三維,構(gòu)造圓弧時(shí),方向逆時(shí)針為正、除起始點(diǎn)和終點(diǎn)外,輔助參數(shù)輸入分為三種:

圖5 空間圓弧構(gòu)造
輔助點(diǎn)為圓弧上的點(diǎn),其優(yōu)勢在于,路徑方向唯一,且實(shí)際輔助點(diǎn)可以通過示教獲得。
輔助點(diǎn)為圓心點(diǎn),正常情況下是有兩個方向的解,因此需要額外指定方向。但與起點(diǎn)、終點(diǎn)的夾角不能是180度,否則有無數(shù)解;缺點(diǎn)在于圓心處于障礙物區(qū)間時(shí)無法通過示教獲得。
輔助點(diǎn)為與與原點(diǎn)形成的向量為平面法向量,向量長度為半徑坐標(biāo),方向根據(jù)右手原則。但已知半徑下,圓心在它們的中垂線上,同樣有兩個解。算法會選擇起點(diǎn)和終點(diǎn)之間距離較短的那個圓,即總的運(yùn)動角度最多為180度。缺點(diǎn)是圓弧角度必須小于或等于180°。
?插補(bǔ)算法API
ZMC600E 運(yùn)動控制器提供了直線和圓弧插補(bǔ) API 接口,方便用戶進(jìn)行插補(bǔ)運(yùn)動的設(shè)置和調(diào)整。
創(chuàng)建直線軌跡規(guī)劃

創(chuàng)建圓弧軌跡規(guī)劃
刪除軌跡規(guī)劃的句柄
設(shè)置起始位置
設(shè)置終點(diǎn)位置
開啟軌跡規(guī)劃
獲取當(dāng)前軌跡規(guī)劃經(jīng)過的總距離
獲取某個經(jīng)過距離點(diǎn)的規(guī)劃信息
?示例1. 直線插補(bǔ)示例:起始點(diǎn){0, 10, 20},終點(diǎn){ 10, 0, -20}代碼如下:
#include #include #include #include#include "trajectory.h"int main(){ double startPos[3] = { 0, 10, 20 }; double endPos[3] = { 10, 0, -20 };
trajectory_handle handle = trajectory_new_line(3); trajectory_set_start_pos(handle, startPos); trajectory_set_end_pos(handle, endPos); trajectory_set_plan(handle);
double dist = trajectory_get_plan_distance(handle); for(double d = 0; d <= dist; d+=0.1) { double pass_dist[3]; trajectory_get_plan_slice(handle, d, pass_dist); std::cout << "pass_dist :" << pass_dist[0] << "," << pass_dist[1] << "," << pass_dist[2] << endl; } trajectory_delete(handle); return 0;}
執(zhí)行結(jié)果如圖下圖所示:
圖6 直線插補(bǔ)軌跡
2.圓弧插補(bǔ)示例:起始點(diǎn){-10,0,10},終點(diǎn){ 10, 0, 5 }, 經(jīng)過圓弧點(diǎn){0, 10, 7.5}
代碼如下:
#include #include #include #include#include "trajectory.h"int main(){ double startPt[3]= { -10, 0, 10 }; double auxPt[3] = { 0, 10, 7.5 }; double endPt[3] = { 10, 0, 5 };
trajectory_handle handle = trajectory_new_arc(0, auxPt, 0); trajectory_set_start_pos(handle, startPt); trajectory_set_end_pos(handle, endPt); trajectory_set_plan(handle);
double dist = trajectory_get_plan_distance(handle); for (double d = 0; d <= dist; d+=0.1) { double pass_dist[3]; trajectory_get_plan_slice(handle, d, pass_dist); std::cout << "pass_dist :" << pass_dist[0] << "," << pass_dist[1] << "," << pass_dist[2] << endl; } trajectory_delete(handle); return 0;}
執(zhí)行結(jié)果如圖下圖所示:
圖7 空間圓弧插補(bǔ)示例
ZMC600E運(yùn)動控制器 配備了直線和圓弧插補(bǔ)算法,這些算法能夠靈活應(yīng)對各種應(yīng)用需求,確保軌跡的精確性。掌握這些運(yùn)動插補(bǔ)技術(shù),有助于提高設(shè)備的控制精度和工作效率,為工業(yè)生產(chǎn)帶來顯著的效益提升。
-
控制器
+關(guān)注
關(guān)注
114文章
17100瀏覽量
184231 -
機(jī)械
+關(guān)注
關(guān)注
8文章
1685瀏覽量
41908 -
運(yùn)動控制器
+關(guān)注
關(guān)注
2文章
450瀏覽量
25285 -
硬件接口
+關(guān)注
關(guān)注
0文章
48瀏覽量
11056
發(fā)布評論請先 登錄

激光振鏡運(yùn)動控制器在大幅面激光薄膜切割的應(yīng)用 #正運(yùn)動技術(shù) #運(yùn)動控制器 #運(yùn)動控制 #E

LabVIEW運(yùn)動控制(五):EtherCAT運(yùn)動控制器的心跳檢測功能 #正運(yùn)動技術(shù) #運(yùn)動控制器 #正運(yùn)動

LabVIEW運(yùn)動控制(三):EtherCAT運(yùn)動控制器的高效加工指令自定義封裝 #正運(yùn)動技術(shù) #運(yùn)動控制器

LabVIEW運(yùn)動控制(二):EtherCAT運(yùn)動控制器的多軸示教加工應(yīng)用(中) #正運(yùn)動技術(shù) #運(yùn)動控制器
垂直運(yùn)動永磁同步直線電機(jī)的復(fù)合控制研究

LabVIEW運(yùn)動控制(二):EtherCAT運(yùn)動控制器的多軸示教加工應(yīng)用(上)#正運(yùn)動技術(shù) #運(yùn)動控制器
ZMC600E,多核異構(gòu)如何成就機(jī)器人精準(zhǔn)控制?

手把手帶你入門AWStudio運(yùn)動控制編程


LabVIEW運(yùn)動控制(一):EtherCAT運(yùn)動控制器的SCARA機(jī)械手應(yīng)用 #正運(yùn)動技術(shù) #運(yùn)動控制器
ZMC600E運(yùn)動控制器T型、S型速度規(guī)劃詳解


步進(jìn)控制的光柵尺全閉環(huán)解決方案:32軸EtherCAT總線運(yùn)動控制器ZMC432CL-V2 #正運(yùn)動技術(shù)

機(jī)器視覺運(yùn)動控制一體機(jī)在智能磁驅(qū)輸送線的應(yīng)用#正運(yùn)動技術(shù) #運(yùn)動控制器 #正運(yùn)動控制器
脈沖全閉環(huán)EtherCAT運(yùn)動控制器的固件升級


評論