Activity:VPL中化繁为简的工具,可以使得真个VPL容易让人看懂,也能跟好的控制。它就很像把一堆比较复杂但相关的流程组合成一个自定义的Activity。

完成Activity的定义:

第一步:复制MRDS学习二的VPL到Diagram中。

第二步:从Basic Activity中拖动一个Activity到Diagram中,右边Properties属性表中修改元件属性如下:(目前只能英文)

  

第三步:对自定义的 Activity双击进入编辑画面,然后把学习二中的元件复制过来如下:

  

第四步:(忽略红色叹号)接着要定义这个活动的输出以及输入:点击上方红色编辑器或使用下拉选单的Edit/Actions and Notifications,看到如下对话框:

  

(主要分为两大区块:Actions是指需要输入一个讯息,然后该Activity会经过一些处理以后输出一个讯息,而Notifications则是无需输入自发输出讯息,所以通常一个流程的最前面元件往后输出讯息的都是Notifications)

(Actions:从左到右三个板块分别代表定义的Actions、输入的讯息组合内容、输出的讯息组合内容)

定义Action,取名ControlDirection如下图:

  

第五步:把左边的输入拉到原本的Calculate。为了统一输出,把“Stop”,“Fowards”,“Backwords”产生出来的讯息经由Merge后再一次Join:

  

最后连接如下图所示:

  

第六步:指定输出的LeftDriverPower和RightDriverPower:在跳出的Data Connections对话框中,(透过Merge,系统无法计算出正确的下拉选单给你)输入如下图(勾选Edit Values Directly):

  

补充完整机械车的步骤:

第一步:回到原来的Diagram,用Activity替代哪些复制到其的元件,把DirectionDialog的Notifications拖到RobotControl时,出现Connections对话框【From】中选择ButtonPress。接着出现的Data Connections对话框【Value】中选择value.name。

第二步:把RobotControl的输出交给Generic Differential Drive 时,出现Connections对话框【To】中选择setDriverPower,接着出现的Data Connections对话框【Value】中选择LeftDriverPower和RightDriverPower。

整个元件流程如下所示:

  

第三步:补充功能:松开按钮就停止事件。

复制DirectionDialog(另一个的分身,即为同一个),把Notifications拖到Generic Differential Drive 时,出现Connections对话框中选择ButtonRelease交给SetDrivePower。接着出现的Data Connections对话框【Value】中都设为0。

  

第四步:保存并运行。

  

这样的机械车就不会那么容易翻车了,操作起来较为稳定O(∩_∩)O~

不过一直弄不懂它的方向盘为什么是这样:(懂把它变正常的朋友可以告诉我)

  

(挨踢狗经验:如果你复制拷贝的Generic Differential Drive 没有如学习二中配置好,会出现错误。)

2016-03-27

(资料整理于百度文库的《Microsoft_Robotics_Developer_Studio中文教程》)

MRDS学习三——机械车的改良(Activity的介绍)的更多相关文章

  1. MRDS学习二——机械车

    准备机械车: 第一步:从Service中选择一个Generic Differential Drive (通用差速驱动:同一轴的左右轮胎可以转动不同速度的车子)放入Diagram中. 第二步:对其进行配 ...

  2. Android JNI学习(三)——Java与Native相互调用

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  3. HTTP学习三:HTTPS

    HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...

  4. Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  5. TweenMax动画库学习(三)

    目录               TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)           ...

  6. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

  7. 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化

    1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...

  8. DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件

    DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件   本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...

  9. [ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点

    深度学习三巨头之一来清华演讲了,你只需要知道这7点 http://wemedia.ifeng.com/10939074/wemedia.shtml Yann LeCun还提到了一项FAIR开发的,用于 ...

随机推荐

  1. log4net不同logger输出日志

    4步曲 1.引用log4net.dll(nuget) 2.任意位置的命名空间头部加入下面的代码,web.config可修改为自己定义的.xml [assembly: log4net.Config.Xm ...

  2. eclipse下maven项目保持原有目录结构配置resin运行环境

    maven项目用起来很方便,但是它的目录结构和eclipse的目录结构是有区别的,故而在eclipse下的maven项目,直接运行调试是有一些问题的. 为了方便maven项目的运行调试,因而也就有了像 ...

  3. mysql常用基本操作

    mysql常用操作 查看都有哪些库 show databases; 查看某个库的表 use 库名; show tables; 查看表的字段 desc 表名; 当前是哪个用户 select user() ...

  4. MMORPG大型游戏设计与开发(服务器 游戏场景 事件)

    今天第星期天,知识是永远是学习不完的,所以今天这部分算比较轻松,同时也希望大家会有一个好的周末.场景事件即场景的回调,和别的事件一样是在特定的条件下产生的,前面也介绍过场景的各种事件,今天详细的说一说 ...

  5. Android源码阅读-Filter过滤器

    Filter 顺便看看,Android中过滤器是怎么实现的? 注释中提到,Filter一般通过继承Filterable实现 具体实现 这是SimpleAdapter出现的一个过滤首字母item的一个过 ...

  6. Java程序设计之扑克牌

    这段代码的主要实现功能扑克牌的洗牌和发牌功能,一副牌,红桃,黑桃,梅花,方片,A~K,不含大小王. 构造一个class. 首先是声明花色: private String[] sign={"方 ...

  7. 第22章 java线程(2)-线程同步

    java线程(2)-线程同步 本节主要是在前面吃苹果的基础上发现问题,然后提出三种解决方式 1.线程不安全问题 什么叫线程不安全呢 即当多线程并发访问同一个资源对象的时候,可能出现不安全的问题 对于前 ...

  8. JSPatch

    链接: JSPatch github项目主页 JSPatch技术文档 JSPatch基础用法总结 JSPatch – 动态更新iOS APP JSPatch使用小记 end

  9. [CareerCup] 5.7 Find Missing Integer 查找丢失的数

    5.7 An array A contains all the integers from 0 to n, except for one number which is missing. In thi ...

  10. Editplus常用快捷键

    EditPlus 快捷键的使用 如果一个来你们公司面试程序员,连Ctrl + C 和Ctrl + V 都不用,而是使用“选中文本”→ 鼠标右键 → [复制],然后再鼠标右键→ [粘贴].你会不会录用他 ...