全球FlexSim系统仿真中文论坛

标题: 【TFT 2014.09.29 FlexSim仿真模型题(20)】 [打印本页]

作者: 慧娴亚伦    时间: 2014-9-29 19:16
标题: 【TFT 2014.09.29 FlexSim仿真模型题(20)】
问题描述:本题来源于FlexSim官方交流群中一位朋友遇到的问题。在使用flexsim的机械手部件的时候,在机械手能够达到的范围内,机械手的装卸载偏移能够到达很准确的位置进行偏移动作。但是如果装卸的位置在机械手无法达到的地方,机械手还是会进行装卸动作,但是无法进行准确位置的偏移。这样很明显就无法达到现实机械装卸的验证效果。


模型要求:
1、附件中有本题7.1版本的原始布局,使用其他版本请也按照附件中的模型进行布局,以方便审核和对比,但是由于本题的实体所在的位置跟结果关系非常密切,因此非常建议直接使用原题模型;
2、发生器随机向两个下游传送带发送一定数量的item,由机械手抓取实体送到下游;
3、上游传送带中,其中一个传送带在机械手装载范围之外,而部分item卸载的位置也在机械手卸载范围之外。如果遇到上述两种情况,会弹出警告,并暂停模型运行。


提示:1 可能涉及的代码msg();
      2 机械手无法准确偏移的问题并不需要解决,仅仅需要弹出提醒即可。
作者: ldd001    时间: 2014-9-29 20:25
[i=s] 本帖最后由 ldd001 于 2014-10-8 16:59 编辑 [/i]

:( 等了一天,等来这么个题目!!

重来没有接触动作偏移问题,更没接触机械手~~这次看来只能等着学习学习别人的了~~

建议下次放题之前是否可以将题目大致方向透露一下呢?也好有个预习啥的!!

老大,再给我点时间,我做一个~~

参照了someone的思路,学习了如何获得机械手joint6的引用,以及xloc()等获得坐标函数的使用,做了一个判断坐标思路方式,估计会有一定缺陷。期待楼主点评,只能做到这样了~~

最后鸣谢交流群内重庆-何工的细心解答。
作者: FFFrenk    时间: 2014-9-30 11:20
比较死板的判断……
作者: someone    时间: 2014-10-7 23:47
[attach]2225[/attach]
作者: 慧娴亚伦    时间: 2014-10-9 14:00
回复3楼:
      完成了模型的要求。如您所言,判断确实比较死板,移动了位置之后这些代码将不再适用,但是确实还是能够符合题目的基本要求。

恭喜您!论坛ID为 FFFrenk 的朋友在第三层的回复是第一个有效回复,获得积分5分。
24小时后本题结束(即2014年10月10日13时56分),其后的回复不计为有效回复。
作者: 慧娴亚伦    时间: 2014-10-9 14:20
回复4楼:
       完成了模型的要求,引用了机械手的多个子部件,通过立体几何来判断装卸载的位置是否处在机械手能够达到的范围,完成的非常好。但是这个模型的灵活性上还有一些小缺陷,将机械手的size增大之后,警告出现是不符合预定情况的。

恭喜您!论坛ID为 someone 的朋友在第四层的回复是第二个有效回复,获得积分4分。
作者: ldd001    时间: 2014-10-9 14:28
老大,2楼也有模型~~~:victory:
作者: someone    时间: 2014-10-9 15:00
[attach]2244[/attach]
修改了不足,期待楼主的方法
作者: 慧娴亚伦    时间: 2014-10-9 15:19
回复2楼:
      完成了模型的要求,结合使用了全局表写入数据进行位置的判断。与4楼的思路相近,多出了货架进入触发器的代码,当然灵活性的细节缺陷跟4楼也有相同之处,在此不额外赘述。

恭喜您!论坛ID为 ldd001 的朋友在第二层的回复是第三个有效回复,获得积分1分。
作者: 慧娴亚伦    时间: 2014-10-9 19:14
回复8楼:
      在重置触发中判断了自己的size,根据size的要求改变标签值,再以这个标签值作为装卸载位置判断的标准,很好的解决了该模型灵活性的问题,特别再奖励2分。
作者: heh518    时间: 2014-10-10 11:14
[i=s] 本帖最后由 heh518 于 2014-10-10 11:15 编辑 [/i]

[b] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=14190&ptid=4764]9#[/url] [i]慧娴亚伦[/i] [/b]


2楼没有通过立体几何的判断,而是通过判断坐标来实现,除了代码稍多一些之外,灵活性倒是可以的,任意改变机器手臂的size是可以实现判断是否在其可取范围的。
作者: 慧娴亚伦    时间: 2014-10-10 12:43
我重新再看了一下2楼的模型,似乎改变机械手臂的大小是会影响判断的正确性的。
如下图所示,增大机械手之后,卸载位置是在机械手可达范围,但是仍然出现报错。
作者: 慧娴亚伦    时间: 2014-10-10 13:29
本次TFT活动已经截止。
      本次活动是TFT的第二十次正式活动。机械手现在已经广泛应用在生产与物流过程中,FlexSim的机械手功能强大,总共有6个关节部分可以移动,基本上能适应当前主流的机械手控制移动系统的仿真实施。然而在建模仿真过程中,FlexSim的机械手并不能很好判定自己的装卸载位置是否合理,这在我们实际规划应用中影响还是比较大的。
      
本次题目一共有3位朋友得到了有效回复。他们的论坛ID分别是:
      FFFrenk、someone、 ldd001
      他们将获得指定积分,没有获得积分的朋友期待您的下次参与。

      本次试题中大家解决问题的思路,主要集中在解决装卸位置是否符合item应该处于的位置或是立体几何位置的判断,这是个很直接也很好的解决思路,我相信大部分朋友对装卸位置进行一些深入的思考都能够解决这类问题,同时让大家尝试使用msg()和stop()这类这个在GUI里面运用较多的命令。下面放上我个人制作的模型作为参考答案,思路是从非正常装卸时机械手位置来判定的,欢迎大家批评指正。
作者: ldd001    时间: 2014-10-10 15:15
[quote] 9# 慧娴亚伦


2楼没有通过立体几何的判断,而是通过判断坐标来实现,除了代码稍多一些之外,灵活性倒是可以的,任意改变机器手臂的size是可以实现判断是否在其可取范围的。
[size=2][color=#999999]heh518 发表于 2014-10-10 11:14[/color] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=14211&ptid=4764]http://www.flexsim.asia/images/common/back.gif[/url][/size][/quote]

非常非常非常感谢您的支持~

我基本上是参照someone的代码做的,尤其是将机械手joint6坐标转换到机械手坐标系内坐标值部分,所以应该会出现改变机械手size带来的问题!

不过我重来没有接触过机械手,做这次试题确实有难度,而且someone的代码需要对树有一定理解。试用版是打不开树的,更增加了学习难度。鉴于如此高难度下本人仍然坚持学习,给出了不同于他人思路的模型,我觉得应该给我点鼓励分!:lol :lol :lol
作者: 慧娴亚伦    时间: 2014-10-10 15:38
回复14楼:
      首先非常感谢您对TFT活动坚持不懈的支持。但是,由于本活动的加分原则是对模型有改进或者有更好的原创思路才能得到加分,同时为了活动的公平公正,很抱歉不能给您额外加分~
      此外,您上次换取的正式版激活码的到期时间是10月15日。。。应该是可以打开树进行进一步学习的。。。
作者: heh518    时间: 2014-10-10 15:53
[b] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=14237&ptid=4764]12#[/url] [i]慧娴亚伦[/i] [/b]
应该只是里面的代码有一些小问题,这个思路是可以解决这个问题。问题出在货架的进入触发的判断里,修改完就能解决问题了!
作者: ldd001    时间: 2014-10-10 16:57
[quote]回复14楼:
      首先非常感谢您对TFT活动坚持不懈的支持。但是,由于本活动的加分原则是对模型有改进或者有更好的原创思路才能得到加分,同时为了活动的公平公正,很抱歉不能给您额外加分~
      此外,您上次换 ...
[size=2][color=#999999]慧娴亚伦 发表于 2014-10-10 15:38[/color] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=14243&ptid=4764]http://www.flexsim.asia/images/common/back.gif[/url][/size][/quote]

是的,:)
作者: shiny0801    时间: 2014-10-13 10:18
[b] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=14239&ptid=4764]13#[/url] [i]慧娴亚伦[/i] [/b]


你好,亞倫。我看不太明白你的邏輯。
joint6的相對位置從來沒變過啊,爲什麽是用double zz = vectorprojectz(joint5,xloc(joint6),yloc(joint6),zloc(joint6),current);

if(zz >= zsize(current)*2)
這兩個進行比較啊
作者: 慧娴亚伦    时间: 2014-10-13 15:56
相对位置虽然没有变动,但是joint6在模型中的绝对位置会发生变化的。
作者: tang1991tang    时间: 2014-10-21 15:02
学习学习
作者: tang1991tang    时间: 2014-10-21 15:06
学习学习
作者: xinglei    时间: 2014-11-18 16:31

作者: yuzhu    时间: 2015-12-4 19:15
赞一下
作者: 懒羊羊2928    时间: 2016-4-17 14:32
下模型~
作者: gaoshanliushui    时间: 2017-10-23 21:16
很难




欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3