您现在的位置: 晨光科技 >> 文章 >> 技术 >> 单片机 >> 正文  
  借助微软MSRDS软件,乐高机器人有了机器视觉           
借助微软MSRDS软件,乐高机器人有了机器视觉
[ 作者:佚名    转贴自:http://www.eefocus.com/zhang700309/blog/12-06/279959_543cc.html    点击数:29    更新时间:2018/5/10    文章录入:LA ]
[注:本站登载的某些文章并不代表本站支持或反对其观点或肯定其真实性]

   原本略显神秘的,比较“高科技”的机器视觉,没想到有一天,我也可以体验一把,采用微软MSRDS软件做了一个入门实验。实验内容是:用PC摄像头,判断物体的蓝色色块中心是否偏离摄像头视野的X轴中央位置,如果偏离,则乐高NXT电机会带动摄像头向反方向偏转,以消除偏差。如上图。

实验视频:

     微软高清摄像头网址:http://item.taobao.com/item.htm?id=8373607177&_u=5con830c7ad

    乐高9797+9695机器人套件,网址:

http://item.taobao.com/item.htm?id=12941550436&

    下面介绍MSRDS软件中,与机器视觉相关的两个服务元件,WebCam与ColorSegment。见下图。(双击图片,可以放大看!)

    把WebCam服务元件的属性设定其Configuration为[Set initial configuration]。点开WebCamState与ImageSize项目,设定视觉摄像头的长宽像素为320×240像素。

    ColorSegment元件的作用是依据颜色特征来把视野中的物体划分为色块,ColorSegment服务元件的属性设定其Configuration为[Set initial configuration]。点开Partners项目,设定其WebCam为既有的WebCam服务元件。点开Settings项目,设定阀值Threshold为1.25,最小色块MinBlobSize为50 。

   按下菜单工具栏中的启动按钮,或者按F5热键,运行DSS服务。

    在Run窗口,逐个寻找各行“Service started”的记录,点击其左侧的“-”符号便可看到对应的服务元件网址,现在要找到ColorSegment元件的浏览器监控网页,并点击它。我发现有些浏览器显示的ColorSegment元件浏览器监控网页,对它进行操作时,有些问题,后来我用了360安全浏览器,问题解决了。

      随之出现的浏览器页面,左侧的Source Image栏可看到摄像头的影像,我取出LEGO9797机器人套件中的蓝色球,放在白纸上,让摄像头辨识。

    下面左侧窗口是Source Image栏,显示是摄像头视野里的真实物体;右侧窗口是Segmented Image栏,显示物体辨识后的色块。

    按下监控网页的Control栏的[Start]按钮,让摄像头开始进入侦测模式。在左侧的Source Image栏显示的蓝色球区域内,用鼠标拉出一矩形框,包含住蓝色球的大部分色块。

     在Color Definitions栏的Add Entry位置,填入自订的色块名称,比如blue,并按下[Add]按钮,在按下[Add]按钮前不可移动蓝色球,以免定义到的色块颜色值错误。

    按下[Add]按钮后,右侧的Segmented Image栏才会出现辨识的色块,之前这个栏里显示“Segmented Image Available”的字样。此时,您移动摄像头视野里的蓝色球,辨识出的色块应该也会跟随蓝色球移动,这样就可以确定,通过跟踪色块的方法,来跟踪蓝色球,是否可行。

    把上图用红色下划线标注的新增的“blue”色块颜色值,记在纸上,然后停止DSS服务,回到ColorSegment元件的属性设置区,点击Colors栏右方的“+”符号,其下的ColorSet栏位Name设为blue,再点击Color旁和ColorDefinition旁的“+”符号,随之会打开参数栏,这时您可以根据刚刚在纸上抄下来的颜色值,按顺序一一填写。

    从库里拖出if元件和“LegoNXTBrickv2”NXT控制器以及“LegoNXTMotorv2”单电机元件。并按照程序全景图,进行元件连线和连接设置。

 

    在if活动元件的判断式填写“Areas[0].CenterX>190”与“Areas[0].CenterX<130”,形成3个条件情况,Areas[0]为辨识时摄像头发现的最大色块。

    如果色块中心的位置大于190,说明物体向右偏离摄像头视野X轴中央位置,则应给A电机设置功率为-0.1,让电机左转。如果色块中心的位置小于130,则给A电机设置功率为0.1,电机右转,从而补偿偏差,跟踪蓝色球。如果色块中心的位置大于130,并且小于190,则电机功率为0,摄像头不偏转。

    if元件和“LegoNXTBrickv2”NXT控制器、“LegoNXTMotorv2”单电机元件的详细使用,以及MSRDS软件与乐高机器人蓝牙联机运行方法,见博客文章《 微软XBOX手柄遥控乐高机械手车的MSRDS编程详解 》,网址:http://www.eefocus.com/zhang700309/blog/12-05/279205_eb30b.html 。

    程序编写完毕后,按下键盘F5按键,启动DSS服务,并由蓝牙连接实体NXT机器人。NXT机器人控制器“嘟”的一声,说明程序连接成功,这时您在摄像头前左右移动蓝色球体,看看!NXT机器人会随之旋转并带动摄像头追踪蓝色球体。

    这个实验的MSRDS程序,请下载:colorApplication.zip

    对这些“高科技”好玩的技术,我也不是无师自通的,其实这些创客类技术,在台湾比较流行,可能是台湾跟国际潮流比较紧吧。对于微软这个机器人专业软件MSRDS,台湾入门书籍有两本不错,可以在淘宝,用繁体字搜索下,再买来看看,不过书籍的价格比较贵,当然看我博客,是最经济的方法,但不可能要求全面啊。

     这个有机器视觉的乐高NXT机器人作品,我给出3张图,看是否可以根据它们搭建出这个作品来,但实际上对于新手肯定还是困难,要经过适当的训练,起码要知道图中显示出的是哪些零件,这些零件的搭建特点是什么?有点基础以后,看着图,硬着头皮试着搭建,逐渐会柳暗花明的。

     从上面搭建图可以看出,一个大的黑色圆盘齿轮被压在下面,NXT电机通过三个灰色中等大小的齿轮传动,驱动了一个小齿轮,这个小齿轮与圆盘齿轮内环齿啮合,使圆盘齿轮的转动,进而带动上面的控制器、电机和摄像头的转动。注意,小齿轮与圆盘齿轮内环齿啮合的细节在图上是看不到的,这就需要搭建时,琢磨下,于是会豁然明了的,这可能也是乐高积木创意的乐趣所在。

  • 上一篇文章: 我家的温湿度测量计

  • 下一篇文章: 用微软MSRDS软件的语音识别技术遥控乐高机器人
  •    
    [注:标题搜索比内容搜索快]
    发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
  • 轨道钢承重计算公式及应用[109]

  • 【选型】如何为变频器选取阻值…[86]

  • AIS2023参展厂商名录[346]

  • AGV综合选型[170]

  • APIE 2023第4届亚太国际智能装…[138]

  •  
     最新5篇推荐文章
  • 外媒:正在唤醒中国的习近平[305]

  • 中国反伪科学运动背后的CIA黑手…[494]

  • [转载]袁隆平真言:中国最大的…[668]

  • 台专家:当年我们造IDF时 大陆…[572]

  • 旅日华人:中国严重误判日本民…[577]

  •  
     相 关 文 章
  • Arduino和STM32性能对比究竟谁…[26]

  • Labview及Proteus软件环境下单…[38]

  • 基于labview串口通讯的虚拟数字…[41]

  • AVR编程语言Arduino也可以用Pr…[47]

  • Arduino编程 PWM方法调节LED光…[37]


  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 
    版权所有 Copyright© 2003 晨光科技        站长:璀璨星辰        页面执行时间:470.70毫秒
    Powered by:MyPower Ver3.5