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

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

3天内不再提示

如何用自己的手来远程控制机器人

Tensorflowers 来源:TensorFlow 作者: Igor Kibalchich 2021-09-26 14:53 次阅读

请注意,本文所体现的信息、用途及应用完全是 Video-Touch 客座作者的观点。

您可能看过一些科幻电影,电影中的人可以用身体动作来控制机器人。如今,借助现代计算机视觉和机器人方法,我们能够把这种体验变成现实,而且和电影一样精彩奇妙。

受新冠病毒影响,在如此艰难的时期,为了让远程控制和远程操作变得切实可用,我们开启了 VideoTouch 项目。

Video-Touch 是第一个人机交互系统。它允许多名用户,在世界任何地方通过视频通话应用(例如 Google Meet、Zoom、Skype)对其进行控制。

我们考虑过,是否有可能只用自己的手来远程控制机器人,而不借助手套、操纵杆等任何额外的设备,同时不产生明显的延迟。于是,我们决定使用计算机视觉来实时识别动作,并实时传递给机器人。在 MediaPipe 的帮助下,我们将其变为了现实。

操作系统大致如下:

1. 通过视频会议应用,在用户设备上获取网络摄像头视频,然后将其发送至机器人计算机(“服务器”);

2. 用户的网络摄像头视频串流通过 OBS 虚拟摄像头工具被捕捉到机器人的计算机显示器上;

3. 识别模块在 MediaPipe 的帮助下读取用户的动作和手势,并通过 ZeroMQ 发送给下一个模块;

4. 在动作捕捉数据的基础上,机械臂及其抓手由 Python 控制。

从方案中可以清楚地看出,用户在操作机器人时只需稳定的互联网连接和一个视频会议应用。所有的如屏幕捕捉、手部追踪、手势识别和机器人控制等计算,都可以在 Wi-Fi 与机器人连接的单独设备上进行(只是另一台笔记本电脑)。接下来,我们将对流水线的各个环节进行详细说明。

视频串流和屏幕捕捉

用户可以使用任何一台能够实现跨设备传输视频的软件。在实验中,我们使用的是视频会议的桌面应用。用户在其设备上呼叫一台显示器与机器人相连的计算机。这样,机器人就可以看到来自用户网络摄像头的视频串流。

现在,我们需要某种机制来把用户的视频从视频会议传递到识别模块。我们使用的是 Open Broadcaster Software (OBS) 及其虚拟摄像头工具来捕捉打开视频会议的窗口。这样我们就获得了一个虚拟摄像头,它现在有来自用户网络摄像头的帧及其独特的设备索引,可以在识别模块中进一步使用。

识别模块

识别模块的作用是捕捉用户的动作并将其传递给机器人控制模块。MediaPipe 会在此发挥作用。我们为捕捉手部动作寻找了最有效、最精确的计算机视觉软件。我们发现了许多令人兴奋的解决方案,但事实证明,对于如此具有挑战性的任务(实时设备端手部运动精确识别),MediaPipe 是唯一适合的工具。

我们对 MediaPipe 手部追踪模块进行了两项关键修改:增加了手势识别计算器并集成了 ZeroMQ 消息传递机制。

两项关键修改

https://github.com/Arxtage/videotouch.github.io/tree/main

在上次发表文章的时候,我们有两个版本的手势识别实现。第一个版本如下图 3 所示,所有的计算均在手部姿势识别计算器内进行。计算器将特征点作为输入进行缩放,也就是说,这些特征点根据手的边界框大小(而非整个图像的大小)进行标准化。接下来,它会识别 4 种手势(另见图 4):“移动”、“倾斜”、“抓取”和“无手势”(论文中的“手指距离”手势是实验性内容,没有包括在最终演示版中),并输出手势类名称。尽管这个版本十分稳健实用,但它只是基于简单的启发式规则,如:“如果此特征点 [i].x 《 特征点 [j].x,那么它是一个‘移动’手势”,而且对于手部旋转这类现实生活中的情况,此版本无法识别。

发表文章

https://dl.acm.org/doi/10.1145/3415255.3422892

为了缓解泛化不良的问题,我们实施了第二个版本。我们在手动收集和加标签的 1000 个关键点的数据集上训练了来自 scikit-learn 的梯度提升分类器:“移动”、“倾斜”和“抓取”类各有 200 个,而“无手势”类有 400 个。顺便说一下,如今可以通过最近发布的 Jesture AI SDK repo(注:我们团队部分成员的另一个项目)轻松获取此类数据集。

Jesture AI SDK

https://github.com/jesture-ai/jesture-sdk/tree/main/python#annotation-tool

我们使用缩放的特征点、关节间的角度以及成对的特征点距离作为模型的输入,来预测手势类。接下来,我们尝试只传递缩放的特征点,而不传递任何角度和距离,结果在 200 个关键点的本地验证集上获得了 91% 的类似多类准确率。对于这个版本的手势分类器,还有一点是我们无法直接在 C++ 中运行 scikit-learn 模型,所以我们用 Python 进行实现,作为机器人控制模块的一部分。

发表后,我们立即推出了一个在 Keras 中训练的全连接神经网络,它采用的数据集与梯度提升模型相同,而得到的结果更好,准确率达到 93%。我们将这个模型转换为 TensorFlow Lite 格式,现在我们可以在手部姿势识别计算器中直接运行手势识别 ML 模型。

得到当前手部位置和当前手势类后,我们需要将其传递给机器人控制模块。进行这一步时,我们借助了高性能的异步消息功能库 ZeroMQ。为了在 C++ 中实现这一点,我们使用了 libzmq 库和 cppzmq 标头。利用 请求-回复 方案:识别模块 C++ 代码中的 REP(服务器)和机器人控制模块 Python 代码中的 REQ(客户端)。

libzmq

https://github.com/zeromq/libzmq

cppzmq

https://github.com/zeromq/cppzmq

请求-回复

https://learning-0mq-with-pyzmq.readthedocs.io/en/latest/pyzmq/patterns/client_server.html

因此,借助我们修改过的手部追踪模块,现在能够将运动捕捉信息实时传递给机器人。

机器人控制模块

机器人控制模块是一个 Python 脚本,它将手部特征点和手势类作为输入,并输出机器人移动命令(在每一帧上)。运行该脚本的计算机通过 Wi-Fi 与机器人连接。我们的实验中使用了搭载 Nvidia GTX 1050 Ti GPU 的 MSI 笔记本电脑。同时尝试在 Intel Core i7 CPU 上运行整个系统,由于有高度优化的 MediaPipe 计算图实现,该运行也是实时的,延迟可以忽略不计。

在目前的流水线中,我们使用了 Universal Robotics 的 6DoF UR10 机器人。由于使用的抓手是双指的,我们不需要每个特征点与机器人手指关键点的完整映射,只需要手中心的位置。借助此中心坐标和 python-urx 软件包,我们现在能够在所需的方位和方向上改变机器人的速度:在每一帧上,我们计算当前手中心坐标与前一帧坐标之差,从而得出速度变化矢量或角度。最后,此机制看起来与人们用操纵杆控制机器人的方式非常相似。

python-urx

https://github.com/SintefManufacturing/python-urx

源视频

https://www.youtube.com/watch?v=F4X4jJwDBy4

高密度触觉传感器的触觉感知

灵巧的操纵要求具有较高的空间分辨率和对物体和环境的高保真触觉感知。最新的传感器数组非常适合机器人操纵,因为它们可以很容易地挂接到任何机器人末端执行器上,并适应任何接触面。

源发布文章

https://dl.acm.org/doi/10.1145/3415255.3422892

Video-Touch 嵌入了一种高密度的触觉传感器数组。它们安装在双指机器人抓手中。每个指尖上都挂接一个传感器数组。单个电极数组可以感应 5.8 平方厘米的帧面积,每帧分辨率为 100 点。感应频率等于 120 赫兹。每个点的力检测范围为 1 至 9 牛顿。因此,机器人以 200 点的分辨率(每个手指为 100 点)检测施加在机器人手指抓取的固体或柔性物体上的压力。

从传感器数组处收集的数据经过处理后,以动态手指接触映射图的形式向用户显示。压力传感器数组让用户能够感知被抓物体的顺应性、硬度、粗糙度、形状、方向等物理特性。

图 8:多用户机械臂控制功能。用户能够在常规的视频通话过程中执行 COVID-19 检测 [源视频]

源视频

尾注

如此一来,借助 MediaPipe 和机器人,我们建立了一个有效的多用户机器人远程操作系统。在未来,远程操作系统的潜在用途将包括医疗检测,以及在难以进入的环境(例如外太空)中进行的实验。该系统的多用户功能解决了有效远程协作的实际问题,允许在多人小组中进行需要手动远程控制的项目工作。

我们流水线的另一个优势特点是,人们可以使用任何带有摄像头的设备,例如手机,来控制机器人。除了机械臂,人们还可以操作其他如,边缘设备、移动机器人或无人机硬件设备。当然,目前的解决方案具有一定的局限性:延迟时间、z 坐标(深度)的利用,以及手势类型的便利性都有改进的空间。我们十分期待试用 MediaPipe 团队的更新,并期待着尝试新类型的抓手(带手指的抓手)、双手控制,甚至是全身控制(期待“铁甲钢拳”!)。

希望这篇文章对您和您的工作有所帮助。保重身体,坚持编码。非常感谢您的关注!

责任编辑:haq

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

    关注

    211

    文章

    28405

    浏览量

    207018
  • 机器视觉
    +关注

    关注

    162

    文章

    4369

    浏览量

    120303

原文标题:Video-Touch:手势识别助力 Google Meet 实现多用户远程控制机器人

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

收藏 人收藏

    评论

    相关推荐

    鸿蒙机器人与鸿蒙开发板联动演示

    鸿蒙机器人与鸿蒙开发板联动演示,机器人的角色为迎宾机器人,开发板负责人宾客出现监听
    发表于 12-02 14:55

    用网页端远程控制电脑各工具对比

    远程办公、设备维护和技术支持场景中,远程控制工具的选择至关重要。本篇将介绍几款常见的远程控制工具进行对比,包括P2link、花生壳、蒲公英、nat123和natapp,帮助用户了解各工具的不同特点,从而更好地选择适合
    的头像 发表于 11-05 11:22 263次阅读

    认识机器人与CW32四足机器人控制项目

    认识机器人与CW32四足机器人控制项目 一、认识机器人 机器人是一种能够自动执行任务的机器,能够
    的头像 发表于 09-28 15:46 248次阅读

    山田光学:一体化机芯在机器人领域的创新应用

    可以嵌入到机器人中,使其能够通过网络远程执行任务。这种能力在无人驾驶汽车、无人机等领域尤为突出。这些机器人可以在远程控制下执行各种任务,如运输、侦察、搜救等,极大地扩展了
    的头像 发表于 09-06 17:22 275次阅读

    开源项目!用ESP32做一个可爱的无用机器人

    简介 作者在完成硕士论文答辩后,利用空闲时间制作了一个他一直想做的机器人——可爱无用机器人。 无用机器人原理是一个连接到开关的电机,通过逻辑门控制。当开关被推到“开”时,
    发表于 09-03 09:34

    开源项目!用ESP32做一个可爱的无用机器人

    简介 作者在完成硕士论文答辩后,利用空闲时间制作了一个他一直想做的机器人——可爱无用机器人。 无用机器人原理是一个连接到开关的电机,通过逻辑门控制。当开关被推到“开”时,
    发表于 08-30 14:50

    android 远程控制如何实现

    在现代工作和生活中,远程控制安卓设备或使用安卓设备远程控制其他设备已成为常见需求。安卓远程控制允许IT管理员远程访问安卓设备。实施远程控制
    的头像 发表于 08-21 18:05 893次阅读
    android <b class='flag-5'>远程控制</b>如何实现

    teamviewer内网远程控制外网

    是Splashtop公司为企业设计的一款本地部署的远程控制解决方案。与云端服务不同,Splashtop On-Prem允许企业在自己的服务
    的头像 发表于 08-16 20:46 1425次阅读

    柔性机器人和刚性机器人有什么区别?

    则由刚性杆及其关节连接构成,运动自由度相对较少。控制方式:柔性机器人通常采用基于力和视觉感知的控制系统,而刚性机器人则主要采用编程控制。应用
    的头像 发表于 08-16 10:17 530次阅读
    柔性<b class='flag-5'>机器人</b>和刚性<b class='flag-5'>机器人</b>有什么区别?

    Al大模型机器人

    和迭代不断改进自身性能。它们可以从用户交互中学习并根据反馈进行调整,以提高对话质量和准确性。可定制性与整合性: AI大模型机器人可以根据特定需求进行定制和整合,以满足不同场景和应用的要求。它们可以与其
    发表于 07-05 08:52

    工业机器人数据采集远程监控平台是什么

    关节运动轨迹等,并提供远程控制和诊断功能。主要功能特点包括: 1. 数据采集:平台能够从工业机器人控制器、传感器和其他相关设备中采集数据,并将其转换为可用的格式。 2. 实时监控:能够实时显示工业
    的头像 发表于 06-20 16:05 428次阅读

    如何使用PLC控制机器人

    随着工业自动化技术的飞速发展,机器人技术作为其中的重要组成部分,其应用范围日益广泛。在机器人控制系统中,PLC(Programmable Logic Controller,可编程逻辑控制
    的头像 发表于 06-17 10:50 1712次阅读

    基于FPGA EtherCAT的六自由度机器人视觉伺服控制设计

    和增强系统处理图像的实时性,本文提出了一种伊瑟特的六自由度机器人视觉伺服控制系统,将摄像头集成到基于 Zynq的伊瑟特主站上,提高了视觉伺服的实时性.经测试,该平台能够对视觉检测目标的变化做出及时的反应
    发表于 05-29 16:17

    基于飞凌嵌入式RK3568J核心板的工业机器人控制器应用方案

    控制系统当中。那么今天,我们就通过多轴工业机器人聊聊机器人控制系统以及控制器的实现。 1
    发表于 05-11 09:40

    其利天下技术·搭载无刷电机的扫地机器人的前景如何?

    地毯并增加吸力,或是绕过障碍物进行清扫。同时,通过手机APP远程控制、语音指令等方式,用户可以方便地操作扫地机器人,实现个性化的清洁需求。 3.扫地机器人面临的技术壁垒与客户体验问题 尽管扫地
    发表于 05-05 15:03