找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 7977|回复: 11

求高手解释一下java开发平台和微软Microsoft Robotics Studio区别

[复制链接]
发表于 2010-1-4 18:40:10 | 显示全部楼层 |阅读模式
rt,我需要做一个解机器人的程序作为大学的毕业设计...但是和大部分不同的是,我需要用到模式识别的知识,即我得用摄像头来说 一次一面 的识别魔方颜色,而非用颜色传感器 一次一个格的识别...希望高手们给我推荐个开发平台. 顺便提示一下如何把乐高的软件调用连接计算机的摄像头...
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2010-1-4 22:11:39 | 显示全部楼层
建议用Java,因为用其编程比较直接。如果用微软的环境,你要学的就不只是对问题编程,还要涉及到分布式开发的概念,和web开发的概念,这个系统是个非常庞大的环境,因为它并不是只给lego系统用,微软的野心非常大,它的这个系统是给整个机器人开发系统使用的,需要你学习许多知识。
当然,如果用摄像头,有两种情况:1直接使用能在lego上使用的摄像头,网上有卖(很贵http://mindsensors.com/index.php ... ;MMN_position=24:24),如果是这样就无需考虑蓝牙通讯问题。所有的问题都可在lego上解决;2用pc机的摄像头,这样你需要编写两个程序,一个运行在pc端(主要功能就是读取摄像头图像,进行模式识别,向lego发出旋转魔方的指令),另一个运行在lego端(主要功能就是接受pc端的指令,旋转魔方)。这种方式需要pc与lego之间的蓝牙通讯,虽然麻烦点,但运行速度快过第一种方式,因为可以利用pc的强大运算能力来进行模式识别,lego端只是对pc端发来的指令做出反应,旋转魔方。但编程难度大点,因为需要解决读取摄像头数据的问题(如果用java,需要去网上搜索读取摄像头的函数库,应该有,如果没有,那难度就更大了,需要自己编写函数库,利用jni--JavaTM Native Interface 技术来调用c函数,如果是这样,索性直接用c/c++在pc端编程算了)。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2010-1-4 22:27:53 | 显示全部楼层
回复 2# zjfchine


    ...高手现身!...呵呵 感谢你的回答...我看LEGO提供一个PC端软件...叫NXTCamView,....貌似通过它能够通过他的某些功能直接把魔方的各个小格颜色识别出来...返回RGB的值....请问你对这个有所了解么?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-1-6 13:45:14 | 显示全部楼层
这个NXTCamView貌似是针对NXTCam专用的,不知道普通的USB摄像头能不能支持
我不知道你用什么做开发,如果你熟悉C# (vs2008)的话,可以很容易实现颜色块的识别
你可以google搜索关键词capCreateCaptureWindowA,这个是用来抓摄像头视频的
色块的边缘分割有点麻烦,但是咱们可以回避这个问题
如果摄像头的位置比较固定的话,魔方每个区域的位置在抓图中也基本是固定的
你从附近的区域采样几个点就可以取出颜色

我本来计划再做一个摄像头版本的,不过现在想做一个大块头机器人,所以这部分先放下了
最近正在写魔方机器人的攻略,你可以去看看,其他方面可以有所参考
http://www.diy-robots.com/?page_id=46
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-1-7 23:11:32 | 显示全部楼层
本帖最后由 magiccube 于 2010-1-7 23:33 编辑

Java和Microsoft Robotics Studio有着根本的区别。

Java我想你应该指的是leJOS  NXJ,它包含一个运行在NXT主机内部的Java VM虚拟机,你写的Java代码被编译为二进制class文件后,上传到NXT主机中,是在NXT主机内部独立运行。如果遇到复杂的、内存消耗较大的运算,或是需要访问网络,则可以利用leJOS自带的Connection利用蓝牙或USB远程与电脑或其他计算设备进行通讯,实现高性能复杂计算,也可以利用该Connection与手机或蓝牙GPS进行交互。

而微软的MRS则并非专为Lego MindStorm NXT设计,它在NXT和其他种类的机器人之上又抽象出一层来,并且完全运行在装有.NET Framework的操作系统上,可以将它(PC+MRS+蓝牙)简单的理解成为是一个可编程的机器人遥控装置,只不过与一般的“遥控器”相比,它可以随时通过蓝牙获取链接在NXT主机上的传感器信息,因此并不能发充分挥机器人自身的特性,而且实时性也较差(完全依赖蓝牙连接),最致命的是机器人无法脱离PC独立运行。

终上所述,如果你想开发一个魔方机器人的话,建议还是用leJOS NXJ为妙。

如果你想用摄像头来做的话,一般的WebCam、单反相机(Nikon需安装Camera Control Pro,Canon也类似)其实也可以,只要支持Windows摄像头的“简单照片传输协议”。用USB线连接摄像头和PC,将拍摄的照片在PC上分析(这一步NXT怕是处理不过来),然后通过蓝牙将分析的结果(多维数组而已,而不是图片)反馈给NXT,接下来的事情就直接用NXT来计算搞定了。

但是从图片分析成魔方数组,牵涉到很多问题,不能直接依赖Color Sensor的RGB值,比如环境光线等等(就是白平衡啦)都会影响你的最终结果,所以你的PC软件需要具备简单的较色功能(其实leJOS上也有这个功能)。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-1-7 23:29:47 | 显示全部楼层
本帖最后由 magiccube 于 2010-1-7 23:31 编辑

忘说了,MRS还有一个 for .NET Framework Compact版的,运行在 Windows Mobile 手机上,也是起着类似蓝牙遥控器的角色。

另外,记得以前在MRS的论坛上看过一个官方回复“微软目前没有并且将来也不会将Microsoft .NET Framework 或 .NET Framework Compact 安装在 Lego 的 MindStorms 系列主机上”。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2010-1-8 20:46:52 | 显示全部楼层
回复 4# bj_legofan


    嘿嘿, 一直在用igoogle订阅你的博客.....在CB上也看见你了....一直在关注哈

咱是老乡,你在哪?我海淀的
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2010-1-8 20:47:24 | 显示全部楼层
回复 5# magiccube




相当详细! 谢谢前辈!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-1-11 14:12:57 | 显示全部楼层
to:magnusguo

呵呵,我也是海淀的,上班在知春路 :)
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-2-15 23:56:26 | 显示全部楼层
高深!!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2010-11-24 10:45:23 | 显示全部楼层
很好,谢谢楼主
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-24 14:52:16 | 显示全部楼层
牛人!!!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-11-22 14:33 , Processed in 0.084474 second(s), 20 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表