??前言
ZMC300E(點擊了解詳情)是廣州致遠電子股份有限公司開發的最新一代智能總線型 EtherCAT 主站控制器,使用A8內核的AM335X為處理器核心,配合Xenomai高實時性Linux系統,支持作為EtherCAT主站使用,其通訊可實現ms周期任務抖動±15μs以內,可滿足運動控制器的高實時性要求。
圖1ZMC300E控制器可以看到,運動控制器的強項是EtherCAT實時通信,主要工作就是發號施令,通過網絡命令多個電驅和電機工作。通俗的說,運動控制器干腦力活,動口不動手,電驅和電機干體力活,專干重活累活。
那么,運動控制器憑什么當上智力擔當的?原來運動控制器是計算能手,擁有三大絕活算法:軌跡插補,速度規劃,運動前瞻。憑借這三大絕活,運動控制器就能指揮電驅和電機完成各種運動任務。
??算法原理


該速度由3段組成,第一個段黃色段是加速段,第二段(綠色段)是勻速段,第三段(黃色段)是減速段。

圖5梯形速度規劃-加速度示意圖除了梯形速度規劃,ZMC300E還支持多種S型速度規劃:加加速度(二次加速度)給定條件的S型速度規劃,彎曲時間給定條件的S型速度規劃,和加減速時間和彎曲時間給定條件的S型速度規劃。
3.運動前瞻運動控制器能夠更加高效規劃運動,這要求運動控制器支持連續插補運動,支持運動前瞻。
這里給一個矩形繪圖作為連續插補的示例。一個普通的矩形軌跡如下圖。

使用梯形速度規劃,可以得到以下的速度曲線,可以看到,由4段曲線組成。
圖7不開啟運動前瞻的速度-時間示意圖不開啟連續插補和運動前瞻,每段速度都減速到零。縱軸為速度,橫軸為時間。下圖是開啟連續插補的速度-時間圖。速度是通過位置和發射時間推算出來的,不完全精確,速度出現毛刺是正常的。

開啟連續插補,每段速度不再減速到0。可以看到,時間相比不開啟運動前瞻更短。但是有個嚴重問題:拐角處的速度是最大值,過高的速度可能影響電機和刀具穩定性。

開啟連續插補和運動前瞻,拐角減速,每段速度不再減速到0,而是根據拐角角度決定速度。可以看到,時間相比不開啟運動前瞻更短,相比連續插補更長,避免刀具高速通過拐角處的問題。
運動控制器的運動前瞻功能可以根據用戶的運動路徑自動計算出平滑的速度規劃,以防止軌跡的拐角處速度過快。運動前瞻包括三種模式:拐角減速、倒角、小圓限速,而這三種模式也可混合使用。拐角減速會根據夾角大小確定拐角處的最大速度,倒角則會設置前后兩個軌跡在拐角處的倒角,而小圓限速則會對半徑小于設置值的圓弧軌跡進行限速。
??實戰繪圖
首先把運動控制器和畫筆平臺使用網線連接。畫筆平臺是一個3軸的龍門架,可以在xyz三軸空間移動,夾具上只有一根常見的鉛筆。

圖10畫筆平臺
選擇一幅SVG格式圖片作為我們畫圖的圖案,這里我們選擇的是致遠電子公司的logo圖片。

圖11Logo圖片
對于輸入圖片,我們可以把矢量圖解析成多個筆畫,每個筆畫解析成直線曲折相連,這樣就可以得到對應繪圖軌跡。G代碼(G-code)是最為廣泛使用的計算機數控編程語言,主要在計算機輔助制造中用于控制自動機床。
我們使用開源工具svg_to_gcode,把svg文件轉成G代碼文件。
圖12G代碼文件
查看G代碼文件,可以看到都是G1指令,說明都是直線插補命令。這說明我們只用直線插補命令就能完成繪圖。對應的繪圖圖案如下,不同的顏色對應不同的筆劃,可以看到圖片包含十八筆的仿真筆畫圖。

圖13 筆畫軌跡圖片
每一筆劃都要有進筆(筆尖觸及紙張),作畫(筆尖寫字)和退筆(筆尖遠離紙張)。G代碼中進筆對應M3指令(進刀),退筆對應M5指令(退刀)。這樣才能書寫多個筆劃。
目標圖形總共有十八筆的筆畫,要想作畫就得先對筆畫進行排序。這里使用最直觀的筆劃排序算法,先左后右,先上后下。
加入筆畫的連接,可以得到以下的筆畫仿真繪圖。

圖14 連筆筆畫繪圖
可以看到,仿真效果大體上符合我們的預期。我們就可以在運動控制器中運行G代碼腳本。使用ssh連接運動控制器,啟動控制程序。設置左下方為原點,沿著紙張往右邊寫字,紙張寬度至少280mm,高度60mm。使用梯形速度規劃,配置最大速度100mm/s,最大加速度和最大減速度為100mm/s^2。進筆和退筆,對應z軸上下的運動,進筆量和退筆量都設為10mm。為了提高繪圖效率,開啟了連續插補,運動前瞻和拐角減速。

原文標題:【產品應用】手把手帶你使用ZMC300E繪圖
文章出處:【微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
-
致遠電子
+關注
關注
13文章
422瀏覽量
32552
原文標題:【產品應用】手把手帶你使用ZMC300E繪圖
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
從0到1,10+年資深LabVIEW專家,手把手教你攻克機器視覺+深度學習(5000分鐘實戰課)
【迅為RK3568開發板NPU實戰】別再閑置你的NPU!手把手教你玩轉RKNN-Toolkit2 的使用
【RK3568 NPU實戰】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI檢測Demo,附完整流程與效果
K8s存儲類設計與Ceph集成實戰
RT-Thread Nano硬核移植指南:手把手實現VGLite圖形驅動適配 | 技術集結
【教程】零基礎!手把手教你使用STM32F4進行E22-400T22S編程通信
【精選直播】手把手教你做PC第十二課:WIFI 驅動框架適配
手把手教你如何調優Linux網絡參數
明晚七點!手把手教你做PC第九課:全功能TypeC驅動框架適配
正點原子Linux系列全新視頻教程來啦!手把手教你MP257開發板,讓您輕松入門!
KiCad直播活動(三):在 Windows上編譯KiCad 手把手教您編譯/構建 KiCad 源碼
【產品應用】手把手帶你使用ZMC300E繪圖
評論