0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Mirru 应用是用来做什么的 为什么要使用手部追踪

Nullmax纽劢 来源:谷歌开发者 作者:谷歌开发者 2021-08-12 15:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Mirru 应用是用来做什么的?

Mirru 是一款正在开发中的免费开源 Android 应用,可以通过追踪手部 (Hand Tracking) 来控制机械手。通过这款应用,用户可以将其真手的抓握动作实时映射到机械手,而这种机械手可以通过 3D 打印和自行组装得到,成本低廉。通过 Mirru,我们希望为当前昂贵、繁琐的专有技术提供一种廉价、直观和开放的端到端替代方案。

Mirru 团队由 Violeta López 和 Vladimir Hermand 合作成立,这两位独立设计师和技术专家目前居住在巴黎。为了启动这个项目,该团队参加了 Tweag 的 Open Source Fellowship program 计划,从该计划的工程师之一 Dorran Howell 处获取资金支持、指导和数据工程专业知识。该计划帮助 Mirru 从基础开始启动项目。

Tweag

https://tweag.io

Open Source Fellowship program 计划

https://www.tweag.io/blog/2020-02-14-os-fellowship/

我们这一计划为期 3 个月,旨在开发出一个可以利用计算机视觉技术控制任何蓝牙开源机械假肢的初版 Android 应用,并在 Google Play 商店免费提供,让用户可以根据自己的手打印机械手并进行组装,然后下载应用来操控。在 MediaPipe 的帮助下,我们无需构建自己的机器学习模型(因为没有相关资源或训练数据)即可快速构建应用原型。

为什么要使用手部追踪?

利用手机和带有手部追踪功能的前置摄像头,您能够用一种新颖实惠、简单易用且功能繁多的方式控制假肢。

假设我左手截肢,拥有一个机械假肢。每天,我都需要使用机械手来执行许多不同的抓握动作。例如,我需要使用双指张合或三点抓握的手势来拾取小物品,或需要用整个手拿起水果或杯子等物品。我通过肌电传感器来改换和执行这些抓握动作,例如,让我可以通过绷紧和放松上肢肌肉来张开手掌和进行抓握。这种肌电传感器在身体和机械手之间起主要的连接作用。

然而,借助传感器生活并不像看起来那么容易。人们可能需要很长时间才能适应如何控制肌电传感器,而且很多人永远都适应不了。同样,找假肢师安装这种传感器的费用也可能非常高,特别是对于发展中国家/地区或没有健康保险的人士。最后,目前市面上大多数设备的抓握动作仅有不到 10 种,仅少数型号能够创建自定义抓握动作,但通常比较麻烦。

Mirru 提供了一个替代方法。只需使用大众普及的手机,您就可以通过数字化方式将真手的动作实时映射到机械手上,用一种直观的方式控制机械手。如此一来,用户不再需要向假肢师支付昂贵的安装费用,也能够快速设置不限数量的抓握动作。

目前,Mirru 完全不涉及肌电图,因为可靠的肌肉传感器价格昂贵。设置的抓握动作需要通过 Android 手机触发,所以,该应用的首个版本更适合扫地、手握书阅读、或者拿取杯子或购物袋这样的活动。在未来,我们希望将肌电传感器与手部追踪相结合,发挥二者的优势。

下面介绍了如何通过 Mirru 应用设置一个抓握动作:假设,我想用机械手抓住一个物品。我需要将机械手放到该物品前面,然后用健全的手在 Android 手机前面摆出相应的抓握动作,这时 Mirru 会将这个动作实时映射到机械手。然后,我可以锁定机械手的这一新抓握动作,收回健全的那只手。最后,我可以保存这个抓握动作供日后使用,并将其添加到我的抓握动作库中。

Brunel Hand 和 Mirru Arduino Sketch

我们的目标是让尽可能多的用户打印、组装和控制自己的机械手,为此我们设计了 Mirru 这个 Android 应用,可兼容通过支持蓝牙的 Arduino 板和伺服电机进行控制的机械手。

对于我们的项目,我们打印并组装了一个由 Open Bionics 制造的开源机械手 Brunel Hand。首先,我们 3D 打印了 Brunel Hand 的 可 3D 打印文件,这些文件依据 CC Attribution-Sharealike 4.0 国际许可的规定使用。然后,我们购买了必要的伺服电机、弹簧和螺丝来组装机械手。加上 3D 打印资料和购买伺服电机的费用,购买和组装机械手的成本大约为 500 欧元。

Brunel Hand

https://openbionicslabs.com/shop/brunel-hand

可 3D 打印文件

https://www.thingiverse.com/thing:3000641

Brunel Hand 配备了基于肌电的固件和由 Open Bionics 开发的 PCB 板,但由于机械手只有 4 个伺服电机,对使用的微控制器类型没有限制。我们最终选择使用 Adafruit ESP32 Feather Board 开发板来实现蓝牙功能,并创建了 Arduino Sketch 供需要打印和组装机械手的用户下载、定制和上传。然后,用户可以下载 Mirru 应用,并将其用作打印机械手的控制台。

Arduino Sketch

https://github.com/mirru-app/mirru-android

用 MediaPipe 进行手部追踪

业内有一系列手部追踪计算机视觉解决方案可用于这个项目,但我们需要一个快速、开源的解决方案,不需要自行训练模型,并能够在便携式设备可靠运行,例如手机。

MediaPipe 为手部追踪提供了出色的开箱即用支持,由于我们没有可用的训练数据或资源从零开始创建模型,因此它非常适合我们的团队。我们能够轻松构建 Android 示例应用,同时应用的出色性能也令我们惊喜。更好的是,我们不需要对现成的手部追踪模型或图表进行任何调整,因为 Hand Landmark 模型为我们的原型提供了所有必要的输出。

MediaPipe

https://mediapipe.dev

手部追踪

https://google.github.io/mediapipe/solutions/hands.html

在让真实用户测试机械手时,我们很高兴听到其中很多用户都对这款应用快速的动作转换效率感到印象深刻,而且市场上目前还没有任何应用能够如此迅速地支持用户自定义抓握方式。

将3D MediaPipe点转换为机械手的输入

为实现 Mirru 应用的目标,我们需要使用手部追踪来实时、独立地控制 Brunel Hand 的每根手指。在 Brunel Hand 中,食指、中指和无名指通过伺服电机驱动,在 0-180 度的角度范围中移动;0 度表示手指完全竖直,180 度表示手指完全向下弯曲。

由于缺乏足够的训练数据,我们无法从零开始创建模型来为我们计算这些伺服角度,所以我们选择使用一种启发式方法,将默认的手部追踪标志点输出与原型初始版本的硬件所需的输入相关联。

我们一开始不确定 3D 标志点中的估计深度 (Z) 坐标的精确度是否足以用于转换输入,或者该标志点是否仅用于二维。首先,我们记录了一个示例数据集,并在 Jupyter Notebook 中用 Plotly 使抓握点可视。

鉴于这项技术只使用一个摄像头,没有任何深度传感器,坐标的质量和精度立刻给我们留下了深刻的印象。正如 MediaPipe 文档所述,Z 坐标与 X/Y 坐标的比例略有不同,但看起来这并没有对我们的原型构成重大挑战。

由于 3D 标志点足够精确,我们选择使用 3D 计算关联标志点输出与机械手所需的输入。在我们的方法中,我们通过计算手指方向和手掌定义的平面法线之间的角度,来计算手指相对于手掌的锐角。角度为 0° 表示手指完全收回,角度为 180° 则表示手指完全伸出。我们能够通过计算从指根标志点到指尖标志点的向量来计算手指的方向。

我们通过选择手掌平面的三个点来计算手掌法线。使用标志点 0 作为参考点,我们计算边 1 和边 2 的向量,并计算这些向量的叉积以得到手掌法线。最后,我们计算手指方向与手掌法线的夹角。这将以弧度为单位返回用于计算度数的角度。

我们必须进行额外的处理来匹配机械手拇指的自由度。拇指的移动方式比其他手指更复杂。为使应用能够处理拇指的动作,我们对拇指方向和手掌法线进行了类似的计算,但使用了不同的标志点。

在 Android 手机上计算了伺服角度后,我们就可以通过蓝牙将相关值发送到 Arduino 板,Arduino 板驱使伺服电机移动到正确的位置。由于模型输出中存在一定的噪点,我们在管道中添加了一个平滑步骤,这一步骤非常重要,可以避免机械手指在运动时因为过于抖动而无法精确抓握。

总结

Mirru 应用和 Mirru Arduino Sketch 的设计旨在帮助任何人用自己的真手和 Android 手机来控制一个开源的机械手。这是一种新颖和低成本的肌肉传感替代方案,MediaPipe 也已经证明这是完整应用中用于实现手部追踪组件的正确工具。

Mirru 团队能够使用 MediaPipe 的现成解决方案快速启动项目,无需收集任何训练数据或从零开始设计模型。从手部追踪点到机械手的实时转换速度特别快,这让 Mirru 的用户感到非常高兴,这也为假肢的未来应用开辟了众多可能性。

我们很高兴看到 MediaPipe 手部追踪功能与现有肌电机械手结合蕴藏的巨大潜力,因为这将为实时创建和保存定制机械手抓握方式提供强大而先进的方法。

另外,在 MediaPipe 的帮助下,我们能够提供一种开源的专有假肢替代方法,无需使用肌电传感器,也无需寻求假肢师的帮助,成本也要比市场中的已有方案要低得多,同时源代码可以由其他开发者定制和构建。我们非常期待听到开源社区的其他想法,以及手部追踪技术能够对假肢用户和制造商带来的助益。

对于 Mirru 应用的当前状态,我们尚不能够记录和保存序列长于静态抓握手点位置的移动手势。例如,记录手指在钢琴上弹奏低音线的连续动作,就像可循环的 gif 动图一样。机械手应用存在着诸多可能性,我们很高兴 MediaPipe 为我们的探索提供了支持。

我们期待着这一领域出现更多的贡献者。如果您对这一应用有任何想法或意见,请发送邮件至 mirruapp@gmail.com,或访问我们的 GitHub。

GitHub

https://github.com/mirru-app

本文由 Google AI 机器学习研究产品经理 Igor Kibalchich 策划。

客座博文 / 来自 Mirru 和 Tweag 工程团队

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2573

    文章

    54366

    浏览量

    785956
  • 机械手
    +关注

    关注

    7

    文章

    357

    浏览量

    31154
  • 计算机视觉
    +关注

    关注

    9

    文章

    1714

    浏览量

    47450
  • 3D 打印
    +关注

    关注

    0

    文章

    11

    浏览量

    4301

原文标题:利用 MediaPipe 的手部追踪来控制您的 Mirru 机械手

文章出处:【微信号:Nullmax,微信公众号:Nullmax纽劢】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【EASY EAI Nano-TB(RV1126B)开发板试用】AI手部21关键点识别

    【前言】 在前面的几篇帖子中,我处理好了桌面显示,驱动了摄像头。本篇将摄像头获取到的图像,通过AI来识别手部21个关键点的识别。 【步骤】 1、安装mediapipe 这次灵眸官网给出的操作系统为
    发表于 11-21 11:31

    基于sEMG与手部追踪的感官VR交互上肢康复系统

    对握力的无控制器实时映射。系统采用手部追踪技术结合sEMG信号处理流程——包括移动平均滤波、最大自主收缩值(MVC)校准及min–max归一化——将用户的握力强度转化
    的头像 发表于 08-20 16:03 718次阅读
    基于sEMG与<b class='flag-5'>手部</b><b class='flag-5'>追踪</b>的感官VR交互上肢康复系统

    如何使用树莓派与OpenCV实现面部和运动追踪的云台系统?

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部识别与手指识别
    的头像 发表于 08-14 17:45 957次阅读
    如何使用树莓派与OpenCV实现面部和运动<b class='flag-5'>追踪</b>的云台系统?

    如何使用树莓派+OpenCV实现姿态估计和面部特征点追踪

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部识别与手指识别
    的头像 发表于 08-13 17:44 969次阅读
    如何使用树莓派+OpenCV实现姿态估计和面部特征点<b class='flag-5'>追踪</b>?

    人工智能是做什么的

    在当今科技日新月异的时代,人工智能(ArtificialIntelligence,简称AI)已成为推动社会进步和经济发展的重要力量。本文旨在深入探讨人工智能的核心功能、应用领域,并通过具体实例解析其如何改变我们的生活与工作方式。同时,我们还将介绍万达宝LAIDFU(来福)作为无限AI助理的一些独特功能,如数据分区设计和用户自定义嵌入属性,以展示AI技术的最新
    的头像 发表于 05-30 10:04 757次阅读
    人工智能是<b class='flag-5'>做什么的</b>

    继电保护是用来做什么的

    继电保护是电力系统中的“安全卫士”,其核心任务是‌快速检测故障并隔离故障区域‌,确保电力设备免遭损坏、防止停电范围扩大,同时维护电网的稳定运行。在现代电力系统中,继电保护装置如同人体的免疫系统,能够在毫秒级时间内识别异常并采取行动,是保障供电安全的核心技术之一。 一、继电保护的四大核心功能 ‌故障检测‌ 实时监测电流、电压、频率等电气参数,精准识别短路、过载、接地故障等异常状态。例如: 短路故障:电流骤增至正常值的数倍至数十倍。 接地故障:中性点电压偏移或零序电流异常。 ‌故障隔离‌ 通过控制断路器在‌20-100毫秒内‌切断故障线路,避免故障蔓延。例如: 输电线路发生短路时,距离保护装置可迅速定位故障点并跳闸。 ‌告警与记录‌ 触发声光报警,并记录故障波形、动作时间等数据,为后续故障分析提供依据。 ‌系统自愈支持‌ 配合自动化设备(如重合闸装置),在故障清除后尝试恢复供电,减少停电时间。 二、继电保护的组成与工作原理 ‌系统架构 ‌组件 ‌功能‌ ‌测量元件 采集电流互感器(CT)、电压互感器(PT)信号 ‌逻辑判断单元 分析参数是否符合故障特征(如过流、差动) ‌执行元件 驱动断路器或发信装置动作 ‌ ‌典型保护原理‌ ‌过电流保护‌:检测电流超过设定阈值(如1.2倍额定电流),适用于配电网线路。 ‌差动保护‌:比较设备两端电流差值,若差值超限则判定内部故障(常用于变压器、发电机)。 ‌距离保护‌:通过阻抗计算定位故障点位置,适用于长距离输电线路。 三、继电保护的应用场景 ‌发电环节‌ 发电机保护:定子接地保护、转子过负荷保护、失磁保护等。 案例:某水电站因差动保护动作,0.1秒内隔离发电机内部短路,避免机组烧毁。 ‌输电与变电环节‌ 输电线路:纵联保护、光纤差动保护,保障跨区域电网安全。 变压器:瓦斯保护(非电量)、比率制动差动保护,防止绝缘油分解或绕组故障。 ‌配电环节‌ 配网馈线:过流保护配合自动重合闸,减少用户停电时间。 数据:90%的配电故障可在300毫秒内隔离并恢复供电。 四、继电保护的技术演进 ‌从电磁式到数字化‌ ‌早期电磁继电器‌:依靠机械触点动作,响应速度慢(>100ms),维护频繁。 ‌微机保护装置‌:集成DSP芯片,支持多判据融合计算,动作时间缩短至20ms以内。 ‌智能化升级‌ ‌广域保护系统‌:基于5G通信实时共享电网状态,实现跨区域协同控制。 ‌AI故障预测‌:利用机器学习分析历史数据,提前预警绝缘老化风险。 ‌挑战与突破‌ 新能源并网:光伏、风电的波动性要求保护装置具备自适应能力。 解决方案:引入“方向性过流保护”应对分布式电源双向电流冲击。 五、总结 继电保护是电力系统安全运行的基石,其价值体现在三个方面: ‌经济性‌:减少设备损坏带来的巨额维修成本(如一台500kV变压器损坏损失超千万元)。 ‌可靠性‌:保障99.99%以上的供电可用性,支撑现代社会稳定运转。 ‌智能化‌:随着数字孪生、边缘计算等技术的融合,继电保护正从“被动响应”迈向“主动防御”。 未来,继电保护将与能源互联网深度结合,成为构建新型电力系统的核心防线。
    发表于 05-06 10:32

    如下图所示,这个二极管是做什么的呢?

    如下图所示,这个二极管是做什么的呢?欢迎大家交流。
    发表于 03-06 07:00

    在Deepseek AI眼中,配电室是做什么用的?

    DEEPSEEK眼中的配电室什么样?嗯,用户问配电室是做什么用的,我需要先理解配电室的基本功能。配电室听起来像是和电力分配有关的地方,对吧?可能和电力系统有关,比如建筑物或者工厂里的电力分配。首先,我应该明确配电室的主要作用是什么。
    的头像 发表于 03-05 09:38 653次阅读

    如果需要使用DMD进行成像控制,需要用到哪些部件?

    我想问一下,如果需要使用DMD进行成像控制,需要用到哪些部件?是只需要控制板和DMD芯片么?那么评估模块是用来什么的呢?
    发表于 02-28 06:40

    电源适配器做什么的

    电源适配器主要的作用是将电源(比如交流电)转换成适合设备使用的电压和电流。不同的电子设备需要不同的电压和电流,电源适配器帮助将家用电网的交流电(AC)转换成设备需要的直流电(DC)。 电源适配器
    发表于 02-12 11:46

    AI工作流自动化是做什么的

    AI工作流自动化是指利用人工智能技术,对工作流程中的重复性、规则明确的任务进行自动化处理的过程。那么,AI工作流自动化是做什么的呢?接下来,AI部落小编为您分享。
    的头像 发表于 01-06 17:57 1418次阅读

    请问DAC8814中的Pin22,AgndF是做什么的

    请问DAC8814中的Pin22,AgndF是做什么的?说明写的High current analog force ground.不是很明白 还有就是输入时钟频率Fclk为什么是最小50MHz,低于五十兆的时钟不能驱动吗? 多谢
    发表于 01-03 08:31

    erf电缆是做什么的

    ERF电缆是一种采用交联电缆用冷缩或热缩附件的电缆,主要用于额定电压6/1kV及以下配电网或工业装置中的固定敷设。以下是关于ERF电缆的详细介绍: 一、结构特点 导体:ERF电缆由多股铜线和单股铝线绞合而成,具有良好的导电性,适用于低损耗的场合。 绝缘层:其绝缘层一般采用乙丙橡胶或其他绝缘材料制成,且绝缘层一般比交联绝缘厚0.5mm。 外套:部分ERF电缆采用优质橡胶材料作为外套,具备出色的耐磨、耐油及耐腐蚀性能。 二、性能特点 柔软性
    的头像 发表于 01-02 11:08 2136次阅读

    ADS1192拥有的两个GPIO1和GPIO2,是用来做什么的

    看完ADS1192的芯片手册,总结出下列几个不解之处: 1、管脚不理解: a,关于芯片拥有的两个GPIO1和GPIO2,是用来做什么的? b、芯片位双通道,为什么还会有个IN3管脚 c、既然是
    发表于 12-30 07:04

    ADS5402开发板前端有两个24.9ohm,请问这两个电阻应该靠近源端还是靠近终端呢?

    ADS5402开发板前端有两个24.9ohm,请问这两个电阻应该靠近源端还是靠近终端呢?这两个24.9ohm电阻是用来做什么的呢?是提供终端阻抗吗?求解
    发表于 12-12 07:54