CN109227531B - 生成动作程序的编程装置以及程序生成方法 - Google Patents
生成动作程序的编程装置以及程序生成方法 Download PDFInfo
- Publication number
- CN109227531B CN109227531B CN201810736981.4A CN201810736981A CN109227531B CN 109227531 B CN109227531 B CN 109227531B CN 201810736981 A CN201810736981 A CN 201810736981A CN 109227531 B CN109227531 B CN 109227531B
- Authority
- CN
- China
- Prior art keywords
- model
- imaging
- unit
- workpiece
- robot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/695—Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40091—Tele-programming by graphical simulation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40314—Simulation of program locally before remote operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
本发明提供一种生成动作程序的编程装置以及程序生成方法,能够减少生成机器人的动作程序所需的操作者的工作。编程装置具备:模型配置部,其在虚拟空间中配置工件模型、机器人模型以及摄像部模型;目标位置提取部,其根据预先决定的提取条件来提取与工件的摄像对象位置相对应的工件模型的目标位置;模拟部,其通过机器人模型将摄像部模型或工件模型移动到目标位置进入摄像部模型的视野内的摄像位置;程序生成部,其根据在机器人模型将摄像部模型或工件模型定位在摄像位置时的该机器人模型的位置数据,生成用于摄像部对摄像对象位置进行拍摄的动作程序。
Description
技术领域
本发明涉及生成动作程序的编程装置以及程序生成方法。
背景技术
已知自动生成机器人的动作程序的技术(例如,国际公开第2004-085120号)。
有时会生成通过机器人移动摄像部或工件,并通过该摄像部拍摄该工件的动作程序。在这种情况下,需要减少生成该动作程序所需的操作者的工作。
发明内容
在本公开的一方式中,生成通过机器人移动摄像部或工件并通过该摄像部拍摄该工件的动作程序的编程装置具备:模型配置部,其在虚拟空间中配置对工件建模而得的工件模型、对机器人建模而得的机器人模型以及对摄像部建模而得的摄像部模型;目标位置提取部,其按照预先决定的提取条件来提取与工件的摄像对象位置相对应的工件模型的目标位置;模拟部,其通过机器人模型将摄像部模型或工件模型移动到摄像部模型对目标位置提取部提取出的目标位置进行拍摄的摄像位置;以及程序生成部,其根据机器人模型将摄像部模型或工件模型定位在摄像位置时的该机器人模型的位置数据,生成用于摄像部对摄像对象位置进行拍摄的动作程序。
在本公开的其他的方式中,生成通过机器人移动摄像部或工件并通过该摄像部拍摄该工件的动作程序的方法具备以下步骤:在虚拟空间中配置对工件建模而得的工件模型、对机器人建模而得的机器人模型以及对摄像部建模而得的摄像部模型;按照预先决定的提取条件来提取与工件的摄像对象位置相对应的工件模型的目标位置;通过机器人模型将摄像部模型或工件模型移动到摄像部模型对提取出的目标位置进行拍摄的摄像位置;以及根据机器人模型将摄像部模型或工件模型定位在摄像位置时的该机器人模型的位置数据,生成用于摄像部对摄像对象位置进行拍摄的动作程序。
根据本公开,不依赖于操作者的经验,就能够执行机器人系统的一系列的动作的动作程序的示教,因此能够大幅减少系统的启动作业所花费的时间。
附图说明
图1是一实施方式所涉及的编程装置的框图。
图2表示一实施方式所涉及的机器人系统以及工件。
图3是表示图1所示的编程装置的动作流程的一个例子的流程图。
图4表示在图3中的步骤S1中生成的虚拟空间的一个例子。
图5是表示摄像部模型相对于工件被配置在第1摄像位置的状态的放大图。
图6是表示图3中的步骤S5的流程的一个例子的流程图。
图7是另一实施方式所涉及的编程装置的框图。
图8是表示图7所示的编程装置的动作流程的一个例子的流程图。
图9是表示图8中的步骤S22的流程的一个例子的流程图。
图10表示进入摄像部模型的视野内的虚拟图像的例子。
图11表示进入摄像部模型的视野内的虚拟图像的例子。
图12是表示图8中的步骤S25的流程的一个例子的流程图。
图13是又一实施方式所涉及的编程装置的框图。
图14是表示图13所示的编程装置的动作流程的一个例子的流程图。
图15表示在图14中的步骤S41中生成的虚拟空间的一个例子。
图16是表示图14中的步骤S42的流程的一个例子的流程图。
图17是表示图16中的步骤S44的流程的一个例子的流程图。
图18是又一实施方式所涉及的编程装置的框图。
图19是表示图18所示的编程装置的动作流程的一个例子的流程图。
图20是表示又一实施方式所涉及的编程装置的框图。
图21是表示图20所示的编程装置的动作流程的一个例子的流程图。
图22是表示图21中的步骤S60的流程的一个例子的流程图。
图23是表示又一实施方式所涉及的编程装置的框图。
具体实施方式
以下,根据附图详细说明本公开的实施方式。此外,在以下所说明的各个实施方式中,对同样的要素赋予相同的符号,省略重复的说明。另外,在以下的说明中,为了方便,将机器人坐标系CR的x轴正方向称作右方,将y轴正方向称作后方,将z轴正方向称作上方。
参照图1,针对一实施方式所涉及的编程装置10进行说明。编程装置10具备处理器12、系统存储器14、工作存储器16、输入/输出接口(I/O接口)18、数据输入部20以及显示部22。
处理器12经由总线24与系统存储器14、工作存储器16以及I/O接口18可通信地连接,一边与这些要素进行通信,一边执行后述的各种过程。
系统存储器14是可电擦除/记录的非易失性存储器,例如,由EEPROM(注册商标)等构成。系统存储器14以在编程装置10的非运行时也不丢失的方式,记录执行后述的各种过程所需的常量、变量、设定值、计算机程序等。
工作存储器16临时保管处理器12执行各种过程所需的数据。另外,在工作存储器16中,适当展开记录在系统存储器14中的常量、变量、设定值、计算机程序等,处理器12将在工作存储器16中展开的数据用于执行各种过程。
I/O接口18与数据输入部20可通信地连接,并根据来自处理器12的指令,从数据输入部20接收数据。另外,I/O接口18与显示部22可通信地连接,并根据来自处理器12的指令,向显示部22发送图像数据。
I/O接口18例如由以太网端口或USB端口等构成,可以与数据输入部20以及显示部22通过有线方式来进行通信。或者,I/O接口18可以经由Wi-Fi等无线LAN与显示部22以及数据输入部20通过无线方式进行通信。
数据输入部20例如由键盘、触摸屏或鼠标构成,操作者通过操作数据输入部20能够输入数据。数据输入部20将所输入的数据经由I/O接口18发送至处理器12。
显示部22例如由CRT、液晶显示器(LCD)或有机EL显示器构成,接收从I/O接口18发送出的图像数据,并显示为操作者可以目视确认的图像。
编程装置10生成通过机器人102对摄像部104以及工件150进行相对移动,并通过该摄像部104拍摄该工件150的动作程序。
以下,参照图2,针对实际空间中的机器人系统100的一个例子进行说明。机器人系统100具备机器人102以及摄像部104。机器人102是垂直多关节机器人,具有机器人底座106、旋转体108、机器人臂110以及手腕部112。机器人底座106被固定在实际空间的工作单元的地板上。
旋转体108以可以绕竖直轴旋转的方式被设置在机器人底座106上。机器人臂110具有可旋转地连结到旋转体108的上臂部116以及可旋转地连结到该上臂部116的末端的下臂部118。手腕部112连结到下臂部118的末端,并可旋转地支承摄像部104。
针对机器人102设定机器人坐标系CR。机器人102以该机器人坐标系CR为基准,使机器人102的各可动要素(即、旋转体108、上臂部116、下臂部118、手腕部112)动作。例如,机器人坐标系CR的z轴被配置为与实际空间的竖直方向平行,旋转体108围绕机器人坐标系CR的z轴旋转。
另一方面,针对机器人102的手指部(在本实施方式中,是摄像部104)设定工具坐标系CT。该工具坐标系CT是定义机器人坐标系CR中的摄像部104的位置以及姿势的坐标系。
机器人102使旋转体108、机器人臂110以及手腕部112在机器人坐标系CR中动作,以使摄像部104的位置以及姿势与通过工具坐标系CT规定的位置以及姿势一致。
摄像部104连结到手腕部112的末端。摄像部104例如是视觉传感器,具有CCD或CMOS等摄像传感器与聚焦透镜等光学系统。摄像部104拍摄工件150等物体,并取得该工件150的图像。
针对摄像部104设定传感器坐标系CS。例如,设定传感器坐标系CS的z轴方向与摄像部104的视线的方向一致。摄像部104的视线与入射至摄像部104的光学系统的光的光轴一致。
在本实施方式中,工具坐标系CT与传感器坐标系CS成为已知的预定的位置关系。具体而言,工具坐标系CT的x-y平面与传感器坐标系CS的x-y平面相互平行。
机器人系统100通过摄像部104分别拍摄工件150的多个位置。在图2所示的例子中,工件150具有主体部152和以从该主体部152突出的方式设置的多个部件154、156、158、160、162、164以及166。
更具体而言,主体部152具有上端面168、与该上端面168正交并从该上端面168向下方延伸的后端面170以及右端面172。部件154、156以及158从上端面168向上方突出。部件160以及162从后端面170向后方突出。部件164以及166从右端面172向右方突出。
以下,针对操作者仅以多个部件154、156、158、160、162、164以及166中的部件154、156、158以及160作为摄像部104的摄像对象位置的情况进行说明。
机器人102通过摄像部104以预定的顺序来拍摄部件154、156、158以及160。作为一个例子,机器人102移动摄像部104,将该摄像部104相对于工件150定位在第1摄像位置。
当摄像部104相对于工件150被配置在第1摄像位置时,部件154进入摄像部104的视野内,能够通过该摄像部104来拍摄该部件154。然后,摄像部104拍摄部件154。
接着,机器人102移动摄像部104,将该摄像部104相对于工件150定位在第2摄像位置。当摄像部104相对于工件150被配置在第2摄像位置时,部件156进入摄像部104的视野内,能够通过该摄像部104来拍摄该部件156。然后,摄像部104拍摄部件156。
接着,机器人102移动摄像部104,将该摄像部104相对于工件150定位在第3摄像位置。当摄像部104相对于工件150被配置在第3摄像位置时,部件158进入摄像部104的视野内,能够通过该摄像部104来拍摄该部件158。然后,摄像部104拍摄部件158。
接着,机器人102移动摄像部104,将该摄像部104相对于工件150定位在第4摄像位置。当摄像部104相对于工件150被配置在第4摄像位置时,部件160进入摄像部104的视野内,能够通过该摄像部104来拍摄该部件160。然后,摄像部104拍摄部件160。
如此,机器人系统100执行通过机器人102来按顺序移动摄像部104,通过该摄像部104对摄像对象位置的部件154、156、158以及160进行依次拍摄的一系列动作。
本实施方式所涉及的编程装置10生成像这样的机器人系统100的一系列动作的动作程序。以下,参照图3针对编程装置10的功能的一个例子进行说明。从启动编程装置10时开始图3所示的流程。
在步骤S1中,处理器12在虚拟空间200中配置工件模型150M、机器人模型102M以及摄像部模型104M。图4表示此时的虚拟空间200的一个例子。
此外,在本文中,当实际空间中的结构要素的名称是“XX”时,该结构要素的虚拟空间200中的模型被称作“XX模型”。例如,实际空间中的“机器人底座”的模型被称作“机器人底座模型”。另外,在本实施方式中,“XX模型”都是3维模型。
处理器12根据操作者的输入操作,在虚拟空间200中配置机器人模型102M。机器人模型102M是对图2所示的机器人102进行建模而得的3维计算机图形(CG),并具有机器人底座模型106M、旋转体模型108M、机器人臂模型110M以及手腕部模型112M。
作为一个例子,系统存储器14预先存储包含机器人模型102M的多个种类的机器人模型。处理器12生成以列表方式表示出存储在系统存储器14中的多个种类的机器人模型的图像数据,并显示在显示部22中。操作者操作数据输入部20,从显示在显示部22中的列表中选择所期望的机器人模型。
如果操作者选择图4所示的机器人模型102M,则数据输入部20经由I/O接口18向处理器12发送操作者所输入的输入数据。
处理器12根据接收到的输入数据,从存储在系统存储器14中的多个种类的机器人模型中读出机器人模型102M,并配置在虚拟空间200中。接着,处理器12针对机器人模型102M在与图2同样的位置设定机器人坐标系CR以及工具坐标系CT。
同样地,处理器12根据操作者的输入操作,在虚拟空间200中配置摄像部模型104M。摄像部模型104M是对图2所示的摄像部104进行建模而得的3维CG。
作为一个例子,系统存储器14预先存储包含摄像部模型104M的多个种类的摄像部模型。处理器12生成以列表方式表示出存储在系统存储器14中的多个种类的摄像部模型的图像数据,并显示在显示部22中。操作者操作数据输入部20,从显示在显示部22中的列表中选择所期望的摄像部模型。
如果操作者选择图4所示的摄像部模型104M,则处理器12根据经由I/O接口18从数据输入部20接收到的输入数据,从存储在系统存储器14中的多个种类的摄像部模型中读出摄像部模型104M,并配置在虚拟空间200中。
此时,处理器12将摄像部模型104M配置在手腕部模型112M的末端,使其与实体的摄像部104的安装位置相对应。接着,处理器12针对摄像部模型104M,与图2同样地设定传感器坐标系CS。
同样地,处理器12根据操作者的输入操作,在虚拟空间200中配置工件模型150M。作为一个例子,系统存储器14预先存储包含工件模型150M的多个种类的工件模型。
然后,处理器12生成以列表方式表示出存储在系统存储器14中的多个种类的工件模型的图像数据,并显示在显示部22中。操作者操作数据输入部20,从显示在显示部22中的列表中选择所期望的工件模型。
如果操作者选择图4所示的工件模型150M,则处理器12根据经由I/O接口18从数据输入部20接收到的输入数据,从存储在系统存储器14中的多个种类的工件模型中读出工件模型150M,并配置在虚拟空间200中。
工件模型150M是对图2所示的工件150进行建模而得的3维CG,具有主体部模型152M与多个部件模型154M、156M、158M、160M、162M、164M以及166M。
接着,处理器12针对工件模型150M设定工件坐标系CW。在图4所示的例子中,工件坐标系CW被设定为:其原点位于主体部模型152M的上端面模型168M的左后方的角部,其x-y平面与上端面模型168M平行,其x-z平面与后端面模型170M平行,并且其y-z平面与右端面模型172M平行。
在图4所示的例子中,部件模型154M、156M以及164M具有圆形的外形,部件模型158M、160M以及166M具有四边形的外形,部件模型162M具有三角形的外形。
另外,如下设定部件模型154M、156M、158M、160M、162M、164M以及166M的尺寸。即,部件模型154M以及156M的尺寸是“100”,部件模型158M以及166M的尺寸是“300”,部件模型160M的尺寸是“150”,部件模型162M的尺寸是“80”,部件模型164M的尺寸是“20”。该尺寸的单位例如可以是m、m2或m3。
另外,部件模型166M被着色为与主体部模型152M、部件模型154M、156M、158M、160M、162M以及164M不同的颜色(即黑色)。操作者能够操作数据输入部20像部件模型166M那样对工件模型150M的任意的位置进行着色。
如此,如图4所示,具有机器人模型102M以及摄像部模型104M的机器人系统模型100M与工件模型150M被配置在虚拟空间200内。
如此,在本实施方式中,处理器12作为将工件模型150M、机器人模型102M以及摄像部模型104M配置在虚拟空间200中的模型配置部26(图1)发挥作用。处理器12生成虚拟空间200作为图像数据,并作为图4所示那样的虚拟空间200的图像显示在显示部22中。
在步骤S2中,处理器12接受提取条件。该提取条件是用于在后述的步骤S3中从工件模型150M提取目标位置时确定应当提取的位置的条件。
在这里,本文中的“目标位置”表示与在实际空间中作为摄像部104的摄像对象的工件150的摄像对象位置(即,部件154、156、158以及160)相对应的、工件模型150M的位置(即,部件模型154M、156M、158M以及160M)。
在本实施方式中,提取条件包含确定目标位置的形状、颜色以及尺寸的第1条件。作为一个例子,处理器12生成图像数据,并显示在显示部22中,所述图像数据示出作为目标位置的“形状”、“颜色”以及“尺寸”相对应的栏。
操作者操作数据输入部20,在“形状”栏中输入例如“圆形”、“三角形”或“四边形”之类的在后述的步骤S3中要提取的目标位置的形状。
另外,操作者操作数据输入部20,在“颜色”栏中输入例如“白色”、“黑色”或“蓝色”之类的在步骤S3中要提取的目标位置的颜色。
另外,操作者操作数据输入部20,在“尺寸”栏中输入例如“100~200”之类的在步骤S3中要提取的目标位置的尺寸的范围。如此,操作者能够输入确定要提取的工件模型150M上的目标位置的第1条件。
另外,在本实施方式中,提取条件包含第2条件,其确定与在实际空间中设为摄像部104的摄像对象外的工件150的位置相对应的、工件模型150M的位置的形状、颜色或尺寸。
作为一个例子,处理器12生成示出了与应当设为对象外的“形状”、“颜色”以及“尺寸”相对应的栏的图像数据,并显示在显示部22中。操作者操作数据输入部20,在“形状”栏中输入例如“圆形”、“三角形”或“四边形”之类的在后述的步骤S3中设为提取对象外的位置的形状。
另外,操作者操作数据输入部20,在“颜色”栏中输入例如“白色”、“黑色”或“蓝色”之类的在步骤S3中设为提取对象外的位置的颜色。
另外,操作者操作数据输入部20,在“尺寸”栏中输入例如“500~600”之类的在步骤S3中设为提取对象外的位置的尺寸的范围。如此,操作者能够输入确定设为提取对象外的工件模型150M上的位置的第2条件。
以下,针对操作者在“形状”栏中输入“圆形”和“四边形”,并在“尺寸”栏中输入“90~350”,作为提取条件的第1条件,另一方面,在“颜色”栏中输入“黑色”作为提取条件的第2条件的情况进行说明。
数据输入部20从操作者接受提取条件的输入,并经由I/O接口18发送给处理器12。处理器12将接收到的提取条件存储到系统存储器14中。如此,在本实施方式中,数据输入部20作为接受提取条件的输入的提取条件接受部28(图1)发挥作用。
在步骤S3中,处理器12根据在步骤S2中接受的提取条件来提取目标位置。具体而言,处理器12参照包含在步骤S2所接受的提取条件中的第1条件(即“形状”=“圆形”以及“四边形”、“尺寸”=“90~350”),将符合该第1条件的工件模型150M的位置提取为目标位置。
在图4所示的工件模型150M中,形状为“圆形”的是部件模型154M以及156M,另外,形状为“四边形”的位置是158M、160M以及166M。另外,在工件模型150M中,尺寸为“90~350”的位置是部件模型154M、156M、158M、160M以及166M。
因此,符合提取条件的第1条件的工件模型150M的位置是部件模型154M、156M、158M、160M以及166M。
另一方面,处理器12参照包含在步骤S2接受的提取条件中的第2条件(即“颜色”=“黑色”),不将符合该第2条件的工件模型150M的位置提取为目标位置。
在图4所示的例子中,通过操作者将部件模型166M着色为黑色。因此,处理器12从目标位置中排除该部件模型166M。
其结果,处理器12将工件模型150M的部件模型154M、156M、158M以及160M提取为目标位置。处理器12对比提取条件与工件模型150M的图形数据(例如,3DCAD数据),能够从工件模型150M中提取符合提取条件的目标位置。
如此,在本实施方式中,处理器12作为根据提取条件来提取目标位置154M、156M、158M以及160M的目标位置提取部30(图1)发挥作用。
在步骤S4中,处理器12计算摄像位置。具体而言,处理器12将目标位置154进入摄像部模型104M的视野内的、摄像部模型104M相对于工件模型150M的位置计算为第1摄像位置。
实体的摄像部104具有表示可摄像范围的视野与该视野的高度。图5表示与摄像部104的视野相对应的摄像部模型104M的视野A。摄像部模型104M的视野A的尺寸与视野高度B能够根据实体的摄像部104的摄像传感器的像素数以及光学系统的规格等而决定。
或者,操作者可以操作数据输入部20来预先指定摄像部模型104M的视野A的尺寸与视野高度B。在本实施方式中,视野高度B与从视野A的中心到摄像坐标系CS的原点的距离一致。
处理器12计算图5所示的工件模型150M与摄像部模型104M的相对位置,作为第1摄像位置。当工件模型150M与摄像部模型104M被配置在图5所示的第1摄像位置时,摄像部模型104M的视线O(即传感器坐标系的z轴)穿过目标位置154M的中心C1。
另外,视线O的方向的摄像部模型104M与目标位置154M之间的距离与视野高度B一致。另外,传感器坐标系CS的x-y平面(即工具坐标系CT的x-y平面)与工件坐标系的x-y平面相互平行。
处理器12根据机器人坐标系CR中的工件坐标系Cw的位置与工件坐标系Cw中的中心C1的位置,计算机器人坐标系CR中的中心C1的位置。然后,处理器12根据计算出的中心C1的位置与视野高度B,求出与第1摄像位置对应的传感器坐标系CS的位置以及姿势(即原点位置以及各轴的方向)。
同样地,处理器12将目标位置156M进入摄像部模型104M的视野A内的、摄像部模型104M相对于工件模型150M的位置计算为第2摄像位置。
当工件模型150M与摄像部模型104M被配置在第2摄像位置时,摄像部模型104M的视线O穿过目标位置156M的中心C2,视线O的方向的摄像部模型104M与目标位置156M之间的距离与视野高度B一致。另外,传感器坐标系CS的x-y平面与工件坐标系的x-y平面相互平行。
另外,处理器12将目标位置158M进入摄像部模型104M的视野A内的、摄像部模型104M相对于工件模型150M的位置计算为第3摄像位置。
当工件模型150M与摄像部模型104M被配置在第3摄像位置时,摄像部模型104M的视线O穿过目标位置158M的中心C3,视线O的方向的摄像部模型104M与目标位置158M之间的距离与视野高度B一致。另外,传感器坐标系CS的x-y平面与工件坐标系的x-y平面相互平行。
另外,处理器12将目标位置160M进入摄像部模型104M的视野A内的、摄像部模型104M相对于工件模型150M的位置计算为第4摄像位置。
当工件模型150M与摄像部模型104M被配置在第4摄像位置时,摄像部模型104M的视线O穿过目标位置160M的中心C4,视线O的方向的摄像部模型104M与目标位置160M之间的距离与视野高度B一致。另外,传感器坐标系CS的x-y平面与工件坐标系的x-z平面相互平行。
如此,处理器12计算与在步骤S3中提取出的全部的目标位置154M、156M、158M、160M对应的第n摄像位置(n=1,2,3,4),并存储到系统存储器14中。因此,在本实施方式中,处理器12作为计算摄像位置的摄像位置计算部32(图1)发挥作用。
此外,操作者操作数据输入部20来预先设定第n摄像位置的条件(即摄像部模型104M的视线O穿过中心Cn的条件、摄像部模型104M与目标位置154M之间的距离与视野高度B一致的条件或者通过传感器坐标系CS规定的平面与通过工件坐标系规定的平面相互平行的条件)。
在步骤S5中,处理器12执行将摄像部模型104M相对于工件模型150M定位在第n摄像位置的定位动作的模拟。针对该步骤S5,参照图6进行说明。在步骤S11中,处理器12将确定摄像位置的编号“n”设定为“1”。
在步骤S12中,处理器12将摄像部模型104M与工件模型150M定位在第n摄像位置。假设在该步骤S12的开始时间点设定n=1,则处理器12在虚拟空间200内使机器人模型102M进行模拟动作来移动摄像部模型104M,并将该摄像部模型104M相对于工件模型150M定位在第1摄像位置。其结果,摄像部模型104M相对于工件模型150M被定位在图5所示的第1摄像位置。
在步骤S13中,处理器12取得在步骤S12中将摄像部模型104M相对于工件模型150M定位在第n摄像位置时的机器人模型102M的第n位置数据。
作为一个例子,处理器12取得将摄像部模型104M相对于工件模型150M定位在第n摄像位置时的、机器人坐标系CR中的工具坐标系CT的位置以及姿势(即原点位置以及各轴的方向)所涉及的数据,作为第n位置数据,存储在系统存储器14中。
或者,处理器12取得将摄像部模型104M与工件模型150M定位在第n摄像位置时的、机器人模型102M的各可动要素模型(即旋转体模型108M、上臂部模型116M、下臂部模型118M、手腕部模型112M)的旋转角度,作为第n位置数据,存储在系统存储器14中。
在步骤S14中,处理器12将确定摄像位置的编号“n”增加“1”(即n=n+1)。
在步骤S15中,处理器12判断确定摄像位置的编号“n”是否成为大于nD的数字。在这里,nD是在步骤S3中提取出的目标位置的数。在本实施方式中,nD=4。
当编号“n”大于nD(即n>nD)时,处理器12判定为“是”,并结束图6所示的步骤S5,前进至图3所示的步骤S6。另一方面,当编号“n”在nD以下(即n≤nD)时,处理器12判定为“否”,并返回至步骤S12。如此,处理器12循环步骤S12~S15,直到在步骤S15中判定为“是”。
如此,处理器12执行将摄像部模型104M相对于工件模型150M定位在第n摄像位置的定位动作的模拟,并分别取得定位在第n摄像位置时的机器人模型102M的第n位置数据。因此,处理器12作为执行定位动作的模拟的模拟部34(图1)发挥作用。
再次参照图3,在步骤S6中,处理器12根据在步骤S13中取得到的第n位置数据(n=1~4),生成机器人系统100的动作程序。具体而言,处理器12将第n位置数据设为应当定位实体的机器人102的示教点,并生成上述那样的实体的机器人系统100的一系列动作的动作程序。
该动作程序使实体的机器人102执行与在步骤S5的模拟中将摄像部模型104M相对于工件模型150M定位在第n摄像位置的定位动作相同的动作。由此,机器人102能够分别将摄像部104相对于工件150定位在第n摄像位置。
另外,该动作程序,在每一次机器人102将摄像部104相对于工件150定位在第n摄像位置时,使摄像部104执行拍摄作为摄像对象的工件150的部件154、156、158或160的摄像动作。如此,能够取得摄像对象的部件154、156、158以及160的图像。
如上所述,在本实施方式中,处理器12自动提取工件模型150M上的目标位置(154M、156M、158M、160M)(步骤S3),并执行对于提取出的目标位置的定位动作的模拟(步骤S5)。
然后,处理器12在该模拟中自动取得第n位置数据(步骤S13),并使用该第n位置数据来生成实体的机器人系统100的动作程序。
根据该结构,不依赖于操作者的经验,就能够执行机器人系统100的一系列动作的动作程序的示教,因此能够大幅减少系统的启动作业所花费的时间。
另外,在本实施方式中,提取条件包含确定目标位置(154M、156M、158M、160M)的形状、颜色以及尺寸的第1条件。根据该结构,操作者通过指定形状、颜色以及尺寸,能够容易地选择应当提取的工件模型150M的位置。
另外,在本实施方式中,提取条件包含确定设为对象外的工件模型150M的位置的形状、颜色或尺寸的第2条件。根据该结构,操作者通过指定形状、颜色以及尺寸,能够容易地从提取对象中排除不要提取的工件模型150M的位置。
例如,操作者如果使用特定的颜色对不要提取的工件模型150M的位置进行着色,并指定该特定的颜色作为提取条件的第2条件的“颜色”,则能够容易地从提取对象中排除该位置。
另外,在本实施方式中,编程装置10具备作为接受提取条件的输入的提取条件接受部28发挥作用的数据输入部20。根据该结构,操作者能够任意地设定并输入提取条件,因此能够容易并且详细地指定目标位置。
另外,在本实施方式中,处理器12计算第n摄像位置(步骤S4)。根据该结构,操作者不需要手动指定第n摄像位置,就能够自动计算该第n摄像位置,因此能够有效地减少系统的启动作业所花费的时间。
接下来,参照图7~图10,针对编程装置10的其他功能进行说明。图7是表示编程装置10的其他功能的框图。在本实施方式中,处理器12还作为判定部38、摄像位置检索部40以及第1摄像位置修正部42发挥作用。
以下,参照图8,针对本实施方式所涉及的编程装置10的功能进行说明。此外,在图8中,对与图3所示的流程同样的过程赋予相同的步骤编号,并省略重复的说明。
步骤S4之后,在步骤S21中,处理器12设定在后述的步骤S22的模拟中机器人模型102M使摄像部模型104M相对于工件模型150M移动到各个第n摄像位置时的移动路径。
以下说明该步骤S21的技术含义。在实际的生产现场,为了缩减周期时间,存在一边通过机器人102移动摄像部104一边通过该摄像部104对摄像对象位置进行拍摄的情况。像这样的情况下,需要以平滑地连续的方式来设定通过机器人102移动摄像部104的路径(即,在移动路径中不产生不连续的拐角)。
在本实施方式中,处理器12将在步骤S4中计算出的各个第n摄像位置变更为新的第n摄像位置,以使在后述的步骤S22的模拟中通过机器人模型102M使摄像部模型104M向第1摄像位置、第2摄像位置、……第n摄像位置连续地移动时的移动路径成为平滑地连续的路径。
在步骤S22中,处理器12执行将摄像部模型104M相对于工件模型150M定位在第n摄像位置的定位动作的模拟。针对该步骤S22,参照图9进行说明。此外,在图9所示的流程中,针对与图6同样的过程赋予相同的步骤编号,省略重复的说明。
步骤S12之后,在步骤S23中,处理器12取得虚拟图像。具体而言,处理器12在机器人模型102M将摄像部模型104M相对于工件模型150M定位在第n摄像位置时,生成进入摄像部模型104M的视野A内的虚拟图像。
此外,处理器12在该步骤S23中,可以当在步骤S12中机器人模型102M移动摄像部模型104M时,生成虚拟图像。
图10以及图11表示当摄像部模型104M相对于工件模型150M被定位在第1摄像位置时进入摄像部模型104M的视野A内的虚拟图像。此外,在图10以及图11中,为了便于理解,图示出摄像部模型104M的视线O与目标位置154M的中心C1。
在图10所示的虚拟图像202中,目标位置154M从虚拟图像202的中央向纸面左方偏移,目标位置154M的一部分没有显示在虚拟图像202中。
即,这种情况下,当摄像部模型104M相对于工件模型150M被定位在第1摄像位置时,摄像部模型104M的视线O与目标位置154M的中心C1并非相互一致,并且目标位置154M的一部分并未在摄像部模型104M的视野A内。
另一方面,在图11所示的虚拟图像204中,目标位置154从虚拟图像204的中央向纸面左方偏移,但是目标位置154的整体都显示在虚拟图像202中。
即,这种情况下,摄像部模型104M相对于工件模型150M被定位在第1摄像位置时,摄像部模型104M的视线O与目标位置154M的中心C1并非相互一致,但是目标位置154M的整体在摄像部模型104M的视野A内。
像这样摄像部模型104M的视线O与目标位置154M的中心C1偏离的情况,可能由在上述步骤S21中变更了第n摄像位置引起。处理器12在该步骤S23中,生成像虚拟图像202或204那样的虚拟图像,并存储在系统存储器14中。
在步骤S24中,当在步骤S12中将摄像部模型104M与工件模型150M定位在第n摄像位置时,处理器12判断目标位置154M、156M、158M或160M是否在视野A内。
假设在该步骤S24的开始时间点设定为n=1,则处理器12对在步骤S23中取得的虚拟图像进行图像解析,并提取显示在该虚拟图像中的目标位置154M的轮廓。
另一方面,处理器12从系统存储器14中读出机器人模型102M的图形数据,并从该图形数据中取得作为目标位置的部件模型154M的形状(例如,部件模型154M的上端面模型的轮廓形状)。
然后,处理器12判断显示在虚拟图像中的目标位置154M的轮廓的形状与图形数据的部件模型154M的形状是否相互一致。当显示在虚拟图像中的目标位置154M的形状与图形数据一致时,处理器12判定目标位置154M在视野A内(即“是”),并前进至步骤S26。
另一方面,当显示在虚拟图像中的目标位置154M的形状与图形数据不一致时,处理器12判定目标位置154M不在视野A内(即“否”),并前进至步骤S25。
例如,在图10所示的虚拟图像202时,显示在虚拟图像中的目标位置154M的轮廓的形状成为一部分缺损的圆形,与图形数据的部件模型154M的形状(即正圆形)不一致。因此,当在步骤S23中取得了虚拟图像202时,处理器12在该步骤S24中判定为“否”。
另一方面,在图11所示的虚拟图像204时,显示在虚拟图像中的目标位置154M的轮廓的形状成为正圆形,与图形数据的部件模型154M的形状一致。因此,当在步骤S23中取得了虚拟图像204时,处理器12在该步骤S24中判定为“是”。
此外,处理器12计算出显示在虚拟图像中的目标位置154M的轮廓的形状与图形数据的部件模型154M的形状的类似度,当该类似度在预先决定的阈值以上时,可以判定为“是”。该类似度是表示2个形状类似的程度的参数,例如包含2个形状的面积比。
如此,在本实施方式中,处理器12作为判定目标位置154M、156M、158M或160M是否在视野A内的判定部38(图7)发挥作用。
在步骤S25中,处理器12执行第n摄像位置的检索以及修正方案。针对该步骤S25,参照图12进行说明。
在步骤S27中,处理器12变更第n摄像位置。具体而言,处理器12将在步骤S25的开始时间点所设定的第n摄像位置变更为将配置在该第n摄像位置的摄像部模型104M向工具坐标系CT的x轴、y轴或z轴的方向偏移预定的距离δ1时的摄像部模型104M与工件模型150M的相对位置。
如此,处理器12能够将在步骤S25的开始时间点所设定的第n摄像位置变更为新的第n摄像位置。在变更后的第n摄像位置,摄像部模型104M从变更前的第n摄像位置向工具坐标系CT的x轴、y轴或z轴的方向偏移距离δ1。
在步骤S28中,处理器12重新执行将摄像部模型104M相对于工件模型150M定位在第n摄像位置的定位动作。具体而言,处理器12在虚拟空间200内,使摄像部模型104M的位置返回至朝向第n摄像位置的移动路径的中途位置。
然后,处理器12进行通过机器人模型102M将摄像部模型104M从该中途位置定位到变更后的第n摄像位置的定位动作的模拟。
在步骤S29中,处理器12与上述步骤S23同样,再次取得虚拟图像。
在步骤S30中,处理器12与上述步骤S24同样,判定在步骤S29中取得的虚拟图像中显示的目标位置154M、156M、158M或160M是否在视野A内。
当处理器12判定为“是”时,前进至步骤S31,另一方面,在判定为“否”时,返回至步骤S27。如此,处理器12循环步骤S27~S30,直到在步骤S24中判定为“是”。
通过如此重复执行步骤S27~S30,处理器12检索目标位置154M、156M、158M或160M在视野A内的摄像部模型104M与工件模型150M的相对位置。因此,在本实施方式中,处理器12作为检索该相对位置的摄像位置检索部40(图7)发挥作用。
此外,当处理器12在步骤S27中变更第n摄像位置,直到在步骤S30中判定为“是”为止时,可以按照预定的顺序来执行将摄像部模型104M向工具坐标系CT的x轴方向偏移的变更、向y轴方向偏移的变更、或向z轴方向偏移的变更。
例如,作为预定的顺序,处理器12可以以执行10次向x轴方向的变更,接着执行10次向y轴方向的变更,接着执行10次向z轴方向的变更的顺序,来变更第n摄像位置。
另外,在步骤S27中变更第n摄像位置,直到在步骤S30中判定为“是”为止时,可以设定将摄像部模型104M向工具坐标系CT的各轴的方向偏移的范围[α,β]。
例如,当将摄像部模型104M向工具坐标系CT的x轴方向偏移的范围设定为[-10,10]时,处理器12将摄像部模型104M从在步骤S25的开始时间点的第n摄像位置在工具坐标系CT的x轴方向以-10≤x≤10的范围进行偏移。
另外,当在步骤S27中变更第n摄像位置,直到在步骤S30中判定为“是”为止时,处理器12可以接受将摄像部模型104M向工具坐标系CT的x轴方向偏移的变更、向y轴方向偏移的变更、以及向z轴方向偏移的变更的有效或无效的设定。
例如,当向z轴方向偏移的变更被设定为“无效”时,当在步骤S27中变更第n摄像位置时,处理器12不进行将摄像部模型104M向工具坐标系CT的z轴方向偏移的变更。
上述预定的顺序、范围[α,β]以及有效/无效的设定,可以预先决定,或者处理器12可以经由数据输入部20从操作者接受这些预定的顺序、范围[α,β]以及有效/无效的设定的输入。
在步骤S31中,处理器12将在步骤S25的开始时间点所设定的第n摄像位置修正为在步骤S30中判定为“是”的时间点所设定的第n摄像位置,并存储在系统存储器14中。
如此,在本实施方式中,处理器12作为根据在步骤S27~S30中检索出的摄像部模型104M与工件模型150M的相对位置来修正第n摄像位置的第1摄像位置修正部42(图7)发挥作用。然后,处理器12结束图12所示的步骤S25,前进至图9所示的步骤S13。
如此,在本实施方式中,当在步骤S23的执行时目标位置154M、156M、158M或160M不在视野A内时,处理器12检索在视野A内中包含该目标位置那样的摄像部模型104M与工件模型150M的相对位置(步骤S27~S30),并根据该相对位置来修正第n摄像位置(步骤S31)。
根据该结构,在将通过机器人模型102M使摄像部模型104M移动时的移动路径设定为平滑的路径(步骤S21)时,能够取得可以将目标位置154M、156M、158M或160M可靠地包含在视野A内的第n摄像位置。
因此,能够有效地生成一边通过实体的机器人102使摄像部104移动,一边通过该摄像部104对摄像对象位置进行拍摄的动作程序。
接下来,参照图13~图17,针对编程装置10的又一功能进行说明。图13是表示编程装置10的又一功能的框图。在本实施方式中,处理器12还作为干扰检测部44、非干扰位置检索部46以及第2摄像位置修正部48发挥作用。
以下,参照图14,针对本实施方式所涉及的编程装置10的功能进行说明。此外,在图14中,对与图3所示的流程同样的过程赋予相同的步骤编号,并省略重复的说明。
在步骤S41中,处理器12作为模型配置部26发挥作用,将工件模型150M、机器人模型102M、摄像部模型104M以及环境物模型206M配置在虚拟空间200中。图15表示此时的虚拟空间200的一个例子。环境物模型206M是对诸如工作单元的柱子或墙壁等存在于机器人系统100以及工件150的周围的物体进行建模而得的3维CG。
步骤S4之后,在步骤S42中,处理器12执行将摄像部模型104M相对于工件模型150M定位在第n摄像位置的定位动作的模拟。针对该步骤S42,参照图16进行说明。此外,在图16所示的流程中,对与图6同样的过程赋予相同的步骤编号,并省略重复的说明。
步骤S12之后,在步骤S43中,处理器12判断在机器人模型102M或摄像部模型104M与工件模型150M或环境物模型206M之间是否检测出干扰。
具体而言,处理器12根据机器人模型102M、摄像部模型104M、工件模型150M以及环境物模型206M的图形数据与这些要素的机器人坐标系CR中的位置数据等,来判断在机器人模型102M或摄像部模型104M与工件模型150M或环境物模型206M之间是否产生了干扰。
当处理器12判定出在机器人模型102M或摄像部模型104M与工件模型150M或环境物模型206M之间产生了干扰(即“是”)时,前进至步骤S44。
另一方面,当处理器12判定出机器人模型102M或摄像部模型104M与工件模型150M或环境物模型206M之间未产生干扰(即“否”)时,前进至步骤S13。
如此,在本实施方式中,处理器12作为检测机器人模型102M或摄像部模型104M与工件模型150M或环境物模型206M之间的干扰的干扰检测部44(图13)发挥作用。
在步骤S44中,处理器12执行非干扰位置的检索以及摄像位置修正方案。针对该步骤S44,参照图17进行说明。
在步骤S45中,处理器12变更在步骤S12中配置在第n摄像位置的摄像部模型104M与工件模型150M的相对位置。具体而言,处理器12将摄像部模型104M向工具坐标系CT的x轴、y轴或z轴的方向偏移预定的距离δ2。
或者,处理器12使摄像部模型104M向绕工具坐标系CT(或传感器坐标系CT)的x轴或y轴的方向旋转预定的角度θ。如此,处理器12能够将摄像部模型104M的位置变更距离δ2或角度θ。
在这里,处理器12在该步骤S45中,变更摄像部模型104M的位置,以使目标位置154M、156M、158M或160M包含在视野A内。例如,处理器12变更摄像部模型104M的位置,以使摄像部模型104M的视线O穿过目标位置154M、156M、158M或160M的中心Cn(或者目标位置上的任意的点)。
在步骤S46中,处理器12与上述步骤S43同样,处理器12判断在机器人模型102M或摄像部模型104M与工件模型150M或环境物模型206M之间是否检测出干扰。
当处理器12判定为“是”时,前进至步骤S47,另一方面,当判定为“否”时,返回至步骤S45。如此,处理器12循环步骤S45~S46,直到在步骤S46中判定为“是”。
当在步骤S46中判定为“是”时,机器人模型102M或摄像部模型104M被配置在与工件模型150M或环境物模型206M不干扰的非干扰位置。
通过如此反复执行步骤S45~S46,处理器12检索不产生上述干扰的非干扰位置。因此,在本实施方式中,作为检索非干扰位置的非干扰位置检索部46(图13)发挥作用。
此外,在反复执行步骤S45直到在步骤S46中判定为“是”时,处理器12可以按照预定的顺序来执行使摄像部模型104M向工具坐标系CT的x轴方向移动的动作、向y轴方向偏移的动作、向z轴方向偏移的动作、围绕工具坐标系CT(或传感器坐标系CT)的x轴旋转的动作、或围绕y轴旋转的动作。
另外,在反复执行步骤S45直到在步骤S46中判定为“是”时,可以设定使摄像部模型104M向工具坐标系CT的各轴的方向、或围绕各轴移动的范围[γ,ε]。
例如,在设定使摄像部模型104M围绕传感器坐标系CS的y轴旋转的范围是[-10°,10°]时,在步骤S45中,处理器12使摄像部模型104M从步骤S25的开始时间点的位置围绕传感器坐标系CS的y轴以-10°≤x≤10°的范围来进行旋转。
另外,在执行步骤S45时,处理器12可以接受使摄像部模型104M向工具坐标系CT的x轴方向移动的动作、向y轴方向偏移的动作、向z轴方向偏移的动作、围绕工具坐标系CT(或传感器坐标系CT)的x轴旋转的动作、或围绕y轴旋转的动作的有效或无效的设定。
例如,当围绕传感器坐标系CT的y轴旋转的动作被设定为“无效”时,处理器12在执行步骤S45时,不进行围绕传感器坐标系CT的y轴旋转的动作。
可以预先决定在步骤S45中参照的预定的顺序、范围[γ,ε]以及有效/无效的设定,或者处理器12可以经由数据输入部20从操作者接受这些预定的顺序、范围[γ,ε]以及有效/无效的设定的输入。
在步骤S47中,处理器12将在步骤S44的开始时间点所设定的第n摄像位置修正为在步骤S46中判定为“是”的时间点的摄像部模型104M与工件模型150M的相对位置,并存储在系统存储器14中。
如此,在本实施方式中,处理器12作为根据在步骤S45~S46中检索出的非干扰位置来修正第n摄像位置的第2摄像位置修正部48(图13)发挥作用。步骤S47之后,处理器12结束图17所示的步骤S44,并前进至图16所示的步骤S13。
如上所述,在本实施方式中,处理器12检索在步骤S43中检测出的不产生干扰的非干扰位置(步骤S45~S46),并使用根据该非干扰位置修正后的第n摄像位置来生成动作程序(步骤S6)。
根据该结构,能够生成在实际空间中,在环境物存在于机器人系统100的周围那样的环境中,以在机器人102或摄像部104与工件150或环境物之间不产生干扰的方式,使用摄像部104对目标位置154M、156M、158M或160M进行拍摄的一系列动作的动作程序。
接下来,参照图18以及图19,针对编程装置10的又一功能进行说明。图18是表示编程装置10的又一功能的框图。在本实施方式中,处理器12还作为摄像定时设定部50发挥作用。
以下,参照图19,针对本实施方式所涉及的编程装置10的功能进行说明。此外,在图19中,对与图3所示的流程同样的过程赋予相同的步骤编号,并省略重复的说明。
步骤S5之后,在步骤S51中,处理器12设定基于实体的摄像部104的摄像动作的开始时间点ts以及结束时间点te。作为一个例子,处理器12接受将摄像部104相对于工件150定位在第n摄像位置时的机器人102的动作速度VR的指定。
具体而言,处理器12生成可输入动作速度VR的图像数据,并显示在显示部22中。操作者操作数据输入部20,输入所期望的动作速度VR,处理器12经由I/O接口18来接受动作速度VR。
然后,处理器12根据所接受的动作速度VR自动设定摄像动作的开始时间点ts以及结束时间点te。例如,处理器12将开始时间点ts设定为实体的机器人102使摄像部104到达第n摄像位置的t1秒前的时间点,另一方面,将结束时间点te设定为机器人102使摄像部104通过第n摄像位置的t2秒后的时间点。
能够根据机器人102的动作速度VR求出这些时间t1以及t2。如此,处理器12根据动作速度VR来自动设定开始时间点ts以及结束时间点te。
作为其他的例子,开始时间点ts以及结束时间点te可以由操作者任意地指定。处理器12根据来自操作者的指定设定开始时间点ts以及结束时间点te,并存储在系统存储器14中。如此,在本实施方式中,处理器12作为设定摄像动作的开始时间点ts以及结束时间点te的摄像定时设定部50发挥作用。
在步骤S52中,处理器12根据在步骤S13(图6)中取得的第n位置数据(n=1~4)与在步骤S51中设定出的开始时间点ts以及结束时间点te,来生成机器人系统100的动作程序。
具体而言,处理器12生成从在步骤S51中设定出的开始时间点ts到结束时间点te的期间T(=te-ts。例如,T=0.5秒)使摄像部104执行摄像动作的动作程序。
例如,以如下方式生成该动作程序:在机器人102使摄像部104到达第n摄像位置的t1秒前的时间点ts,使摄像部104开始摄像动作(具体而言,打开快门使摄像传感器曝光),在机器人102使摄像部104通过第n摄像位置的t2秒后的时间点te,结束摄像部104的摄像动作(具体而言,关闭快门)。
根据本实施方式,例如在一边通过机器人102移动摄像部104一边通过该摄像部104对摄像对象位置进行摄像时,能够可靠地对摄像对象位置进行摄像。
接下来,参照图20~图23,针对编程装置10的又一功能进行说明。图20是表示编程装置10的又一功能的框图。在本实施方式中,处理器12还作为顺序决定部52发挥作用。
以下,参照图21,针对本实施方式所涉及的编程装置10的功能进行说明。此外,在图21中,对与图3所示的流程同样的过程赋予相同的步骤编号,并省略重复的说明。
步骤S5之后,在步骤S60中,处理器12执行最短移动路径检索方案。针对该步骤S60,参照图22来进行说明。
此外,在图22所示的步骤S60中,以预定的次数μ反复执行图22中的步骤S62、S11~S13、S15、S63~S65的一系列动作,直到在后述的步骤S65中判定为“是”。该次数μ由操作者预先决定(例如,μ=50),并存储在系统存储器14中。
在步骤S61中,处理器12将步骤S60中的确定步骤S62、S11~S13、S15、S63~S65的一系列动作的执行次数的编号“m”设定为“1”。
在步骤S62中,决定将摄像部模型104M与工件模型150M定位在步骤S4中计算出的多个摄像位置的顺序。
如上所述,第1摄像位置被设定为目标位置154M进入视野A内的位置,第2摄像位置被设定为目标位置156M进入视野A内的位置,第3摄像位置被设定为目标位置158M进入视野A内的位置,第4摄像位置被设定为目标位置160M进入视野A内的位置。
由此,处理器12在使摄像部模型104M移动的模拟(S5、S22、S42)中,以与目标位置154相对应的第1摄像位置、与目标位置156相对应的第2摄像位置、与目标位置158相对应的第3摄像位置、以及与目标位置160相对应的第4摄像位置的顺序来使摄像部模型104M移动。
在本实施方式中,处理器12在该步骤S62中,随机决定该顺序。具体而言,将确定摄像位置的编号“n”(=1~4)随机赋予目标位置154、目标位置156、目标位置158以及目标位置160。
例如,处理器12将编号“n”赋予目标位置154、目标位置156、目标位置158、以及目标位置160,以便将目标位置156M进入视野A内的位置设为第1摄像位置,将目标位置160M进入视野A内的位置设为第2摄像位置,将目标位置158M进入视野A内的位置设为第3摄像位置,将目标位置154M进入视野A内的位置设为第4摄像位置。
这种情况下,处理器12在循环步骤S60中的步骤S11、S12、S13以及S15时,对于摄像部模型104M,以将目标位置156置于视野A内的第1摄像位置、将目标位置160M置于视野A内的第2摄像位置、将目标位置158置于视野A内的第3摄像位置、以及将目标位置154置于视野A内的第4摄像位置的顺序来移动摄像部模型104M。
如此,在本实施方式中,处理器12作为决定在多个摄像位置对摄像部模型104M与工件模型150M进行定位的顺序的顺序决定部52发挥作用。
步骤S62之后,处理器12根据在最近的步骤S62中决定出的编号“n”来按顺序执行上述步骤S11、S12、S13以及S15,并将摄像部模型104M相对于工件模型150M按顺序定位在第n摄像位置。
当在步骤S15中判定为“是”时,在步骤S63中,计算在最近的步骤S12、S13以及S15的循环中移动摄像部模型104M的移动路径(即到达第1摄像位置、第2摄像位置、……第nD摄像位置的路径)的长度Lm。处理器12将计算出的长度Lm存储在系统存储器14中。
在步骤S64中,处理器12使编号“m”增加“1”(即m=m+1)。
在步骤S65中,处理器12判断编号“m”是否成为大于μ的数字。当编号“m”大于μ(即m>μ)时,处理器12判定为“是”并前进至步骤S66。
另一方面,当编号“m”在μ以下(即m≤μ)时,处理器12判定为“否”,并返回至步骤S62。如此,处理器12循环步骤S62~S65,直到在步骤S65中判定为“是”为止,按顺序取得以在步骤S62中随机决定出的顺序使摄像部模型104M移动到多个摄像位置时的移动路径的长度Lm(m=1,2,3,……,μ)。
在步骤S66中,处理器12取得最短移动路径PMIN。具体而言,处理器12从系统存储器中读出并比较每一次执行步骤S63时所取得的移动路径的长度L1~Lμ,并将与在长度L1~Lμ中最短的长度相对应的移动路径取得为最短移动路径PMIN。
然后,处理器12结束图22所示的步骤S60,并前进至图21中的步骤S6。然后,在步骤S6中,生成按照与在步骤S66中取得的最短移动路径PMIN相对应的顺序,将摄像部模型104M与工件模型150M定位到第n摄像位置的动作程序。
根据本实施方式,处理器12能够自动生成将摄像部模型104M与工件模型150M分别以最短移动路径PMIN定位到第n摄像位置的动作程序。因此,根据该动作程序使实体的机器人系统100动作时的周期时间能够最小化。
接下来,参照图23,针对其他的实施方式所涉及的编程装置60进行说明。编程装置60具备模型配置部62、目标位置提取部64、模拟部66以及程序生成部68。
模型配置部62与上述模型配置部26同样,将工件模型150M、机器人模型102M以及摄像部模型104M配置在虚拟空间200中(步骤S1)。目标位置提取部64按照预先决定的提取条件来提取工件模型150M上的目标位置154M、156M、158M、160M(步骤S3)。
模拟部66与上述模拟部34同样,执行将摄像部模型104M相对于工件模型150M定位在第n摄像位置的定位动作的模拟(步骤S5)。
程序生成部68与上述程序生成部36同样,根据在模拟部66执行的模拟中取得的机器人模型102M的位置数据,来生成机器人系统100的动作程序(步骤S6)。
此外,编程装置60可以由具有处理器以及存储器(系统存储器14或工作存储器16)的1个计算机构成。或者,模型配置部62、目标位置提取部64、模拟部66以及程序生成部68可以分别由具有处理器以及存储器的1个计算机构成。
此外,可以追加确定工件模型150M的要素模型名称的条件,作为提取条件的第1条件或者第2条件。这种情况下,操作者可以操作数据输入部20来在各部件模型中登记名称(“凸起A”、“关节B”等)。
另外,模型配置部26、62除了机器人坐标系CR还设定基准坐标系C0,并可以以基准坐标系C0为基准。另外,可以设定第n摄像位置,以使摄像部模型104M的视线O通过目标位置上的任意的点。
另外,在上述实施方式中,针对以下情况进行了描述:机器人102(机器人模型102M)移动摄像部104(摄像部模型104M),并相对于工件150(工件模型150M)向摄像位置移动。
然而,并不限定于此,可以通过机器人102(机器人模型102M)移动工件150(工件模型150M),并相对于摄像部104(摄像部模型104M)定位在摄像位置。这种情况下,工件150(工件模型150M)连结到手腕部112(手腕部模型112M)。
另外,可以相互组合图1、图7、图13、图18以及图20所示的实施方式的特征。例如,可以在图7所示的实施方式中追加图13所示的干扰检测部44、非干扰位置部46以及第2摄像位置修正部48。另外,机器人102并不限于垂直多关节型机器人,也可以是平行连杆型机器人或装载机等。
以上,通过实施方式对本公开进行了说明,但是上述实施方式并不限定要求专利保护的范围所涉及的发明。
Claims (11)
1.一种编程装置,其生成通过机器人移动摄像部或工件并通过该摄像部拍摄该工件的动作程序,其特征在于,
所述编程装置具备:
模型配置部,其在虚拟空间中配置对所述工件建模而得的工件模型、对所述机器人建模而得的机器人模型以及对所述摄像部建模而得的摄像部模型;
提取条件接受部,其接受提取条件的输入;目标位置提取部,其基于所述提取条件接受部接受了输入的所述提取条件和所述工件模型的三维图像数据,按照该提取条件来提取与所述工件的摄像对象位置相对应的所述工件模型的目标位置;
模拟部,其通过所述机器人模型将所述摄像部模型或所述工件模型移动到所述摄像部模型对所述目标位置提取部提取出的所述目标位置进行拍摄的摄像位置;以及
程序生成部,其根据所述机器人模型将所述摄像部模型或所述工件模型定位在所述摄像位置时的该机器人模型的位置数据,生成用于所述摄像部对所述摄像对象位置进行拍摄的动作程序。
2.根据权利要求1所述的编程装置,其特征在于,
所述提取条件包含确定所述目标位置的形状、颜色或尺寸的第1条件,
所述目标位置提取部将符合所述第1条件的所述工件模型的位置提取为所述目标位置。
3.根据权利要求2所述的编程装置,其特征在于,
所述提取条件包含确定与设为所述摄像部的摄像对象外的所述工件的位置相对应的所述工件模型的位置的形状、颜色或尺寸的第2条件,
所述目标位置提取部不将符合所述第2条件的所述工件模型的位置提取为所述目标位置。
4.根据权利要求1~3中任一项所述的编程装置,其特征在于,
所述编程装置还具备计算所述摄像位置的摄像位置计算部。
5.根据权利要求4所述的编程装置,其特征在于,
所述摄像位置计算部计算所述摄像部模型的视线通过所述目标位置的中心,并且所述摄像部模型与所述目标位置之间的距离与预先决定的所述摄像部的视野的高度一致的所述摄像部模型与所述工件模型的相对位置,作为所述摄像位置。
6.根据权利要求1~3中任一项所述的编程装置,其特征在于,
所述编程装置还具备:
判定部,其在所述模拟部通过所述机器人模型将所述摄像部模型或所述工件模型向所述摄像位置移动时,判定所述目标位置是否在所述摄像部的视野内;
摄像位置检索部,其在所述判定部判定出所述目标位置不在所述视野内时,检索该目标位置在该视野内的所述摄像部模型与所述工件模型的相对位置;以及
第1摄像位置修正部,其根据所述摄像位置检索部检索出的所述相对位置来修正所述摄像位置,
所述程序生成部根据所述机器人模型将所述摄像部模型或所述工件模型定位在所述第1摄像位置修正部修正后的所述摄像位置时的该机器人模型的位置数据,生成所述动作程序。
7.根据权利要求1~3中任一项所述的编程装置,其特征在于,
所述模型配置部还在所述虚拟空间中配置对至少1个环境物建模而得的环境物模型,
所述编程装置还具备:
干扰检测部,其在所述模拟部通过所述机器人模型将所述摄像部模型或所述工件模型向所述摄像位置移动时,检测所述机器人模型或所述摄像部模型与所述工件模型或所述环境物模型的干扰;
非干扰位置检索部,其在所述干扰检测部检测出所述干扰时,检索所述目标位置在所述摄像部的视野内并且不发生所述干扰的非干扰位置;以及
第2摄像位置修正部,其根据所述非干扰位置来修正所述摄像位置,
所述程序生成部根据所述机器人模型将所述摄像部模型或所述工件模型定位在所述第2摄像位置修正部修正后的所述摄像位置时的该机器人模型的位置数据,生成所述动作程序。
8.根据权利要求1~3中任一项所述的编程装置,其特征在于,
所述编程装置还具备:摄像定时设定部,其设定所述摄像部对所述摄像对象位置进行拍摄的摄像动作的开始时间点以及结束时间点,
所述程序生成部生成在从所述摄像定时设定部所设定的所述开始时间点到所述结束时间点的期间使所述摄像部执行所述摄像动作的所述动作程序。
9.根据权利要求1~3中任一项所述的编程装置,其特征在于,
所述编程装置还具备:顺序决定部,其决定通过所述机器人模型将所述摄像部模型或所述工件模型移动到所述摄像部分别拍摄所述目标位置提取部提取出的多个所述目标位置的多个所述摄像位置的顺序,
所述模拟部按照所述顺序决定部所决定的所述顺序,将所述摄像部模型或所述工件模型分别移动到所述多个摄像位置。
10.根据权利要求9所述的编程装置,其特征在于,
所述顺序决定部随机地决定所述顺序,
每当所述顺序决定部决定所述顺序时,所述模拟部按照该顺序将所述摄像部模型或所述工件模型移动到所述多个摄像位置,
所述编程装置还具备:
移动路径长度计算部,其每当所述模拟部进行将所述摄像部模型或所述工件模型移动到所述多个摄像位置的动作时,计算所述摄像部模型或所述工件模型的移动路径的长度;以及
最短移动路径取得部,其从所述移动路径长度计算部计算出的多个所述移动路径的长度中取得最短的所述移动路径的长度,
所述程序生成部以通过所述最短的移动路径将所述摄像部或所述工件移动到所述多个摄像位置的方式生成所述动作程序。
11.一种方法,其是生成通过机器人移动摄像部或工件并通过该摄像部拍摄该工件的动作程序的方法,其特征在于,
所述方法具备以下步骤:
在虚拟空间中配置对所述工件建模而得的工件模型、对所述机器人建模而得的机器人模型以及对所述摄像部建模而得的摄像部模型;
接受提取条件的输入;
基于接受了输入的所述提取条件和所述工件模型的三维图像数据,按照该提取条件来提取与所述工件的摄像对象位置相对应的所述工件模型的目标位置;
通过所述机器人模型将所述摄像部模型或所述工件模型移动到所述摄像部模型对提取出的所述目标位置进行拍摄的摄像位置;
根据所述机器人模型将所述摄像部模型或所述工件模型定位在所述摄像位置时的该机器人模型的位置数据,生成用于所述摄像部对所述摄像对象位置进行拍摄的动作程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-135717 | 2017-07-11 | ||
JP2017135717A JP6571723B2 (ja) | 2017-07-11 | 2017-07-11 | 動作プログラムを生成するプログラミング装置、及びプログラム生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109227531A CN109227531A (zh) | 2019-01-18 |
CN109227531B true CN109227531B (zh) | 2020-05-29 |
Family
ID=64745768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810736981.4A Active CN109227531B (zh) | 2017-07-11 | 2018-07-06 | 生成动作程序的编程装置以及程序生成方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10434650B2 (zh) |
JP (1) | JP6571723B2 (zh) |
CN (1) | CN109227531B (zh) |
DE (1) | DE102018116245B4 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024028953A1 (ja) * | 2022-08-01 | 2024-02-08 | ファナック株式会社 | プログラミング装置 |
CN117140539B (zh) * | 2023-11-01 | 2024-01-23 | 成都交大光芒科技股份有限公司 | 基于空间坐标变换矩阵的机器人三维协同巡检方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10128686A (ja) * | 1996-10-30 | 1998-05-19 | Nippon Telegr & Teleph Corp <Ntt> | ロボットマニピュレータの制御方法およびロボットマニピュレータの制御装置 |
JP3175623B2 (ja) * | 1997-03-21 | 2001-06-11 | 株式会社デンソー | ロボットの制御装置 |
KR100929445B1 (ko) | 2003-03-25 | 2009-12-03 | 로제 가부시키가이샤 | 로봇 시뮬레이션장치 및 로봇 시뮬레이션 프로그램을 포함하는 기록매체 |
JP4266946B2 (ja) | 2005-03-17 | 2009-05-27 | ファナック株式会社 | オフライン教示装置 |
JP2007090481A (ja) | 2005-09-28 | 2007-04-12 | Fanuc Ltd | ロボットシミュレーション装置 |
JP2008296330A (ja) * | 2007-05-31 | 2008-12-11 | Fanuc Ltd | ロボットシミュレーション装置 |
JP4347386B2 (ja) * | 2008-01-23 | 2009-10-21 | ファナック株式会社 | 加工用ロボットプラグラムの作成装置 |
JP6016716B2 (ja) * | 2013-06-12 | 2016-10-26 | 三菱電機株式会社 | ビンピッキング性能評価装置及び方法 |
JP5845212B2 (ja) * | 2013-06-28 | 2016-01-20 | ファナック株式会社 | 視覚センサ及び力センサを備えたバリ取り装置 |
JP5850958B2 (ja) | 2014-01-24 | 2016-02-03 | ファナック株式会社 | ワークを撮像するためのロボットプログラムを作成するロボットプログラミング装置 |
JP6068423B2 (ja) * | 2014-11-28 | 2017-01-25 | ファナック株式会社 | 加工動作をロボットに教示するロボットプログラミング装置 |
WO2017033254A1 (ja) * | 2015-08-24 | 2017-03-02 | 株式会社日立製作所 | 移動ロボット運用システム、移動ロボット、及び対象物取り出し方法 |
JP6551184B2 (ja) * | 2015-11-18 | 2019-07-31 | オムロン株式会社 | シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム |
-
2017
- 2017-07-11 JP JP2017135717A patent/JP6571723B2/ja active Active
-
2018
- 2018-07-03 US US16/026,618 patent/US10434650B2/en active Active
- 2018-07-04 DE DE102018116245.6A patent/DE102018116245B4/de active Active
- 2018-07-06 CN CN201810736981.4A patent/CN109227531B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
DE102018116245A1 (de) | 2019-01-17 |
JP6571723B2 (ja) | 2019-09-04 |
JP2019018250A (ja) | 2019-02-07 |
US20190015986A1 (en) | 2019-01-17 |
DE102018116245B4 (de) | 2021-08-26 |
US10434650B2 (en) | 2019-10-08 |
CN109227531A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6223122B2 (ja) | 拡張現実のための自動基準フレーム較正 | |
CN112652016B (zh) | 点云预测模型的生成方法、位姿估计方法及其装置 | |
US10888998B2 (en) | Method and device for verifying one or more safety volumes for a movable mechanical unit | |
US10724963B2 (en) | Device and method for calculating area to be out of inspection target of inspection system | |
CN109298778A (zh) | 追踪系统及其方法 | |
CN109227531B (zh) | 生成动作程序的编程装置以及程序生成方法 | |
JP2020012669A (ja) | 物体検査装置、物体検査システム、及び検査位置を調整する方法 | |
JP2019060742A (ja) | 位置検出装置およびプログラム | |
JP6823018B2 (ja) | 協調動作支援装置 | |
JP2020179441A (ja) | 制御システム、情報処理装置および制御方法 | |
US20180231474A1 (en) | Apparatus and method for generating operation program of inspection system | |
JP5198078B2 (ja) | 計測装置および計測方法 | |
TW202235239A (zh) | 調整參數的裝置、機器人系統、方法及電腦程式 | |
JP7447568B2 (ja) | シミュレーション装置およびプログラム | |
US20230356405A1 (en) | Robot control system, and control device | |
CN110900606B (zh) | 一种基于小型机械臂手眼联动系统及其控制方法 | |
Landa-Hurtado et al. | Kinect-based trajectory teaching for industrial robots | |
TW202324009A (zh) | 產業機械、用於驗證產業機械之動作之裝置及方法 | |
CN118804824A (zh) | 对机器人进行示教的装置、对机器人进行示教的方法及对机器人进行示教的程序 | |
WO2022181500A1 (ja) | 視覚センサの出力から得られる3次元位置情報を用いるシミュレーション装置 | |
JP2019036072A (ja) | 画像処理方法、画像処理装置、および製造方法 | |
US20230356401A1 (en) | Method of Controlling a Construction Robot and Construction Robot | |
JP2023011319A (ja) | 調整支援システムおよび調整支援方法 | |
JP2021164135A (ja) | 映像管理支援システムおよび映像管理支援方法 | |
JP3790253B2 (ja) | 動画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |