已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在参加这次大赛之前,对Microsoft Robotics Development Studio 并无了解。通过上网查询并下载了软件后对它有了初步的认识。Microsoft Robotics Development Studio 是微软机器人发展平台简称MSRDS.是微软公司2006年跨足机器人领域的产品。原名简称MSDS后更名MSRDS. 其特点如下:1具备非同步处理程式库(CCR)及分散软体服务(DSS)可轻易且有弹性地控管非同步作业。2具备视觉化程序语言(MVPL)环境,这是一种高度图形化的程式设计界面,对于不具有软体背景的工作人员极具有亲和力,亦可以轻易用来整合不同的软体。图为3支持视觉化模拟环境(VSE),可以让设计人员在没有硬体机器人的状况下测试即开发演算法。MSRS 提供了面向服务的运行库,以及设计和部署基于机器人的应用程序所需的工具。工具包中提供了面向首次涉足机器人世界的开发人员的可视化创作工具、教程和文档。爱好者和学术研究人员可以免费下载使用。 下载后发现它是一个有许许多多文件和程序组成的工具包,里面的程序组合运用就可以实现模拟。MSRS 运行库提供了两个基于 CLR 2.0 的较低级别的运行库。这两个运行库分别是分散软件服务 (DSS) 以及协调和并发运行库 (CCR)。DSS 是一种面向服务的轻型运行库,基于具象状态传输 (REST) 原理,用于启动 Web。CCR 是一个 Microsoft .NET Framework 库,支持异步处理。对于机器人应用程序而言,这非常重要,因为要不断在大量传感器和传动装置上发送和接收数据。除运行库外,MSRS 工具包中还包括一个 VPL 工具。借助此工具,您只需将元素拖放到设计平面中即可构建机器人应用程序。MSRS 中还提供了 VSE,可用于体验涉及多个机器人和障碍物的复杂模拟。MSRS 的这部分功能是本文的重点。我将介绍可视模拟环境,并逐步介绍如何使用新的机器人实体创建模拟。值得高兴的是,您无需借助机器人来使用的代码。AddGround 方法使用 HeightFieldEntity 类型在零海拔处创建广阔的地面。随 MSRS 安装提供的纹理图像用于代表地面。模拟包含一个或多个实体,每个实体都在帧内部呈现。帧即等效于翻页书中的一页纸,而帧的呈现速率取决于主机的图形卡。翻页书和模拟之间的根本区别是,翻页书是静态的或可预测的,而模拟则不是。模拟的每个帧都是动态呈现的,实体在每一帧内部的受力并不总能提前获知。模拟的有用之处也正体现在这里。您可以使用机器人执行一个方案,然后查看机器人如何与现实世界交互。1运行模拟安装后,MSRS 将创建一个包含七个模拟的菜单文件夹。“基本模拟环境”是此文件夹中的第一个模拟您可以通过在 VSE 菜单中依次单击“模式”和“编辑”来查看场景中包含哪些实体。编辑模式下,您可以在左窗格中修改与各个实体相关的属性。借助这些属性即可完全控制实体,从名称到在模拟环境中的位置,无所不包。此外,您还可以通过这些属性精确控制实体的呈现方式,进而影响该实体在模拟中的显示方式。可修改实体属性的编辑模式返回到运行模式后,即可使用鼠标或箭头键来回移动模拟。这会更改主摄影机的视点,而此视点就是您查看模拟的视点。此处还需要重点提及的是,VSE 允许您使用不同的模式呈现场景。可视模式为默认模式,是模拟场景的真实视图。不过,“呈现”菜单项提供了线框、物理、组合或无呈现模式,可供您选择。之所以提供“无呈现”选项,是因为呈现只是模拟的一个方面。运行模拟的最大价值在于实现各个实体之间的交互。因为从资源角度来讲,呈现模拟场景中的实体的费用非常昂贵,因此当场景中包含大量实体时,“无呈现”选项就会非常有用。 2实体和实体类型通过实体类型,您可以为特定类型的实体定义新实例。例如,基本模拟环境中的地球仪就是一种形状实体类型。实体类型充当新实体的模板,其中指定了与特定实体类型相关的属性。创建实体后,即可更改这些属性的值,但实体中包含哪些属性却是由实体类型定义的。VSE 需要使用实体类型来向模拟添加实体。例如,若要添加一个机器人(如 iRobot 公司的 Create 机器人),您需要在 VSE 处于编辑模式时依次单击“实体”和“新建”,从而在其中添加一个新实体。这将打开一个“新建实体”对话框,在“新建实体”对话框中,您应在“类型”中选择“iRobot-Create”,然后输入唯一的名称,例如“创建实体”。单击“确定”后,Create 机器人将出现在模拟场景中。3以编程方式添加新实体MSRS 提供了多种创建和使用模拟的方法。除 VSE 之外,您还可以通过创建 DSS 服务项目以编程方式向模拟中添加实体。MSRS 提供了一个 Visual Studio 模板,可用于新建 DSS 服务。安装 MSRS 后,在创建新的 Visual Studio 项目时,只选择 Simple Dss Service (1.5) 作为模板。使用模板新建 DSS 服务会随之创建两个类文件。实现类默认与项目同名,您可以在其中添加代码来创建新实体。以编程方式创建的模拟要求能够访问 Simple DSS Service 模板外部的程序集。因此,您将需要添加对图 5 中所列程序集的引用。 图 5 模拟项目附带的程序集 程序集名称 说明 PhysicsEngine 提供对基本 AGEIA 软件物理引擎的访问。 RoboticsCommon 提供对 PhysicalModel 命名空间的访问,此空间用于定义机器人的物理特征。 SimulationCommon 提供对使用模拟和物理引擎时要用到的类型定义的访问。 SimulationEngine 提供对模拟引擎的访问。 SimulationExy 代表模拟引擎的代理,当加载模拟引擎作为合作伙伴时会用到此代理。 添加引用后,您还需要在实现类文件中添加下列命名空间声明:Boe-Bot 是 MSRS 支持的现有的几种机器人平台之一。这意味着 MSRS 安装中会包括一些基本服务,用于操纵 Boe-Bot 的驱动系统以及内置接触传感器。尽管 MSRS 中提供了适用于 Boe-Bot 的平台服务,但实际上并不包括 Boe-Bot 实体类型。4创建实体类要创建适用于 Boe-Bot 的新实体类型,我需要添加一个派生自 DifferentialDriveEntity 的类。由于添加的类是从 DifferentialDriveEntity 类派生而来,因此我能够重用定义 Boe-Bot 在场景中来回移动时的行为方式的代码。用于创建 BoeBot 实体类型的代码如图 8 所示。BoeBot 类的构造函数用于为在 DifferentialDriveEntity 类中定义的多个变量设置值。例如,将质量值设置为 0.454,代表质量以千克为单位。另外,使用宽度、长度和高度来定义 Boe-Bot 底盘。这些测量值通过称取机器人的实际重量、使用公制尺进行实际测量获得。Boe-Bot 的位置通过一组坐标值进行定义,这组坐标值在创建实体时传入。这些坐标值代表 X、Y 和 Z 轴上的点。MSRS 模拟引擎使用右手坐标系,这会影响 Z 轴上的点的朝向。BoeBot 构造函数还可定义底盘和实体中轮子的位置。DifferentialDriveSystem 类假定您的机器人将使用两个主轮和一个主要起平衡作用的小后轮。功率将分配到用于控制主轮的左、右马达。通过为每个轮子分配不同的功率级,可以确定各轮将向前、向后、向左还是向右移动。这与驱动物理机器人的方法相同。模拟最具吸引力的一点就是:理论上,无论您的机器人是虚拟的还是真实的,驱动机器人和从传感器接收数据使用的代码都是相同的。用于模拟项目的部分代码同样可以重用于实际机器人。现在,您可能已注意到我说的是“理论上”。这是因为模拟技术无法完全模拟实际环境。模拟无法对干扰做出解释,此处的干扰是指一些出乎您意料的事情,如将障碍物的位置放错。模拟的作用是让您非常真实地体验新机器人的设计效果,或模拟多个机器人的交互。这非常适用于资源有限而学员数量庞大的学术环境。5创建网格每个实体都可以与网格关联,从而使实体呈现真实的外观。以地球仪为例,网格可以使地球仪实体显示为行星地球的外观。严格来说,没有必要将实体与网格关联,但对于复杂实体(例如机器人),则应该首选网格对象。几乎任何 3D 图形编辑工具都可用于创建网格。在撰写本文时,我很幸运地获得了同事 Steve Grand 的帮助,他使用 3D 包 SoftImage(有关此工具的详细信息,请参见 )为我创建了 Boe-Bot 网格。与此网格相关的文件均包含在本文随附的可下载的 .zip 文件中。要跟随本文的进度,请下载此 .zip 文件并提取上述文件,然后将 Boe-Bot 文件夹中的内容复制到 /store/media 目录下,此目录与本地 MSRS 安装相关。SoftImage 能够将图像导出为 .obj 格式。并非所有包都有此功能。例如,MSRS 在其 Channel9 Wiki (/fwlink/?LinkId=114031) 中建议使用 3D 包 SolidWorks(请参见 )。但遗憾的是,SolidWorks 无法将图像导出为 .obj 格式,因此它建议使用 Blender () 工具执行实际转换。当选择使用图形包创建网格文件时,请牢记这一点。有关创建 Boe-Bot 网格的细节问题不在本文讨论范围之内,但您应知道它是通过连接多个多边形网格形状创建的。例如,金属底盘开始时是一个立方体形状,经修改后用于表示 Boe-Bot 的大小和形状。然后,添加其他圆柱体形状来代表各个轮子。建立结构,以将轮子与底盘绑定并允许整个对象作为一个单一形状来发挥功能。最终效果(如图 9 所示)是一个代表实际 Boe-Bot 的图像。将网格转换成二进制格式MSRS 提供了一个命令行工具,可将 .obj 文件转换成经过优化的二进制文件,扩展名为 .bos。此文件类型的优点是加载速度比 .obj 文件快。您可以使用 MSRS 安装附带的命令提示符菜单项来访问命令行工具 Obj2bos.exe。使用网格时,一定要记住:所有材料都用于为物理对象着色,并且每个实体都可以与一个或多个材料关联。因此,当创建 .obj 文件时,很可能需要包括扩展名为 .mtl 的其他材料文件。此外,还可能要包括用于创建纹理的图像文件。这些文件都必须复制到与 .obj 文件位置相同的位置,才能使用网格转换工具。.obj 文件及所有关联文件都应放在与本地 MSRS 安装相关的 /store/media 目录下。由代码下载附带的与 Boe-Bot 网格关联的文件有:Aluminum.png、Boe-bot.mtl、Boe-bot.obj、BoebotWheel.png 和 Pcb.png。添加到 media 目录下之后,请打开 MSRS 命令提示符键入以下内容:转换工具将创建一个名为 Boe-bot.bos 的文件,该文件位于 media 目录下。保留该文件的位置不动,因为稍后将引用此文件。6创建模拟服务从头创建项目,则需要使用 Visual Studio 2005 模板创建一个新的 DSS 服务。您可以将该项目命名为 SimulatedBoeBot。除了之前提到的程序集引用外,您还需要添加对 Microsoft.Xna.Framework 的引用,并在 SimulatedBoeBot.cs 类文件的顶部添加以下命名空间引用:图 13 在虚拟世界中驱动 Boe-Bot(单击图像可查看大图)驱动服务用于为控制 Boe-Bot 的轮子提供动力。这样,您就可以使用虚拟控制杆控件或与计算机相连的实际控制杆在模拟中来回移动 Boe-Bot。双击列表框中显示的 SimulatedBoeBot 项目即可开始移动。随后,您就可以使用鼠标拖动圆形虚拟控制杆,此控制杆位于简单控制板表单的左上角。您可能要经过一段时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云平台在供应链风险管理中的应用-第1篇-洞察与解读
- 2025年法务审查员岗位招聘面试参考题库及参考答案
- 2025年项目负责人岗位招聘面试参考题库及参考答案
- 2025年精细化管理经理岗位招聘面试参考题库及参考答案
- 榆林初升高考试题及答案
- 2025年激励师人员岗位招聘面试参考题库及参考答案
- 2025年供应商关系管理专员岗位招聘面试参考试题及参考答案
- 2025年苏州人文常识题库及答案
- 2025年手机版网站开发岗位招聘面试参考试题及参考答案
- 2025年风险投资专员岗位招聘面试参考试题及参考答案
- 旅游地接培训课件
- 城市供热热力管网课程设计
- 高铁变电所高压电器的运行与维护-避雷器的运行与维护
- 工程验收单 Microsoft Word 文档
- 生物信息学-生物信息数据库及其信息检索教学课件
- 2023年云南大理州建设投资(集团)有限公司招聘笔试题库含答案解析
- 农场问题分析
- FZ/T 54082-2015锦纶6膨体长丝(BCF)
- 小学数学西南师大六年级上册七负数的初步认识 《正负数》
- 《爆破安全技术》课件
- 毛衫吓数工艺
评论
0/150
提交评论