烂了大街的 Spring 循环依赖问题
触摸(Touch)是人类在进行协调交互时的主要方式之一。通过触摸感知到的触觉(Sense of Touch)可以帮助人类评估物体的属性,如大小、形状、质地、温度等。此外,还可以利用触觉来检测物体的滑脱,进而发展人类对身体的认识。触觉将压力、振动、疼痛、温度等多种感觉信息传递给中枢神经系统,帮助人类感知周围环境,避免潜在的伤害。研究表明,与视觉和听觉相比,人类的触觉在处理物体的物质特征和细节形状方面更胜一筹。 与人类一样,机器人的触摸传感(Touch Sensing)能够帮助机器人理解现实世界中物体的交互行为,这些行为取决于其重量和刚度,取决于触摸时表面的感觉、接触时的变形情况以及被推动时的移动方式。只有给机器人也配备先进的触摸传感器 --- 即 “触觉传感(Tactile Sensing)” 系统,才能使其意识到周围的环境,远离潜在的破坏性影响,并为后续的手部操作等任务提供信息。然而,目前大多数机器人交互式技术系统由于缺乏对触觉传感技术的有效应用,其动作不准确、不稳定,交互过程“笨拙”,极大地限制了他们的交互和认知能力。 我们在这篇文章中重点关注人类和机器人的触觉传感问题。首先,我们讨论人类 "触觉" 的生理和编码方式,及其在传递触觉数据等任务中的重要性。然后,在分析人类触觉的基础上探讨机器人 “触觉传感” 系统的构建,特别是触摸感知(Tactile Perception)的方法和应用。最后,具体分析两篇关注在具体应用场景中向机器人引入触觉传感技术的文章。 一、人类「触觉」 首先,我们来分析人类的触觉究竟是什么。人类的 “触觉” 包括两个主要的亚型,即 “皮肤(Cutaneous)” 和“动觉(Kinesthetic)”。两者主要是基于感觉输入的部位来区分的:皮肤感觉接收来自嵌入皮肤的受体的感觉输入,而动觉感觉接收来自肌肉、肌腱和关节内的受体的感觉输入。在这两个亚型的基础上,研究人员区分定义了皮肤(Cutaneous)、动觉(Kinesthetic)和触觉(Haptic)三种感觉系统。其中,皮肤系统包括与刺激物的身体接触,并通过中枢神经系统(central nervous system,CNS)皮肤和相关体感区的受体提供对身体外表面刺激的感知;动觉系统主要来自肌肉、关节和皮肤的传入信息以及大脑可用的肌肉效能的相关联系来提供有关静态和动态身体姿势(头部、躯干、四肢和末端执行器的相对位置)的信息;触觉系统利用的则是来自皮肤和动觉系统的关于物体和事件的重要信息。
人类的触觉通过分布在全身不同密度的大量受体(如压力 / 振动的机械感受器、温度的热感受器和疼痛 / 损伤的痛觉感受器)处理对外部刺激的时空感知。对机械刺激的反应是由植入皮肤不同深度的机械感受器介导的。这些受体的分类、功能和位置如图 1 所示 [1]。这些受体具有不同的感受野(受体反应的身体区域的范围)和不同的适应率。一个快速适应(fast-adapting,FA)受体在第一次被施加刺激时就会立刻产生动作电位的爆发。相反,对于慢适应(slow-adapting,SA)受体来说,在刺激与其感受野接触的整个时期内它都是活跃的状态。对热刺激的反应被认为是由皮肤中单独的“热” 和“冷”的热受体群体介导的。此外,科学家还在体外和体内对人体皮肤样品进行了研究,发现不同受体对外界刺激的反应本质上是热电性和压电性的。 对于发布/订阅模型,消息生成后其相关信息会被发布到多个话题中,只要订阅了相关话题的用户就都可以使用该消息。与点对点模型不同,在发布/订阅模型中一个消息可以被多个用户使用。 13 Kestrel Kestrel是由推特(Twitter)开发的开源中间件(middleware),使用的编程语言为Scala,其前身是名为Starling的轻量级分布式队列服务器,同样Kestrel也具有轻量化的特点。 Starling支持MemCache协议,其能够方便地构建网络访问队列。推特早期使用Starling来处理大量的队列消息,后来推特将基于Ruby语言的Starling项目进行重构,使用Scala语言将其重新实现,得到Kestrel。 在协议支持性方面,Kestrel支持三类协议:MemCache、Text和Thrift,其中MemCache协议没有完整地实现,仅支持部分操作。Kestrel本身运行在Java虚拟机(Java Virtual Machine,JVM)上,针对Java的各类优化措施均可以使用。 为了改善性能,Kestrel中的队列存储在内存中,针对队列的操作日志保存在硬盘中。虽然Kestrel本身是轻量化的,但其具有丰富的配置选项,能够很方便地组成集群,集群中的节点互相之间是透明的,针对队列中消息获取的GET协议支持阻塞获取和可靠获取。 阻塞获取是指用户可以设置超时时间,在时间内有消息的话即刻返回,如果超时后还没有消息就结束等待。可靠获取是指队列服务器只有在收到用户明确的确认反馈后,才将相关的消息从队列中永久删除。 如果用户使用GET操作从队列获取消息后队列服务器马上将该消息从队列中删除,那么此后需要用户来确保该消息不会异常丢失,这对网络状态和系统运行的特定环境要求较为苛刻。因此,用户可以采用可靠获取的方式来消除上述疑虑。 14 Storm
Storm是使用Java和Clojure编写而成的分布式实时处理系统,其雏形是由Nathan Marz和BackType构建的,BackType是一家社交数据分析公司。2011年,推特收购BackType,并将Storm开源。 (编辑:衡水站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |