原文地址:http://blog.csdn.net/thefirstwind/archive/2007/02/10/1507277.aspx
说明:基于 SOA 的微软机器人开发环境 Robotics Studio (1) 机器人业界正期待Ford的出现 Ford system 是在汽车产业中采用的合理化生产方式。产品的单纯化,部件的规格化、生产手段和工厂的专门化。 原文作者介绍: 大川 善邦工学博士日本大学工学部非常勤講師大阪大学名誉教授2007/2/9 译者介绍: 邢晓宁 工学硕士 http://blog.csdn.net/thefirstwind 2007/2/11 本连载针对, 2006 年 12 月微软发布的 「Robotics Studio 1.0( 英文版 )」 进行概要性的说明。连载的第一回题目为,机器人业界的现况和课题说明,针对 Robotics Studio 1.0 的技能简介 相关网站 : Microsoft Robotics Studiohttp://msdn.microsoft.com/robotics/ 机器人 业界 的现状 首先,简单介绍一下机器人业界的现状 。 近年来,和机器人相关的新闻经常已经是耳熟能详了 。 工厂生产线上操作机器人来处理简单重复性的操作 、 宇宙探险中使用机器人作业 、 深海勘查中利用海下机器人等等 。 还有,2005年开始欧美开始使用胃肠诊断机器人获得许可 。 再有,家庭环境中使用护理,清洁,照顾幼儿等专用的机器人 。 如此说来,机器人的专门分工已经快速发展起来,在人类的日常生活中也逐步的广泛应用起来 。 最近 、 兴趣两足行走机器人等种类的机器人非常方便的就可以买到 、 上面所说的高性能专用机器人,对于普通消费者购买来说还是比较困难的。经过笔者的调查,如今在日本家庭用机器人 ( http://www.banryu.jp/ ) 的价格是 200 万 日元(14万人民币) 。 由于考虑到机器人的开发费用相当昂贵,因此价格方面即使家用机器人对于普通消费者来说仍然是奢侈品 。 相关链接 : 日本 机器人学会 http://www.rsj.or.jp/ 日本 机器人工业 会 http://www.jara.jp/ 从汽车产业学起 为什么,突然说起了汽车产业的发展历史 。 原因是 、 在这段历史中暗示着机器人普及的必然性 。 汽车发明于 18 世纪中期 「 工业革命 」。 针对 詹姆斯瓦特 的 「 蒸汽发动机 」、 很多发明家对各种各样的汽车雏形进行研发 。 如果,没有试验阶段,普及就无从谈起 。 在此之后, 汽油机车的发明,进一步的推动了汽车的实用化 、 当时普通人是没有办法以当时的价钱轻松购买的。 。 20 世纪初 、 美国 亨利福特 的汽车生产线的成立,大量生产汽车成为可能。 。 在此生产方式下爆发了汽车的普及 。 如今,机器人产业正处于 「 正等待着亨利福特的出现 」 的状态 。 时下的机器人业界正处于,厂商分别使用各自的方法研制机器人的 「 群雄割据的时代 」 。 为了实现机器人的普及 、 笔者认为出现亨利福特式的生产线是当务之急 。 当然,汽车和机器人是不一样的 。 即使 说汽车和摩托的统一规模大生产 、 机器人的价格也下不来 。 花在机器人制造的大量精力 、 应该不是部件的 「 物质 」 资源 、 移动的 「 算法 」、 也就是说是软件的开发 。 就例如,行走过程中回避障碍物,和接受人的语言命令等等 ……。 类似此类算法如果能被通用化且自由的使用,相信机器人的价格会大幅度的下调。 。 换句话说,即 「 机器人的动态软件通用化 」、 也就好比汽车产业的 「 组装生产线 」 的普及 。 相关链接 : 福特·汽 车 公司 http://www.ford.co.jp/servlet/ContentServer?cid=1137383659125&pagename=Page&c=DFYPage Robotics Studio 1.0 设计法 为什么,本连载要说 Robotics Studio 1.0 、 笔者认为在机器人群雄割据的时代, Robotics Studio 1.0 算是一种新模式的设计方法 。 要注意的是 、 这里介绍的是 Robotics Studio 1.0 作为一种设计法的有效性, 而并非主张 「 Robotics Studio 1.0 是机器人开发的组装生产线 」。 以下连接是 Robotics Studio 1.0 ( 英文版 ) 。在用在非商用用途从 http://www.microsoft.com/downloads/details.aspx?FamilyId=3D706147-82E2-4B4A-AF12-DB7D3F8ACD8A&displaylang=en 可以免费下载 。 Third Parties 的应用实例 Robotics Studio ( http://msdn.microsoft.com/robotics/ ) 网站里面有个叫做 「 Featured Third Parties 」 的项目, 、 在这里有开发实例的介绍 。 还有 、「 Watch the video! 」 的连接以及实际能动机器人的录像 。 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 的配置 。 图1 节点的构造 所谓节点是 、 指 HTTP 和 TCP/IP 的服务 。 该服务机能为 、「DSS(Decentralized Software Service)」 所提供 。 在 DSS 、Web 服务是最小限度的服务 ( 比如 HTTP 的 GET 方法等 )。 另外,用户自定义的必要服务也可以订制在节点上 。 所谓的各节点 、 如图 1 的构造 。 分时处理 CCR 和 DSS 、 在此之上由默认的服务和用户自定义的服务 (注) 。 注: 如果没有用户自定义服务,也可以生成节点 。 Robotics Studio 1.0 中 、 节点的状态在 Web 浏览器中可以被监视到 。 画面 1 节点的控制内核画面 ( 使用 IE 表示 ) 对于低耦合的 (Robotics Studio 1.0)、 多程序并行执行调试相对困难些 。 针对高内聚设置了布莱克点数 、 在程序停止的状态下也是不能检查的 。 原因是 、 当程序停止的时候依存关系被破坏 。 因此 、 通常情况下分析log(日志)来分析程序的运行状态以及调试 。 还有 、 网络连接是必要的 、 这个网络应用在互联网的时候其安全性被看作是重要的研究课题 。Robotics Studio 1.0、 在消息收发时要建立目标对象的友好关系 。 因此在友好关系之外的对象是无法收发信息的 (注) 。 注: 「 友好关系登陆的安全 」 是必须的 。 友好关系登陆也是安全的手段,但不是唯一 。 相关 : SOA 的定义 http://www.atmarkit.co.jp/aig/04biz/soa.html 和机器人的 “人机交互” 去商场或旅游胜地等有机器人做向导的话将会是非常方便和便利的。机器人也可以作为看护或育儿或人们生活的助手 。 考虑到此类机器人,必须要能明白 「 人们的语言,并且有作答的能力 」。 图 2 导购机器人图 遗憾的是, 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 结点与机器人通信 。 图 3 结点与机器人通信 PC 的结点通过向机器人发送指令信息进行通信 。 相反,机器人探查到障碍物,向节点发送结果通知报告 。 适合 物理 定律的虚拟机 通常、 机器人控制程序为图像识别,声音识别,人工智能 、 神经网络等非常复杂的运算 。Robotics Studio 1.0 中 、 为提高程序开发效率,在实际测试之前,要使用 「Visual Simulation Environment」 来测试 。 画面 3 Visual Simulation Environment 为了使虚拟机接近现实 、物体 的运动计算使用复杂 「物理 定律 」。 例如 、「 空气运动学轨道 」「 物体间突然碰撞 」 等进行计算时使用 「 牛顿运动方程 」。 还有 、 为了计算高速处理 、 使用美国 AGEIA Technologies 的物理演算处理过程 「PhysX」。 相关连接 : AGEIAhttp://www.ageia.com/ PhysXhttp://www.ageia.com/physx/ ◇ 下一回介绍 、Robotics Studio 1.0 中实际机器人连接测试 。 对 VPL 和虚拟机的交叉说明来 理解 测试结果