版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、山水乐坊基于 3D 全息声音系统的交互式音乐多示范工程项目技术舞台表演目录一、项目综述1项目背景综述1项目研究内容综述21.2.1 面向交互式音乐多舞台表演的实时传感交互. 2项目室内综述2. 31.3.2 运动捕捉技术4二、系统总体架构5系统模块划分与功能描述5舞台多人实时定位模块5多模传感器接入与自组织组网模块6系统组成7舞台多人实时定位模块组成7多模传感器接入与自组织组网模块组成9三、与实现方案11RSSI 位置RSSI 位置RSSI 位置离线. 11定位概述11定位组成11阶段13运行阶段 可穿戴惯性定位与姿态识别技术143.2.1 惯性概述14可穿戴惯性定位组成1
2、5惯性定位算法实现17用户姿态方向和速度的确定18用户脚步检测技术19自适应步长算法203D 音效系统接入技术24Open sound control 协议243D 音效系统接入处理单元253.4 多模传感器接入与自组织组网技术More26More 概述27More 结构功能描述28More 的工作流程与实现方案31四、项目总结与技术展望36项目功能总结36一套穿戴传感节点和环境辅助传感系统36舞台多人实时定位和音效系统对接36演员的姿态捕捉36多模传感器接入与自组织组网36项目创新点总结37剧场声学及 3D 全息声音扩音系统374.2.2 面向交互式音乐多舞台表演的实时传感交互. 374.3
3、 项目展望37一、项目综述1.1 项目背景综述在国家大力发展文化创意产业的大背景下,本项目的总体目标希望通过以音乐多舞台表演为代表的文化创意产业的内容与科技双向交流、普遍互渗、全面融合,推动创意与创意转换的步伐,助力文化创意产业建设,把科学与艺术的完美结合作为最高理念,碰撞出文化创意产业的新思维。本项目将着重研究3D 全息声音扩音系统、实时舞台传感交互控制技术等多项技术,集中国传统古曲、戏曲声腔、诗词歌赋、室内乐、电子音乐、江南丝竹等为主要音乐元素,构建山水乐坊基于 3D 全息声音系统的交互式音乐多舞台表演示范工程。项目通过艺术与科技、音乐与其他姊妹艺术的融合创新,在现场视觉和听觉方面做到时空
4、交错、风格交融、体裁,使观众能够得到一种全新的沉浸式、互动式聆赏体验。为了实现项目的总体目标,本项目将通过对一座小剧场的专项设计和改造,研制并搭建一套软硬件系统:1)剧场声学及 3D 全息声音扩音系统:对剧场进行室内声学设计并开发搭建一套“3D 全息声音扩音系统”,该系统能像“全息成像”一般,实现在真实或虚拟空间中,上、下、前、后和左右三个维度里的所有声像位置都能得到准确呈现、精确定位、运动。该系统、运动轨迹、音色信息均有不同参数数字化实时控制,并可驳接传感交互,用于现场演出的实时定位与交互控制。2)传感系统:在剧场围绕舞台搭建具有实时定位追踪功能、环境感知功能、自组织组网、多模数据处理等功能
5、的,能灵活部署的传感系统。通过演员佩戴的,环境中辅助的传感器形成的数据覆盖网络,通过标准接口与实时舞台交互综合系统对接。3)同时,实现交互式实时声音影像创作功能:将演员现场表演信息进行实时过滤、筛选和处理,将其有机地结合到电子音乐与影像的实时创作与生成中,强化与延伸演员音响、动作与角色感,观众整体沉浸式感官享受。1.2 项目研究内容综述1.2.1 面向交互式音乐多舞台表演的实时传感交互传感交互控制技术主要围绕着多种无线传感和控制设备的高灵活部署、对表演环境的感知适应与系统的自组织等特性展开研究,通过在舞台表演区域,控制区域以及衍生到观众互动区域部署具有多跳通讯能力的无线传感设备节点,来动态地构
6、建舞台交互式环境,使舞台作品在表演和视觉听觉展示上达到无缝的衔接,使观众得到沉浸式的感官享受。在新型的多舞台表演中,传感器交互应用已经得到的飞跃的发展,它们往往被部署在对监测数据变化非常敏感的部位,来协助表演者与舞台效果互动。但是在包括采用 3D 影像捕捉的互动模式中,对背景的要求非常高,并且每次演出都需要花费很长的排练时间。这套系统可以很好地改善目前交互式应用中的技术问题,帮助创作者与表演者展现更流畅的互动效果与提供更真实的交互体验针对多种体载与环境控制设备在交互式环境中所的高动态链路质量变化所导致的拓扑变化与对上层交互数据稳定性和实时性的影响,开展研究工作。研究的内容主要包括:完成一套穿戴
7、传感节点和环境辅助传感系统;能够在多种环境(灯光,布景)下实时捕捉演员的姿态,并提供实时穿戴计算能力;能够提供舞台上多位演员相对位置的产生于位置相关的效果;,并与影像、音响系统对接,能够在不同室内场地部署,形成一套快速现场部署的方法和执行标准;e)系统在传输层面延迟时间小于 0.1 秒,在数据层面响应小于 0.3 秒,在交互控制层面响应小于 0.5 秒。1.3 项目综述其中包括:室内、运动捕捉技术。1.3.1 室内过去的十年中,室内定位传感系统取得了重要的进展。因此,无论是研究或者商业上,这些系统或产品都是新的,而且目前,学术界和工业界都在参与研究以及开发这些系统。近年来,人们已经目睹了无线系
8、统惊人的增长。无线技术已经进入了消费类应用,医疗,工业,公共安全,物流和系统领域,以及许多其他的应用程序。自组织传感器网络,位置敏感的计费,基于地理信息的服务,和导航,是可能的应用领域。由于现在无线网络的广泛使用,人们在无线网络环境下(包括室内和室外环境)对实现准确定位有很高的需求。确定位置的方法,被称为位置检测,定位,如果它使用是无线技术又被称为无线定位。不同的应用程序可能需要不同类型的位置信息。主要类型物理位置,符号位置,绝对位置,相对位置等。物理位置用坐标表示,在 2D/3D 地图上确定一个点。多种无线技术用于无线室内定位。这些技术可以按照如下方法划分:(1) 定位算法,即确定位置的方法
9、,利用各种类型的信号测量方法,例如传播时间(Time Of Flight),角度和无线信号强度(Radio Signal Strength)。(2)的物理层或基础设施。一般来说,无线信号测量用到的硬件组件主要是用于信号的发送和接收。一个室内无线由至少两个独立的硬件部分组成:一个信号发送器以及测量装置。在室内环境中,受许多原因的影响,如严重的多径效应,可用的视线(line-of-sight LOS)路径概率很低,并有许多特定的参数,如地板布置,移动物体,以及众多的反射面,很难建立起无线模型。目前还没有好的室内无线电多径模型。除了使用传统的三角测量算法,使用场景分析或开发邻接定位算法以减少定位测量
10、误差。针对不同的应用程序或服务,这三种算法具有独特的优点和缺点。因此,同时使用不只一种类型的定位算法,可以得到更好的性能。如今,大多数成功的使用信号位置定位(Radio Fingr)的方法。该方法使用无线信号特征(例如接收到的强度RSS)与先前建立的位置指纹数据库匹配(一个无线电地图)。最接近的匹配返回估计位置。使用这种方法通常能获得的精度。惯性使用的关键性的传感器已经做到了足够小和廉价,使得实际穿戴这些传感器来定位成为了可能。此外,目前广泛流行的智能大多数都配有相关惯性传感器,这就意味着惯性传感器已经广泛部署。因此研究、使用惯性定位方法也是非常有前景的。1.3.2 运动捕捉技术运动捕捉技术是
11、一种三维运动运动物体的精确测量的方法。它是基于计算机图形学(传感器)的原理,通过在空间排列几个捕获(传感器)的设备的移动物体()运动图像,然后用计算机对图像数据进行处理,以给不同的对象()在不同的时间测量空间坐标(X,Y,Z)。运动捕捉技术在许多领域中具有非常广泛的应用。在运动训练中,可以从不同的角度帮助对运动员的动作,位置,速度和加速度数据量化,因此可以有针对性地纠正运动员的技术动作,从而大大提高了训练效果,而且还可以监视整育训练和比赛的过程中,协助裁判的决策。目前,通常使用的动作捕捉技术可分为机械式,基于惯性传感器,声学,电磁和光学原理。不同原理的技术具有的不同的优点和缺点,并且可从以下几
12、方面进行评估:定位精度,时效性,可靠性,成本,多目标捕获能力。基于惯性传感器运动捕捉原理是采用多个惯性传感器,对主要骨骼部位的运动进行实时测量。系统可根据反向运动学原理测算出关节的位置,并将数据施加到相应的骨骼上。由于惯性传感器主要依赖无处不在的地球重力和磁场,所以这类运动捕捉在任何地点都可以正常使用,无需事先作任何准备工作。 是未来动作捕捉的趋势之一。二、系统总体架构面向交互式音乐多舞台表演的实时传感交互是一套具有定位追踪功能、环境感知功能、自组织组网、多模数据处理等功能的,能灵活部署的传感系统。通过演员佩戴的,环境中辅助的传感器形成的数据覆盖网络,通过标准接口与实时舞台交互综合系统对接。整
13、个交互按照功能主要可以分为舞台多人实时定位模块和多模传感器自组织组网模块。2.1 系统模块划分与功能描述系统的总体模块划分如图 2.1 所示,其中包括舞台多人实时定位模块和多模传感器接入与自组织组网模块。图 2.4WISP 系统示意图图 2.6WISP 系统实际部署图2.2.2 多模传感器接入与自组织组网模块组成开发了一套多模传感器接入与自组织组网技术“More”。它的主要功能是为音乐家提供方便的多模传感器数据接入方案在树莓派卡片计算机、Cubi、PC、Mac OSX 等软硬件上实现了More。如图 2.7 所示,音乐家希望多种多样的传感器(惯性传感器、MIDI 键盘、Kinect 捕捉传感器
14、、Wii 控制器、Leap Motion 传感器等等)作为输入端接入处理单,经过处理后能够以声音、光线效果等等形式输出。More 系统结构图如 2.8 所示,多种传感器部署在舞台、或者其他特定区域,以有线或者无线传输的形式接入到特定的节点中。这些节点之间可以相互通信,以自组织组网的方式建立连接,同时接入到处理单元中。网络当中的节点可以互相发现对方,并且知道其他节点所连接的传感器信息。图 2.7 More 需求示意图图 2.8 More 系统结构图三、与实现方案3.1 RSSI 位置3.1.1 RSSI 位置定位概述RSSI图 3.1 RSSI 位置定位流程图位置技术是指先收集一个场景的特征,又
15、称为,然后通过匹配之前收集的数据库中最接近的位置参考点(referencepo,RP)推测当前目标的位置,通常使用接收信号强度(received signal strength,RSS)或者接收信号强度指示器(received signal strength indicator,RSSI)建立的位置。RSSI 位置定位由部署在舞台定位区域中的环境 IRIS 节点、用户穿戴的IRIS 节点和汇聚节点Gateway 组成。该定位模块分为 2 个定位阶段:离线阶段和运行阶段。使用 RSS 方法在室内定位目标能准确到的范围内。离线需要为每个 AP 建立位置图谱。在运行阶段,通过测量到所有可见 APrm
16、ap)来推测位置。的RSSI 值匹配位置图谱(fing3.1.2 RSSI 位置定位组成基于RSSI 位置定位部分由IRIS 无线节点和处理单元组成。IRIS 是一个 2.4 GHz 的无线模块,用于实现低功耗,无线传感器网络。IRIS 提供一些新的功能,提高了的无线传感器网络产品的整体功能。它具有一下特点:RSSI(1)(2)符合2.4 GHz IEEE802.15.4,微型无线测量系统相比上一代MICA,无线范围了两倍比上了最多三倍的和程序器空间(3)(4)(5)专为传感器网络设计250 kbps的高数据传输速率无线通信能力与每个节点作为路由器能力IRIS 节点与 MIB520 结合在一起
17、可以作为环境 IRIS 节点的 Gateway 使用。在定位时,两个可穿戴式的无线传感器将会绑在脚踝上用来脚步数,另一个则会系在肩膀上用来推测目标前进的方向。同时,目标的胸部佩戴一个 IRIS 节点,该节点会广播数据包给环境中的IRIS 节点,环境中 IRIS 节点收到该数据包并计算其RSSI 值发送到连接电脑上的Gateway,电脑端将处理的结果和惯性结果一起处理分析,得到最终的位置信息并显示出来。的图 3.2 IRIS Mote 传感器图 3.3 IRIS Mote 传感器和 MIB520 组成的 Gateway3.1.3 离线阶段在离线阶段,系统需要在每个位置 RP 上采样 RSSI 值
18、分布,每个 RP 的位置均已知。用户胸口佩戴一个 IRIS 节点,该节点不断广播数据包,部署在环境中的IRIS 节点在收到数据包后计算该数据包的RSSI 值,并发送到 Gateway 节点。Gateway 节点通过串口连接到定位服务器,服务器负责这些 RSSI 数据。设定位区域有 n 个环境 IRIS 节点,m 个 RP 点。为了在 RP 点 j 上建立RSSI 分布,广播节点需要发送 Np 个数据包,来自第 t 个 IRIS 节点的 RSSI 分布可以表示为 Dj(t)。RP 点 j 的坐标为(xj,yj),位置在 RP 点 j 可以表示为y,有np(S |x, y) p(S |x, y)
19、,ii1其中,物理特性和应用环境,惯性传感器可以相互组合实现不同的配置方案,如陀螺仪和加速度计组合的惯性导航系统,磁力计和加速度计组成的无漂移定位方法,陀螺仪、磁力计和加速度计定位方法等。Dead Reckoning(简称 DR)在短距离定位上有较高的精度,但是具有累积误差的缺点。这是因为 DR 是基于上一个位置的推算,因此误差会随着时间增长。 DR 广泛使用在惯性导航系统中,但是在个人设备的使用比较少,因为缺少高质量的传感器。传感器的噪音会模糊信号并增加潜在误差。3.2.2 可穿戴惯性定位组成惯性定位部分基于陀螺仪和加速度计,它们分别提供人或目标的的方向信息和加速度值,用来推断人或目标的朝向
20、和脚步。可穿戴式传感器节点是惯性定位系统最重要的部分,是基于 Razor 无线惯性测量单元节点(WIMU)开发的。Razor集成了ITG-3200(三轴陀螺仪),ADXL345(三轴加速计)和 HMC5883L(三轴磁力计)。除此之外,XBee 适配器用于无线通信模块,通过 9DOF 板上的TX/RX引脚来发送和接收数据。这个可携带式的设备包含了传感器板和 XBee 模块通过900Am.h 的锂电池供电的。所有的这些设备都放置在了一个 6cm透明盒内(图 3.4)。4cm1.5cm图 3.4无线可穿戴式传感器组成9DOF 提供了在x/y/z 三轴上的加速度,角度和磁力方向数据。为了避免通信阻塞
21、,将数据包从 56 字节压缩到 23 字节。同时,通过 33 方向余弦矩阵和XBee Serial AdapterLithium BatterySparkfun 9 DOF Razor IMUXBee chipTait-Bryan 角度数据计算出四元数(Quaternion)。该数据含了一个 1 字节的ID 节点,三个 2 字节的 X-,Y-,Z-轴加速度数据,四个二字节的四元数数据和一个用于数据同步的 1 字节的信号识别符*。程序平均每隔 4 毫秒就刷新一次惯性数据,XBee 模块以 57600bps 的速率发送打包好的信息。图 3.5Arduino Mega 板组成Arduino Mega
22、 板能接收惯性数据,并与 Xbee Shield,以太网板一起工作计算出接受数据包和通过无线网关发送数据包到处理单元的步骤。为了使信息更加标准和有效,程序使用Z_OSC实现 Arduino 兼容的硬件和处理单元之间的标准化 OSC 通信,并将所有的数据分成两个不同的 OSC 数据包。其中一个数据包包含Yaw/pitch/roll 浮点类型的Tait-Bryan 角度数据和类型的三轴加速度数据,另一个数据包用于将 9 个float 类型的方向余弦矩阵传送到无线网关。惯性测量主要分为脚步识别和前进方向估计。固定在脚踝上的两个传感器用于脚步识别,而固定在肩膀的传感器用于前进方向估计。为了减少衣服和身
23、体之间摩擦滑动造成的测量误差,采用带子来固定传感器节点。图 3.6 为穿戴了传感器的实验者。其中固定在脚踝上的两个可穿戴式传感器用来测量加速度。Ethernet AdapterXBee chipArduino Mega Board图 3.6 固定在脚踝的传感器3.2.3 惯性定位算法实现系统中,假设已有初始位置图 3.7:航位推算误差区域图以上这个图形真实的点会有 95%的概率处于别计算出当前位置相对于之前位置的二维变化量。具体公式为:每一次步行者在开始走路抬脚的时候和结束走路放下脚的时候,在 z 轴的加速度大小的量都会产生一个类似于正弦波的变化。而 MAX 又提供了可以感应类正弦波变化的接口
24、,因此只要设定好可能发生的时间和可能最小幅值,将固定在脚踝上的传感器的z 轴加速度通过这个接口来感应是否开始或者结束。同时为了防止步行者跳跃造成两个脚都产生了类似于走路的信号而系统自动认为触发了脚步,在判定步数之前要判定是否有跳跃的可能性。具体的做法是看两个脚的 z 轴的加速度如果在 0.2 秒之内都出现了一个类正弦波的变化则系统认为步行者在进行跳跃运动,不进行步数的判定。如果大于 0.2 秒,则认为步行者在正常走路。3.2.6 自适应步长算法个人系统定位的一点在于如何根据步行者的行走状态来判断步长。固定的步长在DR 测量中会导致较大的不确定性和误差。现有的很多用于个人室内定位的系统和算法都考
25、虑到了步长的。步长误差可以视为先序-过程,步长使用滤波和GPS 来估算的。步长可用常理和脚步频率的组合来建模,常量包括脚步频率和加速计测量的方差,而脚步频率,包括测量的加速度的大小和垂直速度方差。在本系统中,采用一种识别步行者运动状态(走路或者跑步)的自适应步长算法。步长与行走频率,以及每一个脚步的加速计信号的方差呈线性关系。利用 EKF估算出来的位置信息来反馈和调节步长。步长可以通过行走频率 f 和最后一个位置的位移方差的线性组合来表示:为了提高精度,可以将目标的行为分为多个情况,而每个情况内分别对象的参数设定不同。在的系统中,采用两套参数,分别对应普通走路和跑步时的步长。其中,这两套参数里
26、数值相同,不同的是 和 的数值。当频率大于某个数值时,使用跑步的 参数,反之,使用走路的 参数。加速度方差的参数选取也同理。图 3.9 为自适应步长算法的流程图:标定是建立室内定位步行者参数的必要前提,通过实验可以获得关于步长,频率,放置位置的样本。由于不同人行动时这三个参数有一定的差异,因此我们对同一个人了若干实验数据用于计算这些参数。通过线性回归的方法可以获得, 这三个参数。线性回归用来给大量的具有相互依赖关系的变量建模。线性回归的主要思路是拟合出一条线性关系,使得所有测量点到该线性公式的距离的平方和最小。以下公式用于计算,:表 3.1 为适应性步长参数训练数据表对表 3.1 数据进行线性
27、回归,可以求出所需的参数:走路模式:=0.30,跑步模式:=0.26,=0.43, =0.29=0.04, =0.71由于所得到的数据中,走路模式和跑步模式 的值要一样,因此简单走路模式试验序号频率(Hz)加速度方差步长试验序号频率(Hz)加速度方差步长试验序号频率(Hz)加速度方差步长12340.1754390.1063830.0591720.2777780.0425810.032790.0103650.107270.2967890.3333330.3571430.1851850.250.0565450.088510.0621160.1975070.330.380.
28、540.54111213140.40.2380950.40.3333330.2653470.1079880.6347490.2245970.540.550.580.6150.2631580.1632450.3100.2777780.2594070.544150.256410.1643680.63跑步模式试验序号频率(Hz)加速度方差步长试验序号频率(Hz)加速度方差步长123450.3211430.2325580.3333330.3052110.31250.1428620.0789690.1399261.0084740.0738990.710.790.820.830.87670.3715550
29、.370371.6807921.1551920.870.9地去跑步和走路状态时这两个值的较小者作为 最后使用的值,即 0.29。但是由于这两个数据差距过于大,因此在确定了 的值之后要重新对跑步状态时确定一个新的参数。这里 选定的方法是将步长减去 的值之后对频率和方差做一个常数项为 0 的线性规划。因此最终求得的跑步模式的参数为:=1.57,=0.04。3.3 3D 音效系统接入技术3.3.1 Open sound control 协议OSC 是open sound control 的缩写,它是一种能在接入网络的电脑,音效器和其他设备之间传输的一种协议。由于电子音效设备接入网络之后的特性,OSC
30、 有着互通、精确、稳定等特点,方便信息的组织和管理。这种简单而强大的协议能够声音或其他信息的传输带来实时的控制,并且这些传输稳定而且易于搭建。OSC 具有以下特点:(1)(2)(3)(4)(5)(6)不限名额,动态的,类型与 URL 的符号命名机制;符号化并有着晰度的大量数据传输;用于多个接收者接收同一信息单独的配对语言;晰度的时间戳;能够处理并发的信息流;能够动态寻找 OSC 服务器发出信息的队列系统。很多设备都配置了 OSC,包括实时环境处理、交互式网页工具、音效器、大量编程语言、传感器测量的硬件设备等。OSC 同时也用于大量的领域包括以计算机为基础的新型音乐表达接口、广域或区域的网络分配
31、音乐系统、交互传输甚至是一个单独的应用。通常情况,OSC 协议可对多个不同类型的信号打包,并通过一个地址在 UDP 层进行广播。地址的格式形如 UNIX 的文件路径模式。发送后,接收设备可以通过发送方发送的地址接收数据,对数据拆包。由于计算机从网关中接收的数据有六个:三个方向向量和三个方向的加速度。其中前三个是整形值,后三个是浮点数。每一个传感器的六个数据可以打包成一个在 OSC 地址中传送,其地址的格式是:图 3.10 Max 程序向 IOSONO 音效系统发送 OSC 数据包该处理单元实现了以下的功能:通过网线接收传感器的信息;处理信息,得到所有传感器三个方向的加速度和方向角度数据,并能用
32、图形的方法显示出传感器的状态;通过上一步骤得到的参数,算出传感器携带者和初始化的相对位置;和绘制路径图;可以将一些数据通过手动或自动的方式到本地文件上;通过 UDP 协议将 OSC 数据传送到本地的其他端口或者其他 3D 音效系统中。3.4 多模传感器接入与自组织组网技术 More如今在舞台表演以及互动演出当中,多模传感器接入以及数据获取功能需要音乐家编写专门的程序实现。这种情况极大的限制了舞台表演作品的发展,延长了音乐作品的开发周期。针对这种情况,开发了一套多模传感器接入与自组织组网技术“More”。它的主要功能是为音乐家提供方便的传感器数据接入方案,使得音乐家更加关注于交互作品本身不用去为
33、多模传感器数据传输花费大量时间。 More 的目标是能够兼容多种传感器,并且为音乐Max/Msp、Prosing、网页浏览器等等。家提供方便的数据接入的客户端,如3.4.1 More 概述图 3.11 More 系统结构图More 的详细结构如上图所示。多种传感器部署在舞台、或者其他特定区域,以有线或者无线传输的形式接入到特定的节点中。这些节点之间可以相互通信,以自组织组网的方式建立连接,同时接入到处理单元中。网络当中的节点可以互相发现对方,并且知道其他节点所连接的传感器信息。在树莓派卡片计算机、Cubi、PC、Mac OSX 等软硬件上实现了More。目前可以传感器接入的节点由树莓派和Cub
34、i实现。树莓派是一款基于ARM 的微型电脑主板,以SD 卡为内存硬盘,卡片主板周围有两个 USB 接口和一个网口,可连接键盘、鼠标和网线,同时拥有模拟信号的电视输出接口和输出接口,以上全部整合在一张仅比稍大的主板上,具备所有PC 的基本功能只需接通电视机和键盘,就能执行如电子表格、文字处理、玩、等诸多功能。由树莓派节点组成的网络可以看成是一种无线传感器网络,每个树莓派可以配备一个USB 无线网卡,可以很方便的建立无线网络连接。图 3.12 树莓派卡片计算机3.4.2 More 结构功能描述构建 More 需要考虑 2 方面的结构:网络结构和通信结构。下面将分别介绍这 2 部分内容。在交互式演出
35、、作品当中,传感器数据对延迟具有较高要求。因此选择建立ore 网络结构需要考虑数据传输的延迟与抖动。考虑到这个问题,当前大M多数交互式应用选择有线传输方式。More 可以适用在多种网络结构下:无线局域网WLAN(使用 DHCP 方式分配IP 地址):节点需要知道 WLAN和PSK,自动加入该WLAN;网络的无线自组织网络 Ad-Hoc:IP 地址分配可以通过集中式的方式(local DHCP)或者使用 Zeroconf 协议;有线局域网LAN:使用 DHCP 方式分配IP 地址;为了不依赖于某个特定的或者实现方式( 如 Max/msp ),ore 框架的通信结构分为 2 层:控制层 Contr
36、ol Plane 和数据传输层 DataMPlane。在详细介绍More 的通信结构之前先介绍一个More 使用案例。一个音乐家希望通过本地的客户端获得连接到树莓派上传感器的数据。客户端所具备的功能:知道当前网络的配置信息(网络节点发现、网络节点连接的传感器类型以及数目);请求传感器数据,同时直接发送到本地客户端图 3.13 M考虑一个具有 2 个节点的 More 的一个使用案例ore 网络,包含接了传感器的树莓派的的音乐工作站。音乐家希望通过 Max/msp 客户端获取到树莓派连和一台接的传感器数据,需要经过如下几个步骤:(1)传感器连接到树莓派上。树莓派节点检查到传感器存在,在网络中广播新
37、传感器加入的消息给各个节点;(2)音乐工作站上的 More 接收到广播消息,通过 Max/msp 客户端告知音乐家新加入节点的消息;(3)当传感器准备好后,音乐家通过音乐工作站上的More 请求传感器数据;(4)音乐工作站上的More 会与树莓派上的More 通信,检查传感器是否可用。在此阶段,相关的IP 地址和端会互相给出;(5) 树莓派上的 More 会生成、执行一个 2 进制文件,该文件将发送感知数据给步骤 4 当中给出的IP 地址和端口;(6) 音乐工作站Max/msp 客户端获取数据。这个使用案例可以扩展到存在多个网络节点和每个节点具有多个传感器的情况。控制层Control Plan
38、e 是由一个程序core 组成,它使用Node.js 实现,主要功能为了建立所有节点之间的独立的通信。该层通信包括 3 个独立的通信模块:(1)信息通道(Information channel, InCh)每个节点在这一层通道上通过互相订阅(subscribe)来实现网络配置信息的相互通知、共享。这一层通道通信是完全异步的。在实现上,使用 Node.js 的 ZeroMQ 抽象类实现 socket 通信和发布者/订阅者模式(publisher/subscriber)。每一个节点都是一个发布者,它会被网络中的其他节点订阅。通过这种方式,每当一个节点触发了某一个事件 event(如新的设备、传感器
39、接入到网络中),所有其他的节点均会被通知这个事件。信息通道保证了网络当中所有节点都能知道当前网络配置的情况;主通道(Main Channel,MaCh)主通道实现了一个传统的TCP 客户端/服务器机制,它包括 2 种不同的实现方式:一种完全同步的请求/应答机制,当一个节点请求资源时,它会一直等待回复(进程阻塞);一种异步的请求/应答机制,当一个节点触发了一个异步请求,它 知道可能过需要一段时间后才有应答,因此不会阻塞当前的进程。本地通道(Local Channel ,LoCh)本地通道是为了实现本地客户端通信而建立的。与其他 2 类通道不同,本地通道基于 HTTP 客户端/服务器通信模式实现的
40、。本地客户端是(2)(3)HTTP 客户端程序,通过 GET 请求发送给包含HTTP 服务器More。信息通道InCh 和主通道MaCh 均使用TCP 作为传输层协议,用来保证传输的可靠性。More 使用以上通道来实现将数据转发给用户客户端程序。More在设计时充分考虑支持多种,用于保证兼容多种传感器和工作的环境。本地客户端为了向用户提供一个界面友好的接口来、请求数据传输层Data Plane 的资源和信息。数据请求被发送到本地的 core 程序,然后该请求会被转发到连接了传感器的特定接收节点上。本套系统的目标之一是通过 Max/msp开发一个简单、友好的客户端程序给音乐家使用。数据提供端(D
41、ata Provider)是在数据层中一个负责传感器原始数据,并将它们打包成 OSC 数据包并转发到对应的请求节点的程序。数据提供端具体可以是一个Pure Data 程序或者是为特殊传感器开发的驱动程序。3.4.3 More 的工作流程与实现方案More 工作流程包括以下几个步骤:(1)启动时,每一个节点通过广播_node._tcp 服务通知网络中其他节点它的出现。假设所有的节点都处于同一个子网中,因而他们之间可以通过IP 地址进行互相;每一个节点提供不同的通信模式,单向、双向、多向,同步以及异步的通信;网络组播(group messaging)通过信息通道 InCh 的发布者/订阅者模式实现
42、,因此每个节点都具有 2 个 socket:发布者socket 仅仅用于向所有的订阅者发送信息;订阅者socket 仅仅用于接收所有其他节点的信息。(4)点对点的通信(po-to-pomessaging)通过主通道MaCh 的请求/应答模式实现,可以根据应用需要实现同步以及异步的通信方式;(5)本地客户端请求网络中某个节点的资源,目标节点获得请求之后,按照目的地IP 地址和端,以 OSC 格式回送传感器数据;More 主要通过Node.js 框架实现,使用了一些不同的函数库完成网络服务发现、套接字抽象与处理。Node.js 是一个基于 Chrome JavaScript 运行时建立的,用于方便
43、地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动,非阻塞 I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。使用了如下模块实现了More:mdns:Node.js 的一个Zeroconf 协议的实现,用于网络节点的自组织发现;ZeroMQ:套接字抽象与处理库,用于实现发布者/订阅者模式;Underscore.js:提供了操作 Javascript 对象的函数库;Async:提供了 Node.js 程序过程式执行的函数模块;Express:一个 Web 应用程序框架。网络资源的自组织自发现功能主要使用 mdns 模块实现。mdns 是 Zeroco
44、nf协议的实现,它可以提供类似于 DNS 服务发现的方法。在这个模块中,有一个对象可以用于发布和浏览本地网络中的服务。Zeroconf 是一种局域网内自动监测设备或者服务的规范,它提供了 3 中不同的功能:本地链路分配地址(IPv4LL):在没有DHCP 服务器下分配 IP 地址;多播 DNS:自动IP 地址;服务发现(DNS-SD):在没有目录服务器下,建立和发现服务的功能。mdns 模块允许开发者实现如下功能:在局域网中广播一个号;的服务,并且可以指定特定的服务类型和端口浏览当前网络中的所有服务。每一个网络节点通过广播一个的服务_node._tcp 通知网络当中其他节点它的出现。使用 br
45、owser 对象来检测其他节点的_node._tcp 服务监测网络当点的出现与离开,具体实现如下:在本地网络中监测_node._tcp 服务:每当一个新节点发现,触发serviceUp 事件:每当一个节点离开时,出发serviceDown 事件:使用 ZeroMQ 模块实现了信息通道 InCh 和主通道 MaCh。ZeroMQ 是一个套接字系统,能够很方便的实现并发 concurrency、排队 queuing 等模式,并且创建高效的组播以及点对点通信的方案。基本上,它是为分布式程序建立的一个智能的传输层方案。使用ZeroMQ 实现了如下模式:发布者/订阅者模式:在这种通信模式点会订阅他们希望
46、获得信息的其他节点。当一个节点有新的消息(或者触发一个事件),它就会发布出去。所有订阅了此节点的其他节点就好收到该信息,如下图所示:图 3.14 发布者、订阅者机制请求、应答模式:这种模式将一些客户端程序连接到一系列的服务上。的情况下,使用了 Dealer 和Router 模式处理请求和对多种客在户端进行应答。这是一种非阻塞的请求应答模式;实现了 2 种客户端程序:包括 Max/msp的扩展和 Web 程序接口。对于开发者来说,Max/msp 是一种使用共享库的模块化的程序。它允许第用户开发外置扩展程序称为 external。使用 Java 语言实现了 More 的Max/msp 扩展NetScan,它的主要功能包括:每当一个用户需要获取网络信息或者请求资源时,建立 HTTP 连接与More 通信;根据网络信息,创建一个图形化的界面。这个界面包含了当前网络所有节点的情况,包括每个节点的IP 地址,对应的端感器数据对应的 OSC 包的 URL 前缀;创建用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年剑尾片冲件蝴蝶自动锁项目投资价值分析报告
- 2024至2030年2-噻吩乙酸项目投资价值分析报告
- 2024年中国礼品套刀市场调查研究报告
- 《北京林业大学绿规》课件
- 《中国酒的饮用习俗》课件
- 《广告主题新解》课件
- 2024年土方工程作业人力分配合作合同版B版
- 高一生物必修二知识点总结
- 质量成本培训讲义
- 2024年企业客服代表劳动协议参考稿版B版
- 机电安装工程文明施工环境保护方案
- 行政组织学课件
- 人工智能导论实训报告总结
- 手术室中的急救药物管理与应用
- 2024年中华棉花集团有限公司招聘笔试参考题库含答案解析
- 2024年广西北部湾港集团招聘笔试参考题库含答案解析
- 业务系统运维方案
- 加强采购管理降低采购成本
- 图纸签收单完
- 2023个人酒水购销合同酒水购销合同范本
- 药品销售的供应链风险管理:如何降低供应链中断的风险
评论
0/150
提交评论