MRDS学习三——机械车的改良(Activity的介绍)
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的介绍)的更多相关文章
- MRDS学习二——机械车
准备机械车: 第一步:从Service中选择一个Generic Differential Drive (通用差速驱动:同一轴的左右轮胎可以转动不同速度的车子)放入Diagram中. 第二步:对其进行配 ...
- Android JNI学习(三)——Java与Native相互调用
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- HTTP学习三:HTTPS
HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...
- Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- TweenMax动画库学习(三)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) ...
- Struts2框架学习(三) 数据处理
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
- 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化
1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...
- DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
- [ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点
深度学习三巨头之一来清华演讲了,你只需要知道这7点 http://wemedia.ifeng.com/10939074/wemedia.shtml Yann LeCun还提到了一项FAIR开发的,用于 ...
随机推荐
- ubuntu 12.04下安装openldap,slapd.conf找不到的解决方法
https://help.ubuntu.com/12.04/serverguide/openldap-server.html ubuntu安装openldap经历了一系列挫折,网上找了半天资料都是一模 ...
- UVALive 4431 Fruit Weights --floyd,差分约束?
题意: 给出一些关系用aX <= bY表示, 最后查询aX 和 bY的关系,是>=,==,<=,还是不能确定,还是出现了矛盾. 解法:对每一个关系其实都可以建一条X->Y的边, ...
- 第7章 权限管理(1)_ACL权限
1. ACL权限 1.1 ACL权限简介与开启 (1)ACL权限简介 ①ACL是Access Control List的缩写,主要目的是在提供传统的owner,group,others的read,wr ...
- call和apply求最大和最小值
,取最大值 var arr = [1,3,7,22,677,-1,2,70]; Math.max.apply(Math, arr);//677 Math.max.call(Math, 1,3,7,22 ...
- 12款经典的白富美型—jquery图片轮播插件—前端开发必备
图片轮播是网站中的常用功能,用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美 ...
- WPF MVVM 验证
WPF MVVM(Caliburn.Micro) 数据验证 书接前文 前文中仅是WPF验证中的一种,我们暂且称之为View端的验证(因为其验证规是写在Xaml文件中的). 还有一种我们称之为Model ...
- iOS面试
1.进程.线程的区别?2.“三次握手”是什么?具体细节,连接释放时需要几次“握手”,说出大概过程.3.TCP.UDP协议的区别?计算机网络分几层,以及TCP.Http协议各自工作在哪一层及相关细节.4 ...
- C#基础系列——Attribute特性使用
前言:上篇 C#基础系列——反射笔记 总结了下反射得基础用法,这章我们来看看C#的另一个基础技术——特性. 1.什么是特性:就博主的理解,特性就是在类的类名称.属性.方法等上面加一个标记,使这些类.属 ...
- 如何解决wow.js与fullpage的兼容性
项目需要做到全屏显示的同时还需要做到实时执行动画.但是发现在使用fullpage之后,wow.js(不知道这个是啥的点击这里)不起作用. 找了诸多资料,解决方法如下: $('#fullpage').f ...
- 解决:dpkg:处理 xxx (--configure)或E: Sub-process /usr/bin/dpkg returned an error code (1)
问题重现: 问题解决办法: #先备份原来的,然后重新新建 sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bak //现将info文件夹更名 sudo mk ...