网淘巴来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

控制Delta机器人

2021-04-09 新闻来源:网淘巴 围观:1746
''

 

1、获取对象:[文]robot,c[章]onveyor[来]

2、等待物料到[自]达传感器位置

3、获取物料列[网],过滤filt[淘]er已抓取的p[巴]art

4、pop 一个物料

5、抓取物料,[文]并将该物料放入[章]已抓队列

6、将抓取的物[来]料放置到传输带[自]

7、清除不在已[网]抓取队列中的p[淘]art

 

robot.G[巴]raspCon[文]tainer:[章]机器人夹具容器[来]

Defines[自] the Compone[网]nt Contain[淘]er behavio[巴]r in the robot's flange node used to contain[文] compone[章]nts grabbed[来] by the robot.

在机器人用于连[自]接机械爪容器的[网]法兰连接件节点[淘]中定义组件容器[巴]行为

 

WorldPo[文]sitionM[章]atrix:得[来]到节点在世界坐[自]标系中的位置矩[网]阵。

BoundDi[淘]agonal:[巴]Diagona[文]l,对角Get[章]s a half diagona[来]l vector from the center to an upper corner of the contain[自]er's bound box using positiv[网]e axis directi[淘]ons.从绑定[巴]容器盒子的中心[文]到右上角取得半[章]对角线向量。

 

2.png

from vcScrip[来]t import *

from vcHelpe[自]rs.Robo[网]t2 import *

def OnRun()[淘]:

  app=get[巴]Applica[文]tion()

  robot=g[章]etRobot[来]()

  conveyo[自]r=app.f[网]indComp[淘]onent("Sensor Conveyo[巴]r")

  picked=[文][]

  #只要仿真器开[章]着就一直运行

  while app.Sim[来]ulation[自].IsRunn[网]ing==Tr[淘]ue:

    #part 达到传感器

    while robot.S[巴]ignalMa[文]pIn.inp[章]ut(100)[来]!=True:[自]

      delay(0[网].1)

    #获得不是被抓[淘]的part

    parts=c[巴]onveyor[文].ChildC[章]omponen[来]ts

    for part in parts:

      if part in picked:[自]

        parts.r[网]emove(p[淘]art)

    part=pa[巴]rts.pop[文]()

    #抓取part[章],将已抓取的p[来]art放置到p[自]icked列中[网]

    robot.p[淘]ickMovi[巴]ngPart([文]part)

   &[章]nbsp;

    picked.[来]append([自]part)

    #计算相对传送[网]带偏移的位置

    part=ro[淘]bot.Gra[巴]spConta[文]iner.Co[章]mponent[来]s[0]#ro[自]bot 机械爪中的物件[网]

    pos=par[淘]t.World[巴]Positio[文]nMatrix[章].P

    a=conve[来]yor.Bou[自]ndDiago[网]nal

    offsetX[淘]=pos.X-[巴]a.X

   &[文]nbsp;

    #print([章]'pos.X='+str(po[来]s.X)+'pos.Y='+str(po[自]s.Y)+'pos.z='+str(po[网]s.Z))

    #print([淘]'a.X='+str(a.[巴]X)+'a.Y='+str(a.[文]Y)+'a.z='+str(a.[章]Z))

    #放置part[来]

    robot.p[自]lace(co[网]nveyor,[淘]Tx=offs[巴]etX)

 

 

from vcScrip[文]t import *

from vcHelpe[章]rs.Robo[来]t2 import *

def OnRun()[自]:

  app=get[网]Applica[淘]tion()

  robot=g[巴]etRobot[文]()

  conveyo[章]r=app.f[来]indComp[自]onent("Sensor Conveyo[网]r")

  picked=[淘][]

  #只要仿真器开[巴]着就一直运行

  while app.Sim[文]ulation[章].IsRunn[来]ing==Tr[自]ue:

    #part 达到传感器

    while robot.S[网]ignalMa[淘]pIn.inp[巴]ut(100)[文]!=True:[章]

      delay(0[来].1)

    #获得不是被抓[自]的part

    parts=f[网]ilter(l[淘]ambda x:x not in picked,[巴]conveyo[文]r.Child[章]Compone[来]nts)

   &[自]nbsp;

    #parts=[网]conveyo[淘]r.Child[巴]Compone[文]nts

    '''

    for part in parts:

      if part in picked:[章]

        parts.r[来]emove(p[自]art)

    '''

    part=pa[网]rts.pop[淘]()

   &[巴]nbsp;

    #抓取part[文],将已抓取的p[章]art放置到p[来]icked列中[自]

    robot.p[网]ickMovi[淘]ngPart([巴]part)

   &[文]nbsp;

    picked.[章]append([来]part)

    #计算相对传送[自]带偏移的位置

    part=ro[网]bot.Gra[淘]spConta[巴]iner.Co[文]mponent[章]s[0]#ro[来]bot 机械爪中的物件[自]

    pos=par[网]t.World[淘]Positio[巴]nMatrix[文].P

    a=conve[章]yor.Bou[来]ndDiago[自]nal

    offsetX[网]=pos.X-[淘]a.X

   &[巴]nbsp;

    #print([文]'pos.X='+str(po[章]s.X)+'pos.Y='+str(po[来]s.Y)+'pos.z='+str(po[自]s.Z))

    #print([网]'a.X='+str(a.[淘]X)+'a.Y='+str(a.[巴]Y)+'a.z='+str(a.[文]Z))

    #放置part[章]

    robot.p[来]lace(co[自]nveyor,[网]Tx=offs[淘]etX)

    picked=[巴]filter([文]lambda x:x in conveyo[章]r.Child[来]Compone[自]nts,pic[网]ked)#不知[淘]道这一句到底有[巴]没有用,删除掉[文]好像也行,主要[章]意思好像就是把[来]picked不[自]在 [网]   conveyo[淘]r.Child[巴]Compone[文]nts排除掉

 

翻译由网淘巴完成,转载必须标明出处:https://www.wtao8.com/post/9.html

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

本文链接:https://www.wtao8.com/post/9.html 转载需授权!

分享到:
上一篇:python filter函数 下一篇:python f-string用法

相关文章

龙年
大发