原文地址:http://blog.youkuaiyun.com/thefirstwind/archive/2007/02/10/1507277.aspx
说明:基于
SOA
的微软机器人开发环境
Robotics Studio
(1)
机器人业界正期待Ford的出现
Ford system
是在汽车产业中采用的合理化生产方式。产品的单纯化,部件的规格化、生产手段和工厂的专门化。
原文作者介绍:
原文作者介绍:
大川 善邦
工学博士
日本大学工学部非常勤講師
大阪大学名誉教授
2007/2/9
工学博士
日本大学工学部非常勤講師
大阪大学名誉教授
2007/2/9
译者介绍:
本连载针对,
2006
年
12
月微软发布的
「Robotics Studio 1.0(
英文版
)」
进行概要性的说明。连载的第一回题目为,机器人业界的现况和课题说明,针对
Robotics Studio 1.0
的技能简介
相关网站
:
| |
![]() |
Microsoft Robotics Studio http://msdn.microsoft.com/robotics/ |

首先,简单介绍一下机器人业界的现状
。
近年来,和机器人相关的新闻经常已经是耳熟能详了
。
工厂生产线上操作机器人来处理简单重复性的操作
、
宇宙探险中使用机器人作业
、
深海勘查中利用海下机器人等等
。
还有,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
(
英文版
)
。在用在非商用用途从
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!
」
的连接以及实际能动机器人的录像
。
|

现在,对
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
浏览器中可以被监视到
。
对于低耦合的
(Robotics Studio 1.0)、
多程序并行执行调试相对困难些
。
针对高内聚设置了布莱克点数
、
在程序停止的状态下也是不能检查的
。
原因是
、
当程序停止的时候依存关系被破坏
。
因此
、
通常情况下分析log(日志)来分析程序的运行状态以及调试
。
还有
、
网络连接是必要的
、
这个网络应用在互联网的时候其安全性被看作是重要的研究课题
。Robotics Studio 1.0、
在消息收发时要建立目标对象的友好关系
。
因此在友好关系之外的对象是无法收发信息的
(注)
。
注:
「
友好关系登陆的安全
」
是必须的
。
友好关系登陆也是安全的手段,但不是唯一
。
|
相关
:
| |
![]() |

去商场或旅游胜地等有机器人做向导的话将会是非常方便和便利的。机器人也可以作为看护或育儿或人们生活的助手
。
考虑到此类机器人,必须要能明白
「
人们的语言,并且有作答的能力
」。
![]() |
图
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」
发音程序示例
。

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」
来测试
。
为了使虚拟机接近现实
、物体
的运动计算使用复杂
「物理
定律
」。
例如
、「
空气运动学轨道
」「
物体间突然碰撞
」
等进行计算时使用
「
牛顿运动方程
」。
还有
、
为了计算高速处理
、
使用美国
AGEIA Technologies
的物理演算处理过程
「PhysX」。
相关连接
:
| |
![]() | |
![]() |
◇
下一回介绍
、Robotics Studio 1.0
中实际机器人连接测试
。
对
VPL
和虚拟机的交叉说明来
理解
测试结果