0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【产品应用】手把手带你使用ZMC300E绘图

ZLG致远电子 ? 2023-01-13 09:29 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

面对一台ZMC300E运动控制器,我们该怎样让它工作起来?本文带你了解其核心算法原理,并详细讲解如何操纵龙门架画笔平台绘图。

eb5ec212-918d-11ed-ad0d-dac502259ad0.jpg ?前言

ZMC300E(点击了解详情)是广州致远电子股份有限公司开发的最新一代智能总线型 EtherCAT 主站控制器,使用A8内核的AM335X为处理器核心,配合Xenomai高实时性Linux系统,支持作为EtherCAT主站使用,其通讯可实现ms周期任务抖动±15μs以内,可满足运动控制器的高实时性要求。

eb69248c-918d-11ed-ad0d-dac502259ad0.png图1ZMC300E控制器

可以看到,运动控制器的强项是EtherCAT实时通信,主要工作就是发号施令,通过网络命令多个电驱和电机工作。通俗的说,运动控制器干脑力活,动口不动手,电驱和电机干体力活,专干重活累活。

那么,运动控制器凭什么当上智力担当的?原来运动控制器是计算能手,拥有三大绝活算法:轨迹插补,速度规划,运动前瞻。凭借这三大绝活,运动控制器就能指挥电驱和电机完成各种运动任务。

eb5ec212-918d-11ed-ad0d-dac502259ad0.jpg ?算法原理

接下来简单地介绍运动控制器的三大绝活算法:轨迹插补,速度规划,运动前瞻。这三大算法包含较多子类别的算法,本文只对最基础最实用的子算法进行介绍,后面实战绘图也会用到这些算法:轨迹插补-直线插补,速度规划-梯形速度规划,运动前瞻-拐角减速。1.轨迹插补运动任务的核心任务就是绘制各种轨迹,运动控制器的看家本领就是轨迹插补。插补算法根据给定的信息进行数字计算,不断计算出参与运动的各坐标轴的进给指令,然后分别驱动各自相应的执行部件产生协调运动,以使被控机械部件按理想的路线与速度移动。插补最常见的两种方式是直线插补和圆弧插补。插补运动至少需要两个轴参与,进行插补运动时,首先需要建立坐标系,将规划轴映射到相应的坐标系中,运动控制器根据坐标映射关系,控制各轴运动,实现要求的运动轨迹。直线运动的插补示意图如下,插补运动中由起始点处沿 X 方向走一小段(给一个脉冲当量轴走一段固定距离),发现终点在实际轮廓的下方,则下一条线段沿 Y 方向走一小段,此时如果线段终点还在实际轮廓下方,则继续沿 Y 方向走一小段,直到在实际轮廓上方以后,再向 X 方向走一小段,依次循环类推,直到到达轮廓终点为止。

eb892e94-918d-11ed-ad0d-dac502259ad0.png

图2直线插补示意图除了直线插补,ZMC300E还支持多种轨迹插补:圆弧插补,椭圆弧插补,渐开线插补,螺旋线插补,贝塞尔曲线插补。2.速度规划运动控制器还可以为轨迹插补赋予速度规划。速度规划这里特指,在已知运动的起点和终点和完整路径的情况下,基于给定的时间约束, 最大速度约束和最大加速度减速度约束的条件,设计运动速度随时间的曲线。常见的速度规划算法有梯形速度规划算法,S形速度规划算法。梯形速度曲线,也称为直线加减速或T型加减速。其算法十分简易,规划周期耗时短,有利于缩减系统的连续运行时间,从而提高系统的运动控制速度,实施起来比较容易,应用广泛。

eb9daea0-918d-11ed-ad0d-dac502259ad0.png

图3梯形速度规划-速度示意图

该速度由3段组成,第一个段黄色段是加速段,第二段(绿色段)是匀速段,第三段(黄色段)是减速段。

ebace06e-918d-11ed-ad0d-dac502259ad0.png

图4梯形速度规划-位移示意图ebb865ec-918d-11ed-ad0d-dac502259ad0.png图5梯形速度规划-加速度示意图

除了梯形速度规划,ZMC300E还支持多种S型速度规划:加加速度(二次加速度)给定条件的S型速度规划,弯曲时间给定条件的S型速度规划,和加减速时间和弯曲时间给定条件的S型速度规划。

3.运动前瞻

运动控制器能够更加高效规划运动,这要求运动控制器支持连续插补运动,支持运动前瞻。

这里给一个矩形绘图作为连续插补的示例。一个普通的矩形轨迹如下图。

ebc45dc0-918d-11ed-ad0d-dac502259ad0.png

图6矩形轨迹该矩形含有四段轨迹。

使用梯形速度规划,可以得到以下的速度曲线,可以看到,由4段曲线组成。

ebd9129c-918d-11ed-ad0d-dac502259ad0.png图7不开启运动前瞻的速度-时间示意图不开启连续插补和运动前瞻,每段速度都减速到零。纵轴为速度,横轴为时间。下图是开启连续插补的速度-时间图。速度是通过位置和发射时间推算出来的,不完全精确,速度出现毛刺是正常的。

ebe7d908-918d-11ed-ad0d-dac502259ad0.png

图8连续插补速度-时间示意图

开启连续插补,每段速度不再减速到0。可以看到,时间相比不开启运动前瞻更短。但是有个严重问题:拐角处的速度是最大值,过高的速度可能影响电机和刀具稳定性。

ebf33190-918d-11ed-ad0d-dac502259ad0.png

图9运动前瞻速度-时间示意图

开启连续插补和运动前瞻,拐角减速,每段速度不再减速到0,而是根据拐角角度决定速度。可以看到,时间相比不开启运动前瞻更短,相比连续插补更长,避免刀具高速通过拐角处的问题。

运动控制器的运动前瞻功能可以根据用户的运动路径自动计算出平滑的速度规划,以防止轨迹的拐角处速度过快。运动前瞻包括三种模式:拐角减速、倒角、小圆限速,而这三种模式也可混合使用。拐角减速会根据夹角大小确定拐角处的最大速度,倒角则会设置前后两个轨迹在拐角处的倒角,而小圆限速则会对半径小于设置值的圆弧轨迹进行限速。

eb5ec212-918d-11ed-ad0d-dac502259ad0.jpg ?实战绘图

介绍完了算法原理,接下来我们使用ZMC300E运动控制器来进行实战绘图。

首先把运动控制器和画笔平台使用网线连接。画笔平台是一个3轴的龙门架,可以在xyz三轴空间移动,夹具上只有一根常见的铅笔。

ec113302-918d-11ed-ad0d-dac502259ad0.png

图10画笔平台

选择一幅SVG格式图片作为我们画图的图案,这里我们选择的是致远电子公司的logo图片。

ec514082-918d-11ed-ad0d-dac502259ad0.jpg

图11Logo图片

对于输入图片,我们可以把矢量图解析成多个笔画,每个笔画解析成直线曲折相连,这样就可以得到对应绘图轨迹。G代码(G-code)是最为广泛使用的计算机数控编程语言,主要在计算机辅助制造中用于控制自动机床。

我们使用开源工具svg_to_gcode,把svg文件转成G代码文件。ec60a2c0-918d-11ed-ad0d-dac502259ad0.png

图12G代码文件

查看G代码文件,可以看到都是G1指令,说明都是直线插补命令。这说明我们只用直线插补命令就能完成绘图。对应的绘图图案如下,不同的颜色对应不同的笔划,可以看到图片包含十八笔的仿真笔画图。

ec7090e0-918d-11ed-ad0d-dac502259ad0.png

图13 笔画轨迹图片

每一笔划都要有进笔(笔尖触及纸张),作画(笔尖写字)和退笔(笔尖远离纸张)。G代码中进笔对应M3指令(进刀),退笔对应M5指令(退刀)。这样才能书写多个笔划。

目标图形总共有十八笔的笔画,要想作画就得先对笔画进行排序。这里使用最直观的笔划排序算法,先左后右,先上后下。
加入笔画的连接,可以得到以下的笔画仿真绘图。

ec80beac-918d-11ed-ad0d-dac502259ad0.png

图14 连笔笔画绘图

可以看到,仿真效果大体上符合我们的预期。我们就可以在运动控制器中运行G代码脚本。使用ssh连接运动控制器,启动控制程序。设置左下方为原点,沿着纸张往右边写字,纸张宽度至少280mm,高度60mm。使用梯形速度规划,配置最大速度100mm/s,最大加速度和最大减速度为100mm/s^2。进笔和退笔,对应z轴上下的运动,进笔量和退笔量都设为10mm。为了提高绘图效率,开启了连续插补,运动前瞻和拐角减速。

ec901aaa-918d-11ed-ad0d-dac502259ad0.png

图15 绘图可以看到,我们使用ZMC300E控制器漂亮地完成了绘图。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17276

    浏览量

    185575
  • Linux
    +关注

    关注

    88

    文章

    11538

    浏览量

    214964
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RT-Thread Nano硬核移植指南:手把手实现VGLite图形驱动适配 | 技术集结

    VGLite是NXP提供的轻量级2D图形API,本文将手把手带你实现VGLite图形驱动适配RT-Thread。文章分为上、下两篇,将手把手教您移植。上篇对RT-ThreadNano内核与Finsh组件进行移植,下篇则教您改写S
    的头像 发表于 07-17 14:40 ?2364次阅读
    RT-Thread Nano硬核移植指南:<b class='flag-5'>手把手</b>实现VGLite图形驱动适配 | 技术集结

    【教程】零基础!手把手教你使用STM32F4进行E22-400T22S编程通信

    零基础搭建本次实验将会使用到的软件是Keil和STM32CubeMX,没有这两个软件没有请在网上自行下载。本章节零基础手把手教会你搭建最快捷、最简单的STM32代码
    的头像 发表于 07-03 19:32 ?526次阅读
    【教程】零基础!<b class='flag-5'>手把手</b>教你使用STM32F4进行<b class='flag-5'>E</b>22-400T22S编程通信

    【精选直播】手把手教你做PC第十二课:WIFI 驱动框架适配

    手把手教你做PC》系列直播课再度开播!《KaihongOS笔记本电脑开发实战第十二课:WIFI驱动框架适配》将于07月02日19:00开播↑扫码入群,领课程讲义资料包↑深开鸿资深工程师亲临直播间
    的头像 发表于 07-01 08:08 ?164次阅读
    【精选直播】<b class='flag-5'>手把手</b>教你做PC第十二课:WIFI 驱动框架适配

    手把手教你如何调优Linux网络参数

    在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃。本文基于真实案例分析,从参数解读、问题诊断到优化实践,手把手教你如何调优Linux网络参数,支撑百万级并发连接。
    的头像 发表于 05-29 09:21 ?304次阅读

    明晚七点!手把手教你做PC第九课:全功能TypeC驱动框架适配

    手把手教你做PC》系列直播课再度开播!《KaihongOS笔记本电脑开发实战第九课:全功能TypeC驱动框架适配》将于5月21日19:00开播↑扫码入群,领课程讲义资料包↑深开鸿资深工程师亲临直播
    的头像 发表于 05-20 08:07 ?238次阅读
    明晚七点!<b class='flag-5'>手把手</b>教你做PC第九课:全功能TypeC驱动框架适配

    正点原子Linux系列全新视频教程来啦!手把手教你MP257开发板,让您轻松入门!

    正点原子Linux系列全新视频教程来啦!手把手教你MP257开发板,让您轻松入门! 一、视频观看 正点原子手把手教你学STM32MP257-第1期:https://www.bilibili.com/video/BV1UtEizyE7Z 二、更多详细介绍
    发表于 05-16 10:42

    KiCad直播活动(三):在 Windows上编译KiCad 手把手教您编译/构建 KiCad 源码

    Developer Ethan 同学,手把手教您编译/构建 KiCad 源码: 开发工具安装 环境变量配置 使用 VS2022 构建 KiCad 参与直播的小伙伴还有机会获得 KiCon Badge
    的头像 发表于 03-24 11:14 ?969次阅读
    KiCad直播活动(三):在 Windows上编译KiCad <b class='flag-5'>手把手</b>教您编译/构建 KiCad 源码

    《零基础开发AI Agent——手把手教你用扣子做智能体》

    《零基础开发AI Agent——手把手教你用扣子做智能体》是一本为普通人量身打造的AI开发指南。它不仅深入浅出地讲解了Agent的概念和发展,还通过详细的工具介绍和实战案例,帮助读者快速掌握
    发表于 03-18 12:03

    手把手教你做星闪无人机—KaihongOS星闪无人机开发实战》系列课程课件汇总

    为助力开发者迅速掌握『KaihongOS轻量系统开发技术』与『星闪无线通信技术』,实现快速上手与深度体验,“开鸿Developer社区”携手“电子发烧友”再次联合推出《手把手教你做星闪无人机
    发表于 03-18 10:33

    手把手教你做PC-KaihongOS笔记本电脑开发实战》课件汇总

    ”携手“电子发烧友”联合推出了 《KaihongOS手把手系列直播课程》,该系列课程以实际产品为案例,详细讲解每个产品的开发全流程。 此次首发内容是《手把手教你做PC-Kaihong
    发表于 03-18 10:25

    开发者集结!《手把手教你做星闪无人机》第二课开讲啦!

    开发者集结!《手把手教你做星闪无人机》第二课开讲啦!
    的头像 发表于 02-17 19:40 ?446次阅读
    开发者集结!《<b class='flag-5'>手把手</b>教你做星闪无人机》第二课开讲啦!

    手把手带你入门AWStudio运动控制编程

    导读面对一台ZMC600E运动控制器与多台伺服电机,我们该怎样让它工作起来?本文带你了解PLCOPen,并详细讲解如何使用AWStudio控制电机运动。在自动化领域,运动控制是一件很复杂的事情,包含
    的头像 发表于 02-10 11:38 ?759次阅读
    <b class='flag-5'>手把手</b><b class='flag-5'>带你</b>入门AWStudio运动控制编程

    手把手教你做星闪无人机》即将开播,锁定15日晚七点!

    KaihongOS手把手系列直播课再度来袭为助力开发者迅速掌握『KaihongOS轻量系统开发技术』与『星闪无线通信技术』,实现快速上手与深度体验,“开鸿Developer社区”携手“手电子发烧友
    的头像 发表于 01-13 19:42 ?592次阅读
    《<b class='flag-5'>手把手</b>教你做星闪无人机》即将开播,锁定15日晚七点!

    手把手教你做PC》课程即将启动!深开鸿引领探索KaihongOS笔记本电脑开发实战

    ”携手“电子发烧友”联合推出了《KaihongOS手把手系列直播课程》,该系列课程以实际产品为案例,详细讲解每个产品的开发全流程。此次首发内容是《手把手教你做PC-
    的头像 发表于 01-06 20:46 ?635次阅读
    《<b class='flag-5'>手把手</b>教你做PC》课程即将启动!深开鸿引领探索KaihongOS笔记本电脑开发实战

    Air780E模组LuatOS开发实战 —— 手把手教你搞定数据打包解包

    本文要说的是低功耗4G模组Air780E的LuatOS开发实战,我将手把手教你搞定数据打包解包。
    的头像 发表于 12-03 11:17 ?696次阅读
    Air780<b class='flag-5'>E</b>模组LuatOS开发实战 —— <b class='flag-5'>手把手</b>教你搞定数据打包解包