机器人的“操作系统”:Microsoft Robotic Studio 点击:1255 | 回复:4



纵横军团-黑丫头

    
  • 精华:0帖
  • 求助:6帖
  • 帖子:47帖 | 1885回
  • 年度积分:0
  • 历史总积分:8955
  • 注册:2011年10月27日
发表于:2013-04-02 10:51:46
楼主

来自:中国机器人网

机器人的“操作系统”:Microsoft Robotic Studio
                   ――让你的机器人像个人电脑一样


      众所周知,微软公司(Microsoft Corp.)的Windows系列操作系统已经在个人电脑领域占据了主导地位。无论您的机器是何种品牌、何种型号、何种配置,Windows操作系统都能够轻松应对并为您提供想要的服务。同时,友好的用户界面也赢得了广大用户的青睐,使Windows成为个人电脑领域最受欢迎的操作系统。如今,这一传统正在进入欣欣发展的机器人行业,而且不仅仅局限于家用机器人领域,在工业机器人领域也已经崭露头角。这就是微软机器人工作室推出的机器人操作系统――Microsoft Robotic Studio。
      在目前机器人行业的生产和开发过程中,还没有统一的平台和标准,不同公司按照不同的标准和技术路线生产和开发机器人设备。对于机器人的初学者而言进入的门槛过高,每一个开发人员都要从底层硬件入手再到上层的控制软件,大量的人力物力消耗在了重复的设计中,为了改变这一局面,为机器人开发人员能减少一些麻烦的工作和创建不同类型硬件的标准,简化对机器人的编程,把更多的精力投入机器人智能领域的研究,2006年6月微软公司推出了“Microsoft Robotic Studio”机器人开发软件,迈出了向机器人行业进军的第一步。
      微软公司于2008年5月19日在匹兹堡举办的 RoboBusiness Conference and Exposition(机器人商业大会暨展览会)上首次发布了其机器人技术编程平台的最新版本 Microsoft Robotics Developer Studio 2008 的社区技术预览版 (CTP)。Microsoft Robotics Developer Studio 2008 包含对齐运行时间性能、分布式计算功能以及工具的改进。这个被称为“Microsoft Robotics Studio”(微软机器人技术工作室)的新平台主要用于机器人技术的开发,适合学术、理论和商业研究等领域。



1 Microsoft Robotic Studio的特点

      Microsoft Robotic Studio(MSRS)是一个用于机器人项目的软件开发包(SDK),它主要包括可视化编程语言,机器人服务和机器人仿真三个主要部分,运行时环境可以工作在目前的机器人技术中使用的各种8、16和32位处理器上。该软件重点是让用户编写简单的模块化命令程序,并如同服务那样动作。这种程序一般不在目标机器人的有限处理器和存储器上运行,而是通过机器人定义的许多通信协议中的一种与机器人进行交互。
      基于MRS开发机器人控制软件是使用“服务”概念的程序,就是将机器人的每一个子功能和任务设计成一个个独立的“服务”,该服务可以通过PC与机器人实体有线或者无线的连结来得到机器人实体上传感器的数据,并进行处理,可以向机器人实体发送控制命令,控制机器人的运动。这样的控制软件结构对应了机器人控制中基于行为的控制方法,其中的“服务”就是“行为”的软件实现。在开发机器人软件时还可以使用Microsoft提供的可视化编程语言,这是一种基于数据流的编程模型,使得编程的过程更加直接易懂,方便没有编程基础的用户学习使用。
      MRS还提供机器人环境仿真,该仿真使用Ageia技术公司提供的PhysX物理引擎,能够使我们充分利用强大的物理仿真技术,实现机器人的高保真度、高可视化的环境仿真。图1是采用Microsoft Robotic Studio技术设计的机器人。

1.jpg



2 Microsoft Robotic Studio的功能

2.1 机器人服务(Robotic Server)
       Microsoft Robotics Studio是基于Windows平台,使学生、爱好者和商业开发者们都能够很容易的创建跨硬件平台的机器人技术应用。Microsoft Robotics Studio仿真运行时技术提供的运行环境能够满足了大部分机器人应用的需求:
      1. 当程序运行时,它必须能够监控状态和与单个组件进行互动。
      2. 当程序运行时,它必须能够发现、创建、停止和重起组件。
      3. 它必须能够处理从多个传感器来的并发输入,并将这些输入变成互不干扰的任务列表。
      4. 它必须能够处理自治系统,也能够在本地或者通过网络控制机器人应用。
      5. 运行时必须是轻量级的并能够运行在不同的环境中。
      6. 应用环境必须具有可扩展性和灵活性,来适应多种不同的软硬件环境。

      为了满足这些需求, Microsoft Robotics Studio 运行时提供一个面向服务的架构,它结合了传统基于WEB架构的主要理念和WEB服务来提供高灵活性和轻量级,分布式的应用模型。Web架构主要着眼于轻便性,互操作性和松耦合性。运行在Http协议之上,基于Web的应用已经证明是可伸缩的,具备互操作性,并且能够灵活的适应多种不同的应用场景。
      根据微软《Robotics Studio用户指南》,运行时环境包括了CCR(并发与协调运行时)与DSS(分散软件服务)部件,而这些部件必须满足下列需求集:必须能监控状态;当应用运行时能与部件交互;能发现、创建、终止和重新启动部件;能并发地处理多个传感器的输入,并将这些输入组织为任务,而不会有这些任务之间无意干扰的风险;能通过网络同时处理本地与远程的自动与受控机器人应用;运行时重量必须足够轻,从而能在广泛的环境中执行;应用环境必须为可扩展,并有足够的灵活性,以适应各种硬件与软件环境的交互。
      CCR通过一个面向信息的变成模型支持异步与并发操作,该模型可以自动揭示出并行硬件与协议信息,而无需使用手工线程、锁定或信标。这种方案使设计者能够建立起更松散耦合的软件模块或部件。独立的CCR .NET DLL可以从任何面向.NET 2.0 CLR(公共语言运行时)的语言中访问。微软在CCR上建立了DSS运行时,且DSS并不依赖于微软Robotics Studio中的任何其它部件。它为管理服务提供了一个主控环境,以及一组架构服务,可以用于服务创建、发现、记录、调试、监控与安全。DSS支持一种轻量级的面向服务应用模型,它结合了传统REST基于Web的架构,以及部分Web服务架构。DSS定义了一个应用模型,它建立在REST模型上,通过它们的状态和对该状态的一组统一操作而展示服务,但通过增加结构化数据操作、事件通知以及服务组织扩展了HTTP(超文本传输协议)应用模型。
      DSS的主要目标时提供服务之间的互操作性,不管这些服务是否运行在相同结点或网络上。DSS用HTTP和DSSP(分散软件服务协议)作为服务间交互的基础。基于DSSP的轻量级SOAP(简单对象存取协议)支持结构化状态与事件模型的操作,这改变了结构化状态的驱动。

2.2 可视化编程语言(Visual Programming Language)
      微软VPL(虚拟编程语言)图形编辑开发环境采用一种数据流编程模型,而不是控制流模型。一个VPL数据流包括一个连接的动作序列,数据流将其表示为带输入和输出的块,可以将它们连接到其它动作块上。动作可以表示为预构的服务、数据流控件、函数或其它代码模块;动作也可以包含其它动作的组合。VPL面向初级程序员,但该编程语言也吸引高级程序员用作快速原型开发或代码开发。
      Microsoft 可视化编程语言 (VPL) 是一种应用程序开发环境,它基于图形化的数据流式编程模型基础上设计,而不是传统编程中常用的控制流。数据流程序更像生产线上接到材料后完成其所负责任务的一组工人,而不是顺序执行的一系列强制命令。因此,VPL 很适合于各种并行或分布式处理情况下的编程。 
      VPL 面向的是对变量和逻辑等概念有基本理解的初级编程人员。但是,VPL 并不是仅供初学者使用。此编程语言的组合特性对于追求快速原型设计和代码开发的高级编程人员也极具吸引力。另外,尽管它的工具箱是专为开发机器人应用程序而设计的,但其基础结构并不仅限于机器人编程,还可以用于其他用途。因此,VPL 受到包括学生、热衷者和业余爱好者在内的众多用户的广泛欢迎,有些 web 开发人员以及专业程序员也为之所深深吸引。
      在Microsoft Robotics Studio中,即使不懂编程的爱好者都可以用可视化编程语言(VPL)像堆积木一样,选择一些服务(比如Lego NXT已经被很好支持),把这些服务按顺序连接,给出输入参数,定义一些计算方法,然后运行,就可以控制一台Lego NXT这样简单的机器人了。
      如图2所示,服务列表中列出了很多基本的的服务,如Lego电机、XBOX手控器等,只需把它们拖动到框图板上,设置所需的参数,然后将服务之间顺序连接起来,一个机器人控制程序就完成了。当然,你也可以自定义服务,如果使用到基本过程,那么也同样简单。如果你使用过Matlab的Simulink或是NI公司的LabView,那么这些对你来说更是易如反掌了。

2.jpg

 


2.3 机器人仿真(Robotic Simulation)
      Microsoft Robotics Studio目标是使广大的爱好者能够加快机器人技术的开发和使用。他所提供的一个重要组成部分就是运行时仿真技术。PC和游戏技术的成熟运用,使机器人仿真技术变得可行,并为大量使用铺平了道路。设计模拟运行时的目的是将其用于各种对保真度、可视化、比例要求很高的高级方案中。同时,不懂编程或编程经验极浅的初学者也可使用模拟功能,在类似游戏的环境中开发有趣的应用程序。集成的Ageia技术和PhysX引擎能够使我们使用充分利用强大的物理仿真技术,这些无疑对机器人技术的发展和成熟有着不可估量的价值。物理渲染的引擎基于可管理的DirectX技术。
      机器人设计最困难的问题之一在于如何让机器人与周围环境交互。现在你可以在仿真环境中建立不同的地形,添加不同的物体,然后让你的机器人在其中运行。每种物体背后实际上是一个独立的物理模型。比如你可以添加3张桌子,但第一张桌子的物理模型就是桌子形状,第二张桌子的物理模型是个圆球,第三张桌子的物理模型是个立方体,那么一旦他们受到外力,三张桌子会以不同的方式运动,或翻倒,或滚动,或位移。你可以操纵机器人,或者看机器人自动运行,碰撞到或者通过传感器检测到周围物体后如何动作,从而设计机器人的运动方式。这比摸黑写好程序,输入机器人,发现问题再回去摸黑改,改好了再输入机器人试运行的方式方便多了。
       Robotics Studio仿真运行时包含了仿真引擎服务、受控物理引擎封装器、原生的物理引擎库,以及与物理引擎和在仿真世界中表示硬件与物理对象的渲染引擎接口的部件。仿真引擎服务负责渲染实体、加快物理引擎仿真时间。它跟踪整个仿真的状态,为仿真提供一个服务/分布前端。受控物理引擎封装器将用户从低级物理引擎API中抽象出来,为物理仿真提供一个受控接口。
       如图3所示,仿真环境提供多层次的视角、真实的物理特性和逼真动画效果。并且初始环境下就提供了如图4所示的控制窗口,只要加入控制协议就可以通过普通手柄或者键盘控制机器人的运动,就和操作真的机器人一样。(PS:我最喜欢驾驶Pioneer来与Lego小机器人玩碰碰车)同时,仿真环境的一切都可以自己设定,天空、地面、障碍物,材质、重心、质量等,完全像真的一样表现出不同的物理特性。视角也同样可以切换,如图5所示,可以从机器人的第一视角感受极品飞车的感觉。

3.jpg

 




广州@阿君—王者之师

  • [版主]
  • 精华:25帖
  • 求助:18帖
  • 帖子:503帖 | 6997回
  • 年度积分:0
  • 历史总积分:66772
  • 注册:2010年6月26日
发表于:2013-04-02 14:54:09
1楼

暂时还没到大陆吧.。。。暂时还没到大陆吧.。。。暂时还没到大陆吧.。。。

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2013-04-24 06:07:35
2楼

仿真软件目前还是问题多多,就像PLC仿真软件一样

第五纪冰川

  • 精华:3帖
  • 求助:5帖
  • 帖子:37帖 | 4224回
  • 年度积分:3
  • 历史总积分:12263
  • 注册:2005年2月18日
发表于:2013-04-25 17:20:10
3楼

这个系统一出来就能降低机器人开发的难度,所以不可能得到现有几个机器人大厂的支持。没有大厂的支持,没多大的前途。

若此笔名未被注册

  • 精华:10帖
  • 求助:1帖
  • 帖子:294帖 | 3225回
  • 年度积分:0
  • 历史总积分:6058
  • 注册:2003年3月30日
发表于:2014-04-24 00:11:48
4楼

有谁需要的?我可以免费赠送他一份,呵呵


热门招聘
相关主题

官方公众号

智造工程师