关键词:步进电机、XY平台、视觉反馈

用途:工业自动化

文章类型:原理介绍、随笔纪念

@Author:VShawn(singlex@foxmail.com)

@Date:2017-05-01

@Lab: CvLab202@CSU

1.序言

半年没写过博客了,不过这对于我的博客来说似乎是常态?这半年来忙着做毕业论文,没弄什么自己的研究,而实验室的东西实在是不好泄露出来,所以我也是“虽欲言无可进者”了。

上星期趁着论文提交的空挡,把一直拖着的一个小项目开了个头,其实是朋友有个外快小项目要做,具体内容不说,项目的基础是XY平台的视觉控制,因此在前期研究中主要要做平台选型、控制购买、接线研究、模拟实验等工作,这里记述下来以防忘记,顺便也给其他人做个参考。

本次控制通过相机采集图像,以此为反馈信号做控制,使平台上的某个点位移到指定的位置。然后本文写得更像随笔形式,内容可能有点杂乱,见谅了。

2.平台选型与硬件接线

2.1 XY平台选型

项目中需要做到精度较高的位移控制,且承重要求3kg以上,因此XY平台选型时主要考虑步进电机的XY平台,淘宝上一搜就是一大片。

从中挑选了一台二手日本平台,由于价钱便宜店家不提供技术支持,接线什么的得自己搞。

2.2 步进电机驱动

步进电机驱动不需要购买,我手上有一块前辈留下来的,正好可以用,同样没有任何资料。从其电路板上发现驱动芯片是TA8435H,于是查到其引脚功能表。

根据这个功能表可以确定驱动上几个引脚的功能,并用一个四相步进电机测试,发现驱动板功能完好。

在电机供电上,考虑到要驱动两台步进电机,并获得足够的驱动力,因此我试用了一个12V 4.5A的开关电源。

2.3采集卡

为了使计算机能够控制电机驱动,这里还需要一个电脑IO卡,我用的依然是以前留下来mc100 USB Card,方便好用还便宜,淘宝上一搜一大把。这个东西IO口波纹比较大,而且没做好隔离容易烧,不过既然是实验用,那就将就一下了,实际产品中是肯定不能用这个的。

2.4平台接线

平台到货后检查发现电机型号查不到,只知道是三洋1.5A的步进电机,没办法只好电机的线给拨了,用物理方法来测极性。拨开线后发现步进电机是8相的,于是要测出四组通路,通过万用表测通,发现相通的几根线是这样的:

红-绿

蓝-白

黄-棕

黑-灰

为了测出四组线的相性,需要进行多次接线测试,并汇总结果得到下表(只保留了几组数据,实际中我为了完全确认相性,各种接线组合都测了):

B-

B+

A-

A+

状态

绿

逆时针转

绿

顺时针转

绿

不转

逆时针转

根据这个表,可以确定最终的接线方法,此处使用的是并联接法,连线如下表。

B-

B+

A-

A+

绿、黄

红、棕

白、灰

蓝、黑

8相步进电机还有另外一种串联接法如下图:

2.5硬件组装结果

最后把两个电机都接到步进电机驱动上,USB采集卡插好,XY平台锁死,相机固定。

得到了个凌乱的实验现场,图中上面那坨黑的是工业相机。

3.平台控制算法

控制这一块我已经丢了差不多三年了,现在再捡起来发现PID都不会写了,再加上步进电机的控制我也没做过,总之是不好弄啊。

首先极力回忆一下本科时微机原理课程设计里做步进电机控制那题是什么做控制的,想起有两种控制方式,一是控制步进电机的步长,二是控制其步数。那么这里既然要控制的是位移量,那么控制步数应该是比较好的选择。但对步进电机来说,每秒走1000步几乎已经是极限了,再快的话电机扭矩会不够,而1000步转换到XY平台上实际也就位移了1cm,所以当位移量较大时,控制的滞后环节可能会较大。但走几步就再控制一下也不现实,毕竟相机的采样时间摆在那,几步就采样控制一下那么控制花费的时间可能会较长……

想来想去也没想到一个最佳的控制方案,总之先用PID控制试试看。

于是搜索增量式PID公式,花十几分钟把C++版本的PID控制器写出来:

然后设计控制周期为100ms,死区5个像素,胡乱设置一下PID参数,只做x方向的平台控制。结果…好嘛,不管怎么样调试系统震荡都很严重,大概是这样子的:

最后我实在是懒得整定PID参数了,于是重新设计控制算法。

  1. 当误差大于50像素,用PD控制快速移动平台。
  2. 当误差在50像素以内时,根据事先做好的标定[注1],查表获得位移的步长进行一次移动。
  3. 移动完成后再次检查还有多少误差,以1的步长慢慢消除该误差。

[注1]这里目标点的位置是固定的,因此可以实现进行多次标定,确定图像上各个坐标上的点要位移目标点处需要走多少步,但考虑到相机畸变这个标定是无法完全准确的,因此为尽量减少畸变造成的误差,位移的目标点应放在相机视野中心,且只做该点半径50像素内的点的位移步数标定。

根据上述控制流程,能够较为快速地完成控制,控制精度可在0.5像素以内,具体可以达到多少由于现在相机的安装位置角度都没定下来,所以我暂时也没仔细测了。

4.程序结构设计

XY平台涉及到X方向与Y方向的控制,两个控制是相互独立的,因此我采用了两个线程对它们分别控制,下面是随手乱画的结构图:

程序运行后开辟三个线程,其中两个分别负责驱动两台电机,主线程则负责计算控制量,该控制量也就是另外两个控制线程的步数。

在架构上尚未做设计,但为了提高程序的可拓展性(毕竟实用化后相机、采集卡都得换),项目内的几个操作类都通过基类设计好了统一的接口,以方便今后更换硬件。

5.图像处理算法

这里图像处理算法偷懒了,采用的是《相机位姿估计2:[应用]实时位姿估计与三维重建相机姿态》中跟踪红点的方法,原理是差不多的,只是这里改成了追踪黑点而已,就不详细写了。

实际项目里图像算法当然不会那么简单,不过这里目前还是一片空白,是下一步的工作重点了。

6.实验截图

最后随便给两张程序运行时的截图,控制台坐标是当前黑点坐标,控制目标是[500,500],u1是x平台的控制量,u2是y平台的控制量。

运行过程中

两秒后完成位移,黑点被移动到设定位置。

完成控制

转载于:https://www.cnblogs.com/singlex/p/XYPlatformControlTest.html

基于视觉反馈的步进电机X-Y平台控制相关推荐

  1. 上下相机贴合对位计算公式_日本欧姆龙视觉反馈技术:高速无间断对位,满足微米级精度需求...

    小姐姐有话说: 生活中,总是有人觉得小姐姐的性格太叽叽歪歪. 那么,今天和大家介绍欧姆龙的一款新技术--视觉反馈. 这样干脆吗? 什么是视觉反馈技术? 通过图像传感器测量,以任意位置.任意角度摆放在对 ...

  2. 基于视觉与板球系统的智能垃圾桶

    沈阳航空航天大学 创新能力训练报告 2019.12.29 题目 基于视觉与板球系统的智能垃圾桶设计 班 级 学 号 学 生 姓 名 刘一博 指 导 教 师 基于视觉与板球系统的智能垃圾桶 刘一博 沈阳 ...

  3. 【论文解读】关于基于视觉无人机自主降落平台的论文梳理

    关于基于视觉无人机自主降落平台的论文梳理 一 : 基于视觉导航的旋翼无人机自主降落系统 文章结构: 逐文解读: 无人机自主降落过程视觉定位方法研究 文章结构 逐文解读: 多旋翼无人机自主精准降落的控制 ...

  4. 使用Minifly打造基于视觉感知的跟踪无人机

    摘自:https://www.cnblogs.com/kryo/p/11278565.html 使用Minifly打造基于视觉感知的跟踪无人机 前言:本文介绍一种可行的解决方案来实现基于视觉感知的跟踪 ...

  5. 【机器人识别抓取】基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计

    目录 导读 1 引言 1.1 抓取综合方法 1.2 基于视觉的机器人抓取系统 2 抓取检测.视觉伺服和动态抓取 2.1抓取检测 2.2 视觉伺服控制 2.3 动态抓取 3 本文实现的方法 3.1 网络 ...

  6. 李飞飞高徒:斯坦福如何打造基于视觉的智能医院?

    作者:Albert Haque.Michelle Guo 来源:机器之心 自 2009 年担任斯坦福人工智能实验室和视觉实验室的负责人,李飞飞在推动计算机视觉方面研究的同时,还密切关注 AI 医疗的发 ...

  7. 深度神经网络在基于视觉的目标检测中的应用

    简 介: 目标检测是计算机视觉的一个重要应用方向,深度神经网络的提出极大地帮助基于视觉的目标检测提高了准确度.自2014年以来,深度神经网络在基于视觉的目标检测中被广泛应用,出现了多种算法.本文分别讨 ...

  8. 基于优化反馈的组合在线学习

    点击上方蓝字关注我们 基于优化反馈的组合在线学习 孔芳1, 杨悦然1, 陈卫2, 李帅1 1 上海交通大学约翰·霍普克罗夫特计算机科学中心,上海 200240 2 微软亚洲研究院,北京 100080 ...

  9. 机器人识别抓取笔记(基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计:综述)

    Real-Time Deep Learning Approach to Visual Servo Control and Grasp Detection for Autonomous Robotic ...

最新文章

  1. s9.16作业,员工信息表
  2. 在TFS中通过程序动态创建Bug并感知Bug解决状态
  3. macOS的关于屏幕录制的快捷键和操作
  4. Enterprise Spring示例和集成测试
  5. 价值50万年薪的Java面试题
  6. python3多线程自定义threading子类
  7. linux 防火墙开端口(转)
  8. python渲染html页面_python接口自动化29-requests-html支持JavaScript渲染页面
  9. 综合应用WPF/WCF/WF/LINQ之一:DEV-WOW 作品源代码公布
  10. python安装csv出错_python处理csv文件问题解决贴
  11. 基于Qt的海康威视SDK二次开发-摄像头登陆、预览和抓图
  12. IRQL(多线程中断请求级别)
  13. 系统时间无法同步 rpc服务器不可用,win7系统时间同步出错RPC服务器不可用的解决手段...
  14. mysql backup 使用_MYSQLBACKUP工具的使用
  15. 对比分析冯诺依曼结构和哈佛结构。
  16. 前端学习周报(第三周)
  17. CSS样式层叠关系(一)-- 外部,内部与内联
  18. 实战之jvm-sandbox动态加载插件实现
  19. Mac Terminal 美化
  20. python日期校验

热门文章

  1. C语言入门:计算所有N位水仙花数
  2. 快速排序 Quick Sort
  3. capp PHP,开目CAPP通用框架
  4. 中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?
  5. VS2019 c# 中国移动云mas平台 webservice实现
  6. STC8h1k28六个基本实验
  7. 转 CRT 上传 下载
  8. ZYNQ学习笔记(一)---初识ZYNQ-7000系列
  9. 马云现身杭州谈ChatGPT;GPT机器人要来了?OpenAI领投人形机器人公司;马斯克退出OpenAI内幕|极客头条
  10. [附源码]Java计算机毕业设计SSM房地产销售系统