欠驱动Or全驱动?——关于机械手驱动方式的介绍与更优选择(以德国Schunk Hand为例)

2023-05-16

这篇文章主要将介绍机械手两种不同驱动方式——即欠驱动和全驱动的定义、应用背景、优劣性能等特性,并将以雄克灵巧手为例,讨论现阶段机械手驱动方式的更优选择方案。
定义:

首先先来明确欠驱动和全驱动的定义(在机械设计领域):
欠驱动
系统执行器的数目小于其自由度数目;
全驱动
系统执行器的数目等于其自由度数目;
实际上欠驱动和全驱动两者的定义和区别很简单,举个简单而经典的例子:倒立摆(Inverted Pendulum)就是一个欠驱动的系统,即系统有二个自由度:一个是支撑水平面的运动,另一个是单摆的角度。透过倒单摆的小车只能直接控制水平面的运动,无法直接控制单摆的角度。虽然其本质上是极端不稳定的系统,不过通过相应的控制,仍然能够做到平衡可控。
再补充一下如下英文所写定义:
执行器主动控制自由度:DoA (Degree of Actuator)
自由度:DoF (Degree of Freedom)

应用背景:我们通常在设计机器人或者机电系统时,正常的逻辑都是自由度的数目和执行器的数目相等——即全驱动的方案,做到系统完全可控稳定。那么是出于什么样的原因造成了如此多的机械手都采用欠驱动的方案呢?
其实原因很简单:因为机械手本身高自由度数目的特性,出于提高系统设计的集成性、紧凑性和降低成本、更出于简化后续运动控制的考虑,我们会减少所使用电机的数目(即执行器的数目),进而形成了执行器的数目小于其自由度数目的欠驱动方案。
关于高自由度数目特性,我们可以通过如下图做个简单的比较:

优劣性能比较:
一定程度而言,全驱动机械手和欠驱动机械手的优劣性能正好互为补集:
全驱动:
优点
全驱动的优点主要体现在其功能性上。简而言之,具备每个都能主动控制的手指关节的全驱动机械手可以几乎模仿人类所有的手型及精巧动作。
缺点
1. 从机电系统硬件层面上来说,系统的整体集成性太差:在现有电机和机械传动方案下,全驱动机械手往往是个“庞然大物”;
2. 上层的运动控制系统繁琐及冗杂:所需控制关节与执行器众多的缘故,与欠驱动方案相比缺乏抓取物体的“形状自适应性”;
3. 缺乏抗外界冲击的柔性:这一点在机械手实际运用当中相当重要,尤其是针对【手指关节电机方案】的全驱动机械手,外界一次较大的冲击往往意味着损坏一个关节电机;
4. 设计复杂以及成本过高:20多个电机及机械传动的设计与成本再怎么精打细算和优化,也没办法和3-4个DoA的欠驱动机械手相提并论。
欠驱动:
优点
1. 机电系统硬件上系统的集成度高:整体系统简洁高效,体积小,质量轻,目前适用于机器人末端执行器和残疾人假肢的应用;
2. 上层的运动控制系统简洁高效:以PISA/IIT Softhand为例,在实际抓取时仅需控制一个电机的位置运动轨迹,加上电流力反馈闭环,就能实现对绝大多数物体的抓握。欠驱动的机械特性能够使得手指自动适应物体的形状,具备很好的”形状自适应性“;
3. 具备良好的抗外界冲击柔性:欠驱动的特性决定了绝大多数手指关节都具有自由运动的柔性,可参见如下PISA/IIT Softhand抗外界冲击的柔性测试;
4. 设计简洁以及成本低廉:与全驱动方案相比,原因无需赘述。

PISA/IIT Hand 抗外界冲击的柔性和鲁棒性测试
缺点:
批判性地来说,欠驱动机械手的缺点在于功能性不足,尤其是对于精度要求比较高的手指精巧控制无法胜任,且单根手指的三个关节无法做到彼此独立运动,在某些特定要求下的抓取场合中捉襟见肘。

最优选择方案最优选择方案:
首先在这里抛出我的观点:
能够精确模拟人手所有运动的全驱动方案机械手是未来的终极发展目标,但在现阶段的技术条件下(即未曾出现革命性的驱动器和传动方案),欠驱动机械手是更好的选择。而同时,欠驱动方案也需要经过一定的优化,提升功能性。
我在上一篇文章中做过如下的统计,产业界和学术界常见的30种机械手中,有26种采用的是欠驱动方案,仅有4种采用全驱动方案,如下图:

 

 

图中蓝底圆圈代表欠驱动方案,红底圆圈代表全驱动。

也许细心的你已经发现了,在上图中我把Schunk和DLR-HIT Hand放在了蓝色底圈和红色底圈的交汇处,因为基于我个人的理解:这两款机械手是一种”全驱动和欠驱动理念相结合“的优化欠驱动机械手——也是我认为现阶段更优的选择。
我们以Schunk Hand为例,看了如下这种图,你立马就能明白为什么是所谓的”优化后的全驱动和欠驱动相结合“,
上图描述了Schunk Hand能够主动控制运动的9个运动关节(即DoA),我们对比发现:
1. 无名指(Ring Finger)仅仅在手指闭合方向有1个DoA,即为传统的欠驱动方案;
2. 而对于食指(Index)和中指(Middle Finger)在手指闭合方向上都相应地分配了2个DoA,往全驱动方案上靠拢;
3. 小拇指在手指闭合方向上有1个DoA,而又分配了1个DoA给手指的侧向张合(Finger Spread)往全驱动方案上靠拢。
简而言之,更优的全驱动和欠驱动方案的选择和分配,应该取决于设计者对每根手指所期望的功能性。在高功能性期望的手指上(如食指)分配更多的DoA(全驱动的方案),提高功能性,而在低功能性期望的手指上(如无名指)分配更少的DoA(欠驱动方案),保证系统的简洁性。
具体的机械手DoA的分配举例说明和分析,我会之后再写一篇文章,详细介绍。

了解更多干货文章,关注小程序八斗问答

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

欠驱动Or全驱动?——关于机械手驱动方式的介绍与更优选择(以德国Schunk Hand为例) 的相关文章

  • 扩展卡尔曼滤波(EKF)算法详细推导及仿真(Matlab)

    扩展卡尔曼滤波 xff08 EKF xff09 算法详细推导及仿真 xff08 Matlab xff09 扩展卡尔曼滤波算法是解决非线性状态估计问题最为直接的一种处理方法 xff0c 尽管EKF不是最精确的 最优 滤波器 xff0c 但在过
  • uio驱动编写 实例1

    AUTHOR xff1a Joseph Yang 杨红刚 lt eagle rtlinux 64 gmail com gt CONTENT uio驱动编写 实例1 NOTE xff1a linux 3 0 LAST MODIFIED xff
  • raspberry pi pico, 如何在macos平台使用picoprobe,vscode来debug程序

    debugprobe 80元人民币 再买一块pico 刷上debug程序 xff0c 仅要16元 xff0c 当然用便宜的 在mac上的vs code总是遇见问题 单独运行openocd时 xff0c 也有问题 xff0c 出现错误 CMS
  • 1—类、域、方法和实例对象

    Java 是面向对象的高级编程语言 xff0c 类和对象是 Java 程序的构成核心 围绕着 Java 类和 Java 对象 xff0c 有三大基本特性 xff1a 封装是 Java 类的编写规范 继承是类与类之间联系的一种形式 而多态为系
  • 常用数学公式汇总

    常用数学公式汇总 一 基础代数公式 1 平方差公式 xff1a xff08 a xff0b b xff09 xff08 a xff0d b xff09 xff1d a2 xff0d b2 2 完全平方公式 xff1a xff08 a b x
  • Kubernetes--API Server资源隔离

    Kubernetes的一些功能特性也与公有云提供商密切相关 xff0c 例如 xff1a 负载均衡服务 弹性公网IP 存储服务等 xff0c 具体实现也需要与API Server通信 xff0c 也属于运行商内部重点保障的安全区域 此外 x
  • 公式提取方法

    Mathpix Snipping Tool和MathType配合用法 Mathpix Snipping Tool是一个可以提取数学公式的工具 xff0c 当我们写毕业论文或者结课报告或者参加数学建模等比赛的用到的公式 xff0c 可以用这款
  • (学习unix编程)关于文件流与文件描述符的区别

    文件描述符 xff08 就是整数 xff09 用于在一个进程内唯一的标识打开的文件 这假定了内核能够在用户进程的描述符和内核内部使用的机构之间 xff0c 建立一种关联 xff08 深入linux内核架构 xff09 由于唯一标识进程的结构
  • 2000页kubernetes操作手册,内容详细代码清晰,小白也能看懂

    现如今 xff0c Kubernetes业务已成长为新时代的IT基础设施 xff0c 并成为高级运维工程师 架构师 后端开发工程师的必修技术栈 毫无疑问 xff0c Kubernetes是云计算发展演进的一次彻底革命性的突破 xff0c 只
  • Linux安装nodejs和npm

    最近window系统转向linux系统开发 xff0c linux系统的确适合程序员的开发 作为前端安装了nodejs和npm xff0c 遇到了一些坑 xff0c 赶紧记录下来 第一种安装方法 xff1a 安装nodejs xff1a s
  • 查看core dumped的详细错误原因

    什么是Core Dump Core的意思是内存 Dump的意思是扔出来 堆出来 开发和使用Unix程序时 有时程序莫名其妙的down了 却没有任何的提示 有时候会提示core dumped 这时候可以查看一下有没有形如core 进程号的文件
  • IntelliJ IDEA创建Servlet最新方法 Idea版本2020.2.2以及IntelliJ IDEA创建Servlet 404问题(超详细)

    第一次用IntelliJ IDEA写java代码 xff0c 之前都是用eclipse xff0c 但eclipse太老了 下面为兄弟们奉上IntelliJ IDEA创建Servlet方法 xff0c 写这个的目的也是因为在网上找了很多资料
  • Linux下做C语言/C++开发的一些建议

    相对于Linux下的C C 43 43 开发 xff0c 在windows下的初学者往往容易入门 xff0c 原因是visual studio 这个强大的工具隐藏了很多的细节 xff0c 好多人甚至以为拖拖控件 xff0c 写写消息响应函数
  • Target ‘STM32F4xx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.找不到v5版本解决方法

    现在官网上没有v5的版本了 xff0c keil默认安装的是v6的版本 xff0c 如果工程想要运行以前的工程 xff0c 可以设置将工程的编辑器从v5转到v6 xff0c 下面是方法 xff1a 1 使用MDK打开工程 2 选择 Proj
  • 关于imu的介绍

    1 imu时惯性运动丹云 xff0c 包含加速度计和陀螺传感器的组合 它被用来检查加速度和角速度 xff08 IMU传感器 xff0c 你所需要知道的全部 知乎 xff09 虽然时外文翻译的 xff0c 凡是整体风格清晰 2 imu的使用
  • LSTM与GRU

    LSTM 与 GRU 一 综述 LSTM 与 GRU是RNN的变种 xff0c 由于RNN存在梯度消失或梯度爆炸的问题 xff0c 所以RNN很难将信息从较早的时间步传送到后面的时间步 LSTM和GRU引入门 xff08 gate xff0
  • Pytorch 实战RNN

    一 简单实例 span class token comment coding utf8 span span class token keyword import span torch span class token keyword as
  • Pytorch : Dataset和DataLoader

    一 综述 Dataset 对数据进行抽象 xff0c 将数据包装为Dataset类 DataLoader 在 Dataset之上对数据进行进一步处理 xff0c 包括进行乱序处理 xff0c 获取一个batch size的数据等 二 Dat
  • 特征工程

    一 数据读取 1 1 读取CSV文件 1 1 1 原文件内容 1 1 2 读取csv span class token keyword import span csv csv file span class token operator 6
  • 续集来了!我让 GPT-4 用 Laf 三分钟写了个完整的待办事项 App

    书接前文 xff0c 上篇文章我们教大家如何三分钟时间用 Laf 实现一个自己的 ChatGPT 一觉醒来 xff0c GPT 4 已经发布了 xff01 GPT 4 实现了真正的多模态 xff0c 可以把纸笔画的原型直接写出网页代码 读论

随机推荐