视觉是人类感知外界信息的重要手段,视觉伺服系统是机器人获取环境信息的关键组成部分。本文主要讨论仿人机器人BHR-1的视觉伺服系统。首先介绍机器人头部的视觉总体结构方案,然后论述了基于立体视觉的信息处理和头部运动控制,最后通过目标跟踪和物体抓取实验说明了系统的可行性。

  总体方案及控制系统  

仿人机器人的视觉伺服系统要求能够根据具体环境和具体情况进行主动搜索,实时将摄像头转向目标,实现对空间目标的实时跟踪并获取物体的三维位置信息,从而控制手臂实现对物体的准确抓取。  BHR-1)的头部有2个自由度,面部放置两只CCD摄像头作为视觉传感器来模拟人的眼睛。机器人的手臂也是模仿人类的上肢设计的,具有7个自由度,肩关节3个自由度,肘关节2个自由度,腕关节2个自由度,可以实现人类上肢的各种动作。机器人根据目标的三维位置信息实现对物体的抓取。

  仿人机器人BHR-1的总体设计方案如图2所示。为了实现物体的快速定位,需要完成图像处理和运动控制的任务。一台计算机将难以满足快速定位的实时性要求,因此本文采用了双计算机处理和Memolink通信方式的系统结构,使用两台计算机分别负责双目立体视觉的信息处理和机器人的运动控制。Memolink是系统间进行快速通信的一种有效解决方案。

  机器人的视觉跟踪以及目标抓取的实现都依赖运动控制计算机对机器人的运动控制。运

                                       图2 系统总体方案

  动控制系统根据视觉处理系统的处理结果,控制机器人采取相应决策。例如:头部的两自由度转动,以跟踪目标的运动或者上肢手臂去抓取目标。运动控制子系统以RT-Linux实时操作操作系统作为软件平台,保证了机器人控制系统的实时性。

  机器人的运动控制子系统的被控对象是机器人的各关节的角度,而关节是由电机带动的,因此被控对象实际上是带动关节转动的电机转动的角度,是一个位置伺服系统。

  系统使用了一套多功能接口板,将所有的A/D转换、D/A转换、ENC、PWM、32位IO等多种功能都集成在该接口板上,提高了系统的集成性并减小了系统体积和重量。

  在控制信号的输入方面,由于控制的目的是为了机器人的头部能够跟踪运动的目标,因此实际上输入量就是根据图像处理子系统的处理结果得到的,在图像处理的过程中,最终求得的目标的位置就是后面运动控制子系统的输入量。由于图像处理子系统的处理结果本身就是数字量,运动控制子系统所得到的位置信息也是数字信号,因此,这里不需要模数转换的过程。

  在反馈信号的输入方面,因为被控对象是电机,确切的说是电机转动的角度,是位置控制,因此可以用电机上面的轴角编码器的输出作为反馈信号。轴角编码器是一个测量电机所转过的角度的器件,它以脉冲的方式来反馈电机转过的角度,电机转过的角度越大,它输出的脉冲个数就越多,反之,输出的脉冲个数就越少。因此我们采用了接口板上的ENC(encoder)

图3 机器人头部运动控制子系统框图

  接口来作为反馈信号的输入通道,它可以测量轴角编码器的脉冲输出个数。机器人头部的运动控制子系统的结构框图如图3所示。

  基于立体视觉的视觉信息处理  系统采用了基于立体视觉的解决方案,通过加入了深度信息,使得目标的搜索结果更加准确。系统使用了美国SRI人工智能中心所开发的一套高速的双目立体视觉系统SVS(small vision system)。

  图像分割是物体识别的预处理阶段,是机器人视觉伺服系统的关键技术之一。该系统采用了基于颜色信息的阈值分割方法。理论分析和实验结果都表明,对同一颜色属性的物体,在光源种类、照度、物体反射特性等不同条件下,测得的RGB颜色值分布很分散,很难确定识别RGB的阈值范围。而HSV模型更接近人眼对颜色的感知,它将采集的颜色信息分为色调、饱和度和亮度三种属性量化,色调属性H能比较准确地反映颜色种类,对外界光照条件的变化敏感程度低,因此,HSV较之RGB更适合于用做识别处理的基础。本文采用HSV模型作为颜色识别处理的基础,选取其中的参数H和V作为识别处理的判别依据。RGB空间中一点到HSV空间中一点的具体转化关系如下:

  V=max(r,g,b),V′= min(r,g,b);

  If V= 0 or V = V′then H=0, S=0;

  If r = V then H=(g-b)/(V-V′);

  If g= V then H=2+ (b-r)/(V-V′);

  If b = V then H=4+ (r-g)/(V-V′), H=H×60;

  If H <0 then H=H+360, S=(V-V′)/V

  系统首先离线采样目标图像区域,将该局部彩色图像从RGB模型转化为HSV模型,对其中H、S两个分量分别作直方图,得到选定区域的H、S阈值,这是一个离线的学习过程。在随后的实时图像识别中,H、S阈值根据前一个视觉周期的彩色图像实时更新以适应新的光照条件。

  图4 视觉处理流程图

  视觉处理系统的流程图如图4所示,系统使用摄像头来采集图像,在对图像进行一系列的预处理之后,对其进行区域分割,以得到多个区域,再搜索这些区域,根据已知目标特征找到目  标所在的区域。如果找到,则控制机器人头部面向目标,同时更新目标的特征,以用来在下次搜索时使用,如果没有找到相匹配的目标,则可能目标被暂时隐藏或丢失,这时开始下一次处理,以等待目标再次出现。

  因为视觉处理系统处理的是上一个周期的图像,所以得到的目标坐标也是上一个周期的坐标,如果用此方向坐标来作为运动控制的输入,则头部运动始终滞后一个周期。为了加快系统的速度,本文采用了比例微分控制,系统地输入输出函数为:

  Iα(k+1)=kp eα(k)+kd(eα(k)-eα(k-1))

  Iβ(k+1)=kp eβ(k)+kd(eβ(k)-eβ(k-1))

  eα(k)=αk-αk’,eβ(k)=βk-βk’

  式中Iα(k+1)和Iβ(k+1)为在t(k+1)时间上控制系统的输出;

(αk,βk)表示在时间 t(k)目标的方向坐标;(αk’, βk’)该时刻二自由度机构的方向坐标;eα(k)和eβ(k) 分别表示该时刻头部位置与目标位置之间的偏差;kp和kd分别为控制系统的比例系数和微分系数。通过实验调节kp和kd,kd<<kp,系统可以既有较高的反应速度,同时又具有稳定性。 运动控制过程  根据前面的叙述,计算机控制系统的工作过程是一个循环的实时数据采集,实时决策,实时控制的过程,在本系统中,根据所选用器件的具体情况,假设对所有的控制环完成这样的一个循环大约需要m毫秒的时间左右。在视觉信息处理系统中,处理一帧图像平均需要n毫秒左右的时间,由于视觉处理和运动控制任务的特点的不同,n>>m,也就是说视觉处理的周期要远远大于运动控制的周期。在一个视觉处理的周期内,系统可以完成多个控制周期的处理。因此在一个视觉处理周期之后,系统应该做好下一个视觉处理周期之内的运动规划,也就是做好后面多个控制周期之内的运动规划,这样才能保证机器人的头部以均匀、平缓,同时又是准确的速度来跟踪目标。控制系统软件流程如图5所示。 

    图5 机器人运动控制的软件流程

在每一个运动控制周期内,程序都首先要查看Memolink,看视觉信息处理系统是否有新的处理结果通过Memolink传递到运动控制系统,如果没有,程序就按照预设的运动规划来控制机器人运动;如果有,程序就先要根据视觉系统的处理结果来修改运动规划。为了使机器人头部的运动平稳,我们把每次预设的运动规划所规划的时间定为略大于视觉处理的平均周期,这样就能够保证系统在每次新的视觉处理结果到来之时,原有的运动规划还没有执行完。从而使只要目标在不断运动,机器人头部便可以处于不断运动过程中,避免了机器人头部时转时停的现象。随后程序分别读取规划和反馈,根据两者之差来求得控制量,再发出控制信号,控制机器人头部的转动。

  对于控制量的求法程序采用了传统的PID算法,设t(k)为第k个运动控制周期时刻,在t(k)时间上,系统的输出量为Yk,运动规划的规划量为Xk,依据PID算法,在t(k+1)时间上,系统的输出Yk+1为

  Yk+1=KP(Xk-Yk)+Ki∑(Xk-Yk)+Kd(Xk-Yk-Xk-1+Yk-1)

  上式中KP,Ki,Kd分别为比例系数,积分系数,微分系数。在一个控制系统中,一定大小积分系数可以使系统没有残差,但会降低响应速度;而一定大小的比例系数可以加快系统的响应速度,并能根据输入的变化提前做出响应,但可能导致系统不稳定。因此在结果可以接受的情况下,应该只使用比例系数,如果结果达不到要求再使用积分系数和微分系数。

  实验  

本系统中,视觉信息处理系统和运动控制系统分别适用Windows和RT-Linux作为软件开发平台。RT-Linux是实时操作系统,使用它可以满足运动控制的实时性,而Windows系统的强大的多媒体功能使其成为图像处理的平台。视觉信息处理计算机的CPU为PⅣ 2.4GB,内存512M;运动控制计算机的CPU为PⅢ 700MHz,内存256M;Memolink是连接视觉处理系统与运动控制系统的桥梁,我们选用的产品采用PCI接口,最大传输速率为1Mbytes/s。摄像头为SVS视觉处理系统,每秒钟采样15帧。

  SVS视觉处理系统安装才2自由度的运动机构上,该机构在2个自由度方向的运动足以使其指向任何方向,因此可以实现跟踪物体。BHR-1的头部的三维尺寸为宽19cm,高27cm,深19cm,重量2.8kg,以上数据包括机械结构、轴承、电机、摄像机等。

  利用该系统跟踪和定位物体时,图像的处理速度为每秒钟10帧,视觉伺服周期为100ms左右,运动控制系统的伺服周期是3ms,近距离的定位精度较高,最高精度为1m处3‰。图6为BHR-1的头部跟踪和物体定位实验。 

 为进一步验证本文提出的视觉定位与动作规划的方法的有效性,BHR-1系统实现了对物体的抓取试验(如图7),机器人手臂是具有7个自由度的机器人的右臂,实验过程中,视觉系统将目标物体的三维信息通过memolink传递给运动控制计算机,运动控制计算机根据上面提出的方法规划数据并实现抓取物体。

结语  

本文给出了一种基于双目视觉的物体的跟踪和定位方案。双目视觉用于获取目标物体的三维空间信息,实现物体的定位。这个系统采用了双计算机处理和Memolink 通讯方式,两台计算机分别进行视觉信息处理和运动控制,保证了系统具有较高的响应速度。

机器视觉(1)-- 视觉伺服控制系统简介相关推荐

  1. 机械手基础知识(3)之基于图像的视觉伺服与基于位置的视觉伺服

    ** 基于图像的视觉伺服与基于位置的视觉伺服 ** 有关于机械手位姿问题的理解,可以去看我关于机械手正逆运动学分析的文章 首先说,基于图像的视觉伺服与基于位置的视觉伺服主要表现形式在于图像雅可比矩阵的 ...

  2. 视觉伺服控制完整解析

    视觉伺服控制完整解析 视觉伺服控制简介 相关符号及概念的说明 坐标变换 刚体运动 相机模型 视觉伺服控制理论 基于位置的视觉伺服控制 基于图像的视觉伺服控制 参考文献 视觉伺服控制简介 视觉伺服控制( ...

  3. 视觉伺服研究学习——2021年10月

    一.基础学习课程 深度学习 计算机视觉 机器学习 约定: 黄色高亮表示关键词,不认识的知识点: 绿色下划线:重要的思想观点,精髓的理解. 二.论文学习 1.室内动态视觉SLAM算法研究         ...

  4. 面向高精度领域的视觉伺服算法汇总

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉工坊 前言 视觉伺服是工业上很重要的一个领域, ...

  5. scare机器人如何手眼标定_基于视觉伺服的工业机器人系统研究(摄像机标定、手眼标定、目标单目定位)...

    击上方"新机器视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 标定技术 常见的机器人视觉伺服中要实现像素坐标与实际坐标的转换,首先 ...

  6. 暾盛机器人_移动机器人视觉伺服.pdf

    从机器人J.生的那大起.具有新度钳能的闩E移动机器人就 良是人 们追求1引卅究旧罐高门拓.近年来随着计弹机技术.传感嚣技术16乏人l智 艟等技术们迅瓶发展.白E移动机器人的研究已经有了长足的进步.jf ...

  7. 机器人3D互动展品开发计划——飞拍视觉伺服

    机器人3D互动展品开发计划--飞拍视觉伺服 俺要开发这个好玩的东东,但缺乏信心 求路过的哥哥姐姐弟弟妹妹点个赞,鼓励一下幼小脆弱的心灵 我们要做成这种效果:https://v.youku.com/v_ ...

  8. MATLAB已知坐标均匀取电,基于MATLAB带钢卷取电液伺服控制系统的分析(word文档良心出品)(11页)-原创力文档...

    系统动力学结课作业-基于MATLAB的 带钢卷取电液控制系统的研究 姓名: 王紫民 流水号:学号: 专业: 机械工程 日期: 2014.05.10 基于MATLAB^钢卷取电液伺服控制系统的分析 一. ...

  9. matlab相机标定_【显微视界】基于视觉伺服的工业机器人系统研究(摄像机标定、手眼标定、目标单目定位)...

    今日光电        有人说,20世纪是电的世纪,21世纪是光的世纪:知光解电,再小的个体都可以被赋能.欢迎来到今日光电! ----与智者为伍 为创新赋能---- 标定技术 常见的机器人视觉伺服中要 ...

最新文章

  1. 笔记工具这么多,但这款有点不一样
  2. ebs查看服务状态_Oracle EBS - 工单状态
  3. springmvc二十五:springmvc支持ajax
  4. [TT]-Trustonic acronyms
  5. 2、事务的概念和特性
  6. Java的迭代器—— Iterator
  7. java el表达式 导航规则_诺禾:在jsp里面如何不写java代码展示数据(EL表达式的使用)...
  8. Linux 中su 与su - 的区别
  9. 自定义MongoDB的Spring Social Connect框架
  10. 推荐收藏 | SLAM优秀开源工程汇总
  11. python hackrf_HackRF固件更新及编译环境搭建
  12. PyTorch学习笔记(七):PyTorch可视化
  13. 腾讯云对象存储(cos) js jdk上传文件
  14. Kali-linux:masscan命令
  15. 使用阿里云邮件推送服务群发邮件
  16. 23计算机考研人第一周反思总结
  17. 服务器定时关机 修改时间,服务器每周 设置定时关机
  18. 服务器固态硬盘当作系统盘,只当系统盘太屈才,这些地方都能用上固态硬盘!...
  19. 谷歌colab“几键”运行图像超分辨率模型-ESRGAN,操作详解
  20. 最简单DIY基于STM32单片机的蓝牙智能小车设计方案

热门文章

  1. Filmage Converter 视频转换器,MP4转换
  2. c语言中sub指令,汇编_指令_SUB
  3. 计算机cmos是由rom组成,什么是CMOS与BIOS?又有什么区别?
  4. Android 通过Service 实现后台GPS定位
  5. 小米假android8.0,小米的Bug太多?小米A1已暂停Android 8.0升级
  6. 易语言 设置屏幕刷新率 源码_iQOO 5 Pro智能手机屏幕测评报告 「Soomal」
  7. UG11.0压铸模具基础知识讲解视频教程 产品处理 修改教程
  8. Udesk机器人API使用介绍(一)
  9. 老友逢共话区块链落地,杭州首个区块链周首日精彩瞬间
  10. win10linux子系统root权限,电脑win10系统如何将linux子系统wsl切换到root权限