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

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

    关注

    2518

    文章

    47911

    浏览量

    739473
  • 机械手
    +关注

    关注

    7

    文章

    309

    浏览量

    29256
  • 计算机视觉
    +关注

    关注

    8

    文章

    1588

    浏览量

    45584
  • 3D 打印
    +关注

    关注

    0

    文章

    11

    浏览量

    4204

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

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

收藏 人收藏

    评论

    相关推荐

    请问ucos libMicrium.a文件是做什么的

    目前在做ucos cyclone上移植,发现官方例子里面用到了libgen目录下libMicrium.a文件。请问这个文件是做什么的? 这部分有源代码吗?
    发表于 04-15 08:07

    一篇看懂LDO的工作原理及其设计LDO应注意的问题

    LDO是Low Dropout Regulator的缩写,意思是低压差线性稳压器,LDO是用来做什么的
    的头像 发表于 03-08 15:48 1009次阅读
    一篇看懂LDO的工作原理及其设计LDO应注意的问题

    ADuC702X系列评估板可以用来做什么?有什么作用?

    ADuC702X系列评估板可以用来做什么,主要作用是什么,可以帮助开发人员做什么,应该怎么用,请帮忙解答谢谢。
    发表于 01-12 08:04

    请问Linear Lab Tool具体是做什么的

    请问Linear Lab Tool具体是做什么的呢?
    发表于 01-05 12:52

    电机1fk7063-5af71-1kh5用手转不动转子怎么处理?

    我们这有一台用802系统的磨床,它的Z轴不走了,经查为电机没驱动起来,后来被另外一个班的人把电机拆了下来了。但是用手转不动转子,量线圈也平衡,电机是五根线,除了3跟电源外,还有两根24V电源线不知道做什么的。不知道转不动时不是正常的电机型号是1fk7063-5af71-1
    发表于 12-14 08:15

    sot-223的第四管脚是用来做什么的

    sot-223的第四管脚是用来做什么的? 上面标有TAB IS VOUT或是TAB IS GND是什么意思?
    发表于 11-22 07:25

    氮化镓是用来做什么的,它有什么特点呢?

    氮化镓主要用于LED(发光二极管)、微电子(微波功率和电力电子器件)、场效电晶体(MOSFET)
    的头像 发表于 09-12 15:31 647次阅读

    人工智能技术应用是什么的

    人工智能技术应用是什么的 随着科技的发展,人工智能技术应用已经逐渐渗透到我们的生活中,大大方便了人们的生活和工作。从互联网搜索引擎到自动化机器人,从智能家居到自动驾驶汽车,人工智能技术已经成为
    的头像 发表于 08-17 11:46 845次阅读

    芯片IP公司到底是做什么的

    在过去很多行业展会或论坛上,我们总会遇到有不少人疑问:IP公司是做什么的?跟行业头部的GPU芯片公司有什么不一样?其实不难理解,尽管芯片行业被越来越多的大众讨论,但由于整个产业链涉及的环节多且复杂
    的头像 发表于 08-08 08:31 640次阅读
    芯片IP公司到底是<b class='flag-5'>做什么的</b>?

    上位机开发是做什么的

    上位机开发是做什么的 现在的上位机,就好像十年前的互联网,资本的注入使这个行业变得逐渐推上风口。我大学那会还很多前辈洋洋洒洒的评价如今的C端软件市场逐渐萎靡,B端才是真正的王道。但随着国家对工业
    发表于 06-05 11:04 984次阅读

    无线电通信为什么要使用载波发射?其作用是什么?

    无线电通信为什么要使用载波发射?其作用是什么?
    发表于 05-16 16:32

    立讯精密是做什么的

    立讯精密是做什么的 立讯精密是一家技术导向公司,专注于连接器、连接线、马达、无线充电、FPC、天线、声学和电子模块等产品的研发、生产和销售、高频产品开发,产品广泛应用于消费电子、通讯、企业级、汽车
    发表于 05-05 17:57 4084次阅读

    英威腾是做什么的

    英威腾是做什么的 英威腾全国共有12大研发中心,公司共有有效授权专利953项,其中发明专利254项、实用新型471项、外观专利228项 ;软件著作权备案278项,即获得有效知识产权1231
    发表于 05-04 13:40 853次阅读

    0Ω电阻在PCB板中的5大常见作用

    在电路中,电阻的作用是阻碍电流,而0Ω电阻显然失去了这个作用。今天一起来看看0Ω电阻存在是用来做什么的呢?
    的头像 发表于 04-25 14:01 917次阅读
    0Ω电阻在PCB板中的5大常见作用

    工业自动化是做什么的

    工业自动化是做什么的 工业自动化是一种运用控制系统(计算机、变频器、机器人等工控设备)与信息技术相结合的产物,主要用于协调工业中的各种运行工艺流程和机械,这样既可以节省人力资源,也能够优化生产效率
    发表于 04-24 10:33 715次阅读