网淘巴来吧,欢迎您!

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

控制Delta机器人

2021-04-09 新闻来源:网淘巴 围观:391
电脑广告
手机广告

 

1、获取对象:robot,conveyor

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

3、获取物料列,过滤filter已抓取的part

4、pop 一个物料

5、抓取物料,并将该物料放入已抓队列

6、将抓取的物料放置到传输带

7、清除不在已抓取队列中的part

 

robot.GraspContainer:机器人夹具容器

Defines the Component Container behavior in the robot's flange node used to contain components grabbed by the robot.

在机器人用于连接机械爪容器的法兰连接件节点中定义组件容器行为

 

WorldPositionMatrix:得到节点在世界坐标系中的位置矩阵。

BoundDiagonal:Diagonal,对角Gets a half diagonal vector from the center to an upper corner of the container's bound box using positive axis directions.从绑定容器盒子的中心到右上角取得半对角线向量。

 

2.png

from vcScript import *

from vcHelpers.Robot2 import *

def OnRun():

  app=getApplication()

  robot=getRobot()

  conveyor=app.findComponent("Sensor Conveyor")

  picked=[]

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

  while app.Simulation.IsRunning==True:

    #part 达到传感器

    while robot.SignalMapIn.input(100)!=True:

      delay(0.1)

    #获得不是被抓的part

    parts=conveyor.ChildComponents

    for part in parts:

      if part in picked:

        parts.remove(part)

    part=parts.pop()

    #抓取part,将已抓取的part放置到picked列中

    robot.pickMovingPart(part)

    

    picked.append(part)

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

    part=robot.GraspContainer.Components[0]#robot 机械爪中的物件

    pos=part.WorldPositionMatrix.P

    a=conveyor.BoundDiagonal

    offsetX=pos.X-a.X

    

    #print('pos.X='+str(pos.X)+'pos.Y='+str(pos.Y)+'pos.z='+str(pos.Z))

    #print('a.X='+str(a.X)+'a.Y='+str(a.Y)+'a.z='+str(a.Z))

    #放置part

    robot.place(conveyor,Tx=offsetX)

 

 

from vcScript import *

from vcHelpers.Robot2 import *

def OnRun():

  app=getApplication()

  robot=getRobot()

  conveyor=app.findComponent("Sensor Conveyor")

  picked=[]

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

  while app.Simulation.IsRunning==True:

    #part 达到传感器

    while robot.SignalMapIn.input(100)!=True:

      delay(0.1)

    #获得不是被抓的part

    parts=filter(lambda x:x not in picked,conveyor.ChildComponents)

    

    #parts=conveyor.ChildComponents

    '''

    for part in parts:

      if part in picked:

        parts.remove(part)

    '''

    part=parts.pop()

    

    #抓取part,将已抓取的part放置到picked列中

    robot.pickMovingPart(part)

    

    picked.append(part)

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

    part=robot.GraspContainer.Components[0]#robot 机械爪中的物件

    pos=part.WorldPositionMatrix.P

    a=conveyor.BoundDiagonal

    offsetX=pos.X-a.X

    

    #print('pos.X='+str(pos.X)+'pos.Y='+str(pos.Y)+'pos.z='+str(pos.Z))

    #print('a.X='+str(a.X)+'a.Y='+str(a.Y)+'a.z='+str(a.Z))

    #放置part

    robot.place(conveyor,Tx=offsetX)

    picked=filter(lambda x:x in conveyor.ChildComponents,picked)#不知道这一句到底有没有用,删除掉好像也行,主要意思好像就是把picked不在    conveyor.ChildComponents排除掉

 

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

打赏 支付宝打赏 微信打赏
免责申明
一、网淘巴提供的资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱:
jjq_hn@wtao8.com ,我们会在看到邮件的第一时间内为您处理。
二、网友通过wtao8.com途径发表的一切信息,本站有权在本网站范围内引用、发布、转载用户在本站发布的内容。本站对于用户发布的内容所引发的版权、署名权的异议、纠纷不承担任何责任。传统媒体转载须事先与原作者和本站联系。提交者发言纯属个人行为,与本网站立场无关。
文章底部电脑广告
手机广告位-内容正文底部
上一篇:python filter函数 下一篇:python f-string用法

相关文章

学习使人进步

这是我学习的历程,分享给大家。