购买

¥16.0

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 MSRDS微软机器人发展平台

MSRDS微软机器人发展平台.doc

MSRDS微软机器人发展平台

仙人指路
2019-02-25 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《MSRDS微软机器人发展平台doc》,可适用于初中教育领域

在参加这次大赛之前对MicrosoftRoboticsDevelopmentStudio并无了解。通过上网查询并下载了软件后对它有了初步的认识。MicrosoftRoboticsDevelopmentStudio是微软机器人发展平台简称MSRDS是微软公司年跨足机器人领域的产品。原名简称MSDS后更名MSRDS其特点如下:具备非同步处理程式库(CCR)及分散软体服务(DSS)可轻易且有弹性地控管非同步作业。具备视觉化程序语言(MVPL)环境这是一种高度图形化的程式设计界面对于不具有软体背景的工作人员极具有亲和力亦可以轻易用来整合不同的软体。图为支持视觉化模拟环境(VSE)可以让设计人员在没有硬体机器人的状况下测试即开发演算法。MSRS提供了面向服务的运行库以及设计和部署基于机器人的应用程序所需的工具。工具包中提供了面向首次涉足机器人世界的开发人员的可视化创作工具、教程和文档。爱好者和学术研究人员可以免费下载使用。下载后发现它是一个有许许多多文件和程序组成的工具包里面的程序组合运用就可以实现模拟。MSRS运行库提供了两个基于CLR的较低级别的运行库。这两个运行库分别是分散软件服务(DSS)以及协调和并发运行库(CCR)。DSS是一种面向服务的轻型运行库基于具象状态传输(REST)原理用于启动Web。CCR是一个MicrosoftNETFramework库支持异步处理。对于机器人应用程序而言这非常重要因为要不断在大量传感器和传动装置上发送和接收数据。除运行库外MSRS工具包中还包括一个VPL工具。借助此工具您只需将元素拖放到设计平面中即可构建机器人应用程序。MSRS中还提供了VSE可用于体验涉及多个机器人和障碍物的复杂模拟。MSRS的这部分功能是本文的重点。我将介绍可视模拟环境并逐步介绍如何使用新的机器人实体创建模拟。值得高兴的是您无需借助机器人来使用的代码。AddGround方法使用HeightFieldEntity类型在零海拔处创建广阔的地面。随MSRS安装提供的纹理图像用于代表地面。}模拟包含一个或多个实体每个实体都在帧内部呈现。帧即等效于翻页书中的一页纸而帧的呈现速率取决于主机的图形卡。翻页书和模拟之间的根本区别是翻页书是静态的或可预测的而模拟则不是。模拟的每个帧都是动态呈现的实体在每一帧内部的受力并不总能提前获知。模拟的有用之处也正体现在这里。您可以使用机器人执行一个方案然后查看机器人如何与现实世界交互。运行模拟安装后MSRS将创建一个包含七个模拟的菜单文件夹。“基本模拟环境”是此文件夹中的第一个模拟您可以通过在VSE菜单中依次单击“模式”和“编辑”来查看场景中包含哪些实体。编辑模式下您可以在左窗格中修改与各个实体相关的属性。借助这些属性即可完全控制实体从名称到在模拟环境中的位置无所不包。此外您还可以通过这些属性精确控制实体的呈现方式进而影响该实体在模拟中的显示方式。可修改实体属性的编辑模式返回到运行模式后即可使用鼠标或箭头键来回移动模拟。这会更改主摄影机的视点而此视点就是您查看模拟的视点。此处还需要重点提及的是VSE允许您使用不同的模式呈现场景。可视模式为默认模式是模拟场景的真实视图。不过“呈现”菜单项提供了线框、物理、组合或无呈现模式可供您选择。之所以提供“无呈现”选项是因为呈现只是模拟的一个方面。运行模拟的最大价值在于实现各个实体之间的交互。因为从资源角度来讲呈现模拟场景中的实体的费用非常昂贵因此当场景中包含大量实体时“无呈现”选项就会非常有用。实体和实体类型通过实体类型您可以为特定类型的实体定义新实例。例如基本模拟环境中的地球仪就是一种形状实体类型。实体类型充当新实体的模板其中指定了与特定实体类型相关的属性。创建实体后即可更改这些属性的值但实体中包含哪些属性却是由实体类型定义的。VSE需要使用实体类型来向模拟添加实体。例如若要添加一个机器人(如iRobot公司的Create机器人)您需要在VSE处于编辑模式时依次单击“实体”和“新建”从而在其中添加一个新实体。这将打开一个“新建实体”对话框在“新建实体”对话框中您应在“类型”中选择“iRobotCreate”然后输入唯一的名称例如“创建实体”。单击“确定”后Create机器人将出现在模拟场景中。以编程方式添加新实体MSRS提供了多种创建和使用模拟的方法。除VSE之外您还可以通过创建DSS服务项目以编程方式向模拟中添加实体。MSRS提供了一个VisualStudio模板可用于新建DSS服务。安装MSRS后在创建新的VisualStudio项目时只选择SimpleDssService()作为模板。使用模板新建DSS服务会随之创建两个类文件。实现类默认与项目同名您可以在其中添加代码来创建新实体。以编程方式创建的模拟要求能够访问SimpleDSSService模板外部的程序集。因此您将需要添加对图中所列程序集的引用。图模拟项目附带的程序集程序集名称说明PhysicsEngine提供对基本AGEIA软件物理引擎的访问。RoboticsCommon提供对PhysicalModel命名空间的访问此空间用于定义机器人的物理特征。SimulationCommon提供对使用模拟和物理引擎时要用到的类型定义的访问。SimulationEngine提供对模拟引擎的访问。SimulationEngineproxy代表模拟引擎的代理当加载模拟引擎作为合作伙伴时会用到此代理。添加引用后您还需要在实现类文件中添加下列命名空间声明:BoeBot是MSRS支持的现有的几种机器人平台之一。这意味着MSRS安装中会包括一些基本服务用于操纵BoeBot的驱动系统以及内置接触传感器。尽管MSRS中提供了适用于BoeBot的平台服务但实际上并不包括BoeBot实体类型。创建实体类要创建适用于BoeBot的新实体类型我需要添加一个派生自DifferentialDriveEntity的类。由于添加的类是从DifferentialDriveEntity类派生而来因此我能够重用定义BoeBot在场景中来回移动时的行为方式的代码。用于创建BoeBot实体类型的代码如图所示。BoeBot类的构造函数用于为在DifferentialDriveEntity类中定义的多个变量设置值。例如将质量值设置为代表质量以千克为单位。另外使用宽度、长度和高度来定义BoeBot底盘。这些测量值通过称取机器人的实际重量、使用公制尺进行实际测量获得。BoeBot的位置通过一组坐标值进行定义这组坐标值在创建实体时传入。这些坐标值代表X、Y和Z轴上的点。MSRS模拟引擎使用右手坐标系这会影响Z轴上的点的朝向。BoeBot构造函数还可定义底盘和实体中轮子的位置。DifferentialDriveSystem类假定您的机器人将使用两个主轮和一个主要起平衡作用的小后轮。功率将分配到用于控制主轮的左、右马达。通过为每个轮子分配不同的功率级可以确定各轮将向前、向后、向左还是向右移动。这与驱动物理机器人的方法相同。模拟最具吸引力的一点就是:理论上无论您的机器人是虚拟的还是真实的驱动机器人和从传感器接收数据使用的代码都是相同的。用于模拟项目的部分代码同样可以重用于实际机器人。现在您可能已注意到我说的是“理论上”。这是因为模拟技术无法完全模拟实际环境。模拟无法对干扰做出解释此处的干扰是指一些出乎您意料的事情如将障碍物的位置放错。模拟的作用是让您非常真实地体验新机器人的设计效果或模拟多个机器人的交互。这非常适用于资源有限而学员数量庞大的学术环境。创建网格每个实体都可以与网格关联从而使实体呈现真实的外观。以地球仪为例网格可以使地球仪实体显示为行星地球的外观。严格来说没有必要将实体与网格关联但对于复杂实体(例如机器人)则应该首选网格对象。几乎任何D图形编辑工具都可用于创建网格。在撰写本文时我很幸运地获得了同事SteveGrand的帮助他使用D包SoftImage(有关此工具的详细信息请参见softimagecom)为我创建了BoeBot网格。与此网格相关的文件均包含在本文随附的可下载的zip文件中。要跟随本文的进度请下载此zip文件并提取上述文件然后将BoeBot文件夹中的内容复制到storemedia目录下此目录与本地MSRS安装相关。SoftImage能够将图像导出为obj格式。并非所有包都有此功能。例如MSRS在其ChannelWiki(gomicrosoftcomfwlinkLinkId=)中建议使用D包SolidWorks(请参见solidworkscom)。但遗憾的是SolidWorks无法将图像导出为obj格式因此它建议使用Blender(blenderorg)工具执行实际转换。当选择使用图形包创建网格文件时请牢记这一点。有关创建BoeBot网格的细节问题不在本文讨论范围之内但您应知道它是通过连接多个多边形网格形状创建的。例如金属底盘开始时是一个立方体形状经修改后用于表示BoeBot的大小和形状。然后添加其他圆柱体形状来代表各个轮子。建立结构以将轮子与底盘绑定并允许整个对象作为一个单一形状来发挥功能。最终效果(如图所示)是一个代表实际BoeBot的图像。将网格转换成二进制格式MSRS提供了一个命令行工具可将obj文件转换成经过优化的二进制文件扩展名为bos。此文件类型的优点是加载速度比obj文件快。您可以使用MSRS安装附带的命令提示符菜单项来访问命令行工具Objbosexe。使用网格时一定要记住:所有材料都用于为物理对象着色并且每个实体都可以与一个或多个材料关联。因此当创建obj文件时很可能需要包括扩展名为mtl的其他材料文件。此外还可能要包括用于创建纹理的图像文件。这些文件都必须复制到与obj文件位置相同的位置才能使用网格转换工具。obj文件及所有关联文件都应放在与本地MSRS安装相关的storemedia目录下。由代码下载附带的与BoeBot网格关联的文件有:Aluminumpng、Boebotmtl、Boebotobj、BoebotWheelpng和Pcbpng。添加到media目录下之后请打开MSRS命令提示符键入以下内容:转换工具将创建一个名为Boebotbos的文件该文件位于media目录下。保留该文件的位置不动因为稍后将引用此文件。创建模拟服务从头创建项目则需要使用VisualStudio模板创建一个新的DSS服务。您可以将该项目命名为SimulatedBoeBot。除了之前提到的程序集引用外您还需要添加对MicrosoftXnaFramework的引用并在SimulatedBoeBotcs类文件的顶部添加以下命名空间引用:图在虚拟世界中驱动BoeBot(单击图像可查看大图)驱动服务用于为控制BoeBot的轮子提供动力。这样您就可以使用虚拟控制杆控件或与计算机相连的实际控制杆在模拟中来回移动BoeBot。双击列表框中显示的SimulatedBoeBot项目即可开始移动。随后您就可以使用鼠标拖动圆形虚拟控制杆此控制杆位于简单控制板表单的左上角。您可能要经过一段时间后才会习惯使用虚拟控制杆控件。练习来回移动BoeBot并查看它与箱形障碍物碰撞时的情形。进入编辑模式选择其中一个实体调整其部分属性以查看这对该实体有何影响。在模拟环境中体验一段时间感觉一下轮子的工作方式。构建不带差动式驱动的实体为使此类系统可用于模拟世界或真实世界需要创建一个类用于说明此类型的驱动系统。此操作的步骤不在本文的讨论范围之内但MSRS允许您针对此类型的方案提供相应步骤。此类可扩展性是使MSRS对机器人学研究人员的价值非比寻常的原因之一。MSRS可以扩展为支持任何类型的硬件平台。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/6

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利