<< 向前        下一页 >>

ID : 7232

HandEyeInitPos

功能

出厂时返回设定为EVP用的机器人初始姿势。

格式

HandEyeInitPos ()

返回值

出厂时以位置型数据返回设定为EVP用的机器人初始姿势。

解说

在EVP中,相机通常固定在与机器人不同的位置上使用。因COBOTTA的夹治具上安装有相机,所以使用EVP时请每次用相同姿势拍摄COBOTTA。

成套购买COBOTTA和AF照相机(N10-W02)时,则出厂时以下图所示姿势进行校准并存储。

该指令返回此姿势数据。 使用EVP时,用该指令将机器人移动到获取的姿势并以该姿势进行拍摄。

COBOTTA的轴 角度(度)
1

0

2

0

3

90

4 0
5 90
6 任意

注意事项

  • 该指令用于使用EVP时的情况,成套购买COBOTTA和AF照相机(N10-W02)时可使用。
  • 使用COBOTTA的Ver.2.7.*和EVP的Ver.1.3.1之后的版本时,通过EVP指南将[使用COBOTTA的Hand-Eye calibration data。]设为有效时,请勿使用该指令,而是直接使用“EVP使用说明书”的附录1的样本。

应用示例

'!TITLE "PlainHandEyeEVP"

' 趋近长度	100mm
' 动作长度	100mm

' 装入位置         P[PlaceNumber]

' 通过EVPRun获取相机拍摄&图像处理&工件位置并将值重置为以下数据
' 找到的工件个数  I[NumberOfWorks]
' 找到的工件位置  P[WorkPlaceNumber], P[WorkPlaceNumber+1], ... ,
'                       P[WorkPlaceNumber+找到的工件个数-1]
' 找到的工件种类  I[WorkTypeNumber], I[WorkTypeNumber+1], ... ,
'                       I[WorkTypeNumber+找到的工件个数-1]

' 项目流程
' 移至HandEyeInitPos()
'  -> 相机拍摄&图像处理
'  -> 在找到的工件位置和P[PlaceNumber]之间往复。(仅找到的工件个数部分重复)
'  -> 移至HandEyeInitPos()

'------------设定-------------

' EVP项目文件名
#Define EVPProjectFileName "project.evp"

' 距离工件的高度(测试用安全余量) [mm]
#Define WorkHeight 20

' 获取图像时机器人位置的P变量编号
#Define RobotImageAquisitionNumber 0

' 装入位置P变量编号
#Define PlaceNumber 1

' 找到的工件个数的I变量编号
#Define NumberOfWorks 0

' 找到的工件位置的P变量开始编号
#Define WorkPlaceNumber 10

' 找到的工件种类的I变量开始编号
#Define WorkTypeNumber 10

'-----------------------------

#Include "Variant.h"
Dim ctrl as Object

Sub Main
  Dim index As Long

  TakeArm Keep = 0

  ' EVP初始设定 (选择EVP项目文件)
  EVPInitialize EVPProjectFileName
  
  ' 校准时的姿势
  Dim initPos as Position
  initPos = HandEyeInitPos()
  
  Move P, initPos
  
  ' 相机拍摄&图像处理&获取工件位置
  EVPRun
  
  ' 重复找到的工件个数部分
  For index = 0 To I[NumberOfWorks] - 1
    
    '------- 移至找到的工件位置 -------------------------
    '趋近动作  趋近P[10 + index]上空100mm
    Approach P, P[WorkPlaceNumber + index], @0 100
    ' 下降動作    降至P[10 + index]
    Move L, @C P[WorkPlaceNumber + index] 
    ' 必要时此处记述卡盘和松开动作等
    Delay 500
    ' 上升动作  100mm
    Depart L, @0 100
    
    '------- 装入位置的动作 -------------------------
    '趋近动作  趋近P[1]上空100mm
    Approach P, P[PlaceNumber], @0 100
    ' 下降动作    降至P[1]
    Move L, @C P[PlaceNumber] 
    ' 必要时此处记述卡盘和松开动作等
    Delay 500
    ' 上升动作  100mm
    Depart L, @0 100
    
  Next
  
  ' 移至获取图像时的机器人位置
  Move P, initPos
  
End Sub

Sub EVPInitialize (EVPProjectFile as string)
  ctrl = Cao.AddController("Runner", "CaoProv.DENSO.EVP", "",_
         "project=" & EVPProjectFile)
End Sub

Sub EVPRun

  Dim index As Long
  Dim ReturnValue As Variant
  Dim vntWorks As Variant
  Dim vntWork As Variant

  ' 相机拍摄&图像处理
  ' =======================================
  ' 详细信息:Run指令的返回值规格
  ' Return value of Run Command.
  ' result &lt;VT_VARIANT | VT_ARRAY> =
  '    Work Count	 	... <VT_I4>
  '    Work Datas 		... <Work Data | VT_ARRAY>
  '    Work Data		... <VT_VARIANT | VT_ARRAY>
  '          (classId, P(x, y, z, rx, ry, rz, fig))
  '      Feeder Action	... <VT_I4>
  ' =======================================
  ReturnValue = ctrl.Run()

  ' 将找到的工件个数存储至I[0]
  I[NumberOfWorks] = ReturnValue( 0 )

  ' 将工件位置存储至P[10], P[11], ..., P[10+找到的工件个数-1]
  vntWorks = ReturnValue( 1 )
  For index = 0 To I[NumberOfWorks] - 1
    vntWork = vntWorks(index)

    ' 获取工件位置
    P[WorkPlaceNumber + index] = vntWork( 1 )

    ' 将工件高度设定为P[10], P[11], ..., P[10+找到的工件个数-1]
    LetZ P[WorkPlaceNumber + index] = PosZ(P[WorkPlaceNumber + index]) + WorkHeight
  Next
End Sub

ID : 7232

<< 向前        下一页 >>