点击查看第一章
点击查看第三章
第2章
Mobile Sensors and Context-Aware Computing
情境感知计算
本章内容
- 情境感知计算
- 情境
- 位置感知
- 手机的位置来源
- 定位算法
- 导航
- 其他定位手段
2.1 情境感知计算简介
让我们从探索情境的意义开始。情境意味着用户的偏好、兴趣、位置以及用户的活动、周围环境情况等。周围环境包括与天气、气候、交通、时间或用户物理位置有关的信息。它也可能是与用户计算设备有关的信息,例如电池电量、可用网络带宽、可用Wi-Fi基础设施等。
现在我们把情境的基本定义扩展到情境计算。情境感知计算(context-aware computing)是指能够感知计算设备、计算基础设施或用户情境的计算环境。计算设备可以是各种设备中的任何一种,包括智能手机、平板电脑、可穿戴设备或传统设备(如笔记本电脑和台式机)。计算基础设施包括硬件、软件、应用程序、网络带宽、Wi-Fi带宽和协议以及电池信息。
例如,智能手机是一种能够感知周围情境的计算设备。计算基础设施(如其操作系统)获取这个情境,存储并对其进行处理,然后通过调整其功能与行为来响应此情境,继而做出一些情境感知的决策。计算基础设施可以处理并响应情境,而用户只需要很少的输入。一些情境感知基础设施响应情境的示例如下:
- 智能手机可以检测到位于机场、火车站或购物中心等拥挤的地方,并自动更改设备行为来实现噪声消除。这将使设备能够更好地响应用户的语音命令。
- 智能手机可以检测用户的位置并改变其功能。例如,如果用户在会议中,则自动增加或减少扬声器音量,或改为静音模式;基于用户所在场景(比如在家、在办公室或在汽车旅行中)来改变铃声。
- 如果用户在办公室或在开车,那么智能手机可以自动通过短信响应某些呼叫,甚至可以根据用户的位置情境阻止一些来电。
- 可穿戴设备可以使用环境背景,并自动计算用户的卡路里消耗。
- 智能手表可以根据位置环境自动调整夏令时或时区。
- 传统或现代智能设备可以使用基于位置的服务来建议用餐地点、娱乐场所,以及诸如医院和紧急护理中心等紧急服务。
情境感知设备可以通过各种机制获取情境数据,例如通过特定的传感器、互联网、GPS,或者历史记录、过去的决策、位置或动作等。今天,传感器类型和可用性已经增加并变得更加复杂,可以在平板电脑、可穿戴设备、智能手机甚至传统的笔记本电脑和台式机等设备上实现大量的情境感知计算。即使是基本的陀螺仪、加速度计和磁力计也可以获取方向和位置数据,从而预测使用情况,如检测到意外坠落时关闭设备,或者基于当前用户的位置来提示前方的餐厅或加油站等。
因此,为了做出智能决策、预测用户操作并更改设备功能,以降低用户手动输入情境相关信息的需求,情境感知现在正成为各种计算设备和基础设施(包括应用程序)的必要条件(如图2-1所示)。
图2-1 情境感知计算的概念
2.1.1 情境感知基础设施的交互级别
情境感知计算、基础设施或应用程序具有三级交互性:
- 个性化:用户指定自己的配置/环境,以控制情境感知基础设施(硬件、软件、应用程序等)在给定情况下的行为或响应。
- 被动情境感知:在这种情况下,情境感知基础设施为用户提供来自传感器的信息或在上一个情境中发生的更改;但是基础设施不会在此基础上做出决定或改变行为。用户基于更新的情境信息来决定操作过程。
- 主动情境感知:在这种情况下,情境感知基础设施收集、处理并根据传感器或情境信息采取所有必需的操作。它通过主动做出决定来减轻用户的工作负担。
表2-1列出了一些基于用户交互级别的情境感知应用程序和服务的类别[1]。
表2-1 基于情境的移动计算服务
2.1.2 普适计算
普适(ubiquitous)这个词意味着无所不在的、普遍的、全球化的或永远存在的。普适计算代表一种计算环境,它似乎无处不在,随时随地都在计算。与传统的未连接网络的台式计算机不同(台式机是静止的,只有坐在它前面才能访问),普适计算指在任意位置、以任意形式、在给定的任意时间通过使用任意设备或基础设施来提供计算能力。
今天,用户通过许多不同的设备与计算环境交互,如笔记本电脑、智能手机、平板电脑,甚至连接网络的家用电器(如微波炉或冰箱等)。随着智能手表和Google Glass等可穿戴设备的出现,对底层计算环境的访问变得非常普遍。
计算基础设施有许多重要组件,能够实现普适计算。这些组件包括:互联网、无线网络或网络协议、支持普适行为的操作系统、中间件或固件、传感器和情境感知设备、微处理器以及其他计算机硬件。
普适计算可以为用户提供两个关键的增强用户体验的特性:隐身性和主动性。例如,想象一种完全情境感知的购物体验,用户无须在传统的收银台排队等待,而是可以自动扫描购物篮和用户的设备/身份,根据用户的相关信用卡信息优先刷卡结账。在这种情况下,结账的过程对用户是完全不可见的,系统可以主动识别用户和支付方式,从而在时间和便捷性方面增强用户的购物体验。
在普适计算中,计算机不再像计算机房或实验室那样与物理空间相关联,而是可以在全球任意位置进行部署和访问。基于这种现象,计算设备发生了以下变化:
- 外形尺寸变化:这些简单的外形尺寸、硬件尺寸等变化支持计算机在传统房间外的物理移动,但是,这种计算机对周围环境缺乏敏感性。
- 情境敏感的变更:需要进行变更以克服对周围环境不敏感的缺点。最初,灵敏度仅限于检测附近的其他计算设备,后来扩展到其他参数,如白天/夜晚的时间和光强度、当前物理位置附近手机的流量、计算机用户的身份或角色、计算机附近其他人的角色,以及振动幅度等。
一般来说,情境感知计算尝试使用When(时间)、Where(位置)、Who(身份)、What(活动)和Why(用途)作为其决策算法的一部分。
示例:在健身室中,情境感知计算将感知并推断用户偏好以控制音乐的类型,并相应地实时控制音响系统。或者在某些其他用例中,算法可以使用其他环境参数(如声音或光照水平)来推断是否可以向用户发送特定消息。
2.1.3 普适计算面临的挑战
传感器及其网络的关键问题[2]在于,由于传感器不准确,使得计算环境具有不确定性和概率性。以下是一些不确定性的例子:
- 不确定位置:位置传感器报告在X、Y和Z空间上“真实”位置的位置概率。
- 不确定是谁:人脸识别传感器通过概率分布返回刚才看到某人的概率。
- 不确定是什么:试图识别物体的相机传感器将会发送一组关于所看到的物体的估计值(同样是概率分布)。
现在让我们来探讨普适计算的系统级挑战。
- 电源管理:普适计算需要无处不在的电源。普适计算设备中有三个主要组件或功耗源:处理、存储和通信。
普适计算平台的处理是高度可变的,从简单的应用程序到计算密集型任务都可以处理。有许多控制器可用于控制单个处理单元的功耗,例如,在不使用时对处理器内部的某些单元或模块进行功率控制,或者降低工作电压以减少能耗。该平台还可以使用多个特定的处理单元或处理器来执行特定任务,从而在不需要该特定任务时将功率集中到其他模块。例如,可以用一个微处理器来寻址、处理传感器中断/数据,同时利用高性能处理器进行全功能计算,并使用网络处理器来处理网络数据。对于多处理组件,软件需要能够动态控制某些模块的功率并对其进行选通,同时根据特定任务的要求在全电压或降压条件下运行所需的处理器件。
与处理单元一样,所使用的无线接口和协议也会影响普适计算平台的功率需求和策略。例如,Wi-Fi、蓝牙、ZigBee和超宽带具有不同功能和特性的标准,因此每个协议都定义了功率和性能设置(如传输强度和占空比),可以有效用于管理平台中电源的功率。根据目标用例,平台可以使用多种协议,例如,Wi-Fi可用于家庭网络和互联网,蓝牙可用于手机上的免提或语音通信。无处不在的平台操作软件需要透明地向用户提供考虑这些协议的不同功率与性能特性的服务,如每比特能耗、待机功率等。
影响普适计算系统功率曲线的第三个组件是存储介质,如SRAM、DRAM、闪存和磁盘驱动器,每种存储类型都有不同的功率配置(空闲功率、有功功率、泄漏功率等)。例如,SRAM的功率可以比DRAM的功率低,而闪存具有更好的空闲功率配置。所以软件将需要部署各种方案来管理功耗,以及访问平台上的这些不同存储选择。
无线探索的局限性
世界已经从一个人一台计算机的时代转变为一个人多台计算设备的时代。如今,个人拥有多台设备:台式电脑、笔记本、平板电脑、智能手机和其他便携式计算设备,它们在家里或办公室中共享相同的/周围的空间。随着多个计算设备与每个人相关联,这些设备的物理和虚拟管理变得具有挑战性。未来,我们还可能在众多家用和办公产品中嵌入处理器,以识别环境或与个人关联,这进一步复杂化了与该空间中每个人相关联的计算设备的管理。
需要在周围(家庭或办公室)找到一种小型设备的集合,通过每种设备的类型(电话、笔记本、平板电脑等)和功能来识别这些设备,然后为每个设备分配特定的用户/系统。现在一般使用一些独特的名称/IP/MAC地址来识别这些设备,但这种识别可能并不像嵌入式系统那样总是可用的,普适计算设备也可能无法接入有线网络。这种共存于同一空间的普适计算设备不仅需要通过管理软件进行适当的身份识别,还需要根据其功能、用户偏好和真实性来与其他可用设备进行连接。
用户界面自适应
普适计算指的是从小型传感器到平板电脑、笔记本电脑和台式机,再到复杂计算设备等不同类型的设备。这些设备中的每一个都有不同的显示类型和尺寸,在较小的智能手机显示屏上运行的应用程序在大型台式计算机屏幕上同样有效。但是,显示器的物理差异不应该影响不同设备的用户体验,用户应该能够像操作笔记本电脑或台式机等大型显示器那样轻松地操作智能手机上的触控单元。因此,针对具有较小显示器的智能手机而设计的应用程序应该能够在显示器尺寸可用时轻松适应更大的显示器尺寸,反之亦然。一种实用的方法是基于底层基本用户定义生成用户界面组件,随时随地了解目标显示功能。要构建这样的应用程序,需要四个主要组件:
1.用户界面规范语言。
2.一种控制协议,在应用程序和用户界面之间提供抽象的通信信道。
3.设备适配器,允许将控制协议转换为目标设备上可用的原语。
4.图形用户界面生成器。
由于用户界面是可见的,因此维护其在多个显示目标上的可用性非常重要,但用户界面设计人员不知道他们的应用程序将如何出现在客户使用的各种屏幕尺寸上。在普适计算环境中,目标屏幕尺寸的范围远远大于传统桌面或笔记本中的尺寸,因此,在创建标准和为用户生成和显示内容的基本机制方面仍然存在重要的软件工程障碍。
位置感知计算
普适计算使用设备的位置来增强用户体验,其最重要的特性是定制可供用户使用的服务,例如自动定位附近的其他设备,记住它们,然后在适当的用户认证之后向用户提供服务/数据。
位置情境不仅限于知道用户在哪里,还包括关于用户是谁以及谁在用户附近等信息。这样的情境还可以包括用户的历史使用情况,基于历史信息来确定用户可能想要访问的应用,如基于位置情境的普适系统可自动控制设备音量,当用户在购物中心这样拥挤的地方或者在图书馆这类安静的地方时,应该具有不同的处理机制。另一种情况是确定周围是否有人,以及用户是否有可能与他们会面。它还可以根据用户的时间和位置来控制显示器的亮度。
应用程序可以提供许多基于位置的服务,如查找附近的餐馆、便宜的加油站、本地化互联网搜索等。
传统的基于位置情境的系统具有“位置估计不确定性”的限制,因为系统不可能知道设备/用户的确切位置,所以无法描述可能位置的范围。为了解决这个问题,可以使用多个位置信息源的融合来提高位置的准确性,并允许用户/应用程序根据估计位置的误差分布来调整策略。
2.2 情境
情境意味着情境认知(situated cognition)。对于移动计算,情境可以被定义为围绕用户或设备的环境或情况。可以根据用户或设备的位置、用户的身份、用户或设备执行的活动,以及应用流程或活动时间来对情境进行分类。情境可用于认证用户或设备的身份,以便执行位置、功能或数据的授权,以及提供服务等。
2.2.1 计算情境
计算情境是关于用户、人员、地点或事物的情况、位置、环境、身份、时间等信息,这些信息随后被情境感知计算设备用来预测用户需求,以及提供丰富可用的情境感知的相关内容、功能和体验。
图2-2显示了适用于情境感知计算的情境环境示例,可分为三个主要方面:
- 物理情境:照明、噪音水平、交通状况和温度。
- 用户情境:用户的信息记录,如生物特征信息、位置、附近的人、当前的社会关系状况等。
- 时间情境:一年中一天、一周、一个月和一个季节的时间情境。
图2-2 情境环境示例
2.2.2 被动与主动情境
主动情境感知是指基于测量的传感器数据自行改变其内容的处理。 例如,智能手机中的时间会根据用户所在的位置(如果在用户设置中为这些功能选择了“自动更新”)进行更改。活动情境也被认为是主动情境。
被动情境感知指的是处理实时更新的情境(基于传感器数据),并呈现给用户,由用户来决定应用程序是否应该做出改变。例如,当用户处于不同的时区或位置,并且关闭了设置中这些功能的“自动更新”时,智能手机将不会自动更新时间和位置,而是提示用户提供所有必需的信息,并让用户决定后续行动。
表2-2显示了基于被动和主动情境的设备对输入的操作。
表2-2 被动情境和主动情境对输入的响应
2.2.3 情境感知应用程序
情境信息可用于软件应用程序[3],以增强用户体验并促进有效的硬件和软件资源使用。它可用于个性化用户界面,添加或删除驱动程序、应用程序和软件模块,针对用户查询呈现基于情境的信息并执行情境驱动的操作。以下是使用情境信息的应用程序的一些示例。
- 邻近选择:邻近选择是指在特定查询实例下突出显示用户附近的对象或信息的用户界面。这种用户界面可以将用户的当前位置作为默认值,并且可以为用户提供连接或附近的输入输出设备,如打印机、音频扬声器、显示屏等。它还可以在预定邻近范围内与其他用户连接或共享信息,以及提供关于用户可能有兴趣访问或探索的附近景点和位置的信息,如餐馆、加油站、体育场馆等。
- 自动情境重配置:添加或删除软件组件,或者更改这些组件之间的交互的过程称为自动情境重配置。例如,可以根据用户配置文件来加载设备驱动程序,因此情境信息可用于支持个性化系统配置。
- 情境信息和命令:通过使用位置或用户偏好之类的情境信息,软件可以向用户呈现经过筛选的或个性化的命令(例如,发送文件命令会默认将其发送到附近的连接设备),或者可以基于当前位置改变当前用户的某些执行选项,例如在图书馆中将移动设备设置为静音。
- 情境触发动作:软件或应用程序可以根据if-then条件动作规则自动调用某些动作。例如,应用程序可以提供自动提示以检查特定的阅读材料,或者当检测到用户在图书馆周围时,自动将移动设备置于静音模式。然而,这样的自动行为需要更精确的情境信息。
2.3 位置感知
位置感知是指设备根据相对于参考点的坐标主动或被动地确定其位置的能力,可以使用各种传感器或导航工具来确定位置。 以下为一些位置感知的应用:
1.应急响应、导航、资产跟踪、地面测量等。
2.具有特定意义的位置信息代表特定活动(例如,在杂货店意味着购物)。
3.通过整理可以得到用户的社交角色。
4.坐标的变化可能意味着活动和交通方式(如跑步、驾驶)。
手机的位置来源
有许多位置技术和传感器类型可用于具有位置环境感知的设备。一些相关技术和传感器如下。
全球导航卫星系统[4]
全球导航卫星系统(Global Navigation Satellite System,GNSS)由卫星网络组成,用于传输全球定位和导航的信号,如GPS、GLONASS和GALILEO系统。每个系统都由三个主要部分组成:①空间部分:该部分是指卫星或卫星网络;②控制部分:该部分是指位于世界各地的跟踪站,用于控制卫星轨道确定、同步等功能;③用户部分:该部分是指具有不同能力的卫星接收机和用户。
GNSS适用于室外定位环境,在全球范围内具有良好的覆盖性和准确性(如图2-3所示)。
图2-3 GNSS的关键部分
无线地理信息
无线地理信息是指用于识别设备实际位置的无线机制,在这种方法中,底层无线定位引擎提供了实际的物理位置而不是地理坐标。一个例子是Cell ID(CID),它是用于识别每部移动/智能手机的唯一号码,基于CID的机制使用手机信号塔、CID和位置区号来识别移动电话。
传感器
传感器可用于提高确定设备位置的准确性。例如,在航位推算中,可以使用传感器来确定参考点的相对运动(例如检测系统是否移动到3米半径之外),或者确定设备的相对位置(例如碰撞两个设备以建立共同参考,然后可以追踪其相对位置)。当其他方法不可用时,传感器也可以单独使用。首先让我们了解什么是航位推算。航位推算是一种通过使用先前确定的参考位置来计算当前位置,并根据已知或估计的速度来推进该位置的过程。虽然这种方法提供了有关位置的良好信息,但由于速度或方向估计不准确等因素,容易产生误差。因为新的估计值会有其自身的误差,并且新值是基于具有误差的前一位置推算的,所以会导致累积误差。目前使用的一些传感器包括用于航位推算中的加速度/速度积分的加速度计和陀螺仪、用于碰撞事件的加速度计、用于仰角的压力传感器等。
2.4 定位算法
利用包括接收信号强度(RSS)、到达时间(TOA)、到达时间差(TDOA)和到达角的距离测量可以实现定位的发现。
2.4.1 到达角
到达角[5]是参考方向与入射光线传播方向之间的角度。参考方向称为定向,是固定的。如图2-4所示,到达角度以度为单位并从北方以顺时针方向测量。如果指向北方(到达角θ=0°),则称为绝对角。图2-4显示了传感器/节点A和B分别知道它们在θa和θb处的位置。几何关系可用于从两个或多个传感器/节点/用户的线路的交叉点来估计未知用户/传感器的位置,这些传感器/节点/用户知道其各自的位置。图2-4中的例子确定了未知用户/传感器与北方呈59°角的方向。如果未知传感器/节点的方向未知,则可以使用其他方法。
图2-4 定位(带有方向信息)
2.4.2 到达时间
到达时间(TOA) [6-8]利用源传感器和接收传感器之间的时间信息(飞行时间)来测量它们之间的距离。发送的信号带有时间戳,并且在接收器处会测量精确的TOA。信号的行程时间是行程距离的直接测量。这种情况下的源传感器和接收传感器应该同步,以避免由时钟偏移和硬件/电路延迟造成的错误。如果计算往返TOA,则不需要这种同步。距离是由TOA与速度相乘获得的。
使用勾股定理,可得到三维坐标(xr, yr, zr)处的接收器位置与源位置(x, y, z)之间的距离:
对于二维方程,可以写成如下式子:
当已知位置的多个接收器在不同时间接收到相同的信号时(由于信号行进的距离不同),测量的TOA代表一个圆(二维为圆形,三维为球体),接收器位于圆心,源位于二维空间中圆周上的一个位置。使用三边测量和多点定位,可以确定不同的圆的交点。这个交点就是源传感器的位置,如图2-5和图2-6所示。
基于TOA的源定位算法的数学测量模型[9]由下列等式给出:
测量向量r =源传感器位置x的非线性函数+零均值噪声向量
2.4.3 到达时间差
到达时间差(TDOA)通过使用由放置在多个位置的传感器接收的相同信号的传播时间差与从源传感器到接收传感器的绝对传播时间差来识别位置。基于TDOA的定位系统不依赖于传感器对之间的绝对距离估计。
图2-7给出了一种方案,其中已知位置处的源传感器(锚点)发出多个参考信号,然后由接收传感器R进行测量。同步器确保参考信号源同步。
图2-7 到达时间的差值
图2-8给出了另一种方案,其中传感器R广播一个参考信号,该参考信号由多个接收器接收,时延τr取决于源位置到每个接收器的距离。这个τr无法计算。接收器估计TOA并计算TDOA[10]。
相关分析将提供时间延迟τrA-τrB,对应于参考信号到接收器rA和rB的路径上的差异。估计时差的一种简单方法是使到达一对接收传感器的信号互相关[11]。从接收器rA和rB分别接收到的两个信号rA (t)和rB (t)的互相关为:
其中,T表示观测时间间隔。
如果没有错误,则τ的峰值将等于TDOA。
图2-8 到达时间的差值:广播
来自两个接收器的距离差(信号到达时间的时间差)提供了一组点,这些点可以(从几何上讲)解释为双曲线(二维)。可以计算在唯一的点上相交的几个双曲函数,这个独特的交点则为源传感器的位置。
2.4.4 接收信号强度
在特定位置的接收信号强度(RSS)[12-13]是通过多条路径接收的信号的平均值。RSS指示器指示接收信号的功率,并且是发射机和接收设备之间距离的函数,该距离会受到各种路径内干扰的影响。
图2-9显示了一个使用RSS的室内定位系统[14]的例子,该系统由训练阶段和定位阶段组成。在训练阶段,通过将移动设备指向不同的方向(全部四个方向)来收集已知位置处可用无线局域网接入点(称为参考点)的RSS读数。然后,在原始RSS时间样本上使用仿射传播算法来识别和调整(或去除)异常值。最后,将参考点分成不同的簇(每个方向为独立簇)和作为指纹存储的无线电地图(RSS测量集)。
在定位阶段,移动设备以任意方向从未知位置的接入点(称为测试点)收集实时RSS以形成RSS测量向量。粗定位算法可用于将收集的RSS与每个参考点RSS向量进行比较,以识别测试点RSS测量所属的簇。因此它有助于缩小所需区域。然后可以使用精细定位来估算移动设备的最终位置。
在粗定位期间可以使用四种可能的方案来找到测试点RSS和不同簇之间的相似度,并识别出与该测试点具有最高相似度的匹配簇:
- 使用测试点的RSS测量向量与参考点簇中的每个RSS之间的欧氏距离来将测试点与特定簇相匹配。
- 使用测试点的RSS测量向量与簇中所有RSS读数的平均值(而不是每个RSS读数)之间的欧氏距离来将测试点与簇相匹配。
- 使用测试点的RSS测量向量与参考点的加权平均值之间的欧氏距离(而不是简单平均)来为具有更高稳定性的参考点提供更高的权重。
- 只考虑最高强度的RSS读数,使用以上三种方案中的任何一种来查找测试点与簇的相似性。
图2-9 基于受限信号强度的室内定位系统
下一步是使用精细定位来估算精确位置。以下步骤描述了精细定位算法的基本形式。
- 可能有比估计移动设备位置所需的更多的接入点。也可能存在某些接入点,因RSS方差高而不可靠,从而影响定位系统的稳定性。为了消除冗余和不可靠的接入点,只有那些具有最高RSS读数或满足Fisher标准的接入点(以及来自它们的读数)才被考虑。
- 然后将测试点的RSS向量与在粗定位阶段识别的簇的每个簇成员的RSS向量进行比较,并计算欧氏距离。
- 然后选择与测试点RSS向量具有最小欧式距离的参考点作为移动设备位置的估计。