原文地址:http://blog.csdn.net/thefirstwind/archive/2007/02/10/1507277.aspx
说明:基于SOA的微软机器人开发环境Robotics Studio(1)
机器人业界正期待Ford的出现
Ford system是在汽车产业中采用的合理化生产方式。产品的单纯化,部件的规格化、生产手段和工厂的专门化。
原文作者介绍:
大川 善邦
工学博士
日本大学工学部非常勤講師
大阪大学名誉教授
2007/2/9
译者介绍:
本连载针对,2006年12月微软发布的「Robotics Studio 1.0(英文版)」进行概要性的说明。连载的第一回题目为,机器人业界的现况和课题说明,针对Robotics Studio 1.0的技能简介
机器人业界的现状
首先,简单介绍一下机器人业界的现状。
近年来,和机器人相关的新闻经常已经是耳熟能详了。工厂生产线上操作机器人来处理简单重复性的操作、宇宙探险中使用机器人作业、深海勘查中利用海下机器人等等。还有,2005年开始欧美开始使用胃肠诊断机器人获得许可。再有,家庭环境中使用护理,清洁,照顾幼儿等专用的机器人。如此说来,机器人的专门分工已经快速发展起来,在人类的日常生活中也逐步的广泛应用起来。
最近、兴趣两足行走机器人等种类的机器人非常方便的就可以买到、上面所说的高性能专用机器人,对于普通消费者购买来说还是比较困难的。经过笔者的调查,如今在日本家庭用机器人(http://www.banryu.jp/)的价格是200万日元(14万人民币)。由于考虑到机器人的开发费用相当昂贵,因此价格方面即使家用机器人对于普通消费者来说仍然是奢侈品。
从汽车产业学起
为什么,突然说起了汽车产业的发展历史。原因是、在这段历史中暗示着机器人普及的必然性。
汽车发明于18世纪中期「工业革命」。针对詹姆斯瓦特的「蒸汽发动机」、很多发明家对各种各样的汽车雏形进行研发。如果,没有试验阶段,普及就无从谈起。在此之后,汽油机车的发明,进一步的推动了汽车的实用化、当时普通人是没有办法以当时的价钱轻松购买的。。
20世纪初、美国亨利福特的汽车生产线的成立,大量生产汽车成为可能。。在此生产方式下爆发了汽车的普及。
如今,机器人产业正处于「正等待着亨利福特的出现」的状态。
时下的机器人业界正处于,厂商分别使用各自的方法研制机器人的「群雄割据的时代」。为了实现机器人的普及、笔者认为出现亨利福特式的生产线是当务之急。
当然,汽车和机器人是不一样的。即使说汽车和摩托的统一规模大生产、机器人的价格也下不来。花在机器人制造的大量精力、应该不是部件的「物质」资源、移动的「算法」、也就是说是软件的开发。就例如,行走过程中回避障碍物,和接受人的语言命令等等……。
类似此类算法如果能被通用化且自由的使用,相信机器人的价格会大幅度的下调。。换句话说,即「机器人的动态软件通用化」、也就好比汽车产业的「组装生产线」的普及。
Robotics Studio 1.0设计法
为什么,本连载要说Robotics Studio 1.0、笔者认为在机器人群雄割据的时代,Robotics Studio 1.0算是一种新模式的设计方法。
要注意的是、这里介绍的是Robotics Studio 1.0作为一种设计法的有效性,而并非主张「Robotics Studio 1.0是机器人开发的组装生产线」。
SOA的机理
现在,对Robotics Studio 1.0的思想和功能介绍一下。
Robotics Studio 1.0是基于「SOA(Service Oriented Architecture)」架构。
「针对网络连接的多台个人电脑、进行信息交换」
这便是SOA的基本机能。
对Robotics Studio 1.0来说设置「节点(Node)」和被调用的基本单位是必要的。因此,组建针对单节点的多「服务(Service)」(注)。通过该服务,以达到信息的交换功能。具体来说就是「机器人针对障害物而做出的停止或绕过的反应服务」或者「对红外线或声音的反应服务」等等。
|
注:服务(Service)又被称为「子程序」或者「API」等。
|
另外,针对企业级的程序的构筑方法,或者说针对「高内聚(Tightly Coupled)」、Robotics Studio 1.0是以「低耦合(Loosely Coupled)」的方法构建的。
低耦合的程序开发中,各种各样的服务的强独立性,是必要的考虑内容。例如,服务A给服务B发「信息」、服务B要针对该信息进行什么样的处理。此时、服务スB对服务A发出报错信息,即「通知(Notification)」(注)是必须要考虑的。
|
注:通知即「中断(Interrupt)」发生时的信息反馈。
|
用SOA有「消息(数据)」和「通知」と种信号处理。而对信号的综合处理机构叫做「CCR(Concurrency and Coordination Runtime)」。如图1所示,节点的最底层CCR的配置。
所谓节点是、指HTTP和TCP/IP的服务。该服务机能为、「DSS(Decentralized Software Service)」所提供。在DSS、Web服务是最小限度的服务(比如HTTP的GET方法等)。另外,用户自定义的必要服务也可以订制在节点上。
所谓的各节点、如图1的构造。分时处理CCR和DSS、在此之上由默认的服务和用户自定义的服务(注)。
Robotics Studio 1.0中、节点的状态在Web浏览器中可以被监视到。
对于低耦合的(Robotics Studio 1.0)、多程序并行执行调试相对困难些。针对高内聚设置了布莱克点数、在程序停止的状态下也是不能检查的。原因是、当程序停止的时候依存关系被破坏。因此、通常情况下分析log(日志)来分析程序的运行状态以及调试。
还有、网络连接是必要的、这个网络应用在互联网的时候其安全性被看作是重要的研究课题。Robotics Studio 1.0、在消息收发时要建立目标对象的友好关系。因此在友好关系之外的对象是无法收发信息的(注)。
|
注:「友好关系登陆的安全」是必须的。友好关系登陆也是安全的手段,但不是唯一。
|
和机器人的“人机交互”
去商场或旅游胜地等有机器人做向导的话将会是非常方便和便利的。机器人也可以作为看护或育儿或人们生活的助手。考虑到此类机器人,必须要能明白「人们的语言,并且有作答的能力」。
遗憾的是,Robotics Studio 1.0没有声音识别的机能设计。但是、使用「Speech SDK」可以进行语言识别(注)。
|
注:对应英语发音。并且已经预先登陆了男女三人的发音。另外,使用Speech SDK登陆自己的声音,也可以用自己的声音进行识别。
|
如今、人类语言世界技术并未完善。另外、技术人员们赞成「无法完全识别语音」的看法。但是、笔者支持作为「补足手段」,进行语言识别。原因是,我们人们日常生活中,「反问」等的确认过程经常是用来「完善理解」以加强对听到的话的理解。今后的研究、人类语言识别技术的有待提高。
服务的开发
在Robotics Studio 1.0中标准安装包括「Visual Programming Language(以下、VPL)」(注)。这样的话,可视化开发变成可能。使用UML技术进行程序设计,编码图形化、这样便可生成程序的骨架、VPL是纯粹的bottom-up语言。
|
注:Visual C#或者Visual Basic等也可以开发。
|
VPL中、画面左侧工具栏是基础的Basic Activities和Services,画面中央是工作区、在图之间用各种线表示不同处理。画面2中、是英语的「Hello World」发音程序示例。
|
|
|
画面2 Visual Programming Language
|
与机器人连接
Robotics Studio 1.0和机器人的连接。
首先,机器人的种类有如下两种。
- 机器人控制设备对应.NET Framework 3.0(大型机器人、工厂用溶接机器人等)
- 机器人控制设备使用小型CPU、不用和.NET Framework 3.0对应(H8或PIC等微机控制小型机器人)
上述1中机器人控制设备设置结点,该结点中用户配置自定义服务,可以对机器人进行控制。
上述2中、PC中设置结点。通过Bluetooth等借助结点和机器人通信。
图3、PC结点与机器人通信。
PC的结点通过向机器人发送指令信息进行通信。相反,机器人探查到障碍物,向节点发送结果通知报告。
适合物理定律的虚拟机
通常、机器人控制程序为图像识别,声音识别,人工智能、神经网络等非常复杂的运算。Robotics Studio 1.0中、为提高程序开发效率,在实际测试之前,要使用「Visual Simulation Environment」来测试。
|
|
|
画面3 Visual Simulation Environment
|
为了使虚拟机接近现实、物体的运动计算使用复杂「物理定律」。例如、「空气运动学轨道」「物体间突然碰撞」等进行计算时使用「牛顿运动方程」。还有、为了计算高速处理、使用美国AGEIA Technologies的物理演算处理过程「PhysX」。
◇
下一回介绍、Robotics Studio 1.0中实际机器人连接测试。对VPL和虚拟机的交叉说明来理解测试结果
发表于 @ 2007年02月10日 23:54:00|评论(loading...)