• 外国人就医计划示范医院授牌 天津医院泰达医院获认定 2019-07-21
  • 文体 —频道 春城壹网 七彩云南 一网天下 2019-07-18
  • 【理上网来喜迎十九大】苏格:习近平总书记外交思想领航中国特色大国外交 2019-07-18
  • 8种家居环境很败“性” 2019-06-28
  • 2018年全军院校招生计划下达:计划招收学员3.05万名 2019-06-15
  • 晋城市举办干部素质提升工程第十八期专题讲座 2019-06-15
  • 抖音广告出现对英烈邱少云不敬内容 今日头条致歉 2019-06-13
  • 超半数巴西民众对世界杯不感兴趣--旅游频道 2019-06-12
  • 外交部举行中外媒体吹风会:王毅介绍上合组织青岛峰会情况 2019-06-12
  • 2018网络中国节·端午 2019-06-04
  • 韩媒:韩美商定暂停原定8月“乙支自由卫士”联演 2019-06-03
  • 重庆市公安局交通管理局互联网交通安全服务管理平台 2019-06-03
  • 俄侦察船穿越英吉利海峡 英国急派军舰战机监视 2019-05-28
  • 网购陷阱多 女子花3000元买5套化妆品只有2套是真的 2019-05-28
  • 环保约谈濂溪区主要负责同志 谢一平要求立行立改真抓真改 2019-05-25
  • 南粤风采今天开奖号码: 外文翻译 程序性动画——触手的逆向运动学

    105
    回复
    20302
    查看
    打印 上一主题 下一主题
      [ 复制链接 ]
    排名
    10706
    昨日变化

    福建36选7和值走势图 www.00-na.com 13

    主题

    166

    帖子

    484

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    70381
    好友
    8
    蛮牛币
    524
    威望
    0
    注册时间
    2015-1-22
    在线时间
    193 小时
    最后登录
    2019-7-9

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?注册帐号

    x
    本帖最后由 小妞牛 于 2017-11-2 11:12 编辑

    触手的逆向运动学

    这篇文章继续我们深入逆向运动学的旅程。你将学到怎样应用这个有力的技术来创造富有真实感的触手方法。





    你可以从这里找到此系列所有的章节:
    Part 7:蜘蛛腿的逆向运动学

    在帖子的底端你都可以找到一个链接来下载所有必要的资源和场景来再现这些教程。

    前言

    在教程的前一章“机械手臂的逆向运动学”中,我们讨论了在机械手臂上怎样使用梯度下降来完成逆向运动学。这种由机械完成的运动,比复杂的人体关节简单得多。对于一个机械手臂而言,每个关节都由一个发动机控制。同理,对于一个生物手臂来讲,每块肌肉都是一个可以自行收缩和扩张的独立马达。

    一些生物具备几个可以到达任意角度的关节,例如大象的鼻子、章鱼的触手等。将这些肢干模型化是一种挺特别的挑战,目前介绍的这些传统技术并不能产生非常真实的效果。

    我们将从前一篇文章的例子开始,继续挑战,直到我们获得模型足够真实的行为为止。

    触手绑定骨骼

    当我们创建一个机械手臂之后,每个部分都是可独立移动的。相对而言,触手可以弯曲。这是一个我们无法忽略的基本特征,如果我们想要让它看起来真实的话。我们的触手需要能够弯曲。

    一个可以允许这个基本特征的Unity组件叫做“Skinned Mesh Renderer”:



    然而,Unity并不提供从编辑器创建Skinned Mesh Renderer的方法。一款3D建模软件,比如说Blender,此时就被需要了。下图展示了余下教程中将被使用的触手模型,里面有一系列明显的Bones骨骼),一个接着一个。它们是允许模型弯曲的Objects。



    给模型加骨骼,也称为绑定Rigging),已经超出了本教程的范围。下面链接提供了比较好的骨骼绑定说明。(网址如下:https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Bones)

    骨骼和关节

    给予触手逆向运动学的下一步是为每一个骨骼挂载一个RobotJoint脚本。通过这么做,我们赋予了我们的逆向运动学求解器一个使触手弯曲的能力。

    对于普通的章鱼来说,每个“关节”都能够沿着它自身的三个轴向,自由的旋转。在“机械手臂的逆向运动学”中设计的代码,很可惜,只允许关节沿着单个轴向移动。改变这个代码对于已有脚本而言,将意味着把它们引入了一个新的复杂等级。反过来说,我们可以转动关节的轴向,使关节0转向X轴、关节1转向Y轴、关节2转向Z轴等等。这会导致不自然的行为,但是如果骨骼足够小,你就有可能不会感到有任何问题。

    在随教程附带的可下载Unity工程文件中,这个名为SetRobotJointWeights的脚本会自动初始化触手所有关节的参数?;蛘?,你也可以为了更好的控制每个骨骼的移动方式而自己来编写脚本。

    缓和功能

    下面的动画展示了两个触手。左边的那个抵着红色球体的触手使用的是“机械手臂的逆向运动学”中提出的算法,与之相反,右边的那个通过一个更加有机化的螺旋式运动来增加一个真实化的新扭曲。这个例子已经足够让我们明白为什么触手需要一个单独的教程。



    两个触手都依赖梯度下降,不同之处在于它们试图最小化的误差函数。左边的机械触手只想碰到球,并不关心任何其他参数。一旦末梢执行器碰到了球,聚合度被满足,然后触手就会停止移动。

    另一方面,右边的触手,正在最小化不同的函数。用于机械手臂的DistanceFromTarget类被一个新的更复杂的类替代了。我们能设计一个新的误差函数类来关注其他几个我们关心的参数。教程中展示的触手试着最小化三个不同的函数:

    1.与目标的距离:已经定义好了。

    2.末梢执行器的角度:在这条中,触手试着匹配我们想让物体达到的角度。这种行为能被看做上述动画,就是右侧触手围着球体螺旋式运动的样子。自从每个关节都有了一个移动的极限范围之后,这个范围限制将引发沿着骨骼链传播的连锁反应。我们可以强迫触手匹配物体试图达到的角度,通过这么做,我们可以测量末梢执行器和目标转角之间的角度。Unity有可以实现这项功能的便利函数:Quaternion.Angle

    [C#] 纯文本查看 复制代码
    float rotationPenalty =
        Mathf.Abs
        (
             Quaternion.Angle(EndEffector.rotation, Destination.rotation) / 180f
        );


    像这样匹配本地角度,可能并不总是个好主意。根据情况,你可能想让你的触手用不同的方式对齐。

    3.扭曲:让肢干保持在一个不自然的位置看起来是十分不舒服的。这个参数使盘绕方案处于非常不利的境地,强制逆向运动学更线性、简单的旋转。为了计算扭曲的惩罚,我们首先要定义在我们的环境中什么是“扭曲”。定义它最简单的方法是作为所有关节角度的平均值。这种想让触手保持放松状态的惩罚方案,要求许多扭曲。

    [C#] 纯文本查看 复制代码
    float torsionPenalty = 0;
    for (int i = 0; i < solution.Length; i++)
         torsionPenalty += Mathf.Abs(solution);
    torsionPenalty /= solution.Length;


    这三种惩罚分数导致触手以更加真实的方式移动。更复杂的版本能确保它们即使当其他限制被完全满足时也保持晃动。

    注意1:使用不同单位
    那三个参数更有可能在不同的单位被表达。

    当末梢执行器旋转的单位是角度时,与目标之间的距离可能是米。根据它们的价值重新测量它们很重要,便于不再衡量10度和距离目标10米的不同。
    理想中,0和1之间应该被标准化。然后,可以使用系数来确定它们的相对重要性:

    [C#] 纯文本查看 复制代码
    public float ErrorFunction (Vector3 target, float [] angles)
    {
        return
            NormalisedDistance(target, angles) * DistanceWeight +
            NormalisedRotation(target, angles) * RotationWeight +
            NormalisedTorsion (target, angles) * TorsionWeight  ;
    }


    这个方法也给触手的良好行为提供了好的控制。它们可以根据情况随时被改变,以此来改变触手的移动方式。例如,你可以增加TorsionWeight类来解开触手凌乱的纠结。

    注意2:我们没有分析定义!

    正向运动学的典型性问题可以被模型化分析。这意味着我们可以展示一个问题并解决它。我们已经提到过了‘解决逆向运动学对偶问题的分析方法’的存在。

    我们现在说的是一个函数,是一个可能的,不能被解析描述的一个函数。如果我们必须选择使用典型的可分析的方法来解决逆向运动学,我们就不能给我们的触手增加那些细微的差别了。使用梯度下降意味着我们几乎能够最小化任何随机函数,无论我们是否拥有它的方程式。

    扩展

    我们能做的改进扩展几乎没有限制。减速函数能够增加你触手的真实性,当触手越靠近目标时,触手就应该越慢。

    同样的,触手不应该碰到自己。为了避免这个,可以给每个关节上加上精准碰撞器。然而,这会导致触手离奇的行为。代码忽略了碰撞,可能仍然会收敛一个发生自碰撞的方案。一个解决方法是修改适应函数(fitness function)便于自相交方案被高度处罚。




    你可以从这里下载Unity项目工程:https://www.patreon.com/posts/8928832
    从这里可以下载机械手臂的3D模型:https://3dwarehouse.sketchup.com/model/92e064854f4dd504c8ab9067fbd9681d/Robotic-Arm-stainless-steel-R6Stainless
    从这里可以下载触手(带骨骼)模型:https://sketchfab.com/models/8fcc783af94246a0b8febf424a4b96b9#download

    原文作者:Alan Zucconi
    原文链接:https://www.alanzucconi.com/2017/04/12/tentacles/


    扫描下方二维码关注福建36选7和值走势图官方微信~每日都有精选干货与你分享呦~

    本文由蛮牛译馆倾情奉献,翻译:小妞牛,如有问题请及时联系,除合作社区 及 合作媒体 外,禁止转载!

    5熟悉之中
    979/1000
    排名
    3170
    昨日变化

    7

    主题

    247

    帖子

    979

    积分

    Rank: 5Rank: 5

    UID
    64688
    好友
    0
    蛮牛币
    1176
    威望
    0
    注册时间
    2014-12-30
    在线时间
    259 小时
    最后登录
    2019-2-26
    沙发
    2017-11-2 17:13:06 只看该作者
    很不错的应用,先Mark一个,到时应该用得着。。
    5熟悉之中
    765/1000
    排名
    5364
    昨日变化

    20

    主题

    350

    帖子

    765

    积分

    Rank: 5Rank: 5

    UID
    249218
    好友
    3
    蛮牛币
    2772
    威望
    0
    注册时间
    2017-10-17
    在线时间
    121 小时
    最后登录
    2019-7-3
    板凳
    2017-11-3 08:31:39 只看该作者
    很不错  很实用 谢谢楼主分享

    点评

    新手有点懵,不过感觉很Nice!  发表于 2018-10-29 23:26
    3偶尔光临
    281/300
    排名
    8916
    昨日变化

    3

    主题

    58

    帖子

    281

    积分

    Rank: 3Rank: 3Rank: 3

    UID
    245484
    好友
    0
    蛮牛币
    610
    威望
    0
    注册时间
    2017-9-22
    在线时间
    88 小时
    最后登录
    2018-5-11
    地板
    2017-11-3 08:44:42 只看该作者
    6666666666666666
    7日久生情
    3812/5000
    排名
    489
    昨日变化

    10

    主题

    342

    帖子

    3812

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    22945
    好友
    1
    蛮牛币
    4139
    威望
    0
    注册时间
    2014-4-26
    在线时间
    2002 小时
    最后登录
    2019-7-18
    5#
    2017-11-3 09:05:05 只看该作者
    能提供工程最好了 ~ ~
    7日久生情
    1786/5000
    排名
    1203
    昨日变化

    1

    主题

    176

    帖子

    1786

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    132507
    好友
    0
    蛮牛币
    2974
    威望
    0
    注册时间
    2015-12-24
    在线时间
    625 小时
    最后登录
    2019-6-24
    6#
    2017-11-3 10:11:04 只看该作者
    感觉吊吊的,有时间看看
    7日久生情
    4402/5000
    排名
    2320
    昨日变化

    5

    主题

    3108

    帖子

    4402

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    209186
    好友
    5
    蛮牛币
    1166
    威望
    0
    注册时间
    2017-3-1
    在线时间
    677 小时
    最后登录
    2019-7-19
    7#
    2017-11-3 11:21:27 只看该作者
    好腻害,谢谢分享
    7日久生情
    1531/5000
    排名
    1788
    昨日变化

    0

    主题

    474

    帖子

    1531

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    170014
    好友
    0
    蛮牛币
    5671
    威望
    0
    注册时间
    2016-9-21
    在线时间
    317 小时
    最后登录
    2018-7-21
    QQ
    8#
    2017-11-3 12:16:31 只看该作者
    好邪恶
    7日久生情
    2398/5000
    排名
    1542
    昨日变化

    53

    主题

    829

    帖子

    2398

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    219600
    好友
    7
    蛮牛币
    3325
    威望
    0
    注册时间
    2017-4-27
    在线时间
    690 小时
    最后登录
    2019-7-19
    9#
    2017-11-3 12:31:12 只看该作者
    感谢分享,学习了
    排名
    19948
    昨日变化

    0

    主题

    18

    帖子

    80

    积分

    Rank: 2Rank: 2

    UID
    226555
    好友
    0
    蛮牛币
    101
    威望
    0
    注册时间
    2017-6-13
    在线时间
    34 小时
    最后登录
    2019-3-18
    10#
    2017-11-3 17:59:51 只看该作者
    6666666666666666
    5熟悉之中
    557/1000
    排名
    5261
    昨日变化

    0

    主题

    48

    帖子

    557

    积分

    Rank: 5Rank: 5

    UID
    148615
    好友
    0
    蛮牛币
    888
    威望
    0
    注册时间
    2016-5-15
    在线时间
    239 小时
    最后登录
    2018-4-5
    11#
    2017-11-4 16:54:09 只看该作者
    厉害了好触手。。。
    6蛮牛粉丝
    1296/1500
    排名
    1469
    昨日变化

    0

    主题

    51

    帖子

    1296

    积分

    Rank: 6Rank: 6Rank: 6

    UID
    178205
    好友
    0
    蛮牛币
    4102
    威望
    0
    注册时间
    2016-10-25
    在线时间
    383 小时
    最后登录
    2019-7-16
    12#
    2017-11-6 17:14:45 只看该作者
    牛批牛批牛批牛批牛批牛批牛批牛批牛批牛批
    7日久生情
    1909/5000
    排名
    971
    昨日变化

    7

    主题

    259

    帖子

    1909

    积分

    Rank: 7Rank: 7Rank: 7Rank: 7

    UID
    20039
    好友
    3
    蛮牛币
    6328
    威望
    0
    注册时间
    2014-4-2
    在线时间
    543 小时
    最后登录
    2019-7-16
    QQ
    13#
    2017-11-6 17:15:41 只看该作者
    66666666  不明觉厉~!
    6蛮牛粉丝
    1296/1500
    排名
    1469
    昨日变化

    0

    主题

    51

    帖子

    1296

    积分

    Rank: 6Rank: 6Rank: 6

    UID
    178205
    好友
    0
    蛮牛币
    4102
    威望
    0
    注册时间
    2016-10-25
    在线时间
    383 小时
    最后登录
    2019-7-16
    14#
    2017-11-6 17:16:22 只看该作者
    很不错  很实用 谢谢楼主分享
    3偶尔光临
    231/300
    排名
    12304
    昨日变化

    0

    主题

    71

    帖子

    231

    积分

    Rank: 3Rank: 3Rank: 3

    UID
    3758
    好友
    0
    蛮牛币
    1284
    威望
    0
    注册时间
    2013-9-12
    在线时间
    84 小时
    最后登录
    2019-2-22
    15#
    2017-11-7 09:49:38 只看该作者
    好腻害,谢谢分享
    您需要登录后才可以回帖 登录 | 注册帐号

    本版积分规则

  • 外国人就医计划示范医院授牌 天津医院泰达医院获认定 2019-07-21
  • 文体 —频道 春城壹网 七彩云南 一网天下 2019-07-18
  • 【理上网来喜迎十九大】苏格:习近平总书记外交思想领航中国特色大国外交 2019-07-18
  • 8种家居环境很败“性” 2019-06-28
  • 2018年全军院校招生计划下达:计划招收学员3.05万名 2019-06-15
  • 晋城市举办干部素质提升工程第十八期专题讲座 2019-06-15
  • 抖音广告出现对英烈邱少云不敬内容 今日头条致歉 2019-06-13
  • 超半数巴西民众对世界杯不感兴趣--旅游频道 2019-06-12
  • 外交部举行中外媒体吹风会:王毅介绍上合组织青岛峰会情况 2019-06-12
  • 2018网络中国节·端午 2019-06-04
  • 韩媒:韩美商定暂停原定8月“乙支自由卫士”联演 2019-06-03
  • 重庆市公安局交通管理局互联网交通安全服务管理平台 2019-06-03
  • 俄侦察船穿越英吉利海峡 英国急派军舰战机监视 2019-05-28
  • 网购陷阱多 女子花3000元买5套化妆品只有2套是真的 2019-05-28
  • 环保约谈濂溪区主要负责同志 谢一平要求立行立改真抓真改 2019-05-25
  • 上海天天彩开奖结果查询 超级大乐透走势图 百乐坊娱乐城备用网站 中国福利彩票36选7开奖结果 149精准一波中特 破解11选5出号规律视频 双色球坐标连走势图 娱乐场所消防应急预案 2019排球世锦赛 竞彩足球混合过关中奖规则 江苏7位数历史开奖号码 彩神通关注码历史记录 江苏11选5任三遗漏 江苏快三彩票 浙江快乐彩开奖结果