MATLAB社区

MATLAB、社区和更多

世博会的对话——第1部分

很多人谈论建筑很酷的事情,但我们中有多少人真的这样做吗?肯定的是,你会发现做了很多不错的事这几天Arduino电路板和云计算,但坐下来创造作品的东西完全是另一回事。这个故事是如何确定团队MathWorks英国办公室建立了系统跟踪社会互动的一个会议上。像所有的工程项目,它始于一个白板,一些手挥舞着,一些大的想法。跟随团队从信心混乱和心碎,最终交货。

这个故事被分解为两个独立的博客文章。本周的一部分被玛尔塔Wilczkowiak告诉。玛尔塔是MathWorks英国资深应用工程师,帮助MATLAB用户设计、开发和部署生产代码。

社会对话通过技术融合——不可能的任务或一个不可能的任务?

由玛尔塔Wilczkowiak

技术可以是死亡之吻的谈话。但我们能相反,通过深思熟虑的收敛的硬件,软件,和实时流数据,实际上鼓励社会互动?

图片库

障碍之间存在物理和虚拟工程是世界上消失在互联网公司购买的机器人公司,飞无人机,无人驾驶汽车和可穿戴设备测试,而工业玩家进入传感器网络和物联网。而那些有前途的新方法,这种复合型工程协作是很难达到的。

这是一个关于我们的故事试图建立这样一个收敛系统仅仅三个月而已,通过跨学科合作。这种无价值的项目称为世博会的谈话。

世博会对话:这个主意

MATLAB世博会英国的顶峰是MathWorks事件。是一个独特的机会的MATLAB社会网络与同伴在一系列工业和学术界。计划在年初开始,包括工程师在MathWorks所有技术组。在其中的一个会议,我们自己设定一个挑战:创建一个系统汇集所有新技术我们告诉我们的客户,包括低成本的硬件,数据分析和云计算。与此同时,我们看到了一个机会来了解思想和影响流在世博会。

我们的想法是使用低成本硬件检测世博会参与者之间的交互,并提供一个web界面显示社会活动的现场分析。鼓励社会交往我们会运行一个竞赛,奖励给最多产的沟通者的事件。

fig-01

图1:模拟社会互动在世博展览馆

这段对话发生在6月。博览会定于10月8日,所以我们很少有时间开发无中生有!

总而言之,目标是:

  • 演示的端到端技术集成,从低成本硬件基于云的可视化
  • 使跨学科团队协作
  • 从一个蓝天主意在3个月内云部署

7月:第一标签
14周去

7月开始讨论最好的方法检测参与者的交互:相机吗?手机应用程序?射频标签?我们想让参与者匿名射频标签,所以我们选择了与参与者倾向于简单地拿起一个标签进入展厅。康纳,我们二年级暑期实习生,在马克的支持下(嵌入式系统)和格雷厄姆(通信)开发的金宝app第一个标签使用Arduino Uno微控制器(ATmega328P)和RF12 433 mhz收发器。他们表明,两个标记早期原型可以相互通信,接收到的信号强度有点与标签之间的距离有关。描述这种关系仍然是一个圣杯在整个项目!

八月:算法
9.5周去

有前途的初步结果,我们拉开了数据分析项目的一部分。我们开始通过头脑风暴元素我们想了解社会交互模式。一些我们最喜欢的建议:我们可以量化的咖啡因摄入量之间的关系和社会活动?我们可以检测旁观者,谈话助推器…或谈话的杀手?我们可以看看游客演示站推荐给其他人吗?我们很快意识到,大多数这些问题需要一个对话的定义。我们决定两个标签持有者在谈话中如果他们彼此附近停留30秒。

但是我们怎么知道两个标签是否接近彼此?我们决定使用接收信号强度指示(RSSI)作为代表两个标记之间的距离。simplicity-robustness规模,它是最简单,这就是我们需要考虑到项目时间表。

通过检测标签之间的对话,我们可以学习演示和餐饮的流行电台(参见图2)通过监控标签位于这些名胜古迹。所有标签的数据会传送到覆盆子π基站,这将发送批量分析服务器每10秒。

fig-02

图2:世博会展厅平面图上演示和餐饮站(点击放大)

我们有10个工程师帮助8月份数据分析的挑战。然而这给自己的挑战:

  • 许多短期贡献者。平均每周花在这个项目是包括理解项目,开发算法,与系统集成和测试。
  • 同时发展。无论系统的一部分工作,人们只有时间8月,所以我们需要找到一种方法来同时工作,而不是连续。
  • 体验。一般来说,一个人的时间分配给项目是成反比的人的经验。
  • 沟通。“低成本硬件”团队不懂“分析”团队,反之亦然。
  • 数据。我们没有真实的数据来测试我们的算法,硬件在发展!

我们需要设计一个系统,使无数人与不同背景和经验水平:

  • 写算法同时相互依赖
  • 与主系统集成算法在不影响其他的工作
  • 测试算法的数据依赖

我们在5点计划解决这些挑战:

  1. 强大的核心。之后的哲学错误的设计将伤害我们超过几个算法代码中的bug,我们问了几个顾问花几天设计架构和编码的核心课程体系。
  2. 小型独立模块。代表系统由小型模块和清晰的职责和接口能够吸收的关键代码来自一个大型团队。参见图3主要系统组件。创建合理的模块是通过MATLAB对面向对象编程的支持。金宝app让他们小富人是可能由于现有能力阅读、处理、分析和保存数据。这包括内置的支持与数据库通信,UDP,和不同的金宝app文件格式以及处理逻辑索引等功能,设置操作,组统计和图表分析功能。所有的模块都是小:最大的文件实现数据处理算法包含100行代码。写短代码显然是快,但它也快来测试。
  3. 自助服务模型库。我们设计了系统一系列的“分析代理”:类任务执行一个非常具体的分析操作。一些代理将负责清理输入数据,一些跟踪对话;有些人会寻找最活跃的网络用户,等等。我们的总和观察者模板方法模式创建的代理有一个相对复杂的方式相互作用的主要基础设施,同时允许团队成员没有面向对象的经验贡献代码。在实践中,这意味着该算法开发人员只需要写非常简单的程序,特定于他或她的代码算法:如何获得输入数据,处理和保存输出。然后用一行代码,她/他可能为他的经纪人“观察”和行为上改变数据库。作为一个例子,在新的原始数据代理将清洁的外观并将其保存回数据库。
  4. 数据:假它直到你让它。什么可能是一个有争议的策略在日常社会交往至关重要,使该算法开发人员编写和测试他们的代码。几乎所有的部分使用模拟数据分析系统开发。在项目的前几天,在分析系统设计和实现的同时,我们创建了一个高层模拟器,创建合成数据代表一个数量的标签后旅行在展厅。第一个模拟器的发展关键在短短几天,MATLAB提供所有必需的组件在一个环境:随机数生成、可视化和富有表现力的编程语言。当我们需要切换到真实数据在项目后期,我们写我们的代码访问数据(数据访问层)在这样一种方式可以使用模拟器的数据,测试日志和数据库算法代码没有任何变化。
  5. 代码生成。下一步是添加一层代表的逻辑模拟器系统继电器信息收到标签来分析服务器:如何标记同步获取和分享信息,如何将其发送到基站,最后基站如何形成并发送数据包到分析服务器。这种“可执行规范”使早期检测之间的区别“硬件”和“分析”的团队如何理解需求。但更重要的是一旦表示这个逻辑在MATLAB中,我们可以使用MATLAB编码器自动生成C代码将使用在覆盆子π基站。这节省了我们的时间,增加了我们的信心,我们正在使用的数据来测试我们的算法是代表我们的数据采集系统将产生当准备好了。它还允许我们测试嵌入式算法而标签硬件还正在开发,因为他们包含在模拟器。这是一个巨大的好处的嵌入式系统设计师。

fig-03

图3:高级系统架构:统一访问真实和模拟数据;代表系统逻辑分析代理和生产总关于事件的数据显示在MATLAB或通过web界面

同时,硬件团队正忙着创建在现实中我们模拟:网络系统中继标记数据到服务器。

在八月底我们有早期版本的所有分析代理,数据模拟器上测试过。我们也有一长串的已知问题,包括我们的原型代码无法跟上速度的预测数据。

9月:“生产”
5周去

9月看到了我们的原型系统转变成一个早期版本的生产系统。

首先,我们利用我们的代码在一系列的单元测试(迟到总比不到好!),允许更快的迭代修复bug和优化代码时。

第二,我们优化原型的实现速度。两个最大的胜利是:

  • 向量化代码社交网络图的计算
  • 实现标签的数据过滤在SQL代替MATLAB来减少数据传输的时间开销
  • 两个操作减少分析一批数据所需的时间从10秒秒的分数。

    第三,我们被我们的分析引擎运行每个分析代理在一个单独的线程。这样做的很多选择,我们决定重新编码薄分析引擎骨架在Java和部署每个分析代理MATLAB生产服务器上作为一个单独的函数。由于使用松散耦合的特工首先,这只需要改变一行代理的代码。

    作为最后一步我们使用一台机器在EC2上的弹性IP设置Tomcat web服务器与我们的网页和一个目录,将定期与我们同步本地目录包含所有结果。

    在9月底我们有一个系统分析标记每10秒和更新网页的每一分钟,但仍只有模拟器工作。在9月尝试连接两次失败,由于一个尾数法分歧,太慢了处理速度在早期版本的分析引擎,数据溢出原型数据采集阶段,等等。

    但我们没有准备取消这个项目。最后,我们不会经常有机会测试大厅有500人,8餐饮站,9演示站和一个“侦探犬”号超音速车真人大小的模型在中间(是的,一大堆金属中间的射频实验)。

    10月:世博会或第一个集成测试
    1周去

    十月第一周已经之间集成的尝试和错误修复。你可以看到心情喜忧参半:

    fig-04

    图4:彩虹的情绪;注意时情绪正在改善我们从错误追逐处理一些真正的硬件

    世博会的前一天(10月7日)我们三个组银石赛道,会议地点。两个小时后到达一切连接。目前网页开始显示了两个测试标签相互“对话”是值得那些不眠之夜。我们盯着敬畏。7点所有8基站连接和接收。在这一点上我们把系统睡眠,离开了现场。

    通过世博会的早晨。200年我们从一堆标签(见图5)。9.30是他们分发给每个人。与会者都好奇系统,想参与。网页开始更新与似是而非的结果(参见示例如图7所示)。所有的团队成员,其中大多数到目前为止所看到的只有一小部分的系统,被催眠的更新web页面。一天中演示了一大群人问及从工作与低成本的硬件,通过机器学习和“大数据”web部署。期间我们还强调了部分系统的所有相关谈判:机器学习,MATLAB算法,加速部署、造型、仿真、基于模型的设计和实时测试。最后,在总结讨论我们宣布获得了网络竞争奖的标记号。我们知道系统工作时我们发现,胜利者是我们同事则迈克尔,他出名的交际花。

    通过这个项目我们实现:

    • 端到端技术集成,从低成本硬件基于云的可视化
    • 跨学科团队协作
    • 在3个月内蓝天主意云部署

    但随着世博会也是第一次系统一起跑,我们仍有很多工作要理解真的是做什么。

    了解更多的故事仍在继续:世博会的对话——第2部分

    fig-05
    图5标签等待发给与会者

    fig-06
    图6:队列的标签

    fig-07
    图7:截图的生活社交网络分析

    |
    • 打印
    • 发送电子邮件

    评论

    留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。