game4automation教程(十一)取放MU的实验三,夹爪取放MU

勇哥注:

夹抓使用gripper组件,它是一个自动组件,运行时会自动包含grip、fixer等功能,专用用来处理夹子取放物料的效果。


夹取的效果如下图:


(一)Gripper组件

这个组件是一个组合了多个组件的自动化夹爪对象。在播放的时候,它会自动生成grip组件,并且产生Fixed一样的效果。

它的作用就是用夹爪取放MU对象。


image.png



image.png

Time Opening   夹子打开的时间,单位秒

Time Closing  夹子关闭的时间,单位秒

Gripper Width   是夹子夹紧的宽度,两个夹子间的距离越小。

Open Pos Offset  指的是夹子的Open状态下,两个夹子的左右偏移量。


就是左右夹爪并不需要完全夹紧MU对象。

有一点间隙也是可以正常抓起MU来的。

也就是说,这里并不是物理效果,而是运动学效果。

image.png

(这种夹爪深入mu内部了,反而抓不起来)


image.png

(有间隙也可以抓起mu的)


image.png

Direction Finger   指的两只夹子开合的方向,是左右,还是前后,还是上下。

其值用1和0表示就可以了,也可以是负数。


image.png

Fully Closed   完全关闭夹子

Close   触发的关闭信号

Closing   正在关闭夹子

对于open就跟这个就类似了。



(二)夹爪取放的例子

image.png

image.png


勇哥这里直接说下跟上一篇的场景不同的地方:

(1)添加左夹子,右夹子

两者都添加group组件。因此现在多了两个group,Fingner1和Fingner2。

image.png


(2)添加两个空对象,一个是Finger1,第二个是Finger2。

它们要做为Gipper1的子对象。

image.png


(3)再来看下gipper1添加的组件有啥不同

首先,删除Fixer组件。

然后添加Gripper组件。

最后如下图所示:

image.png


(4)Finger1和Finger2要添加Kinematic和Rigidbody组件。

image.png


(5)Drive Sequnce的变化

只用两步即可,如下图:

image.png

这里要注意open,close两个信号的问题。

第一步启动时open,运动完成后close。

第二步时你得首先再执行一次close,也就是把close的勾选去掉。然后运动完成后再open。

等回到第一步时那个open相当于把open的勾去掉了。

也就是说,一个open信息,第一次给是开了,第二次给就是关了。不能只开不关。


那样的后果就会是,在Gripper的属性面板会看到open和close都勾选了,那样就会乱套了。

image.png


(三)一些问题


(1)虽然看上去动作是没问题,但是可能存在资源优化的问题

跑起来后,勇哥的1060显卡风扇开始突突响,一查看gpu,占用高达80%。

就这么个简单的场景,有这么夸张,貌似玩黑神话悟空也风扇也没这么响过哦?

于是打开官方演示的gripping场景,发现就gpu占用就比较低。

这可能意味着,有些参数设置不对,造成了巨大的计算量。

这个问题还得继续研究。


image.png
(本例程序在办公电脑中的gpu占用率)


  image.png
(官方演示程序)


经过反复测试,找到一个直接的原因,一个万万想不到的原因:

播放后,你点击kinematic则直接gpu 99%,但是你点击gipper1后,暴跌到60%多。

官方示例也是如此。

image.png

所以这个根本不是个问题,而是在播放的时候,你选择不同的对象,刷新的数据需要的计算量不同造成的。


(2)左右两个夹子,没跟着主体一起运动

这个问题是你没有把Finger1和Finger2变成gipper1的子对象。

image.png



(3)Drive Sequnce第3步不执行

一般不是没有执行,而是第3步如果不是耗时的运动的话,它就一闪而过了。

你可以把Wait After Step改为1,单位秒,就能看到这一步其实也执行了。



(四)再举个包含Fixed的例子

在上面的例子中添加一个Fixed,并置为raycast模式,让这个Mu对象可以在最高点时固定住,然后再把它取到地面上。


添加一个fixerobj的空对象,为它添加Fixed组件。

image.png

组件勾选RayCast方式,勾选Fix MU。(这个是关键)

image.png


然后对Drive Sequence修改成下面这样:

image.png

image.png


完成!



本例源码下载:

支付1元或购买VIP会员后,才能查看本内容!立即支付升级会员查询订单



勇哥注:2025/1/26

经过反复测试,发现了之前理解错误的地方。

(1)按上面的教程,可能会出现夹取不上来的问题。

按上文的理解是夹子松紧度会有影响。其实这是理解错误的。


见下图所示。

gripper组件其实会自动在你的左手指上加一个射线感应器。

只有这个线碰到了MU,它可以正确被夹起来。

而这个线感应器的位置,跟Finger1的Gizmo的位置有关系。


勇哥发现把整个场景进入线框模式下,你就能很好的观察到这一点。

在下面例子中,我把左手指的Gizmo的位置调得靠向右手指的边上了,就好像是右手指的Gizmo了,

这其实也无所谓,Gizmo的位置就是射线的位置,只它能碰到要抓取的MU对象就行了。

左手指的Gizmo位置就是射线感应器的位置。

pic5.gif


这个新的实验场景勇哥已经更新在上面的下载链接上了。



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2024-11-23 16:59:05 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年3月    »
12
3456789
10111213141516
17181920212223
24252627282930
31
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864