CN121925331A - 控制装置、控制系统、机器人系统、控制方法及计算机程序 - Google Patents

控制装置、控制系统、机器人系统、控制方法及计算机程序

Info

Publication number
CN121925331A
CN121925331A CN202380102680.5A CN202380102680A CN121925331A CN 121925331 A CN121925331 A CN 121925331A CN 202380102680 A CN202380102680 A CN 202380102680A CN 121925331 A CN121925331 A CN 121925331A
Authority
CN
China
Prior art keywords
shooting
height
robot
control
imaging
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.)
Pending
Application number
CN202380102680.5A
Other languages
English (en)
Inventor
脇本健太
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nikon Corp
Original Assignee
Nikon Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nikon Corp filed Critical Nikon Corp
Publication of CN121925331A publication Critical patent/CN121925331A/zh
Pending legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

控制装置基于由拍摄系统从第1拍摄高度对容器中收纳的第1物体组进行拍摄而得到的拍摄结果,生成第1控制信号,该第1控制信号用于控制机器人,使得保持装置接近第1物体组中的一个物体即第1物体,以对该第1物体进行保持,基于第1控制信号使得保持装置接近第1物体,在被保持装置保持的第1物体在容器外被释放后,控制装置基于拍摄系统从低于第1拍摄高度的第2拍摄高度对容器中收纳的第2物体组进行拍摄而得到的拍摄结果,生成第2控制信号,该第2控制信号用于控制机器人,使得保持装置接近第2物体组中的一个物体即第2物体,以对该第2物体进行保持。

Description

控制装置、控制系统、机器人系统、控制方法及计算机程序
技术领域
本发明例如涉及能生成用于控制机器人的控制信号的控制装置、控制系统、机器人系统、控制方法及计算机程序的技术领域。
背景技术
专利文献1中记载了一种控制装置的一个示例,该控制装置基于拍摄系统对物体的拍摄结果,控制设有可对物体进行处理的处理装置的机器人。在这样的控制装置中,要求拍摄系统能够恰当地对物体进行拍摄。
专利文献1:美国专利申请公开第2013/0230235号说明书
发明内容
根据第1方式,提供一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,所述控制装置包括:生成所述控制信号的运算装置;以及输出由所述运算装置生成的所述控制信号的通信装置,所述运算装置基于由所述拍摄系统从第1拍摄高度对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,使得所述保持装置接近所述第1对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行保持,基于所述第1控制信号使得所述保持装置接近所述第1对象物体,被所述保持装置保持的所述第1对象物体从所述容器中被搬出,在所述容器外被所述保持装置释放后,基于所述拍摄系统从低于所述第1拍摄高度的第2拍摄高度对包括所述容器中收纳的所述第1对象物体组中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2 控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
根据第2方式,提供一种控制系统,包括由第1方式提供的控制装置以及所述拍摄系统。
根据第3方式,提供一种机器人系统,包括由第1方式提供的控制装置、所述拍摄系统以及所述机器人。
根据第4方式,提供一种控制方法,是生成用于控制机器人的控制信号的控制方法,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,所述控制方法包括:基于由所述拍摄系统从第1拍摄高度对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,使得所述保持装置接近所述第1对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行保持;以及基于所述第1控制信号使得所述保持装置接近所述第1对象物体,被所述保持装置保持的所述第1对象物体从所述容器中被搬出,在所述容器外被所述保持装置释放后,基于所述拍摄系统从低于所述第1拍摄高度的第2拍摄高度对包括所述容器中收纳的所述第1对象物体组中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2 控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
根据第5方式,提供一种计算机程序,该计算机程序使计算机执行由第4方式提供的控制方法。
根据第6方式,提供一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行处理的处理装置和对所述对象物体进行拍摄的拍摄系统,并且使所述处理装置和所述拍摄系统移动,所述控制装置包括:生成所述控制信号的运算装置;以及输出由所述运算装置生成的所述控制信号的通信装置,所述运算装置基于所述拍摄系统对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,使得所述拍摄系统移动至对所述对象物体进行拍摄的拍摄高度,基于所述拍摄系统在所述拍摄高度对包括所述容器中收纳的所述第1对象物体组中的至少一部分所述对象物体在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行所述处理。
根据第7方式,提供一种控制系统,包括由第6方式提供的控制装置以及所述拍摄系统。
根据第8方式,提供一种机器人系统,包括由第6方式提供的控制装置、所述拍摄系统以及所述机器人。
根据第9方式,提供一种控制方法,是生成用于控制机器人的控制信号的控制方法,该机器人设有能对对象物体进行处理的处理装置和对所述对象物体进行拍摄的拍摄系统,并且使所述处理装置和所述拍摄系统移动,所述控制方法包括:基于所述拍摄系统对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,使得所述拍摄系统移动至对所述对象物体进行拍摄的拍摄高度,基于所述拍摄系统在所述拍摄高度对包括所述容器中收纳的所述第1对象物体组中的至少一部分所述对象物体在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行所述处理。
根据第10方式,提供一种计算机程序,该计算机程序使计算机执行由第9方式提供的控制方法。
根据第11方式,提供一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,所述控制装置包括:生成所述控制信号的运算装置;以及输出由所述运算装置生成的所述控制信号的通信装置,容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持,所述机器人被控制为使得对所述第1对象物体进行保持的所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的位置,所述运算装置基于在随所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的所述位置而产生的所述拍摄系统的移动路径上,所述拍摄系统对包括所述容器中收纳的多个所述对象物体中至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于从所述保持装置释放所述第1对象物体后的位置开始控制所述机器人。
根据第12方式,提供一种控制系统,包括由第11方式提供的控制装置以及所述拍摄系统。
根据第13方式,提供一种机器人系统,包括由第11方式提供的控制装置、所述拍摄系统以及所述机器人。
根据第14方式,提供一种控制方法,是生成用于控制机器人的控制信号的控制方法,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,所述控制方法包括:容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持,所述机器人被控制为使对所述第1对象物体进行保持的所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的位置,所述控制方法包括:基于在随所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的所述位置而产生的所述拍摄系统的移动路径上,所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于从所述保持装置释放所述第1对象物体后的位置开始控制所述机器人。
根据第15方式,提供一种计算机程序,该计算机程序使计算机执行由第14方式提供的控制方法。
根据第16方式,提供一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,所述控制装置包括:生成所述控制信号的运算装置;以及输出由所述运算装置生成的所述控制信号的通信装置,所述运算装置在容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持后、被所述保持装置保持的所述第1对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内,基于由所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于在所述保持装置释放所述第1对象物体后控制所述机器人。
根据第17方式,提供一种控制系统,包括由第16方式提供的控制装置以及所述拍摄系统。
根据第18方式,提供一种机器人系统,包括由第16方式提供的控制装置、所述拍摄系统以及所述机器人。
根据第19方式,提供一种控制方法,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,所述控制方法包括:在容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持后、被所述保持装置保持的所述第1对象物体从所述容器中搬出并在所述容器外被所述保持装置释放为止的期间内,基于由所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于在所述保持装置释放所述第1对象物体后控制所述机器人。
根据第20方式,提供一种计算机程序,该计算机程序使计算机执行由第19方式提供的控制方法。
根据第21方式,提供一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行处理的处理装置和对所述对象物体进行拍摄的拍摄系统,并且使所述处理装置和所述拍摄系统移动,所述控制装置包括:生成所述控制信号的运算装置;以及输出由所述运算装置生成的所述控制信号的通信装置,所述运算装置基于包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,以使得所述拍摄系统移动至对所述对象物体进行拍摄的拍摄高度,基于所述拍摄系统在所述拍摄高度对包括所述容器中收纳的所述第1对象物体组的至少一部分所述对象物体在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体,以对所述一个对象物体进行所述处理。
根据第22方式,提供一种控制系统,包括由第21方式提供的控制装置以及所述拍摄系统。
根据第23方式,提供一种机器人系统,包括由第21方式提供的控制装置、所述拍摄系统以及所述机器人。
根据第24方式,提供一种控制方法,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,所述控制方法包括:在容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持后、被所述保持装置保持的所述第1对象物体从所述容器中搬出并在所述容器外被所述保持装置释放为止的期间内,基于由所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于在所述保持装置释放所述第1对象物体后控制所述机器人。
根据第25方式,提供一种计算机程序,该计算机程序使计算机执行由第24方式提供的控制方法。
本发明的作用和其他好处由下面说明的实施方式来明确。
附图说明
图1是表示本实施方式的机器人系统的结构的框图。
图2是表示本实施方式的机器人的外观的侧视图。
图3是表示本实施方式的控制装置的结构的框图。
图4是表示机器人控制处理的流程的流程图。
图5(a)至图5(d)分别是示出用于保持在支承面上移动的载置装置所载置的工件的保持处理进行期间中的某个时刻下的机器人与工件之间的位置关系的侧视图。
图6(a)至图6(d)分别是示出用于将工件配置到在支承面上移动的载置装置上的释放处理进行期间中的某个时刻下的机器人与工件之间的位置关系的侧视图。
图7(a)至图7(b)分别是示出用于保持在支承面上静止的载置装置所载置的工件的保持处理进行期间中的某个时刻下的机器人与工件之间的位置关系的侧视图,图8(c)至图8(e)分别是示出用于将工件配置到在支承面上静止的载置装置上的释放处理进行期间中的某个时刻下的机器人与工件之间的位置关系的侧视图。
图8(a)至图8(e)分别是表示用于将载置在载置装置上的多个工件逐个依次进行保持的保持处理和用于将多个工件逐个依次配置在载置装置上的释放处理进行期间中的某个时刻下的机器人与工件的位置关系的侧视图。
图9(a)至图9(e)分别是表示用于将载置在载置装置上的多个工件逐个依次进行保持的保持处理和用于将多个工件逐个依次配置在载置装置上的释放处理进行期间中的某个时刻下的机器人与工件的位置关系的侧视图。
图10是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图11是表示基于拍摄系统的视野而设定的拍摄允许范围的第1示例的剖视图。
图12是表示基于拍摄系统的视野而设定的拍摄允许范围的第2示例的剖视图。
图13(a)表示左摄像头的视野及部分视野与由左摄像头生成的图像之间的关系,图13(b)表示右摄像头的视野及部分视野与由右摄像头生成的图像之间的关系。
图14(a)表示对包括在基于搜索区域而确定的拍摄允许范围内的对象物体进行拍摄的拍摄装置以及该拍摄装置生成的图像,图14(b)表示对不包含在基于搜索区域而确定的拍摄允许范围内的对象物体进行拍摄的拍摄装置以及该拍摄装置生成的图像。
图15是表示包括容器中收纳的多个对象物体在内的对象物体组的高度的剖视图。
图16(a)和图16(b)分别是表示计算对象物体组的高度的方法的一个示例的剖视图。
图17是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图18(a)和图18(b)分别是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图19是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图20(a)和图20(b)分别是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图21(a)和图21(b)分别是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图22(a)和图22(b)分别是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图23是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图24是表示第1变形例中的机器人控制处理的流程的流程图。
图25(a)至图25(c)分别是表示在末端执行器4保持了对象物体后对容器中收纳的对象物体进行拍摄的拍摄系统2的剖视图。
图26(a)和图26(b)分别是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图27(a)和图27(b)分别是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图28(a)和图28(b)分别是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图29是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图30是表示对对象物体进行拍摄的拍摄系统的剖视图。
图31是表示对对象物体的重量进行测量的重量传感器的剖视图。
图32是表示配置有用于检测对象物体的物体检测传感器的容器的剖视图。
图33是表示配置有标记的容器的剖视图。
图34(a)及图34(b)分别是概念性地表示调整拍摄系统的拍摄水平位置的处理的剖视图。
图35(a)及图35(b)分别是概念性地表示调整拍摄系统的拍摄姿态的处理的剖视图。
图36是表示设在与机器人不同部分的拍摄系统的侧视图。
图37(a)和图37(b)分别是表示容器中收纳的多个对象物体和拍摄系统的剖视图。
图38是表示具备聚焦调整光学系统的拍摄系统的框图。
图39是表示具备测量系统的机器人系统的结构的框图。
具体实施方式
接着,对控制装置、控制系统、机器人系统、控制方法和计算机程序的实施方式进行说明。以下,使用机器人系统SYS,对控制装置、控制系统、机器人系统、控制方法和计算机程序的实施方式进行说明。
(1)机器人系统SYS的结构
首先,对机器人系统SYS的结构进行说明。
(1-1)机器人系统SYS的整体结构
首先,一边参照图1一边说明机器人系统SYS的整体结构。图1是表示机器人系统SYS的整体结构的框图。
如图1所示,机器人系统SYS包括机器人1、拍摄系统2、控制装置3和末端执行器4。此外,拍摄系统2也可以称为拍摄单元。
机器人1是能够对对象物体OBJ进行规定处理的装置。图2表示机器人1的一例。图2是表示机器人1的外观的侧视图。如图2所示,机器人1例如包括基台11、机械臂12和机器人控制装置13。
基台11是作为机器人1的基础的构件。基台11配置于地面等支承面S。基台11也可以固定于支承面S。或者,基台11也可以是能够相对于支承面S移动。作为一例,基台11也可以是能够在支承面S上自行移动。在该情况下,基台11也可以设置于自动搬运车(AGV:Automatic Guided Vehicle)。在基台11设置于自动搬运车的情况下,自动搬运车也可以视为机器人1的一部分。或者,自动搬运车(AGV:Automatic Guided Vehicle)也可以作为基台11来使用。另外,图2表示基台11固定于支承面S的例子。
机械臂12安装于基台11。机械臂12是通过关节122连接多个连杆121的装置。在关节122中内置有致动器。连杆121通过内置于关节122中的致动器,可以围绕关节122所规定的轴进行旋转。另外,至少一个连杆121可以沿着连杆121延伸的方向伸缩。另外,也可以将包含多个连杆121经由关节122连接而得的装置和基台11在内的装置称为机械臂12。
机械臂12上安装有末端执行器4。即,机器人1上安装有末端执行器4。在图2所示的例子中,末端执行器4安装在机械臂12的前端。末端执行器4能够通过机械臂12的运动而移动。即,机械臂12使末端执行器4移动。即,机器人1使末端执行器4移动。
末端执行器4是对对象物体OBJ进行规定处理(换言之,规定动作)的装置。对对象物体OBJ进行规定处理的末端执行器4也可以称为处理装置。
例如,作为规定处理的一个示例,末端执行器4可以进行用于保持对象物体OBJ的保持处理。在该情况下,末端执行器4可以被视为对末端执行器4应保持的对象物体OBJ进行保持处理。能够进行保持处理的末端执行器4也可以称为保持装置。
例如,保持对象物体OBJ可以包括夹持对象物体OBJ。例如,保持对象物体OBJ可以包括使用作为末端执行器4的一个示例的后述的机械夹爪来夹持对象物体OBJ。保持对象物体OBJ可以包括吸附对象物体OBJ。例如,保持对象物体OBJ可以包括使用作为末端执行器4的一个示例的后述的真空夹爪来吸附(真空吸附)对象物体OBJ。例如,保持对象物体OBJ可以包括使用作为末端执行器4的一个示例的后述的磁吸式夹爪来吸附对象物体OBJ。
例如,作为规定处理的一个示例,末端执行器4可以执行释放(即,分离)所保持的对象物体OBJ的释放处理(换言之,释放动作)。在该情况下,末端执行器4可以被视为对末端执行器4所保持的对象物体OBJ进行释放处理。能够进行释放处理的末端执行器4也可以称为释放装置。
作为能够进行保持处理和释放处理的末端执行器4的一例,可以举出机械夹爪。机械夹爪是一种能够通过使用多根(例如2根、3根或4根)手指构件或爪构件来物理地夹入对象物体OBJ从而保持对象物体OBJ的末端执行器4。作为能够进行保持处理和释放处理的末端执行器4的其它示例,可以举出真空夹爪。真空夹爪是能够通过真空吸附对象物体OBJ来保持对象物体OBJ的末端执行器4。作为能够进行保持处理和释放处理的末端执行器4的其它示例,可以举出磁吸式夹爪。图2表示末端执行器4为机械夹爪的例子。然而,能进行保持处理和释放处理的末端执行器4也可以是其它现有的末端执行器。
作为规定处理的一个示例,机器人1可以使用能够进行保持处理和释放处理的末端执行器4,来进行用于将对象物体OBJ配置在期望位置的配置处理(换言之,配置动作)。例如,机器人1可以使用末端执行器4来保持第1对象物体OBJ,然后进行用于将末端执行器4保持的第1对象物体OBJ配置在与第1对象物体OBJ不同的第2对象物体OBJ的期望位置的配置处理。该情况下,末端执行器4可以视为对末端执行器4要配置第1对象物体OBJ的第2对象物体OBJ进行释放处理。同样地,末端执行器4可以视为对末端执行器4应释放的第1对象物体OBJ进行释放处理。
作为配置处理(换言之,配置动作)的一个具体示例,机器人1可以使用能够进行保持处理和释放处理的末端执行器4,来进行用于将第1对象物体OBJ嵌入到与第1对象物体OBJ不同的第2对象物体OBJ中的嵌入处理(换言之,嵌入动作)。例如,机器人1可以使用末端执行器4来保持第1对象物体OBJ,然后进行用于将末端执行器4保持的第1对象物体OBJ嵌入到与第1对象物体OBJ不同的第2对象物体OBJ中的嵌入处理。该情况下,末端执行器4可以视为对末端执行器4要将第1对象物体OBJ嵌入的第2对象物体OBJ进行释放处理。同样地,末端执行器4可以视为对末端执行器4应释放的第1对象物体OBJ进行释放处理。另外,嵌入处理也可以称为加工处理。
作为一个示例,嵌入处理可以包含用于将第1对象物体OBJ嵌入(即,插入)到形成于第2对象物体OBJ的孔中的处理。例如,机器人1可以使用末端执行器4来保持第1对象物体OBJ,然后进行用于将末端执行器4保持的第1对象物体OBJ嵌入(即,插入)到形成于第2对象物体OBJ的孔中的嵌入处理。该情况下,末端执行器4可以视为对形成有末端执行器4要将第1对象物体OBJ嵌入(即,插入)的孔的第2对象物体OBJ进行释放处理。同样地,末端执行器4可以视为对末端执行器4应释放的第1对象物体OBJ进行释放处理。
作为配置处理(换言之,配置动作)的一个具体示例,机器人1可以使用能够进行保持处理和释放处理的末端执行器4,来进行用于将第1对象物体OBJ粘贴到与第1对象物体OBJ不同的第2对象物体OBJ的粘贴处理(换言之,粘贴动作)。例如,机器人1可以使用末端执行器4来保持第1对象物体OBJ,然后进行用于将末端执行器4保持的第1对象物体OBJ粘贴到与第1对象物体OBJ不同的第2对象物体OBJ的粘贴处理。该情况下,末端执行器4可以视为对末端执行器4要粘贴第1对象物体OBJ的第2对象物体OBJ进行释放处理。同样地,末端执行器4可以视为对末端执行器4应释放的第1对象物体OBJ进行释放处理。另外,粘贴处理也可以称为加工处理。
作为配置处理(换言之,配置动作)的一个具体示例,机器人1可以使用能够进行保持处理和释放处理的末端执行器4,来进行用于将第1对象物体OBJ粘接到与第1对象物体OBJ不同的第2对象物体OBJ的粘接处理(换言之,粘接动作)。例如,机器人1可以使用末端执行器4来保持第1对象物体OBJ,然后进行用于将末端执行器4保持的第1对象物体OBJ粘接到与第1对象物体OBJ不同的第2对象物体OBJ的粘接处理。该情况下,末端执行器4可以视为对末端执行器4要粘接第1对象物体OBJ的第2对象物体OBJ进行释放处理。同样地,末端执行器4可以视为对末端执行器4应释放的第1对象物体OBJ进行释放处理。此外,粘接处理可以称为加工处理。
作为配置处理(换言之,配置动作)的一个具体示例,机器人1可以使用能够进行保持处理和释放处理的末端执行器4,来进行用于将第1对象物体OBJ焊接到与第1对象物体OBJ不同的第2对象物体OBJ的焊接处理(换言之,焊接动作)。例如,机器人1可以使用末端执行器4来保持第1对象物体OBJ,然后进行用于将末端执行器4保持的第1对象物体OBJ焊接到与第1对象物体OBJ不同的第2对象物体OBJ的焊接处理。该情况下,末端执行器4可以视为对末端执行器4要焊接第1对象物体OBJ的第2对象物体OBJ进行释放处理。同样地,末端执行器4可以视为对末端执行器4应释放的第1对象物体OBJ进行释放处理。此外,焊接处理可以称为加工处理。
作为配置处理(换言之,配置动作)的一个具体示例,机器人1可以使用能够进行保持处理和释放处理的末端执行器4,来进行用于将能作为螺钉发挥功能的第1对象物体OBJ拧入到与第1对象物体OBJ不同的第2对象物体OBJ中所形成的螺钉孔中的螺钉紧固处理(换言之,螺钉紧固动作)。例如,机器人1可以使用末端执行器4来保持第1对象物体OBJ,然后进行用于将末端执行器4保持的第1对象物体OBJ拧入到与第1对象物体OBJ不同的第2对象物体OBJ的螺钉紧固处理。该情况下,末端执行器4可以视为对末端执行器4要拧紧第1对象物体OBJ的第2对象物体OBJ进行释放处理。同样地,末端执行器4可以视为对末端执行器4应释放的第1对象物体OBJ进行释放处理。另外,螺钉紧固处理也可以称为加工处理。
作为配置处理(换言之,配置动作)的一个具体例,机器人1可以使用能够进行保持处理和释放处理的末端执行器4,来进行用于废弃对象物体OBJ的处理(换言之,废弃动作)。例如,机器人1可以使用末端执行器4保持对象物体OBJ,之后进行用于将末端执行器4所保持的对象物体OBJ释放(即,配置)到用于废弃对象物体OBJ的废弃场所的废弃处理。在该情况下,末端执行器4可以视为对末端执行器4要废弃的对象物体OBJ进行释放处理。
例如,末端执行器4可以对多个对象物体OBJ的每一个进行规定处理。也就是说,末端执行器4可以对多个对象物体OBJ依次进行规定处理。该情况下,机器人1可以使末端执行器4移动到末端执行器4能对第1对象物体OBJ进行规定处理的第1位置,在末端执行器4移动到第1位置后,末端执行器4对第1对象物体OBJ进行规定处理。之后,机器人1可以使末端执行器4移动到末端执行器4能对与第1对象物体OBJ不同的第2对象物体OBJ进行规定处理的第2位置,在末端执行器4移动到第2位置后,末端执行器4对第2对象物体OBJ进行规定处理。
例如,末端执行器4可以对单个对象物体OBJ的多个部分的每一个进行规定处理。也就是说,末端执行器4可以对单个对象物体OBJ的多个部分依次进行规定处理。该情况下,机器人1可以使末端执行器4移动到末端执行器4能对对象物体OBJ的第1部分进行规定处理的第3位置,在末端执行器4移动到第3位置后,末端执行器4对对象物体OBJ的第1部分进行规定处理。之后,机器人1可以使末端执行器4移动到末端执行器4能对对象物体OBJ的第2部分进行规定处理的第4位置,在末端执行器4移动到第4位置后,末端执行器4对对象物体OBJ的第2部分进行规定处理。
作为对单个对象物体OBJ的多个部分的每一个进行规定处理的动作的一个示例,机器人1可以对形成有多个孔的第2对象物体OBJ反复进行将第1对象物体OBJ嵌入到各孔中的嵌入处理。此外,末端执行器4进行规定处理的对象物体OBJ的一部分可以被称为对象部分或对象构件。例如,第2对象物体OBJ中形成有各孔的各部分(各构件)可以被称为对象部分或对象构件。此外,在对象物体OBJ由多个部件构成的情况下,各部件可以被称为对象部分或对象构件。在对象物体OBJ由多个构件构成的情况下,各构件可以被视为对象部分或对象构件。
如图2所示,由末端执行器4进行规定处理的对象物体OBJ可以包含工件W。工件W可以包括例如用于制造所期望的产品的部件或构件。工件W可以包括例如被加工以用于制造所期望的产品的部件或构件。工件W可以包括例如被搬运以用于制造所期望的产品的部件或构件。工件W可以包含例如通过用于制造所期望的产品的搬运而移动的部件或构件。工件W可以包含例如为了制造所期望的产品而移动的部件或构件。
如图2所示,由末端执行器4进行规定处理的对象物体OBJ可以包含载置工件W的载置装置T。作为载置装置T的一例,可列举出容器(收纳箱)CB。容器CB可以是包括底壁BS和从底壁BS向上方突出的侧壁SS,在由底壁BS和侧壁SS包围的收纳空间SP中,工件W载置在底壁BS上的载置装置T。容器CB可以是包括底壁BS和从底壁BS向上方突出的侧壁SS,能在由底壁BS和侧壁SS包围的收纳空间SP中收纳工件W的载置装置T。然而,容器CB也可以不具备侧壁SS。不具备侧壁SS的容器CB可以称为托盘。此外,载置装置T可以是托盘。此外,载置装置T不限于容器CB、托盘,也可以是能载置工件W的现有物体。另外,载置装置T也可以称为载置构件。载置装置T也可以配置在支承面S上。载置装置T也可以固定于支承面S。或者,载置装置T的至少一部分也可以能够相对于支承面S而移动。
作为载置装置T的至少一部分可相对于支承面S移动的第1示例,可举出载置装置T由可使载置装置T移动的(换言之,可传送的)传送装置来支承的示例。作为传送装置的第1示例,可举出能在支承面S上自行移动的传送装置。该情况下,载置装置T可以载置在能自行移动的传送装置上,也可以由能自行移动的传送装置来保持。此外,能自行移动的传送装置可以被称为自动搬运车(AGV:Automatic Guided Vehicle)。作为传送装置的第2示例,可举出带式传送机。该情况下,载置装置T可以载置在作为带式传送机的一部分且能相对于支承面S移动的传送带上。作为传送装置的第3示例,可举出能在支承面S上飞行的飞行装置。该情况下,载置装置T可以载置在能飞行的传送装置上,也可以由能飞行的传送装置来保持。此外,能飞行的传送装置可以被称为无人航空器或无人机。作为传送装置的第4示例,可举出与机械臂12不同且安装有能保持载置装置T的末端执行器的其他机械臂。该情况下,载置装置T可以由安装于其他机械臂的末端执行器来保持。
作为载置装置T的至少一部分能相对于支承面S移动的第2示例,可举出载置装置T本身能相对于支承面S移动的示例。作为能移动的载置装置T的第1示例,可举出能在支承面S上自行移动的载置装置T。此外,能自行移动的载置装置T可以被称为自动搬运车(AGV:Automatic Guided Vehicle)。作为能移动的载置装置T的第2示例,可举出带式传送机。该情况下,作为带式传送机的一部分且载置有工件W的传送带可以相对于支承面S移动。作为能移动的载置装置T的第3示例,可举出能在支承面S上飞行的载置装置T。该情况下,载置装置T可以通过在支承面S上飞行,从而能相对于支承面S移动。此外,能飞行的载置装置T可以被称为无人航空器或无人机。作为能移动的载置装置T的第4示例,可举出与机械臂12不同且安装有能保持工件W的末端执行器的其他机械臂。该情况下,安装于其他机械臂的末端执行器可以相对于支承面S移动。
当传送装置使载置装置T移动时,载置装置T上所载置的工件W也相对于支承面S移动。因此,能移动载置装置T的传送装置可以视为等效于能传送工件W的传送装置。同样地,当载置装置T移动时,载置装置T上所载置的工件W也相对于支承面S移动。因此,能移动的载置装置T可视为等效于能移动工件W的移动装置(换言之,能传送工件W的传送装置)。另外,图2示出了载置装置T能够在支承面S上自行移动的示例。
另外,在载置装置T的至少一部分能相对于支承面S移动的情况下,载置有工件W的第1载置装置T可以载置于能相对于支承面S移动的第2载置装置T。该情况下,包含第1载置装置T和第2载置装置T的装置可以被称为载置装置T。
然而,对象物体OBJ也可以不包含载置装置T。另外,工件W可以不载置于载置装置T,也可以没有载置装置T。例如,工件W也可以载置在支承面S上。
在对象物体OBJ包含工件W和载置装置T的情况下,上述保持处理可以包括对处于静止或正在移动的载置装置T所载置的工件W进行保持的处理。上述保持处理也可以包括对载置于支承面S的工件W进行保持的处理。上述释放处理可以包括对由末端执行器4保持的工件W进行释放以将末端执行器4保持的工件W配置在处于静止或正在移动的载置装置T上的期望位置的处理。上述释放处理可以包括对由末端执行器4保持的工件W进行释放以将末端执行器4保持的工件W配置在支承面S上的期望位置的处理。上述释放处理可以包括对由末端执行器4保持的第1工件W进行释放以将末端执行器4保持的第1工件W嵌入到处于静止或正在移动的载置装置T上载置的第2工件W中的处理。上述释放处理可以包括对由末端执行器4保持的第1工件W进行释放以将末端执行器4保持的第1工件W嵌入到载置在支承面S上的第2工件W中的处理。上述释放处理可以包括对由末端执行器4保持的第1工件W进行释放以将末端执行器4保持的第1工件W嵌入(即,插入)到处于静止或正在移动的载置装置T上载置的第2工件W上所形成的孔中的处理。上述释放处理可以包括对由末端执行器4保持的第1工件W进行释放以将末端执行器4保持的第1工件W嵌入(即,插入)到载置在支承面S上的第2工件W上所形成的孔中的处理。此外,对象物体OBJ可以包括工件W或载置装置T。
机器人控制装置13控制机器人1的动作。
具体而言,机器人控制装置13可以控制机械臂12的动作。例如,机器人控制装置13可以控制机械臂12的动作,以使得所期望的连杆121绕所期望的关节122规定的轴进行旋转。例如,机器人控制装置13可以控制机械臂12的动作,以使得安装在机械臂12的末端执行器4位于所期望位置。例如,机器人控制装置13可以控制机械臂12的动作,以使得安装在机械臂12的末端执行器4移动到所期望位置。
机器人控制装置13除了控制机器人1的动作之外,还可以控制安装在机器人1上的末端执行器4的动作。例如,机器人控制装置13可以控制末端执行器4的动作,以使得末端执行器4在所期望的定时保持对象物体OBJ。即,机器人控制装置13可以控制末端执行器4的动作,以使得末端执行器4在所期望的定时进行保持处理。例如,机器人控制装置13可以控制末端执行器4的动作,以使得末端执行器4在所期望的定时释放所保持的对象物体OBJ。即,机器人控制装置13可以控制末端执行器4的动作,以使得末端执行器4在所期望的定时进行释放处理。在末端执行器4是机械夹爪的情况下,机器人控制装置13也可以控制机械夹爪开闭的定时。在末端执行器4是真空夹爪的情况下,机器人控制装置13也可以控制真空夹爪的真空装置导通/断开的定时。在末端执行器4是磁吸式夹爪的情况下,机器人控制装置13也可以控制磁吸式夹爪的磁吸装置导通/断开的定时。
另外,图2表示机器人1为机械臂12(即,垂直多关节型机器人)的例子。但是,机器人1也可以是与垂直多关节型机器人不同的机器人。例如,机器人1也可以是SCARA机器人(即,水平多关节型机器人)。例如,机器人1也可以是并联连杆机器人。例如,机器人1也可以是具有两个机械臂12的双臂型机器人。例如,机器人1也可以是正交坐标型机器人。例如,机器人1也可以是圆筒坐标型机器人。机器人1也可以称为可动装置。除了机器人1之外,可动装置还可以包含自动搬运车和无人航空器中的至少一方。例如,也可以在自动搬运车和无人航空器的至少一方设置机器人1。
回到图1,拍摄系统2对对象物体OBJ进行拍摄。为了拍摄对象物体OBJ,拍摄系统2包括拍摄装置21、拍摄装置22和投影装置23。此外,拍摄系统2也可以称为拍摄部。
拍摄装置21是能够拍摄对象物体OBJ的摄像头。本实施方式中,拍摄装置21是单目摄像头。拍摄装置21通过拍摄对象物体OBJ,从而生成图像数据IMG_2D。即,拍摄装置21生成对象物体OBJ的拍摄结果即图像数据IMG_2D。拍摄装置21生成的图像数据IMG_2D从拍摄装置21输出到控制装置3。其结果是,控制装置3获取由拍摄装置21拍摄对象物体OBJ而获取到的图像数据IMG_2D。本实施方式中,拍摄装置21是单目摄像头。具体而言,拍摄装置21能够使用单目摄像头(换言之,拍摄元件)来拍摄对象物体OBJ。具体而言,由于拍摄装置21是单目摄像头,所以拍摄装置21生成由单目摄像头生成的一个图像数据,以作为图像数据IMG_2D。该情况下,相当于一个图像数据(即,表示一幅图像)的图像数据IMG_2D可以被称为单目图像数据。另外,拍摄装置21不限于单目摄像头。拍摄装置21可以是能够使用两个单目摄像头对对象物体OBJ进行拍摄的立体摄像头,也可以包括三个以上的单目摄像头。另外,拍摄装置21也可以是光场摄像头、预定位摄像头以及多光谱摄像头中的至少一个。
与拍摄装置21同样地,拍摄装置22是能够对对象物体OBJ进行拍摄的摄像头。在本实施方式中,拍摄装置22是立体摄像头。具体而言,拍摄装置22是能够使用两个单目摄像头(换言之,两个拍摄元件)对对象物体OBJ进行拍摄的立体摄像头。拍摄装置22通过拍摄对象物体OBJ,从而生成图像数据IMG_3D。即,拍摄装置22生成对象物体OBJ的拍摄结果即图像数据IMG_3D。具体地,由于拍摄装置22是立体摄像头,拍摄装置22生成包括由两个单目摄像头分别生成的两个图像数据在内的图像数据IMG_3D。该情况下,包含两个图像数据(即,表示两幅图像)的图像数据IMG_3D可以被称为立体图像数据。拍摄装置22生成的图像数据IMG_3D从拍摄装置22输出到控制装置3。其结果是,控制装置3获取由拍摄装置22拍摄对象物体OBJ而获取到的图像数据IMG_3D。另外,拍摄装置22不限于立体摄像头。拍摄装置22可以是单目摄像头,也可以包括3个以上的单目摄像头。另外,拍摄装置22也可以是光场摄像头、预定位摄像头以及多光谱摄像头中的至少一个。
投影装置23是能够向对象物体OBJ照射投影光的装置。特别是,投影装置23是通过向对象物体OBJ照射投影光,从而能够向对象物体OBJ投影所期望的投影图案的装置。另外,投影图案也可以称为向对象物体OBJ投影的光的强度分布。如果投影的光的强度分布发生变化,则投影图案也会发生变化。所期望的投影图案可以包括例如随机图案。随机图案可以是每个单位照射区域具有不同图案的投影图案。随机图案也可以包括随机点图案。所期望的投影图案可以包括例如一维或二维栅格图案。所期望的投影图案可以包括例如线形的图案。所期望的投影图案可以包括例如条纹状的图案。所期望的投影图案可包括其它投影图案。拍摄装置22对投影了来自投影装置23的投影图案的对象物体OBJ进行拍摄。在该情况下,在图像数据IMG_3D所示的图像中,拍入投影了投影图案的对象物体OBJ。另一方面,拍摄装置21也可以不对投影了投影图案的对象物体OBJ进行拍摄。拍摄装置21也可以对未投影有投影图案的对象物体OBJ进行拍摄。在该情况下,在图像数据IMG_2D所示的图像中,可以不拍入投影了投影图案的对象物体OBJ。在图像数据IMG_2D所示的图像中,也可以拍入未投影有投影图案的对象物体OBJ。另外,用于将所期望的投影图案投影到对象物体OBJ上的投影光可以称为图案光,也可以称为结构光。在这种情况下,投影光可以包含图案光,也可以包含结构光。另外,投影光也可以是均匀的投影图案(即,均匀的强度分布)的光。
另外,投影装置23也可以视为通过向对象物体OBJ照射投影光,从而利用投影光来照明对象物体OBJ。在这种情况下,投影装置23可以作为对对象物体OBJ进行照明的照明装置而发挥功能。在投影装置23作为照明装置而发挥功能的情况下,投影光也可以称为照明光。作为照明装置来使用的投影光(照明光)也可以是强度分布均匀的光。在投影装置23作为照明装置而发挥功能的情况下,投影光也可以不是能够将所期望的投影图案投影到对象物体OBJ的光。在投影装置23作为照明装置发挥功能的情况下,投影光(即,照明光)可以是能够对对象物体OBJ进行照明的任意的光。
拍摄装置21可以拍摄对象物体OBJ整体。或者,拍摄装置21可以拍摄对象物体OBJ的一部分。即,拍摄装置21可以拍摄对象物体OBJ的一部分,而不拍摄对象物体OBJ的其他部分。同样地,拍摄装置22可以拍摄对象物体OBJ整体。或者,拍摄装置22可以拍摄对象物体OBJ的一部分。即,拍摄装置22可以拍摄对象物体OBJ的一部分,而不拍摄对象物体OBJ的其它部分。
拍摄装置21可以拍摄单个对象物体OBJ。即,图像数据IMG_2D所示的图像中可以拍入单个对象物体OBJ。或者,拍摄装置21可以拍摄多个对象物体OBJ。即,图像数据IMG_2D所示的图像中可以拍入多个对象物体OBJ。该情况下,如后文中详述的那样,控制装置3可以决定(换言之,选择)拍摄装置21拍摄到的多个对象物体OBJ中的一个对象物体OBJ,以作为末端执行器4实际进行规定处理的对象物体OBJ。此外,拍摄装置21拍摄到的多个对象物体OBJ中被末端执行器4实际进行规定处理的一个对象物体OBJ可以被称为处理执行物体。
拍摄装置22可以拍摄单个对象物体OBJ。即,单个对象物体OBJ可以拍入到图像数据IMG_3D所示的图像中。或者,拍摄装置22可以拍摄多个对象物体OBJ。即,多个对象物体OBJ可以拍入到图像数据IMG_3D所示的图像中。该情况下,如后文中详述的那样,控制装置3可以决定(换言之,选择)拍摄装置22拍摄到的多个对象物体OBJ中的一个对象物体OBJ,以作为末端执行器4实际进行规定处理的对象物体OBJ。此外,拍摄装置22拍摄到的多个对象物体OBJ中被末端执行器4实际进行规定处理的一个对象物体OBJ可以被称为处理执行物体。
在拍摄装置21和22分别拍摄多个对象物体OBJ的情况下,拍摄装置21拍摄的多个对象物体OBJ可以与拍摄装置22拍摄的多个对象物体OBJ相同。即,图像数据IMG_2D所示的图像中拍入的多个对象物体OBJ可以与图像数据IMG_3D所示的图像中拍入的多个对象物体OBJ相同。或者,拍摄装置21拍摄的多个对象物体OBJ中的至少一个可以与拍摄装置22拍摄的多个对象物体OBJ中的至少一个不同。即,图像数据IMG_2D所示的图像中拍入的多个对象物体OBJ中的至少一个可以与图像数据IMG_3D所示的图像中拍入的多个对象物体OBJ中的至少一个相同。
拍摄装置21和22的至少一方拍摄的多个对象物体OBJ可以配置成多个对象物体OBJ中的至少两个至少部分重叠。作为一个示例,在对象物体OBJ是与为了制造期望的产品而使用的部件相当的工件W的情况下,多个工件W(即,多个部件)可以配置成多个工件W中的至少两个至少部分重叠。该情况下,机器人1可以进行从杂乱放置的多个工件W中逐个拣选工件W的散装拣选。
拍摄系统2与末端执行器4同样地安装于机械臂12。即,拍摄装置21和22以及投影装置23安装于机械臂12。例如,如图2所示,拍摄装置21和22以及投影装置23也可以与末端执行器4同样地安装在机械臂12的前端。在这种情况下,拍摄装置21和22以及投影装置23能够通过机械臂12的运动而移动。即,机械臂12使拍摄装置21和22以及投影装置23移动。
但是,如之后在第6变形例中详述的那样,拍摄系统2也可以不安装于机械臂12。拍摄系统2可以安装在能够向对象物体OBJ照射投影光并且能够对对象物体OBJ进行拍摄的任意位置。该情况下,例如,拍摄系统2可以安装于立柱等构造物,以使得能向对象物体OBJ照射投影光且能拍摄对象物体OBJ。另外,也可以是拍摄装置21、拍摄装置22以及投影装置23的至少一个安装于机械臂12,拍摄装置21、拍摄装置22以及投影装置23的其他至少一个安装在与机械臂12不同的地方(例如,立柱等构造物)。在拍摄装置21和拍摄装置22的至少一方设置在与机械臂12不同的地方的情况下,拍摄装置21和拍摄装置22的至少一方也可以设置在以能够拍摄对象物体OBJ的方式配置的立柱等构造物上。此外,在投影装置23安装在与机械臂12不同的地方的情况下,投影装置23也可以安装在以能够向对象物体OBJ照射投影光的方式配置的立柱等构造物上。
拍摄装置21可以在拍摄装置21与对象物体OBJ相对位移的期间中拍摄对象物体OBJ。此外,拍摄装置21与对象物体OBJ相对位移的状态可以表示拍摄装置21与对象物体OBJ的相对位置关系变化的状态。拍摄装置21与对象物体OBJ相对位移的状态也可以表示拍摄装置21与对象物体OBJ相对移动的状态。例如,拍摄装置21与对象物体OBJ相位位移的状态可以包括对象物体OBJ相对于拍摄装置21移动的状态。例如,拍摄装置21与对象物体OBJ相位位移的状态可以包括拍摄装置21相对于对象物体OBJ移动的状态。该情况下,拍摄装置21不需要为了拍摄对象物体OBJ而静止,因此,机器人系统SYS能使用末端执行器4高效地对对象物体OBJ进行规定处理。
或者,拍摄装置21可以在拍摄装置21与对象物体OBJ没有相对位移的期间中拍摄对象物体OBJ。此外,拍摄装置21与对象物体OBJ没有相对位移的状态可以表示拍摄装置21与对象物体OBJ的相对位置关系没有变化的状态。拍摄装置21与对象物体OBJ没有相对位移的状态也可以表示拍摄装置21与对象物体OBJ没有相对移动的状态。拍摄装置21与对象物体OBJ没有相对位移的状态也可以表示拍摄装置21与对象物体OBJ处于静止的状态。拍摄装置21与对象物体OBJ没有相对位移的状态也可以表示拍摄装置21与对象物体OBJ以相同移动速度朝相同移动方向移动的状态。
拍摄装置22可以在拍摄装置22与对象物体OBJ相对位移的期间中拍摄对象物体OBJ。此外,拍摄装置22与对象物体OBJ相对位移的状态可以表示拍摄装置22与对象物体OBJ的相对位置关系变化的状态。拍摄装置22与对象物体OBJ相对位移的状态也可以表示拍摄装置22与对象物体OBJ相对移动的状态。例如,拍摄装置22与对象物体OBJ相位位移的状态可以包含对象物体OBJ相对于拍摄装置22移动的状态。例如,拍摄装置22与对象物体OBJ相位位移的状态可以包括拍摄装置22相对于对象物体OBJ移动的状态。该情况下,拍摄装置22不需要为了拍摄对象物体OBJ而静止,因此,机器人系统SYS能使用末端执行器4高效地对对象物体OBJ进行规定处理。
或者,拍摄装置22可以在拍摄装置22与对象物体OBJ没有相对位移的期间中拍摄对象物体OBJ。此外,拍摄装置22与对象物体OBJ没有相对位移的状态可以表示拍摄装置22与对象物体OBJ的相对位置关系没有变化的状态。拍摄装置22与对象物体OBJ没有相对位移的状态也可以表示拍摄装置22与对象物体OBJ没有相对移动的状态。拍摄装置22与对象物体OBJ没有相对位移的状态也可以表示拍摄装置22与对象物体OBJ处于静止的状态。拍摄装置22与对象物体OBJ没有相对位移的状态也可以表示拍摄装置22与对象物体OBJ以相同移动速度朝相同移动方向移动的状态。
拍摄装置21和22也可以相互同步地对对象物体OBJ进行拍摄。例如,拍摄装置21和22可以同时对对象物体OBJ进行拍摄。也就是说,拍摄装置21和22可以拍摄对象物体OBJ,以使得拍摄装置21对对象物体OBJ进行拍摄的2D拍摄时刻、与拍摄装置22对对象物体OBJ进行拍摄的3D拍摄时刻为相同的时刻。拍摄装置21和22可以拍摄对象物体OBJ,以使得拍摄装置21对对象物体OBJ进行拍摄以生成图像数据IMG_2D的2D拍摄时刻、与拍摄装置22对对象物体OBJ进行拍摄以生成图像数据IMG_3D的3D拍摄时刻成为相同的时刻。
拍摄装置21和22也可以在控制装置3的控制下拍摄对象物体OBJ。在这种情况下,可以由控制装置3控制拍摄装置21和22分别拍摄对象物体OBJ的时刻(换言之,定时)。例如,控制装置3可以控制拍摄装置21和22,以使得拍摄装置21和22彼此同步地拍摄对象物体OBJ。例如,控制装置3可以控制拍摄装置21和22,以使得拍摄装置21和22同时拍摄对象物体OBJ。即,控制装置3可以控制拍摄装置21和22,以使得2D拍摄时刻和3D拍摄时刻成为相同的时刻。
这里,“2D拍摄时刻和3D拍摄时刻成为相同的时刻”的状态可以包括“2D拍摄时刻和3D拍摄时刻字面上为完全相同的时刻”的状态。“2D拍摄时刻和3D拍摄时刻成为相同的时刻”的状态也可以包括“虽然2D拍摄时刻和3D拍摄时刻没有成为完全相同的时刻,但由于2D拍摄时刻和3D拍摄时刻的时间偏差比第1允许上限值小,因此视为2D拍摄时刻和3D拍摄时刻实质上是相同的时刻”的状态。这里,第1允许上限值也可以是基于机械臂12的控制误差的第1允许上限值。例如,存在由于2D拍摄时刻与3D拍摄时刻的时间偏差,在后述的对象物体OBJ的位置及姿态中的至少一方的计算结果中产生误差的情况(即,计算出的对象物体OBJ的位置及姿态中的至少一方的精度降低的情况)。在该情况下,由于在对象物体OBJ的位置及姿态中的至少一方的计算结果中产生的误差,有时会产生机械臂12的控制误差。机械臂12的控制误差成为末端执行器4的移动误差,末端执行器4有时不能对对象物体OBJ适当地进行规定处理。第1允许上限值可以设定为恰当的值,该值能避免因这种机械臂12的控制误差而导致末端执行器4无法恰当地对对象物体OBJ进行规定处理的状态。另外,第1允许上限值也可以视为等效于由机械臂12引起的末端执行器4的移动误差的允许上限值。此外,例如,即使由于拍摄装置21和22的拍摄处理的同步误差而导致2D拍摄时刻和3D拍摄时刻存在时间偏差,也可以视为2D拍摄时刻和3D拍摄时刻实质上是相同的时刻。另外,拍摄装置21及22的拍摄处理的同步误差也可以是由控制装置3进行的拍摄装置21及22的拍摄处理的同步控制误差。
然而,拍摄装置21和22也可以不同时对对象物体OBJ进行拍摄。也就是说,拍摄装置21和22可以拍摄对象物体OBJ,以使得拍摄装置21对对象物体OBJ进行拍摄的2D拍摄时刻、与拍摄装置22对对象物体OBJ进行拍摄的3D拍摄时刻为不同的时刻。另外,“2D拍摄时刻和3D拍摄时刻成为不同的时刻”的状态也可以包括由于“2D拍摄时刻和3D拍摄时刻的时间偏差比第1允许上限值大,因此不能视为2D拍摄时刻和3D拍摄时刻实质上是相同的时刻”的状态。
本实施方式中,在拍摄装置21及22分别与对象物体OBJ没有相对位移的期间中拍摄装置21及22对对象物体OBJ进行拍摄的情况下,拍摄装置21及22也可以拍摄对象物体OBJ,以使得2D拍摄时刻与3D拍摄时刻成为相同的时刻。也就是说,在拍摄装置21及22分别与对象物体OBJ相对位移的期间中拍摄装置21及22对对象物体OBJ进行拍摄的情况下,控制装置3可以控制拍摄装置21及22,以使得2D拍摄时刻与3D拍摄时刻成为相同的时刻。
另一方面,在拍摄装置21及22分别与物体OBJ没有相对位移的期间中拍摄装置21及22对对象物体OBJ进行拍摄的情况下,拍摄装置21及22也可以不以使得2D拍摄时刻与3D拍摄时刻成为相同的时刻的方式拍摄对象物体OBJ。即,控制装置3可以不是控制拍摄装置21和22以使得2D拍摄时刻和3D拍摄时刻成为相同的时刻。例如,拍摄装置21和22可以拍摄对象物体OBJ,以使得2D拍摄时刻和3D拍摄时刻成为不同的时刻。也就是说,控制装置3可以控制拍摄装置21和22,以使得2D拍摄时刻和3D拍摄时刻成为不同的时刻。然而,在拍摄装置21及22分别与物体OBJ没有相对位移的期间中拍摄装置21及22对对象物体OBJ进行拍摄的情况下,拍摄装置21及22也可以拍摄对象物体OBJ,以使得2D拍摄时刻与3D拍摄时刻成为相同的时刻。即,控制装置3可以控制拍摄装置21和22,以使得2D拍摄时刻和3D拍摄时刻成为相同的时刻。
控制装置3进行机器人控制处理。机器人控制处理可以包括生成用于控制机器人1的机器人控制信号的处理。具体而言,控制装置3基于从拍摄系统2输出的图像数据IMG_2D和IMG_3D的至少一方来生成机器人控制信号。在本实施方式中,控制装置3基于图像数据IMG_2D和IMG_3D的至少一方来计算机器人系统SYS的全局坐标系内的对象物体OBJ的位置和姿态的至少一方,并基于计算出的对象物体OBJ的位置和姿态中的至少一方来生成机器人控制信号。
全局坐标系是成为机器人系统SYS的基准的坐标系。例如,全局坐标系也可以是成为机器人1的基准的坐标系。此外,可以说全局坐标系是为了控制机器人1而使用的坐标系。作为全局坐标系,例如可以使用以配置机器人1的支承面S为基准而确定的世界坐标系。即,作为全局坐标系,可以使用相对于配置机器人1的支承面S固定的世界坐标系。
然而,控制装置3可以基于图像数据IMG_2D和IMG_3D的至少一方,来计算对象物体OBJ在不同于全局坐标系的坐标系内的位置和姿态的至少一方。
作为第1示例,控制装置3可以基于图像数据IMG_2D和IMG_3D的至少一方,来计算对象物体OBJ在机器人坐标系内的位置和姿态的至少一方。机器人坐标系可以是以机器人1为基准确定的坐标系。即,机器人坐标系可以是相对于机器人1固定(例如,相对于机器人1的基台11固定)的坐标系。此外,由于是以机器人1为基准而确定的坐标系,因此机器人坐标系可以被称为全局坐标系。此外,可以说机器人坐标系是为了控制机器人1而使用的坐标系。
作为第2示例,控制装置3可以基于图像数据IMG_2D和IMG_3D的至少一方,来计算对象物体OBJ在2D拍摄坐标系内的位置和姿态的至少一方。2D拍摄坐标系可以是以拍摄装置21为基准而确定的坐标系。即,2D拍摄坐标系可以是相对于拍摄装置21固定的坐标系。作为2D拍摄坐标系的一个示例,可举出基于拍摄装置21具备的光学系统(特别是物镜等终端光学元件)的光轴AX21(参照图2)而确定的坐标系。作为2D拍摄坐标系的一个示例,可举出构成2D拍摄坐标系的三个坐标轴中的任一个成为沿着拍摄装置21具备的光学系统(特别是物镜等终端光学元件)的光轴AX21(参照图2)的轴的坐标系。
作为第3示例,控制装置3可以基于图像数据IMG_2D和IMG_3D的至少一方,来计算对象物体OBJ在3D拍摄坐标系内的位置和姿态的至少一方。3D拍摄坐标系可以是以拍摄装置22为基准而确定的坐标系。即,3D拍摄坐标系可以是相对于拍摄装置22固定的坐标系。作为3D拍摄坐标系的一个示例,可举出基于拍摄装置22具备的光学系统(特别是物镜等终端光学元件)的光轴AX22(参照图2)而确定的坐标系。作为3D拍摄坐标系的一个示例,可举出构成3D拍摄坐标系的三个坐标轴中的任一个成为沿着拍摄装置22具备的光学系统(特别是物镜等终端光学元件)的光轴AX22(参照图2)的轴的坐标系。
控制装置3除了进行机器人控制处理之外,还可以进行末端执行器控制处理。末端执行器控制处理可以包括生成用于控制末端执行器4的末端执行器控制信号的处理。具体而言,控制装置3可以基于计算出的对象物体OBJ的位置及姿态中的至少一方来生成末端执行器控制信号。
此外,末端执行器控制处理可以包含在机器人控制处理中,也可以不包含在机器人控制处理中。即,控制装置3生成的末端执行器控制信号可以包含在机器人控制信号中,也可以不包含在机器人控制信号中。在以下的说明中,为了便于说明,对末端执行器控制处理包含在机器人控制处理中(即,末端执行器控制信号包含在机器人控制信号中)的例子进行说明。因此,在以下的说明中,机器人控制处理也可以意味着生成机器人控制信号和末端执行器控制信号中的至少一方的处理。另外,在以下的说明中,机器人控制信号也可以意味着用于控制机器人1的信号和用于控制末端执行器4的信号中的至少一方。另外,机器人控制信号也可以简称为控制信号。
由此,控制装置3和拍摄系统2可以用于控制机器人1。因此,包括控制装置3和拍摄系统2的系统可以被称为机器人控制系统或控制系统。
控制装置3生成的机器人控制信号被输出到机器人1的机器人控制装置13。机器人控制装置13基于控制装置3生成的机器人控制信号,来控制机器人1的动作。因此,机器人控制信号也可以包含用于控制机器人1的动作的信号。
如上所述,在机器人控制信号包含用于控制机械臂12的信号的情况下,机器人控制装置13也可以基于机器人控制信号来控制机械臂12。例如,机器人控制装置13可以通过基于机器人控制信号来控制内置于关节122中的致动器的动作,从而控制机械臂12的动作。
例如,如上所述,机械臂12使末端执行器4移动。在这种情况下,机器人控制信号可以包括用于控制机械臂12以使末端执行器4位于所期望位置的信号。机器人控制信号可以包括用于控制机械臂12以使末端执行器4移动到所期望位置的信号。机器人控制信号可以包含用于控制机械臂12以使末端执行器4与对象物体OBJ的位置关系成为所期望的位置关系的信号。该情况下,机器人控制装置13可以基于机器人控制信号来控制机械臂12,以使得末端执行器4位于期望位置。机器人控制装置13可以基于机器人控制信号来控制机械臂12,以使得末端执行器4移动到期望位置。机器人控制装置13可以基于机器人控制信号来控制机械臂12,以使得末端执行器4和对象物体OBJ的位置关系成为所期望的位置关系。
作为一个示例,在末端执行器4进行用于保持对象物体OBJ的保持处理的情况下,机器人控制信号可以包含用于控制机械臂12以使末端执行器4朝向末端执行器4能保持对象物体OBJ的保持位置移动(即,接近)的信号。即,机器人控制信号可以包含用于控制机械臂12以使末端执行器4位于保持位置的信号。该情况下,机器人控制装置13可以基于机器人控制信号来控制机械臂12,以使末端执行器4朝向保持位置移动(即,接近)。即,机器人控制信号可以控制机械臂12以使末端执行器4位于保持位置。
作为另一个示例,在进行用于释放末端执行器4所保持的对象物体OBJ的释放处理的情况下,机器人控制信号可以包含用于控制机械臂12以使得末端执行器4朝着要释放末端执行器4所保持的对象物体OBJ的释放位置移动(即,接近)的信号。即,机器人控制信号可以包含用于控制机械臂12以使末端执行器4位于释放位置的信号。该情况下,机器人控制装置13可以基于机器人控制信号来控制机械臂12,以使末端执行器4朝向释放位置移动(即,接近)。即,机器人控制信号可以控制机械臂12以使末端执行器4位于释放位置。
如上所述,在机器人控制信号包含用于控制末端执行器4的信号的情况下,机器人控制装置13也可以基于机器人控制信号来控制末端执行器4。例如,机器人控制装置13也可以基于机器人控制信号,控制用于使构成末端执行器4的机械夹爪移动的致动器的动作,从而控制末端执行器4的动作。例如,机器人控制装置13也可以基于机器人控制信号,控制构成末端执行器4的真空夹爪的真空装置的动作,从而控制末端执行器4的动作。
作为一个示例,在末端执行器4进行用于保持对象物体OBJ的保持处理的情况下,机器人控制信号可以包含用于控制末端执行器4以使得位于上述保持位置的末端执行器4保持对象物体OBJ的信号。该情况下,机器人控制装置13可以基于机器人控制信号来控制末端执行器4,以使得位于保持位置的末端执行器4保持对象物体OBJ。
作为另一个示例,在进行用于释放末端执行器4所保持的对象物体OBJ的释放处理的情况下,机器人控制信号可以包含用于控制末端执行器4以将位于上述释放位置的末端执行器4所保持的对象物体OBJ释放的信号。该情况下,机器人控制装置13可以基于机器人控制信号来控制末端执行器4,以将位于释放位置的末端执行器4所保持的对象物体OBJ释放。
机器人控制信号也可以包括能直接用于机器人控制装置13控制机器人1的动作的信号。机器人控制信号也可以包括能直接用作为机器人控制装置13控制机器人1的动作的机器人驱动信号的信号。在这种情况下,机器人控制装置13也可以直接使用机器人控制信号来控制机器人1的动作。例如,控制装置3可以生成内置于机械臂12的关节122中的致动器的驱动信号作为机器人控制信号,机器人控制装置13可以直接使用控制装置3生成的机器人控制信号,来控制内置于机械臂12的关节122中的致动器。
机器人控制信号也可以包括能直接用于机器人控制装置13控制末端执行器4的动作的信号。机器人控制信号也可以包括能够直接用作为机器人控制装置13控制末端执行器4的动作的末端执行器驱动信号的信号。在这种情况下,例如,控制装置3可以生成使构成末端执行器4的机械夹爪移动的致动器的驱动信号(末端执行器驱动信号)作为机器人控制信号,机器人控制装置13可以直接使用控制装置3生成的机器人控制信号来控制末端执行器4的致动器。例如,控制装置3可以生成用于驱动构成末端执行器4的真空夹爪的真空装置的驱动信号(末端执行器驱动信号)作为机器人控制信号,机器人控制装置13可以直接使用控制装置3生成的机器人控制信号来控制末端执行器4的真空装置。
另外,如上所述,在机器人控制信号包括能直接用于机器人控制装置13控制机器人1及末端执行器4的至少一个的动作的信号的情况下,机器人1也可以不具备机器人控制装置13。
或者,机器人控制信号也可以包括能够用于机器人控制装置13生成用于控制机器人1的动作的机器人驱动信号的信号。此时,机器人控制装置13也可以基于机器人控制信号,生成用于控制机器人1的动作的机器人驱动信号,并基于所生成的机器人驱动信号,来控制机器人1的动作。例如,机器人控制装置13可以基于机器人控制信号来生成用于驱动内置于机械臂12的关节122中的致动器的机器人驱动信号,并基于所生成的机器人驱动信号来控制内置于机械臂12的关节122中的致动器。
机器人控制信号也可以包括能够用于机器人控制装置13生成用于控制末端执行器4的动作的末端执行器驱动信号的信号。在这种情况下,机器人控制装置13也可以基于机器人控制信号,生成用于控制末端执行器4的动作的末端执行器驱动信号,并基于所生成的末端执行器驱动信号,来控制末端执行器4的动作。例如,在末端执行器4为机械夹爪的情况下,机器人控制装置13可以基于机器人控制信号来生成用于驱动机械夹爪的致动器的末端执行器驱动信号,并基于所生成的末端执行器驱动信号来控制机械夹爪的致动器。例如,在末端执行器4为磁吸式夹爪的情况下,机器人控制装置13可以基于机器人控制信号来生成用于驱动磁吸式夹爪的磁吸装置的末端执行器驱动信号,并基于所生成的末端执行器驱动信号来控制磁吸装置。
此外,能用于机器人控制装置13生成机器人驱动信号的信号可以包含表示全局坐标系下的对象物体OBJ的位置和姿态的至少一方的信号。该情况下,例如,机器人控制装置13可以基于机器人控制信号来生成用于驱动机械臂12的关节122中所内置的致动器的机器人驱动信号,以使得末端执行器4接近由机器人控制信号计算出全局坐标系下的位置和姿态的至少一方的对象物体OBJ(即,机器人1(末端执行器4)和对象物体OBJ的位置关系成为所期望的位置关系),并基于所生成的机器人驱动信号来控制机械臂12的动作。
能用于机器人控制装置13生成机器人驱动信号的信号可以包括表示全局坐标系下的机器人1和对象物体OBJ的之间的期望位置关系的信号。该情况下,例如,机器人控制装置13可以基于机器人控制信号来生成用于驱动机械臂12的关节122中所内置的致动器的机器人驱动信号,以使得机器人1(末端执行器4)和对象物体OBJ的位置关系成为机器人控制信号所表示的所期望的位置关系,并基于所生成的机器人驱动信号来控制机械臂12的动作。
能用于机器人控制装置13生成机器人驱动信号的信号可以包括表示全局坐标系下的末端执行器4的期望位置的信号。该情况下,例如,机器人控制装置13可以基于机器人控制信号来生成用于驱动机械臂12的关节122中所内置的致动器的机器人驱动信号,以使得末端执行器4位于机器人控制信号所表示的所期望位置(即,机器人1(末端执行器4)和对象物体OBJ的位置关系成为所期望的位置关系),并基于所生成的机器人驱动信号来控制机械臂12的动作。作为所期望位置的一个示例,可举出末端执行器4应处理对象物体OBJ的处理位置。作为所期望位置的一个具体示例,可举出末端执行器4应保持对象物体OBJ的保持位置。该情况下,机器人控制装置13可以基于机器人控制信号来生成用于驱动机械臂12的关节122中所内置的致动器的机器人驱动信号,以使得末端执行器4移动到机器人控制信号所表示的保持位置,并基于所生成的机器人驱动信号来控制机械臂12的动作。作为所期望位置的另一个示例,可举出末端执行器4应释放对象物体OBJ的释放位置。该情况下,机器人控制装置13可以基于机器人控制信号来生成用于驱动机械臂12的关节122中所内置的致动器的机器人驱动信号,以使得末端执行器4位于机器人控制信号所表示的释放位置,并基于所生成的机器人驱动信号来控制机械臂12的动作。
此外,能用于机器人控制装置13生成机器人驱动信号的信号例如可以包含表示全局坐标系下的机械臂12的前端部(例如,工具中心点)的所期望位置的信号,也可以包含表示全局坐标系下的拍摄系统2的期望位置的信号。此外,能用于机器人控制装置13生成机器人驱动信号的信号可以是表示从末端执行器4的当前位置到末端执行器4的所期望位置的移动量和移动方向的信号。
另外,机器人控制信号中作为基准的坐标系也可以是全局坐标系以外的坐标系(例如,机器人坐标系、2D拍摄坐标系或3D拍摄坐标系)。
(1-2)控制装置3的结构
接着,参照图3说明控制装置3的结构。图3是示出控制装置3的结构的框图。
如图3所示,控制装置3包括运算装置31、存储装置32和通信装置33。此外,控制装置3可以包括输入装置34和输出装置35。其中,控制装置3也可以不包括输入装置34和输出装置35中的至少一个。运算装置31、存储装置32、通信装置33、输入装置34、输出装置35可以经由数据总线36连接。
运算装置31包括例如CPU(Central Processing Unit:中央处理单元)、GPU(Graphics Processing Unit:图形处理器)以及FPGA(Field Programmable Gate Array:现场可编程门阵列)中的至少一个。运算装置31读入计算机程序。例如,运算装置31也可以读入存储装置32所存储的计算机程序。例如,运算装置31也可以使用控制装置3所具备的未图示的记录介质读取装置,读取能够被计算机读取且非临时的记录介质所存储的计算机程序。运算装置31可以经由通信装置33(或其他通信装置)从配置在控制装置3外部的未图示的装置获取(即,可以下载或读入)计算机程序。运算装置31执行读入的计算机程序。其结果,在运算装置31内实现用于执行控制装置3应进行的处理(作为一个示例,为上述的机器人控制处理)的逻辑功能模块。即,运算装置31能够作为用于实现逻辑功能模块的控制器而发挥功能,上述逻辑功能模块用于执行控制装置3应进行的处理。
在运算装置31内可以安装运算模型,其可在运算装置执行计算机程序时通过机器学习来构建。作为能够通过机器学习构建的运算模型的一例,例如,可列举包括神经网络的运算模型(所谓的人工智能(AI:Artificial Intelligence))。在这种情况下,运算模型的学习可以包括神经网络的参数(例如,为权重和偏置中的至少一个)的学习。运算装置31也可以使用运算模型来执行机器人控制处理。即,执行机器人控制处理的动作也可以包括使用运算模型来执行机器人控制处理的动作。另外,在运算装置31中,也可以安装通过使用了教师数据的离线的机器学习而构建完成的运算模型。另外,安装在运算装置31上的运算模型也可以在运算装置31上通过在线的机器学习进行更新。或者,除了安装在运算装置31上的运算模型以外或作为其替代,运算装置31也可以使用安装在运算装置31外部的装置(即,设置在控制装置3外部的装置)上的运算模型来执行机器人控制处理。
另外,作为记录运算装置31执行的计算机程序的记录介质,也可以使用CD-ROM、CD-R、CD-RW或软盘、MO、DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW及Blu-ray(注册商标)等光盘、磁带等磁介质、光磁盘、USB存储器等半导体存储器、以及其它能够存储程序的任意介质中的至少一种。记录介质可以包括能够记录计算机程序的设备(作为一个示例,为将计算机程序安装为能够以软件及固件等至少一种方式执行的状态的通用设备或专用设备)。此外,包含在计算机程序中的各处理或功能可以通过运算装置31(即,计算机)执行计算机程序而在运算装置31内实现的逻辑处理模块来实现,也可以通过运算装置31所具备的规定的门阵列(FPGA(Field Programmable Gate Array:现场可编程门阵列)、ASIC(Application Specific Integrated Circuit:专用集成电路))等硬件来实现,也可以以逻辑处理模块和实现硬件的一部分要素的部分硬件模块混合在一起的形式来实现。
图3示出了为了执行机器人控制处理而在运算装置31内实现的逻辑功能模块的一例。如图3所示,在运算装置31内实现三维位置数据生成部311、位置姿态计算部312、信号生成部313。此外,关于三维位置数据生成部311、位置姿态计算部312和信号生成部313各自进行的处理,之后参照图4等进行详细说明,因此这里省略说明。另外,运算装置31也可以称为运算部。
存储装置32能够存储所期望的数据。例如,存储装置32也可以暂时存储运算装置31执行的计算机程序。存储装置32也可以在运算装置31执行计算机程序的情况下暂时存储运算装置31临时使用的数据。存储装置32也可以存储控制装置3长期保存的数据。另外,存储装置32也可以包括RAM(Random Access Memory:随机存取存储器)、ROM(Read OnlyMemory:只读存储器)、硬盘装置、磁光盘装置、SSD(Solid State Drive:固态硬盘)以及磁盘阵列装置中的至少一个。即,存储装置32也可以包括非暂时的记录介质。
通信装置33能够经由未图示的通信网络来与机器人1及拍摄系统2分别通信。或者,除了机器人1和拍摄系统2中的至少一方以外或者代替机器人1和系统单元2中的至少一方,通信装置33也可以经由未图示的通信网络与不同于机器人1和拍摄系统2的其他装置进行通信。在本实施方式中,通信装置33也可以从拍摄系统2接收(即,获取)图像数据IMG_2D以及IMG_3D的至少一方。而且,通信装置33也可以向机器人1发送(即,输出)机器人控制信号。此外,向机器人1输出机器人控制信号的通信装置33可以被称为输出部。
输入装置34是接受来自控制装置3的外部的针对控制装置3的信息的输入的装置。例如,输入装置34可以包括控制装置3的用户可操作的操作装置(例如,为键盘、鼠标和触摸面板中的至少一个)。例如,输入装置34可以包括记录介质读取装置,该记录介质读取装置能够读取作为数据而记录在可外接于控制装置3的记录介质的信息。
另外,信息能够经由通信装置33从控制装置3的外部装置作为数据而输入到控制装置3。在这种情况下,通信装置33也可以作为接受来自控制装置3的外部的针对控制装置3的信息的输入的输入装置而发挥功能。
输出装置35是对控制装置3的外部输出信息的装置。例如,输出装置35可以将信息作为图像来输出。即,输出装置35可以包括能显示图像的显示装置(所谓的显示器)。例如,输出装置35可以将信息作为声音来输出。即,输出装置35可以包括能输出声音的声音装置(所谓的扬声器)。例如,输出装置35可以将信息输出到纸张上。即,输出装置35可以包括能将所期望的信息印刷在纸张上的印刷装置(所谓的打印机)。例如,输出装置35可以将信息作为数据输出到可外接到控制装置3的记录介质。
另外,信息能够作为数据而经由通信装置33从控制装置3向控制装置3的外部装置输出。在这种情况下,通信装置33可以用作向控制装置3的外部输出信息的输出装置而发挥功能。
(2)机器人控制处理
接着,对控制装置3进行的机器人控制处理进行说明。
(2-1)机器人控制处理的流程
首先,参照图4来说明机器人控制处理的流程。图4是表示机器人控制处理的流程的流程图。
如图4所示,控制装置3使用通信装置33从拍摄装置22获取图像数据IMG_3D(步骤S1)。具体而言,拍摄装置22以规定的3D拍摄速率来拍摄对象物体OBJ。例如,拍摄装置22可以以1秒内拍摄对象物体OBJ几十到几百次(作为一个示例,为500次)的3D拍摄速率来拍摄对象物体OBJ。此外,在对象物体OBJ被收纳于容器CB中的情况下,对对象物体OBJ进行拍摄可以视为与对容器CB的内部(即上述的收纳空间SP)进行拍摄是等效的。作为对象物体OBJ的拍摄结果的图像数据,可以视为与作为容器CB的内部(即上述的收纳空间SP)的拍摄结果的图像数据是等效的。其结果是,拍摄装置22以与规定的3D拍摄速率对应的周期生成图像数据IMG_3D。例如,拍摄装置22可以一秒内生成几十到几百个(作为一个示例,为500个)图像数据IMG_3D。每当拍摄装置22生成图像数据IMG_3D时,控制装置3获取图像数据IMG_3D。即,控制装置3可以一秒内获取几十个到几百个(作为一个示例,为500个)图像数据IMG_3D。
然而,拍摄装置22也可以不以规定的3D拍摄速率周期性地拍摄对象物体OBJ。例如,拍摄装置22可以在从控制装置3接收到用于控制拍摄装置22的控制信号以拍摄对象物体OBJ的情况下拍摄对象物体OBJ。
除了由机器人1进行规定处理的对象物体OBJ之外,拍摄装置22还可以拍摄与对象物体OBJ不同的其他物体。此外,其他物体不是机器人1进行规定处理的对象,因此在以下说明中,将不同于对象物体OBJ的其他物体称为非对象物体。作为非对象物体的一个示例,可举出末端执行器4的至少一部分、机械臂12的至少一部分以及位于机器人1周边的物体即周边物体的至少一个。作为周边物体的一个示例,可举出载置装置T和容器CB的至少一个。例如,在对象物体OBJ和非对象物体双方都包含在拍摄装置22的拍摄范围(视野)内的情况下,拍摄装置22可以拍摄对象物体OBJ和非对象物体双方。其结果是,拍摄装置22可以生成表示拍入了对象物体OBJ和非对象物体双方的图像的图像数据IMG_3D。然而,拍摄装置22可以拍摄对象物体OBJ,而不拍摄非对象物体。即,拍摄装置22可以生成图像数据IMG_3D,其表示拍入了对象物体OBJ而没有拍入非对象物体的图像。在任一种情况下,拍摄装置22生成表示至少拍入了对象物体OBJ的图像的图像数据IMG_3D。即,拍摄装置22生成至少包含对象物体OBJ的图像数据的图像数据IMG_3D。
如上所述,拍摄装置22有时对末端执行器4依次进行规定处理的多个对象物体OBJ进行拍摄。该情况下,末端执行器4可以在第1期间中对多个对象物体OBJ中的第1对象物体OBJ进行规定处理,并在第1期间之后的第2期间中对多个对象物体OBJ中不同于第1对象物体OBJ的第2对象物体OBJ进行规定处理。该情况下,在第1期间中,多个对象物体OBJ中除被末端执行器4进行规定处理的第1对象物体OBJ以外的其他对象物体OBJ可以视为并不是在第1期间中由机器人1进行规定处理的处理执行物体的对象物体OBJ(或非对象物体)。同样地,在第2期间中,多个对象物体OBJ中除被末端执行器4进行规定处理的第2对象物体OBJ以外的其它对象物体OBJ可以视为并不是在第2期间中由机器人1进行规定处理的处理执行物体的对象物体OBJ(或非对象物体)。此外,第1对象物体OBJ和第2对象物体OBJ分别可以是拍摄装置22拍摄到的多个对象物体OBJ中不同的对象物体OBJ。
除了从拍摄装置22获取图像数据IMG_3D以外或作为其替代,控制装置3还可以使用通信装置33从拍摄装置21获取图像数据IMG_2D(步骤S1)。具体而言,拍摄装置21以规定的2D拍摄速率来拍摄对象物体OBJ。2D拍摄速率与3D拍摄速率相同。然而,2D拍摄速率也可以与3D拍摄速率不同。例如,拍摄装置21可以以1秒内拍摄对象物体OBJ几十到几百次(作为一个示例,为500次)的2D拍摄速率来拍摄对象物体OBJ。其结果,拍摄装置21以与规定的2D拍摄速率对应的周期生成图像数据IMG_2D。例如,拍摄装置21可以一秒内生成几十到几百个(作为一个示例,为500个)图像数据IMG_2D。每当拍摄装置21生成图像数据IMG_2D时,控制装置3获取图像数据IMG_2D。即,控制装置3可以一秒内获取几十到几百个(作为一个示例,为500个)图像数据IMG_2D。
然而,拍摄装置21也可以不以所期望的2D拍摄速率周期性地拍摄对象物体OBJ。例如,拍摄装置21可以在从控制装置3接收到用于控制拍摄装置21的控制信号以拍摄对象物体OBJ的情况下拍摄对象物体OBJ。
另外,图像数据IMG_2D也可以称为表示在图像数据IMG_2D中拍入的对象物体OBJ的二维位置的二维位置数据。图像数据IMG_2D(二维位置数据)可以是表示对象物体OBJ表面的至少一部分的二维位置的数据。特别地,图像数据IMG_2D(二维位置数据)是表示对象物体OBJ的多个点各自的二维位置的数据。例如,图像数据IMG_2D(二维位置数据)可以是表示对象物体OBJ的表面上的多个点各自的二维位置的数据。例如,图像数据IMG_2D(二维位置数据)可以是表示分别相当于对象物体OBJ表面的多个部位的多个点各自的二维位置的数据。
除了由机器人1进行规定处理的对象物体OBJ之外,拍摄装置21还可以拍摄与对象物体OBJ不同的非对象物体。例如,在对象物体OBJ和非对象物体双方都包含在拍摄装置21的拍摄范围(视野)内的情况下,拍摄装置21可以拍摄对象物体OBJ和非对象物体双方。其结果是,拍摄装置21可以生成表示拍入了对象物体OBJ和非对象物体双方的图像的图像数据IMG_2D。然而,拍摄装置21可以拍摄对象物体OBJ,而不拍摄非对象物体。即,拍摄装置21可以生成图像数据IMG_2D,其表示拍入了对象物体OBJ而没有拍入非对象物体的图像。在任一种情况下,拍摄装置21生成表示至少拍入了对象物体OBJ的图像的图像数据IMG_2D。即,拍摄装置21生成至少包含对象物体OBJ的图像数据的图像数据IMG_2D。
如上所述,拍摄装置21有时对末端执行器4依次进行规定处理的多个对象物体OBJ进行拍摄。该情况下,末端执行器4可以在第3期间中对多个对象物体OBJ中的第3对象物体OBJ进行规定处理,并在第3期间之后的第4期间中对多个对象物体OBJ中不同于第3对象物体OBJ的第4对象物体OBJ进行规定处理。该情况下,在第3期间中,多个对象物体OBJ中除被末端执行器4进行规定处理的第3对象物体OBJ以外的其他对象物体OBJ可以视为并不是在第3期间中由机器人1进行规定处理的处理执行物体的对象物体OBJ(或非对象物体)。同样地,在第4期间中,多个对象物体OBJ中除被末端执行器4进行规定处理的第4对象物体OBJ以外的其它对象物体OBJ可以视为并不是在第4期间中由机器人1进行规定处理的处理执行物体的对象物体OBJ(或非对象物体)。此外,第3对象物体OBJ和第4对象物体OBJ分别可以是拍摄装置21拍摄到的多个对象物体OBJ中不同的对象物体OBJ。
在控制装置3获取到图像数据IMG_3D的情况下,每当控制装置3获取图像数据IMG_3D时,三维位置数据生成部311基于获取到的图像数据IMG_3D来生成三维位置数据WSD(步骤S2)。此外,三维位置数据生成部311将所生成的三维位置数据WSD输出到位置姿态计算部312。然而,在控制装置3未获取到图像数据IMG_3D的情况下(例如,控制装置3获取了图像数据IMG_2D的情况下),三维位置数据生成部311可以不生成三维位置数据WSD。该情况下,控制装置3可以不进行步骤S2的动作。
此外,控制装置3可以基于拍摄装置22所生成的多个图像数据IMG_3D中的一部分图像数据IMG_3D的每一个来生成三维位置数据WSD。控制装置3也可以不使用拍摄装置22所生成的多个图像数据IMG_3D中的另一部分图像数据IMG_3D来生成三维位置数据WSD。
三维位置数据WSD是表示在图像数据IMG_3D中拍入的对象物体OBJ的三维位置的数据。例如,三维位置数据WSD可以是表示对象物体OBJ表面的至少一部分的三维位置的数据。特别地,三维位置数据WSD是表示对象物体OBJ的多个点各自的三维位置的数据。即,三维位置数据WSD是表示拍摄装置22拍摄到的对象物体OBJ的多个点各自的三维位置的数据。例如,三维位置数据WSD可以是表示对象物体OBJ表面上的多个点各自的三维位置的数据。例如,三维位置数据WSD也可以是表示分别相当于对象物体OBJ表面的多个部位的多个点各自的三维位置的数据。此外,以下说明中,除非另有说明,否则对象物体OBJ的三维位置可以表示对象物体OBJ表面的至少一部分的三维位置、对象物体OBJ的多个点各自的三维位置、对象物体OBJ表面上的多个点各自的三维位置、以及相当于对象物体OBJ的表面的多个部位的多个点各自的三维位置中的至少一个。
具体而言,如上所述,在图像数据IMG_3D所示的图像中,拍入了投影有投影图案的对象物体OBJ。在这种情况下,在图像数据IMG_3D所示的图像中拍入的投影图案中,反映出投影有投影图案的对象物体OBJ表面的至少一部分的三维形状。在图像数据IMG_3D所示的图像中拍入的投影图案的形状中,反映出投影有投影图案的对象物体OBJ表面的至少一部分的三维形状。因此,三维位置数据生成部311能够基于在图像数据IMG_3D所示的图像中拍入的投影图案,来计算对象物体OBJ表面的至少一部分的三维形状。对象物体OBJ表面的至少一部分的三维形状实质上表示对象物体OBJ的多个点各自的三维位置。这是因为对象物体OBJ的多个点中的每一个包含于对象物体OBJ的表面。因此,计算对象物体OBJ表面的至少一部分的三维形状的处理实质上可以视为与计算对象物体OBJ的多个点各自的三维位置的处理实质上是等效的。因此,三维位置数据生成部311能够基于图像数据IMG_3D来生成三维位置数据WSD。
考虑到对象物体OBJ的多个点的每一个包含于对象物体OBJ的表面,表示对象物体OBJ的多个点各自的三维位置的三维位置数据WSD实质上可以视为等效于表示对象物体OBJ的至少一部分的三维形状(特别是对象物体OBJ表面的至少一部分的三维形状)的三维形状数据。
为了生成三维位置数据WSD,三维位置数据生成部311可以将图像数据IMG_3D所包含的两个图像数据各自所示的图像彼此的各部分(例如各像素)对应起来计算视差。具体而言,在该对应中,三维位置数据生成部311可以将两个图像数据各自所示的图像中拍入的投影图案的各部分(即,各个图像中拍入的投影图案彼此的各部分)对应起来计算视差。三维位置数据生成部311可以通过基于使用了计算出的视差的三角测量原理的公知方法,来计算对象物体OBJ的多个点各自的三维位置。其结果是,生成表示对象物体OBJ的多个点各自的三维位置的三维位置数据WSD。在该情况下,与将投影图案没有被拍入的图像彼此的各部分对应起来相比,将被拍入了投影图案的图像彼此的各部分(即,所拍入的投影图案彼此的各部分)对应起来的情况下,视差的计算精度变得更高。因此,生成的三维位置数据WSD的精度(即,对象物体OBJ的多个点各自的三维位置的计算精度)变得更高。
只要能表示对象物体OBJ的多个点各自的三维位置,则三维位置数据WSD可以是任意数据。即,三维位置数据WSD可以是直接或间接示出对象物体OBJ的多个点各自的三维位置的任意数据。例如,三维位置数据WSD可以包含表示对象物体OBJ的多个点各自的三维位置的坐标信息。例如,三维位置数据WSD可以包含表示对象物体OBJ的至少一部分的三维形状的信息。
作为三维位置数据WSD的一例,可以列举深度图像数据。深度图像数据是对深度图像数据表示的深度图像的各像素关联了亮度信息的基础上或作为其替代还关联了深度信息的图像数据。深度信息是表示在各像素中拍入的对象物体OBJ的各部分与拍摄装置22之间的距离(即,纵深)的信息。在各像素中拍入的对象物体OBJ的各部分与拍摄装置22之间的距离(即,纵深)可以根据上述视差来计算。另外,深度图像数据也可以是各像素的亮度信息表示对象物体OBJ的各部分的深度(即,对象物体OBJ的各部分与拍摄装置22之间的距离)的图像数据。三维位置数据生成部311也可以基于在图像数据IMG_3D所示的图像中拍入的投影图案,来计算在图像数据IMG_3D所示的图像中拍入的对象物体OBJ的各部分与拍摄装置22之间的距离,并通过将计算出的距离作为深度信息与图像数据IMG_3D所示的图像的各像素进行关联,从而生成深度图像。
作为三维位置数据WSD的另一个示例,可以列举点云数据。点云数据是表示与在图像数据IMG_3D所示的图像中拍入的对象物体OBJ的各部分相对应的点在三维空间内的集合的数据。三维位置数据生成部311可以基于深度图像数据和拍摄装置22的摄像头参数来生成点云数据。此外,以下说明中,对使用点云数据作为三维位置数据WSD的示例进行说明。
如上所述,在拍摄装置22的拍摄范围(视野)中除了被机器人1进行规定处理的对象物体OBJ以外还包含不同于对象物体OBJ的其他物体的情况下,图像数据IMG_3D表示拍入了对象物体OBJ和其他物体双方的图像。该情况下,三维位置数据WSD可以是表示除了图像数据IMG_3D中拍入的对象物体OBJ的三维位置以外还表示图像数据IMG_3D中拍入的其他物体的三维位置的数据。即,三维位置数据WSD可以包含表示拍摄装置22拍摄到的其他物体的多个点各自的三维位置的数据。即使在该情况下,只要三维位置数据WSD中包含表示对象物体OBJ的三维位置的数据,三维位置数据WSD也可以视为表示对象物体OBJ的多个点各自的三维位置的数据。这是由于即使表示其他物体的三维位置的数据包含在三维位置数据WSD中,表示对象物体OBJ的三维位置的数据也仍然包含在三维位置数据WSD中。
然后,位置姿态计算部312基于在步骤S1中获取到的图像数据IMG_2D和在步骤S2中生成的三维位置数据WSD的至少一个,来计算对象物体OBJ的位置和姿态中的至少一个(步骤S3)。其结果是,位置姿态计算部312生成表示对象物体OBJ的位置及姿态的至少一个的位置姿态数据POI(步骤S3)。位置姿态数据POI可以包含表示对象物体OBJ的位置的位置数据。除了表示对象物体OBJ的位置的位置数据以外或作为其替代,位置姿态数据POI还可以包含表示对象物体OBJ的姿态的姿态数据。即,位置姿态数据POI可以包含位置数据和姿态数据的至少一个。
此外,能够用于生成位置姿态数据POI的图像数据IMG_2D相当于拍摄装置21的拍摄结果。同样地,能够用于生成位置姿态数据POI的三维位置数据WSD是从相当于拍摄装置22的拍摄结果的图像数据IMG_3D而生成的。因此,可以视为位置姿态计算部312基于拍摄装置21的拍摄结果及拍摄装置22的拍摄结果的至少一个来计算位置姿态数据POI。也就是说,可以视为位置姿态计算部312基于拍摄系统2的拍摄结果来计算位置姿态数据POI。另外,在以下的说明中,基于图像数据IMG_2D的处理(动作)也可以视为与基于拍摄装置21的拍摄结果(即,拍摄系统2的拍摄结果)的处理(动作)等效。基于图像数据IMG_3D的处理(动作)也可以视为与基于拍摄装置22的拍摄结果(即,拍摄系统2的拍摄结果)的处理(动作)等效。基于根据图像数据IMG_3D生成的三维位置数据WSD的处理(动作)也可以视为与基于拍摄装置22的拍摄结果(即,拍摄系统2的拍摄结果)的处理(动作)等效。
步骤S3中,位置姿态计算部312计算全局坐标系中的对象物体OBJ的位置和姿态的至少一方。即,位置姿态计算部312生成表示全局坐标系中的对象物体OBJ的位置及姿态中的至少一方的位置姿态数据POI。例如,机器人控制装置13可以控制机械臂12,以使得末端执行器4位于全局坐标系内的所期望位置。全局坐标系是由彼此正交的X轴(GL)、Y轴(GL)和Z轴(GL)规定的坐标系。X轴(GL)可以是沿着水平面的轴。Y轴(GL)可以是沿着水平面的轴。Z轴(GL)可以是与水平面正交的轴。Z轴(GL)也可以是沿着重力方向延伸的轴。此外,图2所示的X轴、Y轴和Z轴分别可以是X轴(GL)、Y轴(GL)和Z轴(GL)。此外,全局坐标系的原点可以不是图2所示的X轴(GL)、Y轴(GL)和Z轴(GL)的原点。例如,全局坐标系的原点可以设定在图2的基台11的任意位置。例如,全局坐标系的原点可以设定在支承面S的任意位置。例如,全局坐标系的原点可以设定在基台11与支撑面S的接触面的任意位置(例如,接触面的中心或重心)。
位置姿态计算部312可以计算对象物体OBJ在平行于X轴(GL)的X轴方向(GL)上的位置Tx(GL)、对象物体OBJ在平行于Y轴(GL)的Y轴方向(GL)上的位置Ty(GL)和对象物体OBJ在平行于Z轴(GL)的Z轴方向(GL)上的位置Tz(GL)中的至少一个,以作为对象物体OBJ在全局坐标系中的位置。位置姿态计算部312可以计算对象物体OBJ围绕X轴(GL)的旋转量Rx(GL)、对象物体OBJ围绕Y轴(GL)的旋转量Ry(GL)和对象物体OBJ围绕Z轴(GL)的旋转量Rz(GL)中的至少一个,以作为对象物体OBJ在全局坐标系中的姿态。这是因为对象物体OBJ围绕X轴(GL)的旋转量Rx(GL)、对象物体OBJ围绕Y轴(GL)的旋转量Ry(GL)以及对象物体OBJ围绕Z轴(GL)的旋转量Rz(GL)分别与表示对象物体OBJ围绕X轴(GL)的姿态的参数、表示对象物体OBJ围绕Y轴(GL)的姿态的参数以及表示对象物体OBJ围绕Z轴(GL)的姿态的参数等效。因此,以下说明中,将对象物体OBJ围绕X轴(GL)的旋转量Rx(GL)、对象物体OBJ围绕Y轴(GL)的旋转量Ry(GL)以及对象物体OBJ围绕Z轴(GL)的旋转量Rz(GL)分别称为对象物体OBJ围绕X轴(GL)的姿态Rx(GL)、对象物体OBJ围绕Y轴(GL)的姿态Ry(GL)以及对象物体OBJ围绕Z轴(GL)的姿态Rz(GL)。
另外,对象物体OBJ围绕X轴(GL)的姿态Rx(GL)、对象物体OBJ围绕Y轴(GL)的姿态Ry(GL)以及对象物体OBJ围绕Z轴(GL)的姿态Rz(GL)可以视为分别表示对象物体OBJ在围绕X轴(GL)的旋转方向上的位置、对象物体OBJ在围绕Y轴(GL)的旋转方向上的位置以及对象物体OBJ在围绕Z轴(GL)的旋转方向上的位置。即,对象物体OBJ围绕X轴(GL)的姿态Rx(GL)、对象物体OBJ围绕Y轴(GL)的姿态Ry(GL)以及对象物体OBJ围绕Z轴(GL)的姿态Rz(GL)都可以视为表示对象物体OBJ的位置的参数。
由此,在图4的步骤S3中,位置姿态计算部312可以计算位置Tx(GL)、位置Ty(GL)、位置Tz(GL)、姿态Rx(GL)、姿态Ry(GL)和姿态Rz(GL)中的至少一个来作为全局坐标系中的物体OBJ的位置和姿态中的至少一个。
图4的步骤S3中,位置姿态计算部312可以通过进行使用了图像数据IMG_2D和三维位置数据WSD的至少一个的匹配处理,来计算对象物体OBJ的位置和姿态的至少一方。以下说明中,为了便于说明,主要说明以下示例:位置姿态计算部312通过进行使用了三维位置数据WSD的匹配处理,来计算对象物体OBJ的位置和姿态的至少一方。此外,以下说明中,将使用了三维位置数据WSD的匹配处理称为3D匹配处理。
具体而言,位置姿态计算部312可以进行3D匹配处理,该处理使用了三维位置数据WSD、和表示成为对象物体OBJ的基准的三维模型的三维模型数据WMD。该情况下,3D匹配处理例如可以视为是使用了三维位置数据WSD所示的点云和三维模型数据所示的三维模型的匹配处理。另外,3D匹配处理本身也可以与现有的匹配处理相同。例如,位置姿态计算部312也可以使用包含RANSAC(Random Sample Consensensus:随机抽样一致性)、SIFT(Scale-Invariant Feature Transform:尺度不变特征转换)、ICP(Iterative Closest Point:迭代最近点算法)以及DSO(Direct Sparse Odometry:直接稀疏里程计)中的至少一个的公知方法,来进行3D匹配处理。
基于三维位置数据WSD的三维模型可以包括点云模型,该点云模型是使用三维位置数据WSD所示的点云来表示对象物体OBJ的三维形状的三维模型。基于三维位置数据WSD的三维模型可包括通过将构成三维位置数据WSD所示的点云的多个点在面(尤其是以每个点为顶点的多边形的面)上结合而生成的多边形模型或网格模型。基于三维位置数据WSD的三维模型可以包括通过将构成三维位置数据WSD所示的点云的多个点在平滑面上结合而生成的实体模型。
三维模型数据WMD是表示作为对象物体OBJ的三维模型的模板模型TM3的数据。即,三维模型数据WMD是表示模板模型TM3的数据,该模板模型TM3是具有成为对象物体OBJ的基准的三维形状的三维模型。模板模型可以是对象物体OBJ的CAD模型。模板模型可以是具有与通过事先测量实际的对象物体OBJ的三维形状而得的对象物体OBJ的三维形状同样的形状的三维模型。模板模型可以是多边形模型、网格模型或实体模型。三维模型数据WMD可以是表示对象物体OBJ的模板模型TM3的点云数据。三维模型数据WMD可以是从点云数据生成的多边形模型数据、网格模型数据或实体模型数据。此外,为了生成三维模型数据WMD而事先测量的实际的对象物体OBJ可以是基准或良品的对象物体OBJ。
该情况下,位置姿态计算部312可以对三维位置数据WSD进行3D匹配处理(换言之,模板匹配处理),该3D匹配处理使用三维模型数据WMD所示的模板模型TM3来作为模板。具体而言,位置姿态计算部312可以在3D拍摄坐标系内使模板模型TM3平移、放大、缩小及/或旋转,以使得三维模型数据WMD所示的模板模型TM3的特征部位(例如,特征点和边缘的至少一个)接近(例如,匹配)三维位置数据WSD表示三维位置的对象物体OBJ(例如,对应于三维位置数据WSD所示的对象物体OBJ的点云、或反映出对象物体OBJ的实际三维位置的三维模型(例如,点云模型))的特征部位。即,位置姿态计算部312可以变更三维模型数据WMD的坐标系(例如,CAD模型的坐标系)与3D拍摄坐标系之间的位置关系,以使得三维位置数据WSD表示三维位置的对象物体OBJ(例如,对应于三维位置数据WSD所示的对象物体OBJ的点云、或反映出对象物体OBJ的实际三维位置的三维模型(例如,点云模型))的特征部位接近(例如,匹配)模板模型TM3的特征部位。其结果,位置姿态计算部312能够确定三维模型数据WMD的坐标系和3D拍摄坐标系之间的位置关系。之后,位置姿态计算部312可以基于三维模型数据WMD的坐标系与3D拍摄坐标系之间的位置关系,根据三维模型数据WMD的坐标系中的模板模型TM3的位置和姿态中的至少一方,来计算3D拍摄坐标系中的对象物体OBJ的位置和姿态中的至少一方。
之后,位置姿态计算部312基于用于将机器人坐标系和3D拍摄坐标系的任一方中的三维坐标转换成机器人坐标系和3D拍摄坐标系的任意另一方中的三维坐标的转换矩阵,将3D拍摄坐标系中的对象物体OBJ的位置和姿态的至少一方转换成机器人坐标系中的对象物体OBJ的位置和姿态的至少一方。在机器人坐标系被用作全局坐标系的情况下,机器人坐标系中的对象物体OBJ的位置和姿态中的至少一方相当于全局坐标系中的对象物体OBJ的位置和姿态中的至少一方。然而,在使用与机器人坐标系不同的坐标系作为全局坐标系的情况下,位置姿态计算部312可以使用用于将机器人坐标系和全局坐标系中的任意一方的三维坐标转换为机器人坐标系和全局坐标系中的任意另一方的三维坐标的转换矩阵,根据机器人坐标系中的对象物体OBJ的位置和姿态中的至少一方,来计算全局坐标系中的对象物体OBJ的位置和姿态中的至少一方。
当使三维模型数据WMD所示的三维模型的特征部位接近由三维位置数据WSD表示三维位置的对象物体OBJ的特征部位时,位置姿态计算部312可以计算匹配相似度,该匹配相似度是三维模型数据WMD所示的对象物体OBJ的三维模型与由三维位置数据WSD表示三维位置的对象物体OBJ(例如,对象物体OBJ的点云)的相似度。此外,以下说明中,三维模型数据WMD所示的对象物体OBJ的三维模型与由三维位置数据WSD表示三维位置的对象物体OBJ(例如,对象物体OBJ的点云)的相似度即匹配相似度可以简称为对象物体OBJ的匹配相似度。位置姿态计算部312可以使三维模型数据WMD所示的三维模型平移、放大、缩小和/或旋转,以使匹配相似度最大。此外,匹配相似度也可以视为与表示三维模型数据WMD所示的三维模型和由三维位置数据WSD表示三维位置的对象物体OBJ的相关性的相关度等效。此外,相关度也可以说是表示三维模型数据WMD所示的三维模型和由三维位置数据WSD表示三维位置的对象物体OBJ之间的相关性的指标。另外,匹配相似度也可以称为匹配得分。
在通过3D匹配处理检测到计算出的匹配相似度超过规定的匹配判定阈值的对象物体OBJ的情况下,位置姿态计算部312可以选择该对象物体OBJ来作为末端执行器4应进行规定处理的一个对象物体OBJ(即,处理执行物体)。另一方面,在通过3D匹配处理检测到计算出的匹配相似度低于匹配判定阈值的对象物体OBJ的情况下,位置姿态计算部312可以不选择该对象物体OBJ来作为末端执行器4应进行规定处理的一个对象物体OBJ(即,处理执行物体)。
根据三维位置数据WSD,三维位置数据WSD有可能表示多个对象物体OBJ各自的位置。例如,在多个工件W杂乱地或整齐地载置在载置装置T上的情况下,拍摄装置22有可能拍摄多个工件W,并生成拍入了多个工件W来作为多个对象物体OBJ的图像数据IMG_3D。例如,在多个工件W杂乱地或整齐地收纳在作为载置装置T的一个示例的容器(收纳箱)CB中的情况下,拍摄装置22有可能拍摄多个工件W,并生成拍入了多个工件W来作为多个对象物体OBJ的图像数据IMG_3D。其结果是,位置姿态计算部312有可能生成表示多个对象物体OBJ各自的位置的三维位置数据WSD。在这种情况下,位置姿态计算部312可以对多个对象物体OBJ分别进行上述3D匹配处理。例如,位置姿态计算部312可以以多个对象物体OBJ为对象依次进行3D匹配处理。或者,例如,位置姿态计算部312可以同时并行地进行以多个对象物体OBJ分别为对象的多个3D匹配处理。之后,位置姿态计算部312可以选择多个对象物体OBJ中匹配相似度超过匹配判定阈值且匹配相似度为最大的一个对象物体OBJ,以作为末端执行器4应进行规定处理的处理执行物体。或者,位置姿态计算部312可以选择多个对象物体OBJ中匹配相似度超过匹配判定阈值且匹配相似度为第N(N是表示2以上的整数的常数)大的一个对象物体OBJ,以作为末端执行器4应进行规定处理的处理执行物体。或者,位置姿态计算部312可以选择多个对象物体OBJ中与超过规定的匹配判定阈值的匹配相似度对应的一个对象物体OBJ,以作为处理执行物体。或者,位置姿态计算部312可以选择多个对象物体OBJ中与超过匹配判定阈值的匹配相似度对应且最接近末端执行器4的一个对象物体OBJ,以作为处理执行物体。或者,例如,在容器CB(载置装置T)中收纳有多个对象物体OBJ的情况下(例如,多个物体分散堆叠的情况下),位置姿态计算部312可以选择多个对象物体OBJ中与超过匹配判定阈值的匹配相似度对应且沿着Z轴的Z坐标最大(位于最高位置)的一个对象物体OBJ,以作为处理执行物体。另外,多个对象物体OBJ各自的Z坐标也可以是通过上述3D匹配处理计算出的沿着机器人1的全局坐标系的Z轴的Z位置。或者,位置姿态计算部312可以选择多个对象物体OBJ中与超过匹配判定阈值的匹配相似度对应且末端执行器4能进行规定处理的一个对象物体OBJ,以作为处理执行物体。
然而,在末端执行器4能对两个以上的对象物体OBJ同时进行规定处理的情况下,位置姿态计算部312可以选择多个对象物体OBJ中的至少两个来分别作为处理执行物体。即,位置姿态计算部312可以选择末端执行器4应同时进行规定处理的至少两个处理执行物体。此外,以下说明中,为了便于说明,对位置姿态计算部312选择多个对象物体OBJ中的一个对象物体OBJ来作为处理执行物体的示例进行说明。
另外,位置姿态计算部312也可以计算多个对象物体OBJ的匹配相似度,之后,基于多个对象物体OBJ的匹配相似度,选择末端执行器4应进行规定处理的一个对象物体OBJ,之后,计算所选择的一个对象物体OBJ的位置和姿态的至少一方。在这种情况下,位置姿态计算部312可以不计算未被选为末端执行器4应进行规定处理的一个对象物体OBJ的其他对象物体OBJ的位置和姿态。或者,如上所述,由于计算对象物体OBJ的位置和姿态的至少一方来作为3D匹配处理的结果,因此也可以视为位置姿态计算部312将上述匹配相似度与对象物体OBJ的位置和姿态的至少一方一起计算。在这种情况下,位置姿态计算部312可以将多个对象物体OBJ的匹配相似度与多个对象物体OBJ各自的位置和姿态的至少一方一起计算,然后基于多个对象物体OBJ的匹配相似度,来选择末端执行器4应进行规定处理的一个对象物体OBJ。或者,位置姿态计算部312可以计算多个对象物体OBJ的位置和姿态的至少一方,然后计算多个对象物体OBJ的匹配相似度,之后基于计算出的匹配相似度,来选择末端执行器4应进行规定处理的一个对象物体OBJ。
然而,在图4的步骤S3中,除了进行使用了三维位置数据WSD的3D匹配处理以外或作为其替代,位置姿态计算部312还可以通过进行使用了图像数据IMG_2D的匹配处理,来计算对象物体OBJ的位置和姿态的至少一方。此外,以下说明中,将使用了图像数据IMG_2D的匹配处理称为2D匹配处理。
具体而言,位置姿态计算部312可以进行2D匹配处理,该处理使用了图像数据IMG_2D(二维位置数据)、和表示成为对象物体OBJ的基准的二维模型的二维模型数据。具体而言,作为2D匹配处理,位置姿态计算部312可以在图像数据IMG_2D所示的图像内,将二维模型数据所示的二维模型作为模板图像使用,从而进行检测模板图像所示的对象物体OBJ的物体检测处理。换言之,作为匹配处理,位置姿态计算部312也可以进行物体检测处理,该处理通过在图像数据IMG_2D所示的图像内检测与模板图像相似的相似图像部分,从而在图像数据IMG_2D所示的图像内检测对象物体OBJ。另外,2D匹配处理(该情况下,为物体检测处理)本身也可以与现有的匹配处理相同。例如,位置姿态计算部312可以使用SIFT(Scale-Invariant Feature Transform:尺度不变特征转换)或SURF(Speed-Upped RobustFeature:加速稳健特征)等公知的方法来进行2D匹配处理。
二维模型数据可以是基于对象物体OBJ的三维模型数据的数据。这里,二维模型数据可以根据对象物体OBJ的CAD(Computer Aided Design:计算机辅助设计)模型数据来生成,也可以根据基于使用了公知的三维形状测量装置或拍摄装置22的事前测量结果而生成的对象物体OBJ的模型数据(表示多边形模型或网格模型的数据)来生成。例如,二维模型数据可以是二维图像数据,其表示通过将对象物体OBJ的三维模型数据所示的三维模型的至少一部分虚拟地投影到虚拟平面而生成的对象物体OBJ的二维模型的至少一部分。例如,二维模型数据可以是二维图像数据,其表示通过将对象物体OBJ的三维模型数据所示的三维模型的至少一部分虚拟地投影到虚拟平面而生成的对象物体OBJ的二维模型的边缘的至少一部分。另外,二维模型数据也可以不是基于对象物体OBJ的三维模型数据的数据。例如,二维模型数据可以是通过事前由拍摄装置21拍摄对象物体OBJ而生成的图像数据IMG_2D。例如,二维模型数据可以是通过事前由拍摄装置21拍摄对象物体OBJ而生成的图像数据IMG_2D所示的图像上的特征部位。例如,图像数据IMG_2D所示的图像上的特征部位可以是在图像数据IMG_2D所示的图像中拍入的对象物体OBJ的特征点和边缘的至少一方。另外,在图像数据IMG_2D所示的图像上的特征部位包括对象物体OBJ的边缘的情况下,二维模型也可以视为是对象物体OBJ的至少一部分的边缘的模型(边缘模型)。图像数据IMG_2D所示的图像上的特征部位可以是图像数据IMG_2D所示的图像中拍入的、对象物体OBJ的多个特征点中的至少一个和对象物体OBJ的边缘中的至少一部分边缘的至少一方。另外,图像数据IMG_2D所示的图像上的特征部位也可以通过公知的图像处理来检测。
位置姿态计算部312可以使模板图像中拍入的对象物体OBJ的二维模型平移、放大、缩小及/或旋转,以使得模板图像中拍入的对象物体OBJ的二维模型的特征部位(例如,特征点和边缘的至少一个)接近(例如,匹配)图像数据IMG_2D所示的图像中拍入的对象物体OBJ的特征部位。其结果是,位置姿态计算部312能够确定二维模型数据的坐标系和2D拍摄坐标系的位置关系。之后,位置姿态计算部312可以基于二维模型数据的坐标系与2D拍摄坐标系的位置关系,根据二维模型数据的坐标系中的对象物体OBJ的位置和姿态中的至少一方,来计算2D拍摄坐标系中的对象物体OBJ的位置和姿态的至少一方。
之后,位置姿态计算部312基于用于将机器人坐标系和2D拍摄坐标系的任一方中的三维坐标转换成机器人坐标系和2D拍摄坐标系的任意另一方中的三维坐标的转换矩阵,将2D拍摄坐标系中的对象物体OBJ的位置和姿态的至少一方转换成机器人坐标系中的对象物体OBJ的位置和姿态的至少一方。在机器人坐标系被用作全局坐标系的情况下,机器人坐标系中的对象物体OBJ的位置和姿态中的至少一方相当于全局坐标系中的对象物体OBJ的位置和姿态中的至少一方。然而,在使用与机器人坐标系不同的坐标系作为全局坐标系的情况下,位置姿态计算部312可以使用用于将机器人坐标系和全局坐标系中的任意一方的三维坐标转换为机器人坐标系和全局坐标系的任意另一方的三维坐标的转换矩阵,根据机器人坐标系中的对象物体OBJ的位置和姿态中的至少一方,来计算全局坐标系中的对象物体OBJ的位置和姿态中的至少一方。
在进行2D匹配处理的情况下,与进行3D匹配处理的情况同样地,位置姿态计算部312也可以计算匹配相似度。在2D匹配处理中计算的匹配相似度是模板图像(即,对象物体OBJ的二维模型)和图像数据IMG_2D所示的图像(特别是模板图像的合并了对象物体OBJ的图像部分)的相似度。此外,以下说明中,可以将模板图像(即,对象物体OBJ的二维模型)和图像数据IMG_2D所示的图像(特别是模板图像的合并了对象物体OBJ的图像部分)的相似度即匹配相似度简称为对象物体OBJ的匹配相似度。此外,2D匹配处理中计算出的匹配相似度的用途与上述3D匹配处理中计算出的匹配相似度的用途相同,因此省略其详细说明。
在进行2D匹配处理的情况下,与进行3D匹配处理的情况同样地,位置姿态计算部312也可以以图像数据IMG_2D所示的图像中拍入的多个对象物体OBJ为对象依次或同时并行进行2D匹配处理。之后,与进行3D匹配处理的情况同样地,位置姿态计算部312可以选择多个对象OBJ中的至少一个对象物体OBJ来作为处理执行物体。该情况下,位置姿态计算部312可以基于匹配相似度来选择多个对象物体OBJ中的至少一个对象物体OBJ,以作为处理执行物体。此外,图4的步骤S3中,在位置姿态计算部312进行使用了图像数据IMG_2D的匹配处理以代替进行使用了三维位置数据WSD的3D匹配处理,从而计算对象物体OBJ的位置和姿态的至少一方,该情况下,图4所示的机器人控制处理可以不包含图4的步骤S2。
或者,在图4的步骤S3中,除了进行使用了三维位置数据WSD的3D匹配处理和使用了图像数据IMG_2D的2D匹配处理的至少一个以外或作为其替代,位置姿态计算部312可以进行使用了三维位置数据WSD和图像数据IMG_2D双方的匹配处理,来计算对象物体OJB的位置和姿态的至少一方。
例如,位置姿态计算部312可以根据基于图像数据IMG_2D计算出的2D拍摄坐标系中的对象物体OBJ的位置和姿态中的一部分、以及基于图像数据IMG_3D计算出的3D拍摄坐标系中的对象物体OBJ的位置和姿态中的一部分,来计算全局坐标系中的对象物体OBJ的位置和姿态的至少一方。例如,位置姿态计算部312可以通过根据基于图像数据IMG_2D计算出的2D拍摄坐标系中的对象物体OBJ的位置和姿态中的至少一个,来设定进行3D匹配处理时所使用的三维模型(模板模型TM3)的初始位置和初始姿态中的至少一个,并进行使用了配置在所设定的初始位置及/或以所设定的初始姿态配置的三维模型的3D匹配处理,从而计算3D拍摄坐标系中的对象物体OBJ的位置和姿态的至少一方,并根据3D拍摄坐标系中的对象物体OBJ的位置和姿态的至少一方,来计算全局坐标系中的对象物体OBJ的位置和姿态的至少一方。
在使用图像数据IMG_2D和三维位置数据WSD双方来计算对象物体OBJ的位置和姿态的至少一方的情况下,位置姿态计算部312可以选择满足通过2D匹配处理计算出的匹配相似度(之后称为2D匹配相似度)和通过3D匹配处理计算出的匹配相似度(之后称为3D匹配相似度)之和或积为最大的条件的一个对象物体OBJ,以作为末端执行器4应进行规定处理的一个对象物体OBJ。位置姿态计算部312可以选择满足2D匹配相似度超过匹配判定阈值且为最大的条件的一个对象物体OBJ,以作为末端执行器4应进行规定处理的一个对象物体OBJ。位置姿态计算部312可以选择满足3D匹配相似度超过匹配判定阈值且为最大的条件的一个对象物体OBJ,以作为末端执行器4应进行规定处理的一个对象物体OBJ。位置姿态计算部312也可以选择满足2D匹配相似度和3D匹配相似度双方都超过匹配判定阈值的条件的一个对象物体OBJ,以作为末端执行器4应进行规定处理的一个对象物体OBJ。位置姿态计算部312也可以选择满足2D匹配相似度和3D匹配相似度双方都超过匹配判定阈值的条件、且最接近末端执行器4的一个对象物体OBJ,以作为末端执行器4应进行规定处理的一个对象物体OBJ。位置姿态计算部312也可以选择满足2D匹配相似度和3D匹配相似度双方都超过匹配判定阈值的条件、且沿着Z轴的Z坐标最大(位于最高位置)的一个对象物体OBJ,以作为末端执行器4应进行规定处理的一个对象物体OBJ。
此外,在位置姿态计算部312进行使用了三维位置数据WSD的匹配处理而不进行使用了图像数据IMG_2D的匹配处理的情况下,控制装置3在步骤S1中可以不获取图像数据IMG_2D。在控制装置3不获取图像数据IMG_2D的情况下,拍摄装置21可以不拍摄对象物体OBJ。在控制装置3不获取图像数据IMG_2D的情况下,拍摄系统2可以不具备拍摄装置21。
在位置姿态计算部312进行使用了图像数据IMG_2D的匹配处理而不进行使用了三维位置数据WSD的匹配处理的情况下,控制装置3在步骤S1中可以不获取图像数据IMG_3D。在控制装置3不获取图像数据IMG_3D的情况下,拍摄装置22可以不拍摄对象物体OBJ。在控制装置3不获取图像数据IMG_3D的情况下,拍摄系统2可以不具备拍摄装置22。在控制装置3不获取图像数据IMG_3D的情况下,控制装置3可以不具备三维位置数据生成部311。
此外,以下的说明中,为了简化说明,主要以图4的步骤S3中位置姿态计算部312进行3D匹配处理为例进行说明。
之后,信号生成部313使用在步骤S3中生成的位置姿态数据POI(即,处理执行物体的位置和姿态的至少一个的计算结果),生成机器人控制信号(步骤S4)。例如,信号生成部313可以生成机器人控制信号,以使得末端执行器4能对对象物体OBJ(特别是处理执行物体)进行规定处理。例如,信号生成部313可以生成机器人控制信号以使得末端执行器4接近对象物体OBJ(特别是处理执行物体),以便末端执行器4对对象物体OBJ(特别是处理执行物体)进行规定处理。例如,信号生成部313可以生成机器人控制信号,以使得末端执行器4与对象物体OBJ(特别是处理执行物体)的位置关系成为所期望位置关系。例如,信号生成部313也可以生成用于控制机械臂12的动作以使末端执行器4与对象物体OBJ(特别是处理执行物体)的位置关系成为所期望的位置关系的机器人控制信号。例如,信号生成部313可以生成机器人控制信号,以使得在末端执行器4和对象物体OBJ(特别是处理执行物体)的位置关系成为所期望的位置关系的时刻由末端执行器4对对象物体OBJ(特别是处理执行物体)进行规定处理。例如,信号生成部313可以生成用于控制末端执行器4的动作以使得在末端执行器4与对象物体OBJ(特别是处理执行物体)的位置关系成为所期望的位置关系的时刻对物体OBJ(特别是处理执行物体)进行规定处理的机器人控制信号。此外,如上所述,用于控制末端执行器4的动作的机器人控制信号可以被称为末端执行器控制信号。
此外,信号生成部313可以使用步骤S3中生成的位置姿态数据POI来生成机器人控制信号,以进行机器人1的反馈控制。例如,信号生成部313可以使用位置姿态数据POI来生成机器人控制信号,以进行包含P(Proportional:比例)控制的反馈控制。例如,信号生成部313可以使用位置姿态数据POI来生成机器人控制信号,以进行包含PI(Proportional-Integral:比例积分)控制的反馈控制。例如,信号生成部313可以使用位置姿态数据POI来生成机器人控制信号,以进行包含PID(Proportional-Integral-Differential:比例积分微分)控制的反馈控制。
作为一个示例,图5(a)至图5(d)分别是示出用于对在支承面S上移动的AGV(Automatic Guided Vehicle:自动搬运车)等载置装置T#1所载置的工件W(即,对象物体OBJ的一个示例)进行保持的保持处理的进行期间中的某个时刻下机器人1与工件W的位置关系的侧视图。该情况下,控制装置3可以生成表示作为保持处理对象的工件W(即,保持处理中的对象物体OBJ的一个示例)的位置和姿态的至少一方的位置姿态数据POI,并使用所生成的位置姿态数据POI来生成机器人控制信号。例如,如图5(a)所示,信号生成部313也可以生成用于控制机械臂12的动作以使末端执行器4朝向移动的工件W正上方的空间移动的机器人控制信号。作为一个示例,信号生成部313可以基于位置姿态计算部312逐次计算出的工件W的位置和姿态的至少一个,一边根据移动的工件W逐次更新末端执行器4的移动目标地点,一边生成用于控制机械臂12的动作以使得末端执行器4以所期望姿态位于(换言之,接近)逐次更新的移动目标地点的机器人控制信号。如图5(b)所示,信号生成部313也可以生成用于控制机械臂12的动作以使位于移动的工件W正上方的末端执行器4继续位于工件W的正上方地接近工件W直到能够保持工件W为止的机器人控制信号。如图5(c)所示,信号生成部313也可以生成用于控制机械臂12及末端执行器4的动作以使位于能够对移动的工件W进行保持的位置的末端执行器4一边追随移动的工件W一边保持工件W的机器人控制信号。如图5(d)所示,信号生成部313也可以生成用于控制机械臂12及末端执行器4的动作以使保持工件W的末端执行器4在保持着工件W的状态下离开移动的载置装置T#1的机器人控制信号。
在机器人1使用末端执行器4来保持载置装置T#1所载置的工件W的情况下,机器人1可以进行将所保持的工件W释放的释放处理,以使得所保持的工件W载置到不同于载置装置T#1的载置装置T#2(即,释放处理中的对象物体OBJ的一个示例)上。即,机器人1也可以通过接续进行保持处理及释放处理,进行用于将工件W配置在载置装置T#2上的配置处理。该情况下,控制装置3可以生成表示作为释放处理对象的载置装置T#2的位置和姿态的至少一方的位置姿态数据POI,并使用所生成的位置姿态数据POI来生成机器人控制信号。例如,图6(a)至图6(d)分别是表示进行用于将工件W配置到在支承面S上移动的载置装置T#2上的释放处理的期间中的某个时刻下的机器人1与工件W的位置关系的侧视图。该情况下,如图6(a)所示,信号生成部313也可以生成用于控制机械臂12的动作以使保持工件W的末端执行器4在保持着工件W的状态下移动到移动的载置装置T#2正上方的空间的机器人控制信号。作为一个示例,信号生成部313可以基于位置姿态计算部312逐次计算出的载置装置T#2的位置和姿态的至少一个,一边根据移动的载置装置T#2逐次更新末端执行器4的移动目标地点,一边生成用于控制机械臂12的动作以使得末端执行器4以所期望姿态位于(换言之,接近)逐次更新的移动目标地点的机器人控制信号。如图6(b)所示,信号生成部313也可以生成用于控制机械臂12的动作以使得位于移动的载置装置T#2正上方且保持着工件W的末端执行器4继续位于载置装置T#2的正上方且继续保持着工件W地接近载置装置T#2直到能够将工件W配置在载置装置T#2上的机器人控制信号。如图6(c)所示,信号生成部313也可以生成用于控制机械臂12及末端执行器4的动作以使得位于能够将工件W配置于载置装置T#2的位置的末端执行器4一边追随移动的载置装置T#2一边将工件W载置于载置装置T#2(即,释放所保持的工件W)的机器人控制信号。如图6(d)所示,信号生成部313也可以生成用于控制机械臂12的动作以使将工件W配置到载置装置T#2后的末端执行器4离开载置装置T#2的机器人控制信号。
在进行释放处理(特别是为了进行配置处理而进行释放处理)的情况下,除了表示作为释放处理的第1对象的载置装置T#2(即,释放处理中的对象物体OBJ的一个示例)的位置和姿态的至少一方的位置姿态数据POI以外,控制装置3还可以进一步生成表示作为释放处理的第2对象的工件W(即,释放处理中的对象物体OBJ的一个示例)的位置和姿态的至少一方的位置姿态数据POI。即,除了在末端执行器4保持工件W之前生成表示尚未由末端执行器4保持的工件W的位置和姿态的至少一方的位置姿态数据POI以外,控制装置3还可以在末端执行器4保持工件W之后生成表示由末端执行器4保持的工件W的位置和姿态的至少一方的位置姿态数据POI。
在进行释放处理的情况下,在通过释放处理释放由末端执行器4保持的工件W之前,除了关于载置装置T#2的位置姿态数据POI以外,控制装置3还可以使用表示由末端执行器4保持的工件W的位置和姿态的至少一方的位置姿态数据POI,来生成机器人控制信号。即,控制装置3可以在末端执行器4保持工件W的期间的至少一部分中,使用表示由末端执行器4保持的工件W的位置和姿态的至少一方的位置姿态数据POI,来生成机器人控制信号。
例如,信号生成部313也可以生成用于控制机械臂12以使由末端执行器4保持的工件W移动到所期望的位置(例如,应释放工件W的位置)的机器人控制信号。该情况下,与不使用关于工件W的位置姿态数据POI的情况相比,机器人1能将由末端执行器4保持的工件W恰当地配置到载置装置T的所期望位置(能执行配置处理)。这是由于由末端执行器4所保持的工件W的位置对于控制装置3而言是已知的信息。假设在工件W的位置不是已知的信息的情况下,有可能产生工件W与载置装置T碰撞的技术问题。或者,在工件W的位置不是已知的信息的情况下,通过上述配置处理,有可能产生工件W被配置在载置装置T(或其它物体)的非预期位置的技术问题。或者,在工件W的位置不是已知的信息的情况下,通过上述嵌入处理,有可能产生工件W被嵌入到其它物体的非预期位置的技术问题。或者,在工件W的位置不是已知的信息的情况下,通过上述粘贴处理,有可能产生工件W被粘贴到其他物体的非预期位置的技术问题。或者,在工件W的位置不是已知的信息的情况下,通过上述粘接处理,有可能产生工件W被粘接到其他物体的非预期位置的技术问题。或者,在工件W的位置不是已知的信息的情况下,通过上述焊接处理,有可能产生工件W被焊接到其他物体的非预期位置的技术问题。然而,本实施方式中,由于工件W的位置为已知的信息,因此产生这种技术问题的可能性并不存在或较低。
此外,例如,信号生成部313也可以生成用于控制末端执行器4以将由末端执行器4保持的工件W的姿态变更为所期望姿态的机器人控制信号。该情况下,与未使用与工件W有关的位置姿态信息POI的情况相比,机器人1能够使用末端执行器4将所期望姿态的工件W配置于载置装置T(能执行配置处理)。这是由于由末端执行器4所保持的工件W的姿态对于控制装置3而言是已知的信息。假设在工件W的姿态不是所期望的姿态的情况下,有可能产生工件W与载置装置T碰撞的技术问题。或者,在工件W的姿态不是所期望的姿态的情况下,通过上述配置处理,有可能产生工件W以非预期的姿态配置于载置装置T(或其他物体)的技术问题。或者,在工件W的姿态不是所期望的姿态的情况下,通过上述嵌入处理,有可能产生工件W以非预期的姿态嵌入到其他物体的技术问题。或者,在工件W的姿态不是所期望的姿态的情况下,通过上述粘贴处理,有可能产生工件W以非预期的姿态粘贴到其他物体的技术问题。或者,在工件W的姿态不是所期望的姿态的情况下,通过上述粘接处理,有可能产生工件W以非预期的姿态粘接到其它物体的技术问题。或者,在工件W的姿态不是所期望的姿态的情况下,通过上述焊接处理,有可能产生工件W以非预期的姿态焊接到其他物体的技术问题。然而,本实施方式中,由于能控制机器人1以使得工件W的姿态成为所期望的姿态,因此产生这种技术问题的可能性并不存在或较低。
此外,不限于进行释放处理的情况,在末端执行器4保持工件W的任意场景下,控制装置3可以使用表示由末端执行器4保持的工件W的位置和姿态的至少一方的位置姿态数据POI,来生成机器人控制信号。
图5(a)至图5(d)所示的载置装置T#1和图6(a)至图6(d)所示的载置装置T#2的至少一方并不一定需要在支承面S上移动。例如,图7(a)至图7(b)分别是表示用于对在支承面S上静止的载置装置T#1上所载置的工件W进行保持的保持处理的进行期间中的某个时刻下的机器人1与工件W的位置关系的侧视图。该情况下,如图7(a)所示,信号生成部313也可以生成用于控制机械臂12的动作以使末端执行器4接近工件W直到能够保持静止的工件W为止的机器人控制信号。作为一个示例,信号生成部313可以基于位置姿态计算部312计算的工件W的位置和姿态的至少一个,来生成用于控制机械臂12的动作以使得末端执行器4以所期望姿态位于(换言之,接近)能由末端执行器4对计算出位置和姿态的至少一个的工件W进行保持的位置处的机器人控制信号。如图7(b)所示,信号生成部313可以生成用于控制机械臂12及末端执行器4的动作以使位于能够保持静止的工件W的位置的末端执行器4保持工件W的机器人控制信号。另外,图7(c)至图7(e)分别是表示进行用于将工件W配置到在支承面S上静止的载置装置T#2上的释放处理的期间中的某个时刻下的机器人1与工件W的位置关系的侧视图。该情况下,如图7(c)所示,信号生成部313也可以生成用于控制机械臂12的动作以使保持工件W的末端执行器4在保持着工件W的状态下接近载置装置T#2直到能将工件W配置于静止的载置装置T#2为止的机器人控制信号。如图7(d)所示,信号生成部313也可以生成用于控制机械臂12及末端执行器4的动作以使得位于能够将工件W配置于载置装置T#2的位置的末端执行器4将工件W载置于静止的载置装置T#2(即,释放保持的工件W)的机器人控制信号。如图7(e)所示,信号生成部313也可以生成用于控制机械臂12的动作以使将工件W配置到载置装置T#2后的末端执行器4离开载置装置T#2的机器人控制信号。
载置装置T#1上可以载置多个工件W。例如,可以在载置装置T#1上以多个工件W在载置装置T#1上按照一定的基准排列的方式载置多个工件W。例如,可以在载置装置T#1上以使多个工件W在载置装置T#1上随机堆放的方式载置多个工件W。该情况下,机器人1可以进行保持处理,该处理用于选择性地保持载置装置T#1上所载置的多个工件W中所期望的一个工件W。特别地,机器人1可以进行用于逐个依次保持载置装置T#1上所载置的多个工件W的保持处理。
此外,机器人1可以进行用于将多个工件W配置在载置装置T#2上的释放处理。即,机器人1可以通过进行保持处理和释放处理,进行用于将载置在载置装置T#1上的多个工件W逐个依次配置在载置装置T#2上(或进一步配置在其他的载置装置上)的配置处理。该情况下,机器人1可以进行以多个工件W在载置装置T#2上按照一定的基准排列的方式将多个工件W逐个依次配置于载置装置T#2的释放处理。机器人1可以进行以多个工件W在载置装置T#2上随机堆放的方式将多个工件W逐个依次配置于载置装置T#2的释放处理。
作为一个示例,图8(a)至图8(e)和图9(a)至图9(e)分别是示出进行用于逐个依次保持载置装置T#1上所载置的两个工件W#1和W#2的保持处理、以及用于逐个依次将两个工件W#1和W#2配置于载置装置T#2的释放处理的期间中的某个时刻下的机器人1与工件W的位置关系的侧视图。该情况下,如图8(a)所示,信号生成部313可以生成用于控制机械臂12的动作以使末端执行器4接近工件W#1和W#2的任意一方(图8(a)所示的示例中,工件W#2)直到能保持工件W#2为止的机器人控制信号。作为一个示例,信号生成部313可以基于位置姿态计算部312计算的工件W#2的位置和姿态的至少一个,来生成用于控制机械臂12的动作以使得末端执行器4以所期望姿态位于(换言之,接近)能由末端执行器4对计算出位置和姿态的至少一个的工件W#2进行保持的位置处的机器人控制信号。之后,如图8(b)所示,信号生成部313可以生成用于控制机械臂12及末端执行器4的动作以使位于能保持工件W#2的位置的末端执行器4保持工件W#2的机器人控制信号。之后,如图8(c)所示,信号生成部313可以生成用于控制机械臂12的动作以使保持工件W#2的末端执行器4在保持着工件W#2的状态下接近载置装置T#2直到能将工件W#2配置于载置装置T#2为止的机器人控制信号。作为一个示例,信号生成部313可以基于位置姿态计算部312计算的载置装置T#2的位置和姿态的至少一个,来生成用于控制机械臂12的动作以使得末端执行器4以所期望姿态位于(换言之,接近)末端执行器4能将工件W2配置于计算出位置和姿态的至少一个的载置装置T#2的位置处的机器人控制信号。之后,如图8(d)所示,信号生成部313也可以生成用于控制机械臂12及末端执行器4的动作以使得位于能够将工件W#2配置于载置装置T#2的位置处的末端执行器4将工件W#2载置于载置装置T#2(即,释放所保持的工件W#2)的机器人控制信号。然后,如图8(e)所示,信号生成部313也可以生成用于控制机械臂12的动作以使将工件W#2配置到载置装置T#2后的末端执行器4离开载置装置T#2的机器人控制信号。之后,如图9(a)所示,信号生成部313可以生成用于控制机械臂12的动作以使末端执行器4接近工件W#1和W#2中剩余的一方(图9(a)所示的示例中,工件W#1)直到能保持工件W#1为止的机器人控制信号。作为一个示例,信号生成部313可以基于位置姿态计算部312计算的工件W#1的位置和姿态的至少一个,来生成用于控制机械臂12的动作以使得末端执行器4以所期望姿态位于(换言之,接近)能由末端执行器4对计算出位置和姿态的至少一个的工件W#1进行保持的位置处的机器人控制信号。之后,如图9(b)所示,信号生成部313可以生成用于控制机械臂12及末端执行器4的动作以使位于能保持工件W#1的位置的末端执行器4保持工件W#1的机器人控制信号。之后,如图9(c)所示,信号生成部313可以生成用于控制机械臂12的动作以使保持工件W#1的末端执行器4在保持着工件W#1的状态下接近载置装置T#2直到能将工件W#1配置于载置装置T#2为止的机器人控制信号。作为一个示例,信号生成部313可以基于位置姿态计算部312计算的载置装置T#2的位置和姿态的至少一个,来生成用于控制机械臂12的动作以使得末端执行器4以所期望姿态位于(换言之,接近)末端执行器4能将工件W1配置于计算出位置和姿态的至少一个的载置装置T#2的位置处的机器人控制信号。之后,如图9(d)所示,信号生成部313也可以生成用于控制机械臂12及末端执行器4的动作以使得位于能够将工件W#1配置于载置装置T#2的位置处的末端执行器4将工件W#1载置于载置装置T#2(即,释放所保持的工件W#1)的机器人控制信号。然后,如图9(e)所示,信号生成部313也可以生成用于控制机械臂12的动作以使将工件W#1配置到载置装置T#2后的末端执行器4离开载置装置T#2的机器人控制信号。
机器人1可以进行用于逐个依次地对在支承面S上移动的载置装置T#1上所载置的多个工件W进行保持的保持处理。或者,机器人1可以进行用于逐个依次地对在支承面S上静止的载置装置T#1上所载置的多个工件W进行保持的保持处理。机器人1可以进行逐个依次地将多个工件W配置于在支承面S上移动的载置装置T#2的释放处理。机器人1可以进行逐个依次地将多个工件W配置于在支承面S上静止的载置装置T#2的释放处理。
回到图4,信号生成部313使用通信装置33,将步骤S4中生成的机器人控制信号输出到机器人1(特别是机器人控制装置13)。其结果,机器人控制装置13基于机器人控制信号来控制机器人1的动作(例如,机械臂12的动作)以及末端执行器4的动作中的至少一方。
之后,控制装置3重复步骤S1至步骤S4的一系列处理,直到被判定为机器人1对在步骤S3中被选为处理执行物体的一个对象物体OBJ完成了规定处理为止(步骤S5)。例如,如图5(a)至图5(d)所示,在末端执行器4进行保持处理的情况下,控制装置3重复步骤S1至步骤S4的一系列处理,直到被判定为末端执行器4保持了在步骤S3中被选为处理执行物体的一个对象物体OBJ为止(步骤S5)。例如,如图6(a)至图6(d)所示,在末端执行器4进行释放处理的情况下,控制装置3重复步骤S1至步骤S4的一系列处理,直到被判定为末端执行器4释放了末端执行器4所保持的一个对象物体OBJ为止(步骤S5)。
由于在判定为机器人1对一个对象物体OBJ未完成规定处理的情况下(步骤S5:否)重复步骤S1至步骤S4的一系列处理,因此控制装置3在基于机器人控制信号对机械臂12和末端执行器4的至少一方的动作进行控制的期间中,也持续从拍摄装置21及22获取图像数据IMG_2D和IMG_3D的至少一方。例如,如图5(a)至图5(d)所示,在末端执行器4进行保持处理的情况下,控制装置3可以重复步骤S1至步骤S4的一系列处理,直到末端执行器4保持工件W为止(进一步地,根据需要,直到保持了工件W的末端执行器4离开载置装置T#1为止)。例如,如图6(a)至图6(d)所示,在末端执行器4进行释放处理的情况下,控制装置3可以重复步骤S1至步骤S4的一系列处理,直到末端执行器4将工件W配置于载置装置T#2为止(进一步地,根据需要,直到将工件W配置到载置装置T#2后的末端执行器4离开载置装置T#2为止)。
在该情况下,如上所述,由于基于机器人控制信号来控制机械臂12和末端执行器4中的至少一个的动作,因此拍摄装置21和22可以分别在对象物体OBJ与拍摄装置21和22的相对移动中拍摄对象物体OBJ。例如,拍摄装置21和22可以分别在对象物体OBJ静止而拍摄装置21和22移动的期间拍摄对象物体OBJ。例如,拍摄装置21和22可以分别在对象物体OBJ移动而拍摄装置21和22静止的期间拍摄对象物体OBJ。例如,拍摄装置21和22可以分别在对象物体OBJ移动且拍摄装置21和22移动的期间拍摄对象物体OBJ。即,控制装置3可以在对象物体OBJ与拍摄装置21和22的相对移动中(即,拍摄装置21和22以及对象物体OBJ的至少一个移动的期间)持续进行图4所示的机器人控制处理(也可以重复图4所示的机器人控制处理)。其结果是,控制装置3即使在基于机器人控制信号来控制机器人1的动作的期间中,也能够基于新获取的图像数据IMG_2D及IMG_3D来重新生成(即,更新)表示对象物体OBJ的位置和姿态的至少一方的位置姿态数据POI。
在该情况下,特别是在因对象物体OBJ移动而导致对象物体OBJ的位置和姿态的至少一个发生变化时,控制装置3能够重新计算对象物体OBJ的位置和姿态的至少一个。也就是说,控制装置3能够重新生成反映了由于对象物体OBJ的移动而引起的对象物体OBJ的位置和姿态的至少一个的变化的位置姿态数据POI。因此,位置姿态数据POI所示的位置和姿态的至少一个与对象物体OBJ的实际位置及实际姿态的至少一个产生较大偏差的可能性较低。因此,控制装置3能够适当地控制机械臂12的动作,以使末端执行器4能够适当地接近对象物体OBJ(特别是正在移动的对象物体OBJ)。
其中,拍摄装置21和22可以分别在对象物体OBJ静止且拍摄装置21和22静止的期间拍摄对象物体OBJ。控制装置3可以在拍摄装置21和22以及对象物体OBJ静止的期间进行图4所示的机器人控制处理。此外,控制装置3可以在拍摄装置21和22以及对象物体OBJ静止的期间重复图4所示的机器人控制处理。
或者,在对象物体OBJ静止的情况下,在步骤S3中计算出的对象物体OBJ的位置和姿态的至少一个随时间的经过而发生变化的可能性较低。因此,通过重新进行步骤S1至步骤S3的一系列处理来重新计算对象物体OBJ的位置和姿态的至少一个的必要性较低。因此,在对象物体OBJ静止的情况下,即使被判定为机器人1对一个对象物体OBJ未完成规定处理,控制装置3也可以不重复步骤S1至步骤S3的一系列处理。在该情况下,控制装置3可以基于在步骤S4中已生成的机器人控制信号,继续控制机器人1。也就是说,控制装置3无需在步骤S4中新生成机器人控制信号,而是可以基于在步骤S4中已生成的机器人控制信号,继续控制机器人1。换言之,为了控制机器人1,控制装置3无需在步骤S4中新生成机器人控制信号,而是可以继续使用在步骤S4中已生成的机器人控制信号。
此外,如上所述,位置姿态计算部312在步骤S3中也可以不计算全局坐标系中的对象物体OBJ的位置和姿态的至少一方。该情况下,位置姿态计算部312可以在图4的步骤S3中计算与全局坐标系不同的坐标系内(例如,机器人坐标系、2D拍摄坐标系或3D拍摄坐标系)的对象物体OBJ的位置和姿态的至少一方。即,位置姿态计算部312可以生成表示与全局坐标系不同的坐标系内(例如,机器人坐标系、2D拍摄坐标系或3D拍摄坐标系)的对象物体OBJ的位置和姿态的至少一方的位置姿态数据POI。该情况下,信号生成部313可以在步骤S4中使用步骤S3中计算出的表示与全局坐标系不同的坐标系内的对象物体OBJ的位置和姿态的至少一方的位置姿态数据POI来生成机器人控制信号。
之后,在判定为机器人1对一个对象物体OBJ完成了规定处理的情况下(步骤S5:是),控制装置3判定是否结束图4所示的机器人控制处理(步骤S6)。例如,在机器人1应对其他对象物体OBJ进行规定处理的情况下,控制装置3可以判定为不结束图4所示的机器人控制处理。例如,在机器人1应进行规定处理的对象物体OBJ仍有剩余的情况下,控制装置3可以判定为不结束图4所示的机器人控制处理。例如,在机器人1可以不对其他对象物体OBJ进行规定处理的情况下,控制装置3可以判定为结束图4所示的机器人控制处理。例如,在机器人1应进行规定处理的对象物体OBJ没有剩余的情况下,控制装置3可以判定为结束图4所示的机器人控制处理。
步骤S6中的判定结果是判定为结束图4所示的机器人控制处理的情况下(步骤S6:是),控制装置3结束图4所示的机器人控制处理。
另一方面,步骤S6中的判定结果是判定为不结束图4所示的机器人控制处理的情况下(步骤S6:否),控制装置3再次进行步骤S1至步骤S5的一系列处理。也就是说,控制装置3再次进行步骤S1至步骤S5的一系列处理,以使机器人1对与已进行了规定处理的一个对象物体OBJ不同的其他对象物体OBJ重新进行规定处理。
在本实施方式中,控制装置3(特别是信号生成部313)在再次进行步骤S1至步骤S5的一系列处理以使得机器人1在对一个对象物体OBJ完成规定处理后,由机器人1对其他对象物体OBJ进行规定处理之前,调整拍摄系统2的高度(步骤S7)。具体而言,控制装置3可以调节拍摄系统2对对象物体OBJ进行拍摄的高度(步骤S7)。此外,在以下的说明中,将拍摄系统2的高度(即,拍摄系统2对对象物体OBJ进行拍摄的高度)称为“拍摄高度CH”。此外,拍摄高度CH也可以说是进行拍摄系统2拍摄对象物体OBJ的处理(拍摄处理)的高度。因此,拍摄高度CH也可以被称为拍摄处理高度。
本实施方式中的“高度”是指全局坐标系中沿Z轴方向的位置。在该情况下,高度可以是全局坐标系中的Z轴坐标值。但是,高度也可以是指与全局坐标系不同的坐标系中沿Z轴方向的拍摄系统2的位置。在该情况下,高度可以是与全局坐标系不同的坐标系中的Z轴坐标值。作为与全局坐标系不同的坐标系的一个示例,可以列举上述机器人坐标系、2D拍摄坐标系及3D拍摄坐标系中的至少一个。或者,高度可以是指沿拍摄系统2的光轴方向的位置。此外,拍摄装置21的光轴AX21及拍摄装置22的光轴AX22的至少一个可以被用作拍摄系统2的光轴。此外,拍摄系统2的光轴方向可以视为与拍摄系统2的拍摄方向等效。
此外,本实施方式中的“高度”可以是指距基准点的高度。作为基准点的一个示例,可以使用全局坐标系的坐标原点。作为基准点的一个示例,可以使用与全局坐标系不同的坐标系的坐标原点。作为基准点的一个示例,可以使用基准物体的基准部位。作为基准物体,可以使用对象物体OBJ,也可以使用与对象物体OBJ不同的其他物体(例如,载置装置T或容器CB)。
此外,拍摄高度CH可以是指拍摄系统2距对象物体OBJ的高度。在该情况下,拍摄高度CH可以视为与拍摄系统2和对象物体OBJ之间的距离等效。具体而言,拍摄高度CH可以视为与对对象物体OBJ进行拍摄的拍摄系统2和对象物体OBJ之间的距离等效。因此,拍摄高度CH也可以被称为拍摄距离。如上所述,拍摄高度CH可以视为与拍摄系统2和对象物体OBJ之间的距离等效。在该情况下,拍摄高度CH可以视为与全局坐标系的Z轴方向上的拍摄系统2和对象物体OBJ之间的距离等效。例如,拍摄高度CH可以视为与和全局坐标系不同的Z轴方向上的拍摄系统2和对象物体OBJ之间的距离等效。例如,拍摄高度CH可以视为与拍摄系统2的光轴方向上的拍摄系统2和对象物体OBJ之间的距离等效。
此外,本实施方式中的“拍摄系统2的高度”可以是指拍摄装置21和22中的至少一个的高度。因此,本实施方式中的“拍摄系统2的拍摄高度CH”可以是指由拍摄装置21和22的至少一个拍摄对象物体OBJ的高度。例如,在步骤S3中为了计算位置姿态数据POI而使用图像数据IMG_2D的情况下,“拍摄系统2的高度”可以是指拍摄装置21的高度。也就是说,“拍摄系统2的拍摄高度CH”可以是指拍摄装置21对对象物体OBJ进行拍摄的高度。该情况下,“拍摄系统2的拍摄高度CH”可以是指代表拍摄装置21的点的高度。例如,在步骤S3中为了计算位置姿态数据POI而使用图像数据IMG_3D(具体而言,根据图像数据IMG_3D生成的三维位置数据WSD)的情况下,“拍摄系统2的高度”可以是指拍摄装置22的高度。也就是说,“拍摄系统2的拍摄高度CH”可以是指拍摄装置22对对象物体OBJ进行拍摄的高度。该情况下,“拍摄系统2的拍摄高度CH”可以是指代表拍摄装置22的点的高度。例如,在步骤S3中为了计算位置姿态数据POI而使用图像数据IMG_2D和图像数据IMG_3D(具体而言,根据图像数据IMG_3D生成的三维位置数据WSD)双方的情况下,“拍摄系统2的高度”可以是指拍摄装置21和22双方的高度。也就是说,“拍摄系统2的拍摄高度CH”可以是指拍摄装置21和22双方对对象物体OBJ进行拍摄的高度。该情况下,“拍摄系统2的拍摄高度CH”可以是指代表拍摄装置21和22双方的点的高度。
在拍摄系统2的拍摄高度CH被调整之后,控制装置3再次进行步骤S1至步骤S5的一系列处理。具体而言,在步骤S7中调整了拍摄系统2的拍摄高度CH之后,拍摄系统2通过对对象物体OBJ再次进行拍摄,从而再次生成图像数据IMG_2D和IMG_3D中的至少一个(步骤S1)。之后,控制装置3可以再次获取拍摄系统2再次生成的图像数据IMG_2D和IMG_3D中的至少一个(步骤S1)。之后,控制装置3可以基于在步骤S1中再次获取到的图像数据IMG_3D,再次生成三维位置数据WSD(步骤S2)。之后,控制装置3可以基于在步骤S1中再次获取到的图像数据IMG_2D、和在步骤S2中再次生成的三维位置数据WSD中的至少一个,来再次生成位置姿态数据POI(步骤S3)。也就是说,控制装置3可以生成表示末端执行器4接下来应进行规定处理的其他对象物体OBJ(即,下一个处理执行物体)的位置及姿态中的至少一个的位置姿态数据POI(步骤S3)。之后,控制装置3基于在步骤S3中再次生成的位置姿态数据POI,再次生成机器人控制信号(步骤S4)。例如,控制装置3可以生成机器人控制信号以使得末端执行器4接近下一个处理执物体,以便末端执行器4对下一个处理执行物体进行规定处理。之后,控制装置3重复步骤S1至步骤S4的一系列处理,直到被判定为机器人1对下一个处理执行物体完成了规定处理为止(步骤S5)。
此后,控制装置3交替重复进行控制机器人1对处理执行物体进行规定处理的处理(步骤S1至步骤S5)、和调整拍摄系统2的拍摄高度CH的处理(步骤S7),直到被判定为结束图4所示的机器人控制处理(直到步骤S6:是)为止。也就是说,每当机器人1对处理执行物体完成规定处理时,控制装置3就调整拍摄系统2的拍摄高度CH。但是,如后所述,控制装置3可以不必每当机器人1对一个处理执行物体完成规定处理时,就调整拍摄系统2的拍摄高度CH。控制装置3可以每当机器人对两个以上的处理执行物体完成规定处理时,调整拍摄系统2的拍摄高度CH。
(2-2) 调整拍摄系统2的拍摄高度CH的处理
接着,对图4的步骤S7中调整拍摄系统2的拍摄高度CH的处理进行更详细的说明。
为了调整拍摄系统2的拍摄高度CH,控制装置3可以决定拍摄系统2的拍摄高度CH的目标值。此外,在以下的说明中,将拍摄系统2的拍摄高度CH的目标值称为“目标拍摄高度CH_target”。
如表示多个对象物体OBJ和拍摄系统2的剖视图的图10所示,控制装置3可以决定目标拍摄高度CH_target,以满足位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括至少一个对象物体OBJ的条件。具体而言,控制装置3可以决定目标拍摄高度CH_target,以满足位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括收纳于容器CB中的至少一个对象物体OBJ的条件。此外,位于目标拍摄高度CH_target的拍摄系统2可以是指拍摄高度CH与目标拍摄高度CH_target一致的拍摄系统2。特别是,控制装置3可以决定目标拍摄高度CH_target,以满足位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括机器人1(末端执行器4)接下来应进行规定处理的至少一个对象物体OBJ的条件。
在此,如图10所示,在多个对象物体OBJ配置成多个对象物体OBJ中的至少两个至少部分重叠(例如,多个对象物体OBJ随机配置)的情况下,机器人1通常很可能从上到下依次对多个对象物体OBJ进行规定处理。例如,机器人1有可能对位于比其他对象物体OBJ更上方的对象物体OBJ进行规定处理。例如,机器人1有可能对位于最上方的对象物体OBJ进行规定处理。例如,机器人1有可能对未被其他对象物体OBJ覆盖其上部的对象物体OBJ进行规定处理。例如,机器人1对上部被其他对象物体OBJ覆盖的面积相对较少的对象物体OBJ进行规定处理的可能性较高。因此,控制装置3可以决定目标拍摄高度CH_target,以满足位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括位于比其他对象物体OBJ更上方的至少一个对象物体OBJ的条件。控制装置3可以决定目标拍摄高度CH_target,以满足位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括位于最上方的一个对象物体OBJ的条件。控制装置3可以决定目标拍摄高度CH_target,以满足位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括未被其他对象物体OBJ覆盖其上部的至少一个对象物体OBJ的条件。控制装置3可以决定目标拍摄高度CH_target,以满足位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括被其他对象物体OBJ覆盖其上部的面积相对少的至少一个对象物体OBJ的条件。
拍摄允许范围CAR可以是基于拍摄系统2的景深确定的范围。例如,拍摄允许范围CAR可以是与拍摄系统2的景深相同的范围。例如,拍摄允许范围CAR可以是与拍摄系统2的景深至少部分重叠的范围。也就是说,拍摄允许范围CAR可以是包含拍摄系统2的景深的一部分或全部的范围。在该情况下,拍摄允许范围CAR可以是比拍摄系统2的景深窄的范围,也可以是比拍摄系统2的景深广的范围。此外,拍摄系统2的景深可以是指拍摄装置21及22中的至少一个的景深。
此外,拍摄系统2的景深例如可以是以拍摄系统2所具备的物方光学系统(例如,物镜)的最佳聚焦位置BFP为中心沿拍摄系统2的光轴方向(在拍摄系统2的物侧)向两侧扩展的范围。因此,拍摄允许范围CAR可以是基于拍摄系统2所具备的物方光学系统的最佳聚焦位置BFP而确定的范围。例如,拍摄允许范围CAR可以是以拍摄系统2所具备的物方光学系统的最佳聚焦位置BFP为中心沿拍摄系统2的光轴方向向两侧扩展的范围。此外,拍摄系统2的物方光学系统可以是指拍摄装置21及22中的至少一个所具备的物方光学系统。另外,最佳聚焦位置BFP也可以被称为正焦位置。此外,拍摄允许范围CAR可以是最佳聚焦位置BFP。也就是说,拍摄允许范围CAR可以与最佳聚焦位置BFP一致。在这种情况下,拍摄允许范围CAR也可以被称为拍摄允许位置。
拍摄允许范围CAR可以是基于拍摄系统2的焦深而确定的范围。例如,拍摄允许范围CAR可以是与拍摄系统2的焦深相同的范围。例如,拍摄允许范围CAR可以是与拍摄系统2的焦深至少部分重叠的范围。也就是说,拍摄允许范围CAR可以是包含拍摄系统2的焦深的一部分或全部的范围。在该情况下,拍摄允许范围CAR可以是比拍摄系统2的焦深窄的范围,也可以是比拍摄系统2的景深广的范围。此外,拍摄系统2的焦深可以是指拍摄装置21及22中的至少一个的焦深。拍摄系统2的焦深也可以是指投影投影图案的投影装置23的像面侧的焦深。
拍摄允许范围CAR可以是满足“基于拍摄系统2通过对包含在拍摄允许范围CAR内的对象物体OBJ进行拍摄而生成的图像数据IMG_2D和IMG_3D中的至少一个的位置姿态数据POI的精度(即,对象物体OBJ的位置和姿态中的至少一方的计算精度)在规定的精度阈值以上”这一精度条件的范围。具体而言,如上所述,控制装置3(特别是位置姿态计算部312)通过进行包括匹配处理的位置姿态运算,来生成匹配相似度超过匹配判定阈值的对象物体OBJ的位置姿态数据POI。在该情况下,也可以设想为对象物体OBJ的匹配相似度越高,则对象物体OBJ的位置姿态数据POI的精度(即,位置和姿态的至少一方的计算精度)也越高。因此,拍摄允许范围CAR可以是满足“基于拍摄系统2通过对包含在拍摄允许范围CAR内的对象物体OBJ进行拍摄而生成的图像数据IMG_2D和IMG_3D中的至少一个来生成位置姿态数据POI的对象物体OBJ的匹配相似度,超过匹配判定阈值和与匹配判定阈值不同的规定精度阈值双方”这一精度条件的范围。此外,如上所述,在基于拍摄系统2的景深、最佳聚焦位置BFP及焦深中的至少一个来决定拍摄允许范围CAR的情况下,拍摄允许范围CAR也可以基于拍摄系统2的景深、最佳聚焦位置BFP及焦深中的至少一个来决定,以满足精度条件。
拍摄允许范围CAR可以是基于拍摄系统2的视野(拍摄范围,也可以用视场角或视角表示)而确定的范围。此外,拍摄系统2的视野可以是指拍摄装置21的视野(拍摄范围)及拍摄装置22的视野(拍摄范围)中的至少一方。特别是,在拍摄系统2具备拍摄装置22且在图4的机器人控制处理中基于从拍摄装置22生成的图像数据IMG_3D生成的三维位置数据WSD来生成位置姿态数据POI的情况下,拍摄允许范围CAR可以是基于拍摄装置22的视野(拍摄范围)而确定的范围。以下,为便于说明,对基于作为立体摄像头(即,具备两个单目摄像头)的拍摄装置22的视野而确定的拍摄允许范围CAR的两个示例进行说明。
图11是表示基于拍摄装置22的视野而确定的拍摄允许范围CAR的第1示例的剖视图。拍摄允许范围CAR可以是基于拍摄装置22所具备的两个单目摄像头的视野而确定的范围。此外,在以下的说明中,将拍摄装置22所具备的两个单目摄像头分别称为左摄像头22L和右摄像头22R。具体而言,拍摄允许范围CAR可以是基于左摄像头22L的视野221L与右摄像头22R的视野221R重叠的视野重叠区域221O而确定的范围。例如,拍摄允许范围CAR可以是与视野重叠区域2210相同的范围。例如,拍摄允许范围CAR可以是包含视野重叠区域2210的一部分的范围。例如,拍摄允许范围CAR可以是包含视野重叠区域2210整体的范围。例如,拍摄允许范围CAR可以是视野重叠区域2210所包含的范围。
当拍摄装置22对包含在这样的图11所示的拍摄允许范围CAR内的对象物体OBJ进行拍摄时,左摄像头22L和右摄像头22R双方都能够对对象物体OBJ进行拍摄。其结果是,控制装置3能够基于表示左摄像头22L所生成的图像和右摄像头22R所生成的图像的图像数据IMG_3D,适当地计算视差。因此,控制装置3能够基于视差的计算结果,适当地生成三维位置数据WSD。
拍摄装置22的视野(即,左摄像头22L的视野221L及右摄像头22R的视野221R中的至少一方)越大,拍摄允许范围CAR的大小可以越大。因此,为了设定所期望大小的拍摄允许范围CAR,可以扩大拍摄装置22的视野。但是,如果在拍摄装置22所具备的拍摄元件的像素数固定不变的情况下扩大拍摄装置22的视野,则拍摄装置22的分辨率会降低。其结果是,位置姿态数据POI的精度有可能恶化。因此,在扩大拍摄装置22的视野的情况下,可以增加拍摄装置22所具备的拍摄元件的像素数。换言之,可以联动地调整拍摄装置22的视野和拍摄装置22所具备的拍摄元件的像素数,以使得拍摄装置22的分辨率满足所期望的基准。此外,在扩大拍摄装置22的视野的情况下,除了增加拍摄装置22所具备的拍摄元件的像素数之外或者作为其替代,也可以减小拍摄装置22所具备的拍摄元件的像素尺寸。换言之,可以联动地调整拍摄装置22的视野和拍摄装置22所具备的拍摄元件的像素尺寸,以使得拍摄装置22的分辨率满足所期望的基准。
图12是表示基于拍摄装置22的视野而确定的拍摄允许范围CAR的第2示例的剖视图。在第2示例中,拍摄允许范围CAR可以是基于作为拍摄装置22的视野的一部分的部分视野而确定的范围。具体而言,拍摄允许范围CAR可以是基于左摄像头22L的视野221L的一部分即部分视野222L与右摄像头22R的视野221R的一部分即部分视野222R重叠的视野重叠区域222O而确定的范围。例如,拍摄允许范围CAR可以是与视野重叠区域222O相同的范围。例如,拍摄允许范围CAR可以是包含视野重叠区域222O的一部分的范围。例如,拍摄允许范围CAR可以是包含视野重叠区域222O整体的范围。例如,拍摄允许范围CAR可以是视野重叠区域222O所包含的范围。
当拍摄装置22对包含在这样的图12所示的拍摄允许范围CAR内的对象物体OBJ进行拍摄时,与拍摄装置22对包含在图11所示的拍摄允许范围CAR内的对象物体OBJ进行拍摄的情况同样地,左摄像头22L和右摄像头22R双方都能够对对象物体OBJ进行拍摄。其结果是,控制装置3能够基于表示左摄像头22L所生成的图像和右摄像头22R所生成的图像的图像数据IMG_3D,适当地计算视差。因此,控制装置3能够基于视差的计算结果,适当地生成三维位置数据WSD。
图12所示的部分视野222L和222R可以分别是对应于基于图像数据IMG_3D计算视差时所进行的立体匹配中使用的搜索区域224L和224R的视野。在该情况下,拍摄允许范围CAR可以视为是基于搜索区域224L和224R而确定的范围。以下,参照图13(a)和图13(b)对立体匹配中使用的搜索区域224L和224R进行说明。具体而言,图13(a)示出了左摄像头22L的视野221L及部分视野222L与左摄像头22L生成的图像223L之间的关系。如图13(a)所示,左摄像头22L生成包含拍入了包含在视野221L中的物体的图像223L。此外,如图13(a)所示,图像223L包括搜索区域224L,该搜索区域224L拍入了包含在视野221L的一部分即部分视野222L中的物体。另一方面,图13(b)示出了右摄像头22R的视野221R及部分视野222R与右摄像头22R生成的图像223R之间的关系。如图13(b)所示,右摄像头22R生成拍入了包含在视野221R中的物体的图像223R。此外,如图13(b)所示,图像223R包括搜索区域224R,该搜索区域224R拍入了包含在视野221R的一部分即部分视野222R中的物体。控制装置3为了基于表示图像223L和223R的图像数据IMG_3D计算视差,在搜索区域224L与搜索区域224R的每一个中,进行搜索对象物体OBJ的相同部分BP的立体匹配,并将在搜索区域224L内检测到的部分BP的位置与在搜索区域224R内检测到的相同部分BP的位置之间的偏差计算为视差。控制装置3可以通过计算搜索区域224L与搜索区域224R之间的多个不同部分BP各自的偏差,来计算多个视差。也就是说,控制装置3可以计算对象物体OBJ(或任意物体)的多个部位各自的视差。作为部分BP,可以使用对象物体OBJ的任意部位。作为部分BP,可以使用对象物体OBJ的特征部位。作为部分BP,可以使用投影装置23投影到对象物体OBJ上的投影图案。如此,部分视野222L和222R可以分别是与搜索区域224L和224R对应的视野。
在如此部分视野222L和222R分别是与搜索区域224L和224R对应的视野的状况下,当拍摄装置22对包含在拍摄允许范围CAR内的对象物体OBJ进行拍摄时,如图14(a)的上部所示,物体OBJ(特别是对象物体OBJ的部分BP)包含在部分视野222L及222R双方中。其结果是,如图14(a)的下部所示,在图像223L的搜索区域224L和图像223R的搜索区域224R双方中,拍入对象物体OBJ的相同部分BP。因此,控制装置3能够基于表示图像223L和223R的图像数据IMG_3D,适当地计算视差。因此,控制装置3能够基于视差的计算结果,适当地生成三维位置数据WSD。
另一方面,在如此部分视野222L和222R分别是与搜索区域224L和224R对应的视野的状况下,当拍摄装置22对没有包含在拍摄允许范围CAR内的对象物体OBJ进行拍摄时,如图14(b)的上部所示,物体OBJ(特别是对象物体OBJ的部分BP)有可能不包含在部分视野222L和222R的至少一方中。此外,图14(b)示出了物体OBJ(特别是对象物体OBJ的部分BP)不包含在部分视野222L和222R双方中的示例。其结果是,如图14(b)的下部所示,在图像223L的搜索区域224L和图像223R的搜索区域224R的至少一方中,有可能没有拍入对象物体OBJ的相同部分BP。在该情况下,控制装置3有可能无法基于表示图像223L和223R的图像数据IMG_3D适当地计算视差。因此,控制装置3有可能无法基于视差的计算结果来适当地生成三维位置数据WSD。
在此,在图14(b)所示的状况下,通过扩大搜索区域224R和224R的至少一方,有可能在图像223L的搜索区域224L和图像223R的搜索区域224R双方中拍入对象物体OBJ的相同部分BP。然而,搜索区域224R和224R的至少一方的扩大会导致在搜索区域224R和224R内搜索部分BP所需的时间增加。也就是说,会导致生成三维位置数据WSD所需的时间增加。
然而,在本实施方式中,由于调整拍摄系统2的拍摄高度CH以在基于搜索区域224R和224R而确定的拍摄允许范围CAR内包括对象物体OBJ,因此控制装置3可以不扩大搜索区域224L及224R中的至少一个以实现在图像223L的搜索区域224L和图像223R的搜索区域224R双方中拍入对象物体OBJ的相同部分BP的状态。因此,生成三维位置数据WSD所需时间的增加被抑制。也就是说,由于调整拍摄系统2的拍摄高度CH以在基于搜索区域224R和224R而确定的拍摄允许范围CAR内包括对象物体OBJ,因此能够缩短生成三维位置数据WSD所需的时间。换言之,与如图14(b)所示拍摄系统2对对象物体OBJ进行拍摄的情况相比,能够缩短生成三维位置数据WSD所需的时间。
拍摄允许范围CAR可以由控制装置3自动地设定。例如,控制装置3可以获取与拍摄系统2的规格相关的信息,并基于获取到的信息来设定拍摄允许范围CAR。例如,控制装置3可以获取与拍摄系统2的景深相关的信息以作为与拍摄系统2的规格相关的信息,并基于获取到的与景深相关的信息来设定拍摄允许范围CAR。例如,控制装置3可以获取与拍摄系统2所具备物方光学系统的最佳聚焦位置BFP相关的信息以作为与拍摄系统2的规格相关的信息,并基于获取到的与最佳聚焦位置BFP相关的信息来设定拍摄允许范围CAR。例如,控制装置3可以获取与拍摄系统2的焦深相关的信息以作为与拍摄系统2的规格相关的信息,并基于获取到的与焦深相关的信息来设定拍摄允许范围CAR。例如,控制装置3可以获取与拍摄系统2的视野(例如,左摄像头22L的视野221L和右摄像头22R的视野221R)相关的信息以作为与拍摄系统2的规格相关的信息,并基于获取到的与视野相关的信息来设定拍摄允许范围CAR。例如,控制装置3可以获取与拍摄系统2的部分视野(例如,左摄像头22L的部分视野222L和右摄像头22R的部分视野222R)相关的信息以作为与拍摄系统2的规格相关的信息,并基于获取到的与部分视野相关的信息来设定拍摄允许范围CAR。例如,控制装置3可以获取与立体匹配中使用的搜索区域224L和224R相关的信息以作为与拍摄系统2的规格相关的信息,并基于获取到的与搜索区域224L和224R相关的信息来设定拍摄允许范围CAR。
拍摄允许范围CAR也可以基于由用户输入的信息来设定。例如,用户可以将与拍摄系统2的规格相关的信息输入到控制装置3,并基于所输入的信息来设定拍摄允许范围CAR。例如,用户可以输入与拍摄系统2的景深相关的信息以作为与拍摄系统2的规格相关的信息,并基于所输入的与景深相关的信息来设定拍摄允许范围CAR。例如,用户可以输入与拍摄系统2所具备的物方光学系统的最佳聚焦位置BFP相关的信息以作为与拍摄系统2的规格相关的信息,并基于所输入的与最佳聚焦位置BFP相关的信息来设定拍摄允许范围CAR。例如,用户可以输入与拍摄系统2的焦深相关的信息以作为与拍摄系统2的规格相关的信息,并基于所输入的与焦深相关的信息来设定拍摄允许范围CAR。例如,用户可以输入与拍摄系统2的视野(例如,左摄像头22L的视野221L和右摄像头22R的视野221R)相关的信息以作为与拍摄系统2的规格相关的信息,并基于所输入的与视野相关的信息来设定拍摄允许范围CAR。例如,用户可以输入与拍摄系统2的部分视野(例如,左摄像头22L的部分视野222L和右摄像头22R的部分视野222R)相关的信息以作为与拍摄系统2的规格相关的信息,并基于所输入的与部分视野相关的信息来设定拍摄允许范围CAR。例如,用户可以输入与立体匹配中使用的搜索区域224L和224R相关的信息以作为与拍摄系统2的规格相关的信息,并基于所输入的与搜索区域224L和224R相关的信息来设定拍摄允许范围CAR。或者,例如,用户可以将用于直接或间接指定拍摄允许范围CAR的信息输入到控制装置3,并基于所输入的信息来设定拍摄允许范围CAR。
控制装置3可以使用通过由拍摄系统2对容器CB中收纳的至少一个对象物体OBJ进行拍摄而生成的图像数据IMG_2D和IMG_3D中的至少一个,以决定目标拍摄高度CH_target。也就是说,控制装置3可以基于图像数据IMG_2D和IMG_3D中的至少一个来调整拍摄系统2的拍摄高度CH。具体而言,控制装置3可以基于在图4的步骤S1中最后获取到的图像数据IMG_2D和IMG_3D中的至少一个来决定目标拍摄高度CH_target。但是,如后述的第1变形例中详述的那样,控制装置3也可以获取与在图4的步骤S1中获取到的图像数据IMG_2D和IMG_3D中的至少一个不同的图像数据IMG_2D和IMG_3D中的至少一个,并基于该获取到的图像数据IMG_2D和IMG_3D中的至少一个来决定目标拍摄高度CH_target。
此外,在控制装置3基于在图4的步骤S1中最后获取到的图像数据IMG_2D和IMG_3D中的至少一个来决定目标拍摄高度CH_target的情况下,控制装置3可以在图4的步骤S1中获取了图像数据IMG_2D和IMG_3D中的至少一个之后的任意定时,决定目标拍摄高度CH_target。例如,控制装置3可以在图4的步骤S1中获取了图像数据IMG_2D和IMG_3D中的至少一个之后、且在图4的步骤S7中调整拍摄高度CH的处理开始之前,预先决定目标拍摄高度CH_target。此外,如后所述,在为了决定目标拍摄高度CH_target(具体而言,计算对象物体组OBG的高度OH)而沿用图4的步骤S2中生成的三维位置数据WSD的情况下,控制装置3可以在图4的步骤S2中生成了三维位置数据WSD之后的任意定时,决定目标拍摄高度CH_target。例如,控制装置3可以在图4的步骤S2中生成了三维位置数据WSD之后、且在图4的步骤S7中调整拍摄高度CH的处理开始之前,预先决定目标拍摄高度CH_target。或者,控制装置3也可以在图4的步骤S7中调整拍摄高度CH的处理开始之后,决定目标拍摄高度CH_target。
控制装置3首先基于图像数据IMG_2D和IMG_3D中的至少一个,计算容器CB中收纳的对象物体OBJ的高度OH,从而基于图像数据IMG_2D和IMG_3D中的至少一个来决定目标拍摄高度CH_target。在此,如上所述,调整拍摄系统2的拍摄高度CH是在如图15所示那样机器人1依次对容器CB中收纳的多个对象物体OBJ进行规定处理的情况下进行的。因此,控制装置3可以基于图像数据IMG_2D和IMG_3D中的至少一个,计算容器CB中收纳的多个对象物体OBJ的高度OH。
容器CB中收纳的多个对象物体OBJ的高度OH可以是指将容器CB中收纳的多个对象物体OBJ全部包括在内的对象物体组OBG的高度OH。或者,容器CB中收纳的多个对象物体OBJ的高度OH可以是指将容器CB中收纳的多个对象物体OBJ中的一部分包括在内的对象物体组OBG的高度OH。也就是说,容器CB中收纳的多个对象物体OBJ的高度OH可以是指将容器CB中收纳的多个对象物体OBJ的至少一部分包括在内的对象物体组OBG的高度OH。
此外,在本实施方式中,对象物体组OBG是为了将多个对象物体OBJ作为一个组合来处理而使用的用语。包含在对象物体组OBG中的多个对象物体OBJ可以包括集中分布在局部的一个区域中的至少两个对象物体OBJ。包含在对象物体群OBG中的多个对象物体OBJ可以包括相隔规定距离以上的至少两个对象物体OBJ。也就是说,包含在对象物体组OBG中的多个对象物体OBJ可以包括分别分布在相隔规定距离以上的至少两个区域中的至少两个对象物体OBJ。
考虑到如上所述使用图像数据IMG_2D和IMG_3D中的至少一个以计算对象物体组OBG的高度OH的情况,对象物体组OBG的高度OH相当于图像数据IMG_2D和IMG_3D中的至少一个所示的图像中拍入的多个对象物体OBJ的高度OH。也就是说,对象物体组OBG的高度OH相当于将容器CB中收纳的多个对象物体OBJ中的包含在拍摄系统2的拍摄视野中的至少一部分包括在内的对象物体组OBG的高度OH。
与上述拍摄系统2的拍摄高度CH同样地,对象物体组OBG的高度OH可以是指对象物体组OBG距基准点的高度OH。此外,对象物体组OBG的高度OH可以是全局坐标系中的对象物体组OBG的Z轴坐标值。对象物体组OBG的高度OH可以是与全局坐标系不同的坐标系(例如,机器人坐标系)中的对象物体组OBG的Z轴坐标值。
此外,对象物体OBG的高度OH的基准点与拍摄系统2的拍摄高度CH的基准点可以相同。此外,对象物体OBG的高度OH的基准点与拍摄系统2的拍摄高度CH的基准点可以不同。例如,对象物体OBG的高度可以是指距第1基准点(例如,容器CB的底壁BS的底面上的点)的高度,对象物体组OBG的高度也可以是指距与第1基准点不同的第2基准点(例如,对象物体OBJ上的点)的高度。
可以使用对象物体组OBG中最高的部位的高度,作为对象物体组OBG的高度OH。例如,可以使用对象物体组OBG所包括的多个对象物体OBJ中位于最高位置的一个对象物体OBJ的高度,作为对象物体组OBG的高度OH。例如,可以使用对象物体组OBG所包括的多个对象物体OBJ中位于最高位置的一个对象物体OBJ的最高部位的高度,作为对象物体组OBG的高度OH。例如,可以使用对象物体组OBG所包括的多个对象物体OBJ中位于最高位置的一个对象物体OBJ的任意部位的高度,作为对象物体组OBG的高度OH。
可以使用对象物体组OBG中的一部分中最高部位的高度,作为对象物体组OBG的高度OH。例如,可以使用按照所期望的选择基准从对象物体组OBG所包括的多个对象物体OBJ中选择出的至少一个对象物体OBJ的高度,作为对象物体组OBG的高度OH。例如,可以使用按照所期望的选择基准从对象物体组OBG所包括的多个对象物体OBJ中选择出的至少一个对象物体OBJ的最高部位的高度,作为对象物体组OBG的高度OH。例如,可以使用按照所期望的选择基准从对象物体组OBG所包括的多个对象物体OBJ中选择出的至少一个对象物体OBJ的任意部位的高度,作为对象物体组OBG的高度OH。
可以使用对象物体组OBG的平均高度作为对象物体组OBG的高度OH。对象物体组OBG的平均高度可以是指对象物体组OBG的多个部位的高度的平均值。对象物体组OBG的平均高度可以是指对象物体组OBG所包括的多个对象物体OBJ的高度的平均值。在多个对象物体OBJ堆放(即,散装)的情况下,对象物体组OBG的平均高度可以是指对象物体组OBG所包括的多个对象物体OBJ中、其上部未堆放其他对象物体OBJ的一部分对象物体OBJ(即,位于最上层的一部分对象物体OBJ)的高度的平均值。在多个对象物体OBJ堆放(即,散装)的情况下,对象物体组OBG的平均高度可以是指对象物体组OBG所包括的多个对象物体OBJ中、其上部的至少一部分向上方露出的一部分对象物体OBJ(即,位于最上层的一部分对象物体OBJ)的高度的平均值。
可以使用对象物体组OBG中的一部分的平均高度作为对象物体组OBG的高度OH。对象物体组OBG中的一部分的平均高度可以是指按照所期望的选择基准从对象物体组OBG所包括的多个对象物体OBJ中选择出的至少一个对象物体OBJ的高度的平均值。
控制装置3如上所述使用图像数据IMG_2D和IMG_3D中的至少一个来计算这样的对象物体组OBG的高度OH。例如,控制装置3可以通过分析图像数据IMG_2D和IMG_3D中的至少一个所示的图像,来计算对象物体组OBG的高度OH。或者,控制装置3可以通过进行使用了图像数据IMG_2D的2D匹配处理来计算对象物体组OBG所包括的对象物体OBJ的位置和姿态中的至少一个,并基于对象物体OBJ的位置和姿态中的至少一个的计算结果,来计算对象物体组OBG的高度OH。或者,控制装置3可以基于2D匹配处理计算出的对象物体OBJ的位置和姿态中的至少一个的计算结果,将对象物体OBJ的三维模型配置在模拟了配置有对象物体组OBG的三维空间的虚拟仿真空间中,计算该三维模型的高度作为对象物体组OBG的高度OH。或者,除了分析图像数据IMG_2D和IMG_3D中的至少一个所示的图像之外或者作为其替代,控制装置3可以使用根据图像数据IMG_3D生成的三维位置数据WSD来计算对象物体组OBG的高度OH。作为一个示例,控制装置3可以通过进行使用了三维位置数据WSD的3D匹配处理来计算对象物体组OBG所包括的对象物体OBJ的位置和姿态中的至少一个,并基于对象物体OBJ的位置和姿态中的至少一个的计算结果,来计算对象物体组OBG的高度OH。作为另一例,控制装置3可以基于3D匹配处理计算出的对象物体OBJ的位置和姿态中的至少一个的计算结果,将对象物体OBJ的三维模型配置在模拟了配置有对象物体组OBG的三维空间的虚拟仿真空间中,计算该三维模型的高度作为对象物体组OBG的高度OH。此外,在使用三维位置数据WSD以计算对象物体组OBG的高度OH的情况下,控制装置3可以沿用图4的步骤S2中生成的三维位置数据WSD来计算对象物体组OBG的高度OH。控制装置3也可以独立于图4的步骤S2中生成的三维位置数据WSD,新生成三维位置数据WSD,并基于新生成的三维位置数据WSD来计算对象物体组OBG的高度OH。
在使用三维位置数据WSD计算对象物体组OBG的高度OH的情况下,控制装置3可以计算三维位置数据WSD所示的点云的高度(特别是,与对象物体组OBG对应的点云的高度)作为对象物体组OBG的高度OH。具体而言,控制装置3可以计算三维位置数据WSD所示的点云中包含的多个点中的至少一部分的高度作为对象物体组OBG的高度OH。例如,如表示三维位置数据WSD所示的点云的剖视图即图16(a)所示,控制装置3可以计算三维位置数据WSD所示的点云中包含的多个点中的位于最高位置的点的高度作为对象物体组OBG的高度OH。在该情况下,控制装置3能够计算对象物体组OBG中最高的部位的高度作为对象物体组OBG的高度OH。或者,例如,控制装置3可以计算三维位置数据WSD所示的点云中包含的多个点中的位于第N(其中,N是表示2以上的整数的常数)高的位置的点的高度作为对象物体组OBG的高度OH。在此情况下,控制装置3能够计算对象物体组OBG所包括的多个对象物体OBJ中的位于第N高位置的一个对象物体OBJ的高度作为对象物体组OBG的高度OH。或者,例如,控制装置3可以计算三维位置数据WSD所示的点云中包含的多个点中的至少一部分的高度的平均值作为对象物体组OBG的高度OH。在该情况下,控制装置3能够计算对象物体组OBG的至少一部分的平均高度作为对象物体组OBG的高度OH。作为一例,控制装置3可以计算三维位置数据WSD所示的点云中包含的多个点的全部高度的平均值作为对象物体组OBG的高度OH。作为另一例,如表示三维位置数据WSD所示的点云的剖视图即图16(b)所示,控制装置3可以计算三维位置数据WSD所示的点云中包含的多个点中的、包含在规定点云空间PCSP中的一部分点云的高度的平均值作为对象物体组OBG的高度OH。作为规定点云空间PCSP的一例,如图16(b)所示,可以列举包含三维位置数据WSD所示的点云中包含的多个点中的位于最高(或第N高)位置的点在内的空间。例如,规定点云空间PCSP可以是包括下述空间的三维空间:包含三维位置数据WSD所示的点云中包含的多个点中的位于最高(或第N高)位置的点(最高点)在内的虚拟面(例如,水平面)、与位于从该点(最高点)沿Z轴方向降低规定高度的位置的虚拟面(例如,水平面)之间的空间。
在使用图像数据IMG_2D计算对象物体组OBG的高度OH的情况下,控制装置3可以通过使用图像数据IMG_2D进行分割,从而计算图像数据IMG_2D所示的图像中拍入的对象物体OBJ的高度作为对象物体组OBG的高度OH。或者,控制装置3可以通过使用图像数据IMG_2D进行2D匹配处理来计算对象物体OBJ的位置和姿态,从而计算所计算出的对象物体OBJ的位置(特别是,Z轴方向上的位置,即高度)作为对象物体组OBG的高度OH。或者,控制装置3可以使用通过进行2D匹配处理而计算出的对象物体OBJ的位置和姿态、以及对象物体OBJ的模板模型TM3,来计算对象物体组OBG的高度(即,Z轴方向上的位置)。
在计算了对象物体组OBG的高度OH之后,控制装置3可以基于计算出的对象物体组OBG的高度OH来决定目标拍摄高度CH_target。具体而言,控制装置3可以基于计算出的对象物体组OBG的高度OH和拍摄系统2的拍摄允许范围CAR来决定目标拍摄高度CH_target。例如,如表示对象物体组OBG的高度OH与拍摄系统2的拍摄允许范围CAR之间的关系的剖视图即图17所示,控制装置3可以决定目标拍摄高度CH_target,以在位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括计算出的高度OH。也就是说,如图17所示,控制装置3可以决定目标拍摄高度CH_target,以在位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括对象物体组OBG中的位于计算出的高度OH的部位。如图17所示,控制装置3可以决定目标拍摄高度CH_target,以在位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括对象物体组OBG中包含的且位于计算出的高度OH的对象物体OBJ的至少一部分。其结果是,如图17所示,决定目标拍摄高度CH_target,以满足位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括至少一个对象物体OBJ这一条件。此外,控制装置3可以决定目标拍摄高度CH_target,以使得位于计算出的高度OH的对象物体OBJ的至少一部分位于在目标拍摄高度CH_target上的拍摄系统2的最佳聚焦位置BFP。
在决定了目标拍摄高度CH_target之后,控制装置3(特别是信号生成部313)生成用于控制机器人1以使拍摄系统2位于所决定的目标拍摄高度CH_target的机器人控制信号。也就是说,控制装置3(特别是信号生成部313)生成用于控制机器人1以使拍摄系统2的拍摄高度CH与所决定的目标拍摄高度CH_target一致的机器人控制信号。换言之,控制装置3(特别是信号生成部313)生成用于控制机器人1以使拍摄系统2移动到所决定的目标拍摄高度CH_target的机器人控制信号。其结果是,机器人1根据机器人控制信号移动拍摄系统2,从而完成对拍摄系统2的拍摄高度CH的调整。也就是说,拍摄系统2根据机器人控制信号移动,从而完成对拍摄系统2的拍摄高度CH的调整。
每当机器人1对处理执行物体完成规定处理时,控制装置3进行以上说明的调整拍摄系统2的拍摄高度CH的处理。在此,在机器人1进行的规定处理包括对容器CB中收纳的多个对象物体OBJ中的一个进行保持的处理、以及在保持对象物体OBJ后将所保持的对象物体OBJ释放到容器CB外的释放位置的释放处理的情况下,每当机器人1对处理执行物体完成规定处理时,容器CB中收纳的对象物体OBJ的数量就会减少。因此,随着时间的经过,图4的步骤S7中计算出的对象物体组OBG的高度OH很可能会变低。其结果是,随着时间的经过,图4的步骤S7中基于对象物体组OBG的高度OH计算出的目标拍摄高度CH_target也很有可能变低。
例如,图18(a)示出了在第1时刻,容器CB中收纳的对象物体组OBG的高度OH为第1高度OH#1的示例。在该情况下,在图4的步骤S7中,控制装置3可以调整拍摄系统2的拍摄高度CH,以使得拍摄系统2的拍摄高度CH成为基于第1高度OH#1而决定的第1目标拍摄高度CH_target#1。如图18(a)所示,第1目标拍摄高度CH_target#1满足位于第1目标拍摄高度CH_target#1的拍摄系统2的拍摄允许范围CAR内包括第1高度OH#1这一条件。
之后,在第1时刻至晚于第1时刻的第2时刻的期间,机器人1对容器CB中收纳的至少一个对象物体OBJ进行保持,并将所保持的对象物体OBJ释放到容器CB外的释放位置。也就是说,机器人1将容器CB中收纳的至少一个对象物体OBJ搬出到容器CB外。其结果是,如表示在第2时刻容器CB中收纳的对象物体组OBG的图18(b)所示,在第2时刻容器CB中收纳的对象物体组OBG所包括的对象物体OBJ的数量比在第1时刻容器CB中收纳的对象物体组OBG所包括的对象物体OBJ的数量少。其结果是,在第2时刻容器CB中收纳的对象物体组OBG的高度OH很可能成为比在第1时刻容器CB中收纳的对象物体组OBG所包括的对象物体OBJ的高度即第1高度OH#1要低的第2高度OH#2。
在此,如图18(b)所示,假设在第2时刻未调整拍摄系统2的拍摄高度CH的情况下,拍摄系统2的拍摄高度CH维持在第1目标拍摄高度CH_target#1不变。其结果是,如图18(b)所示,在第2时刻,位于第1目标拍摄高度CH_target#1的拍摄系统2的拍摄允许范围CAR内,有可能不包括容器CB中收纳的对象物体组OBG。这是因为,在第1时刻到第2时刻的期间内,包含在位于第1目标拍摄高度CH_target#1的拍摄系统2的拍摄允许范围CAR内的对象物体OBJ被机器人1搬出到容器CB外。其结果是,在拍摄系统2的拍摄允许范围CAR内不包含容器CB中收纳的对象物体组OBG的状况下,基于通过拍摄系统2对对象物体组OBG进行拍摄而生成的图像数据IMG_2D和IMG_3D中的至少一个所生成的位置姿态数据POI的精度有可能恶化。也就是说,对象物体组OBG所包括的对象物体OBJ的位置和姿态中的至少一个的计算精度有可能恶化。以下说明其技术理由。
首先,说明基于图像数据IMG_3D生成的位置姿态数据POI的精度恶化的技术理由。如上所述,为了基于图像数据IMG_3D生成位置姿态数据POI,如上述图13(a)及图13(b)所示,控制装置3首先获取表示左摄像头22L拍摄到的图像223L和右摄像头22R拍摄到的图像223R的图像数据IMG_3D。之后,控制装置3在图像223L的搜索区域224L与图像223R的搜索区域224R的每一个中,搜索对象物体OBJ的相同部分BP,并将在搜索区域224L内检测到的部分BP的位置与在搜索区域224R内检测到的相同部分BP的位置之间的偏差计算为视差。在此,在拍摄系统2拍摄到的对象物体OBJ未包括在拍摄允许范围CAR内的情况下,与拍摄系统2所拍摄到的对象物体OBJ包括在拍摄允许范围CAR内的情况相比,对象物体OBJ有可能无法清晰地拍入到图像223L及223R的每一个中。例如,对象物体OBJ有可能以模糊状态拍入到图像223L及223R的每一个中。因此,在拍摄系统2所拍摄到的对象物体OBJ未包括在拍摄允许范围CAR内的情况下,与拍摄系统2所拍摄到的对象物体OBJ包括在拍摄允许范围CAR内的情况相比,立体匹配的精度变低。立体匹配的精度变低,则基于通过立体匹配检测到的部分BP的视差计算精度变低。其结果是,基于精度低的视差而生成的三维位置数据WSD可能无法高精度地示出对象物体OBJ的三维位置。其结果是,基于精度低的三维位置数据WSD而生成的位置姿态数据POI可能无法高精度地示出对象物体OBJ的位置和姿态中的至少一个。
接着,说明基于图像数据IMG_2D生成的位置姿态数据POI的精度恶化的技术理由。在该情况下,在拍摄系统2拍摄到的对象物体OBJ未包括在拍摄允许范围CAR内的情况下,与拍摄系统2所拍摄到的对象物体OBJ包括在拍摄允许范围CAR内的情况相比,对象物体OBJ也有可能无法清晰地拍入到图像数据IMG_2D所示的图像中。例如,对象物体OBJ有可能以模糊状态拍入到图像数据IMG_2D所示的图像中。因此,在拍摄系统2所拍摄到的对象物体OBJ未包括在拍摄允许范围CAR内的情况下,与拍摄系统2所拍摄到的对象物体OBJ包括在拍摄允许范围CAR内的情况相比,在图像数据IMG_2D所示的图像内搜索与模板图像相同的图像部分的2D匹配处理的精度变低。其结果是,作为精度低的2D匹配处理的结果而生成的位置姿态数据POI可能无法高精度地示出对象物体OBJ的位置和姿态中的至少一个。
然而,在本实施方式中,如图19所示,根据对象物体组OBG的高度OH的变化,来调整拍摄系统2的拍摄高度CH。具体而言,在图4的步骤S7中,控制装置3调整拍摄系统2的拍摄高度CH,以使得拍摄系统2的拍摄高度CH从基于第1高度OH#1决定的第1目标拍摄高度CH_target#1变为基于第2高度OH#2决定的第2目标拍摄高度CH_target#2。如图19所示,第2目标拍摄高度CH_target#2满足位于第2目标拍摄高度CH_target#2的拍摄系统2的拍摄允许范围CAR内包括第2高度OH#2这一条件。其结果是,如图19所示,在第2时刻,位于第2目标拍摄高度CH_target#2的拍摄系统2的拍摄允许范围CAR内包括容器CB中收纳的对象物体组OBG的至少一部分。也就是说,未包含在位于第1目标拍摄高度CH_target#1的拍摄系统2的拍摄允许范围CAR内的对象物体OBJ,包括在位于第2目标拍摄高度CH_target#2的拍摄系统2的拍摄允许范围CAR内。其结果是,控制装置3能够基于在拍摄系统2的拍摄允许范围CAR内包括容器CB中收纳的对象物体组OBG的状况下由拍摄系统2对对象物体组OBG进行拍摄而生成的图像数据IMG_2D和IMG_3D中的至少一个,生成高精度地表示对象物体组OBG所包括的对象物体OBJ的位置和姿态中的至少一个的位置姿态数据POI。
例如,在基于图像数据IMG_3D生成位置姿态数据POI的情况下,由于拍摄系统2拍摄到的对象物体OBJ包括在拍摄允许范围CAR内,因此与拍摄系统2所拍摄到的对象物体OBJ未包括在拍摄允许范围CAR内的情况相比,对象物体OBJ被更清晰拍入到图像223L及223R的每一个中。因此,在拍摄系统2所拍摄到的对象物体OBJ包括在拍摄允许范围CAR内的情况下,与拍摄系统2所拍摄到的对象物体OBJ未包括在拍摄允许范围CAR内的情况相比,立体匹配的精度变高。如果立体匹配的精度变高,则基于通过立体匹配检测到的部分BP的视差计算精度变高。其结果是,控制装置3能够基于精度高的视差,生成以更高精度表示对象物体OBJ的三维位置的三维位置数据WSD。其结果是,控制装置3能够基于精度高的三维位置数据WSD,生成以更高精度表示对象物体OBJ的位置和姿态中的至少一个的位置姿态数据POI。其结果是,控制装置3能够基于精度高的位置姿态数据POI,生成以更高精度表示对象物体OBJ的位置和姿态中的至少一个的位置姿态数据POI。
例如,在基于图像数据IMG_2D生成位置姿态数据POI的情况下,由于拍摄系统2拍摄到的对象物体OBJ包括在拍摄允许范围CAR内,因此与拍摄系统2所拍摄到的对象物体OBJ未包括在拍摄允许范围CAR内的情况相比,对象物体OBJ被清晰拍入到图像数据IMG_2D所示的图像中。因此,在拍摄系统2所拍摄到的对象物体OBJ包括在拍摄允许范围CAR内的情况下,与拍摄系统2所拍摄到的对象物体OBJ未包括在拍摄允许范围CAR内的情况相比,2D匹配处理的精度变高。其结果是,控制装置3能够生成作为精度高的2D匹配处理的结果而生成的、以更高精度表示对象物体OBJ的位置和姿态中的至少一个的位置姿态数据POI。
如此,在本实施方式中,由于根据对象物体组OBG的高度OH的变化来调整拍摄系统2的拍摄高度CH,因此在对象物体组OBG的高度OH发生变化的情况下,控制装置3也能够生成以更高精度表示对象物体OBJ的位置和姿态中的至少一个的位置姿态数据POI。例如,在由于机器人1依次将容器CB中收纳的多个对象物体OBJ搬出到容器CB外而导致对象物体组OBG的高度OH发生变化的情况下,控制装置3也能够生成以更高精度表示对象物体OBJ的位置和姿态中的至少一个的位置姿态数据POI。
由此,在生成以更高精度表示对象物体OBJ的位置和姿态中的至少一个的位置姿态数据POI的情况下,控制装置3能够控制机器人1,以使得末端执行器4适当地对对象物体组OBG所包括的至少一个对象物体OBJ进行规定处理。例如,在由于机器人1将容器CB中收纳的多个对象物体OBJ依次搬出到容器CB外而导致对象物体组OBG的高度OH发生变化的情况下,控制装置3能够控制机器人1,以使得末端执行器4适当地对对象物体组OBG所包括的至少一个对象物体OBJ进行规定处理。作为一个示例,由于对象物体OBJ的位置和姿态中的至少一个被高精度地计算出,因此控制装置3能够控制机器人1,以使得对象物体OBJ与末端执行器4之间的实际位置关系适当地接近末端执行器4对对象物体OBJ进行规定处理时的理想位置关系。作为一个示例,由于对象物体OBJ的位置和姿态中的至少一个被高精度地计算出,因此控制装置3能够控制机器人1,以使得末端执行器4相对于对象物体OBJ的实际位置与对对象物体OBJ进行规定处理时末端执行器4相对于对象物体OBJ的理想位置之间的偏差量变小。
此外,在图4所示的机器人控制处理中,每当机器人1对作为处理执行物体被选择的一个对象物体OBJ完成规定处理时,控制装置3就调整拍摄系统2的拍摄高度CH。但是,仅从容器CB搬出一个对象物体OBJ(即,机器人1保持一个对象物体OBJ,并将所保持的对象物体OBJ释放到容器CB外的释放位置),容器CB中收纳的对象物体组OBG的高度OH可能不会发生大变化。在该情况下,根据对象物体组OBG的高度OH的变化来调整拍摄系统2的拍摄高度CH的必要性并不那么高。因此,控制装置3不必每当机器人1对一个处理执行物体完成规定处理时,就调整拍摄系统2的拍摄高度CH。具体而言,控制装置3可以每当机器人1对两个以上的处理执行物体完成规定处理时,调整拍摄系统2的拍摄高度CH。即使在这种情况下,也能够享受上述技术效果。
此外,用户可以使用输入装置34来输入调整拍摄系统2的拍摄高度CH(步骤S7)的间隔。所输入的间隔例如可以是在拍摄系统2的拍摄高度CH的调整完成后完成处理的对象物体的数量,也可以是从拍摄系统2的拍摄高度CH的调整完成后的经过时间。用户可以使用输入装置34来输入调整拍摄系统2的拍摄高度CH(步骤S7)的定时。
此外,在图4所示的机器人控制处理中,机器人控制处理开始后,在拍摄系统2第1次对包括容器CB中收纳的多个对象物体OBJ的至少一部分在内的对象物体组OBG进行拍摄之前,不调整拍摄系统2的拍摄高度CH。特别是,不根据对象物体组OBG的高度OH来调整拍摄系统2的拍摄高度CH。在该情况下,控制装置3可以调整拍摄系统2的拍摄高度CH,以使得拍摄系统2的拍摄高度CH成为初始拍摄高度。初始拍摄高度可以由控制装置3自动设定,也可以由用户设定。或者,拍摄系统2可以独立于图4的步骤S1中控制装置3获取的图像数据IMG_2D和IMG_3D中的至少一个,对对象物体组OBG进行拍摄以生成用于对拍摄系统2的拍摄高度CH进行初始调整的图像数据IMG_2D和IMG_3D中的至少一个,控制装置3可以基于用于对拍摄高度CH进行初始调整的图像数据IMG_2D和IMG_3D中的至少一个,对拍摄系统2的拍摄高度CH进行初始调整。此外,对拍摄系统2的拍摄高度CH进行初始调整的处理其本身可以与图4的步骤S7中调整拍摄系统2的拍摄高度CH的处理相同。
(2-3)机器人控制处理的具体例
接着,对机器人控制处理的具体例进行说明。以下,对在容器CB中收纳有多个对象物体OBJ的状况下,机器人1反复进行对容器CB中收纳的多个对象物体OBJ中的一个进行保持、并将所保持的对象物体OBJ释放到容器CB外的释放位置的处理时所进行的机器人控制处理的一个具体例进行说明。
在图4所示的机器人控制处理开始后,如图20(a)所示,拍摄系统2对包括容器CB中收纳的多个对象物体OBJ中的至少一部分在内的第1对象物体组OBG#11进行拍摄(图4的步骤S1)。在该情况下,如图20(a)所示,拍摄系统2的拍摄高度CH可以被设定为初始拍摄高度即第1目标拍摄高度CH_target#11。也就是说,位于第1目标拍摄高度CH_target#11的拍摄系统2可以对第1对象物体组OBG#11进行拍摄。其结果是,控制装置3从拍摄系统2获取表示拍入有第1对象物体组OBG#11的图像的图像数据IMG_3D(称为图像数据IMG_3D#11)(图4的步骤S1)。此外,在以下的说明中,为便于说明,将第1对象物体组OBG#11所包括的对象物体OBJ称为第1对象物体OBJ#11。之后,位置姿态计算部312基于图像数据IMG_3D#11(具体而言,基于从图像数据IMG_3D#11生成的三维位置数据WSD),生成多个第1对象物体OBJ#11中的、被选为处理执行物体的一个第1对象物体OBJ#11的位置姿态数据POI(称为位置姿态数据POI#11)(图4的步骤S2至步骤S3)。此外,在以下的说明中,将被选为处理执行物体的一个第1对象物体OBJ#11称为第1对象物体OBJ#11_target。
位置姿态计算部312选择包括在位于第1目标拍摄高度CH_target#11的拍摄系统2的拍摄允许范围CAR内的第1对象物体OBJ#11作为处理执行物体即第1对象物体OBJ#11_target的可能性较高。这是因为,包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度变得比不包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度要高的可能性较高。在该情况下,位置姿态计算部312能够生成位置姿态数据POI,该位置姿态数据POI高精度表示包括在位于第1目标拍摄高度CH_target#11的拍摄系统2的拍摄允许范围CAR内的第1对象物体OBJ#11的位置和姿态中的至少一个。这是因为,对象物体OBJ的匹配相似度变得越高,对象物体OBJ的位置姿态数据POI的精度变高的可能性就越高。但是,位置姿态计算部312也可以选择不包括在位于第1目标拍摄高度CH_target#11的拍摄系统2的拍摄允许范围CAR内的第1对象物体OBJ#11作为处理执行物体即第1对象物体OBJ#11_target。
之后,信号生成部313基于第1对象物体OBJ#11_target的位置姿态数据POI#11,生成用于控制机器人1以使末端执行器4接近第1对象物体OBJ#11_target的机器人控制信号(图4的步骤S4)。在末端执行器4根据步骤S4中生成的机器人控制信号接近第1对象物体OBJ#11_target之后,在步骤S5中,机器人1对第1对象物体OBJ#11_target进行规定处理。也就是说,作为规定处理,机器人1可以进行以下处理:对容器CB中收纳的第1对象物体OBJ#11_target进行保持,将所保持的第1对象物体OBJ#11_target从容器CB搬出,并释放到容器CB外的释放位置。
之后,在机器人1对第1对象物体OBJ#11_target进行了规定处理之后(图4的步骤S5:是),控制装置3调整拍摄系统2的拍摄高度CH(图4的步骤S7)。此外,如上所述,控制装置3可以在机器人1对单个第1对象物体OBJ#11进行了规定处理之后,调整拍摄系统2的拍摄高度CH。或者,如上所述,控制装置3可以在机器人1对多个第1对象物体OBJ#11分别进行了规定处理之后,调整拍摄系统2的拍摄高度CH。以下,为了便于说明,对在机器人1对单个第1对象物体OBJ#11进行了规定处理之后,控制装置3调整拍摄系统2的拍摄高度CH的示例进行说明。
为了调整拍摄系统2的拍摄高度CH,控制装置3使用为了生成用于控制机器人1以使末端执行器4接近第1对象物体OBJ#11_target的机器人控制信号而在图4的步骤S1中已获取的图像数据IMG_3D#11(具体而言,从图像数据IMG_3D#11生成的三维位置数据WSD),来计算第1对象物体组OBG#11的高度OH。其结果是,如图20(b)所示,控制装置3计算第1高度OH#11作为第1对象物体组OBG#11的高度OH。
此外,在图20(a)所示的示例中,在拍摄到第1对象物体组OBG#11的时刻,尚未被机器人1从容器CB搬出的第1对象物体OBJ#11_target位于第1对象物体组OBG#11中的最高位置。因此,控制装置3计算第1对象物体OBJ#11_target的高度作为第1对象物体组OBG#11的高度OH。但是,如图20(b)所示,在基于第1对象物体组OBG#11的高度OH来实际调整拍摄系统2的拍摄高度CH的时刻,第1对象物体OBJ#11_target已从容器CB搬出。因此,在进行图4所示的机器人控制处理的情况下,在图4的步骤S7中计算出的第1对象物体组OBG#11的高度OH有可能相对于在基于第1对象物体组OBG#11的高度OH实际调整拍摄系统2的拍摄高度CH的时刻在容器CB中实际收纳的对象物体组OBG的高度OH包含误差。但是,即使在这种情况下,包含在图4的步骤S7中计算出的第1对象物体组OBG#11的高度OH中的误差大到对拍摄系统2的拍摄高度CH的调整产生不良影响的可能性也较低。但是,即使在进行图4所示的机器人控制处理的情况下,在图4的步骤S7中计算出的第1对象物体组OBG#11的高度OH有时也会与在基于第1对象物体组OBG#11的高度OH实际调整拍摄系统2的拍摄高度CH的时刻在容器CB中实际收纳的对象物体组OBG的高度OH一致。
此外,在用于计算对象物体组OBG的高度OH的图像数据IMG_2D及IMG_3D中的至少一方包含与在基于对象物体组OBG的高度OH实际调整拍摄系统2的拍摄高度CH的时刻已从容器CB搬出的对象物体OBJ相关的信息的情况下,控制装置3可以进行去除与已从容器CB搬出的对象物体OBJ相关的信息的去除处理。例如,在基于根据图像数据IMG_3D生成的三维位置数据WSD(例如,点云数据)计算对象物体组OBG的高度OH的情况下,控制装置3可以进行去除处理,该去除处理从三维位置数据WSD(例如,点云数据)中,去除对应于在基于对象物体组OBG的高度OH实际调整拍摄系统2的拍摄高度CH的时刻已从容器CB搬出的对象物体OBJ的三维位置数据(例如,对应于已从容器CB搬出的对象物体OBJ的点云数据)。在该情况下,进行了去除处理的三维位置数据WSD与在后述的第1变形例中为了调整拍摄系统2的拍摄高度CH而根据在图24的步骤S8a中获取到的图像数据IMG_3D生成的三维位置数据WSD实质相同。之后,控制装置3可以基于进行了去除处理的三维位置数据WSD(例如,点云数据),计算对象物体组OBG的高度OH。在该情况下,与不进行去除处理的情况相比,对象物体组OBG的高度OH的计算结果的误差变小。此外,不限于图20(a)至图20(b)所示的场景,在计算对象物体组OBG的高度OH的任意场景中,控制装置3都可以进行去除与已从容器CB搬出的对象物体OBJ相关的信息的去除处理。
之后,控制装置3基于计算出的第1高度OH#11和拍摄系统2的拍摄允许范围CAR,决定拍摄系统2的目标拍摄高度CH_target。具体而言,如图20(b)所示,控制装置3可以将满足“计算出的第1高度OH#11包含在位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内”这一条件的目标拍摄高度CH_target决定为第2目标拍摄高度CH_target#12。之后,控制装置3生成用于控制机器人1以使拍摄系统2的拍摄高度CH成为基于第1高度OH#11而决定的第2目标拍摄高度CH_target#12的机器人控制信号。其结果是,拍摄系统2位于第2目标拍摄高度CH_target#12。
之后,如图21(a)所示,位于第2目标拍摄高度CH_target#12的拍摄系统2对包括容器CB中收纳的多个对象物体OBJ中的至少一部分在内的第2对象物体组OBG#12进行拍摄(图4的步骤S1)。其结果是,控制装置3从拍摄系统2获取表示拍入有第2对象物体组OBG#12的图像的图像数据IMG_3D(称为图像数据IMG_3D#12)(图4的步骤S1)。此外,在以下的说明中,为便于说明,将第2对象物体组OBG#12所包括的对象物体OBJ称为第2对象物体OBJ#12。
由位于第2目标拍摄高度CH_target#12的拍摄系统2所拍摄的第2对象物体组OBG#12可以与为了决定第2目标拍摄高度CH_target#12而由拍摄系统2所拍摄的第1对象物体组OBG#11不同。具体而言,第1对象物体组OBG#11所包括的多个第1对象物体OBJ#11中的至少一个可以不包括在第2对象物体组OBG#12中。作为一个示例,在位于第2目标拍摄高度CH_target#12的拍摄系统2拍摄第2对象物体组OBG#12的时刻,第1对象物体组OBG#11所包括的多个第1对象物体OBJ#11中的至少一个应该已被机器人1从容器CB搬出。在该情况下,第1对象物体组OBG#11所包括的多个第1对象物体OBJ#11中的、已从容器CB搬出的至少一个第1对象物体OBJ#11可以不包括在第2对象物体组OBG#12中。作为另一示例,由于拍摄系统2的拍摄高度CH的调整,拍摄系统2相对于容器CB中收纳的对象物体组OBG的视野范围可能会发生变化。在该情况下,第2对象物体组OBG#12可以与第1对象物体组OBG#11不同。
但是,第1对象物体组OBG#11所包括的多个第1对象物体OBJ#11中的、尚未从容器CB搬出的至少一个第1对象物体OBJ#11可以包括在第2对象物体组OBG#12中。也就是说,第1对象物体组OBG#11和第2对象物体组OBG#12可以部分重叠。在该情况下,由于对第2对象物体组OBG#12进行拍摄的拍摄系统2的第2目标拍摄高度CH_target#12是基于第1对象物体组OBG#11的第1高度OH#11来决定的,因此如图21(a)所示,位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内包括与第1对象物体组OBG#11部分重叠的第2对象物体组OBG#12的至少一部分。也就是说,位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内包括第2对象物体组OBG#12所包括的多个第2对象物体OBJ#12中的至少一个。因此,拍摄系统2能够适当地拍摄第2对象物体组OBG#12所包括的多个第2对象物体OBJ#12中的至少一个。但是,第2对象物体组OBG#12所包括的多个第2对象物体OBJ#12的全部可以与第1对象物体组OBG#11所包括的多个第1对象物体OBJ#11不同。
此外,如上所述,由于在拍摄系统2从第2目标拍摄高度CH_target#12拍摄第2对象物体组OBG#12的时刻,至少一个第1对象物体OBJ#11已从容器CB搬出,因此在拍摄系统2从第2目标拍摄高度CH_target#12拍摄第2对象物体组OBG#12的时刻在容器CB中收纳的对象物体OBJ的数量可以少于在拍摄系统2从第1目标拍摄高度CH_target#11拍摄第1对象物体组OBG#11的时刻在容器CB中收纳的对象物体OBJ的数量。拍摄系统2从第2目标拍摄高度CH_target#12拍摄到的第2对象物体组OBG#12所包括的第2对象物体OBJ#12的数量可以少于拍摄系统2从第1目标拍摄高度CH_target#11拍摄到的第1对象物体组OBG#11所包括的第1对象物体OBJ#11的数量。在拍摄系统2从第2目标拍摄高度CH_target#12拍摄第2对象物体组OBG#12的时刻收纳有多个对象物体OBJ的容器CB的重量可以轻于在拍摄系统2从第1目标拍摄高度CH_target#11拍摄第1对象物体组OBG#11的时刻收纳有多个对象物体OBJ的容器CB的重量。此外,这里所说的“收纳有多个对象物体OBJ的容器CB的重量”,可以是包含容器CB其本身的重量和容器CB中收纳的多个对象物体OBJ的重量双方在内的重量。
之后,位置姿态计算部312基于图像数据IMG_3D#12(具体而言,基于从图像数据IMG_3D#12生成的三维位置数据WSD),生成多个第2对象物体OBJ#12中的、被选为处理执行物体的一个第2对象物体OBJ#12的位置姿态数据POI(称为位置姿态数据POI#12)(图4的步骤S2至步骤S3)。此外,在以下的说明中,将被选为处理执行物体的一个第2对象物体OBJ#12称为第2对象物体OBJ#12_target。
位置姿态计算部312选择包括在位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内的第2对象物体OBJ#12作为处理执行物体即第2对象物体OBJ#12_target的可能性较高。这是因为,包括在拍摄允许范围CAR内的对象物体OBJ的位置姿态数据POI的匹配相似度变得比不包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度要高的可能性较高。在该情况下,位置姿态计算部312能够生成位置姿态数据POI,该位置姿态数据POI高精度表示包括在位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内的第2对象物体OBJ#12的位置和姿态中的至少一个。这是因为,对象物体OBJ的匹配相似度变得越高,对象物体OBJ的位置姿态数据POI的精度变高的可能性就越高。反过来说,第2目标拍摄高度CH_target#12可以是满足“被选为处理执行物体的第2对象物体OBJ#12包括在位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内”这一条件的拍摄高度CH。也就是说,控制装置3可以决定第2目标拍摄高度CH_target#12,以满足“被选为处理执行物体的第2对象物体OBJ#12包括在位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内”这一条件。但是,位置姿态计算部312可以选择不包括在位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内的第2对象物体OBJ#12作为处理执行物体即第2对象物体OBJ#12_target。
另一方面,被选为处理执行物体的第2对象物体OBJ#12_target可以不包括在被调整拍摄高度CH前的拍摄系统2的拍摄允许范围CAR内。也就是说,被选为处理执行物体的第2对象物体OBJ#12_target可以不包括在位于第1目标拍摄高度CH_target#11的拍摄系统2的拍摄允许范围CAR内。这是因为,如边参照图18(a)至图18(b)及图19边说明的那样,由于根据容器CB中收纳的对象物体组OBG的高度OH来调整拍摄系统2的拍摄高度CH,因此即使在第1时刻一对象物体OBJ未包括在拍摄系统2的拍摄允许范围CAR内,在晚于第1时刻的第2时刻,一对象物体OBJ也会包括在拍摄系统2的拍摄允许范围CAR内,其结果是,该一对象物体OBJ能够被选为处理执行物体。也就是说,因为即使在位于第1目标拍摄高度CH_target#11的拍摄系统2的拍摄允许范围CAR内未包括一对象物体OBJ,随着时间的经过,在位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内也会包括一对象物体OBJ,其结果是,该一对象物体OBJ能够被选为处理执行物体。
此外,被选为处理执行物体的第2对象物体OBJ#12_target可以是未包括在位于第1目标拍摄高度CH_target#11的拍摄系统2的拍摄允许范围CAR内的第1对象物体OBJ#11。或者,被选为处理执行物体的第2对象物体OBJ#12_target可以是包括在位于第1目标拍摄高度CH_target#11的拍摄系统2的拍摄允许范围CAR内但未被选为处理执行物体的第1对象物体OBJ#11。
之后,信号生成部313基于第2对象物体OBJ#12_target的位置姿态数据POI#12,生成用于控制机器人1以使末端执行器4接近第2对象物体OBJ#12_target的机器人控制信号(图4的步骤S4)。在末端执行器4根据步骤S4中生成的机器人控制信号接近第2对象物体OBJ#12_target之后,在步骤S5中,机器人1对第2对象物体OBJ#12_target进行规定处理。也就是说,机器人1对容器CB中收纳的第2对象物体OBJ#12_target进行保持,将所保持的第2对象物体OBJ#12_target从容器CB搬出,并释放到容器CB外的释放位置。
之后,在机器人1对第2对象物体OBJ#12_target进行了规定处理之后(图4的步骤S5:是),控制装置3调整拍摄系统2的拍摄高度CH(图4的步骤S7)。此外,如上所述,控制装置3可以在机器人1对单个第2对象物体OBJ#12进行了规定处理之后,调整拍摄系统2的拍摄高度CH。或者,如上所述,控制装置3可以在机器人1对多个第2对象物体OBJ#12分别进行了规定处理之后,调整拍摄系统2的拍摄高度CH。以下,为了便于说明,对在机器人1对单个第2对象物体OBJ#12进行了规定处理之后,控制装置3调整拍摄系统2的拍摄高度CH的示例进行说明。
为了调整拍摄系统2的拍摄高度CH,控制装置3使用为了生成用于控制机器人1以使末端执行器4接近第2对象物体OBJ#12_target的机器人控制信号而在图4的步骤S1中已获取的图像数据IMG_3D#12(具体而言,从图像数据IMG_3D#12生成的三维位置数据WSD),来计算第2对象物体组OBG#12的高度OH。其结果是,如图21(b)所示,控制装置3计算第2高度OH#12作为第2对象物体组OBG#12的高度OH。
在此,如上所述,在拍摄第2对象物体组OBG#12的时刻,第1对象物体组OBG#11所包括的多个第1对象物体OBJ#11中的至少一个已被机器人1从容器CB搬出。因此,第1对象物体组OBG#11所包括的多个第1对象物体OBJ#11中的至少一个不包括在第2对象物体组OBG#12中。也就是说,第2对象物体组OBG#12所包括的第2对象物体OBJ#12的数量变得比第1对象物体组OBG#11所包括的第1对象物体OBJ#11的数量要少。其结果是,第2对象物体组OBG#12的第2高度OH#12通常变得比第1对象物体组OBG#11的第1高度OH#11要低。但是,根据情况,第2对象物体组OBG#12的第2高度OH#12也可以与第1对象物体组OBG#11的第1高度OH#11相同。
此外,在图21(a)所示的示例中,在拍摄到第2对象物体组OBG#12的时刻,尚未被机器人1从容器CB搬出的第2对象物体OBJ#12_target位于第2对象物体组OBG#12中的最高位置。因此,控制装置3计算第2对象物体OBJ#12_target的高度作为第2对象物体组OBG#12的高度OH。但是,如图21(b)所示,在基于第2对象物体组OBG#12的高度OH来实际调整拍摄系统2的拍摄高度CH的时刻,第2对象物体OBJ#12_target已从容器CB搬出。因此,在进行图4所示的机器人控制处理的情况下,在图4的步骤S7中计算出的第2对象物体组OBG#12的高度OH有可能相对于在基于第2对象物体组OBG#12的高度OH实际调整拍摄系统2的拍摄高度CH的时刻在容器CB中实际收纳的对象物体组OBG的高度OH包含误差。但是,即使在这种情况下,包含在图4的步骤S7中计算出的第2对象物体组OBG#12的高度OH中的误差大到对拍摄系统2的拍摄高度CH的调整产生不良影响的可能性也较低。但是,即使在进行图4所示的机器人控制处理的情况下,在图4的步骤S7中计算出的第2对象物体组OBG#12的高度OH有时也会与在基于第2对象物体组OBG#12的高度OH实际调整拍摄系统2的拍摄高度CH的时刻在容器CB中实际收纳的对象物体组OBG的高度OH一致。
之后,控制装置3基于计算出的第2高度OH#12和拍摄系统2的拍摄允许范围CAR,决定拍摄系统2的目标拍摄高度CH_target。具体而言,如图21(b)所示,控制装置3可以将满足“在位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括计算出的第2高度OH#12”这一条件的目标拍摄高度CH_target决定为第3目标拍摄高度CH_target#13。之后,控制装置3生成用于控制机器人1以使拍摄系统2的拍摄高度CH成为基于第2高度OH#12而决定的第3目标拍摄高度CH_target#13的机器人控制信号。其结果是,拍摄系统2位于第3目标拍摄高度CH_target#13。
这里,如上所述,第2对象物体组OBG#12的第2高度OH#12通常变得比第1对象物体组OBG#11的第1高度OH#11要低。在该情况下,基于第2高度OH#12决定的第3目标拍摄高度CH_target#13也可以变得比基于第1高度OH#11决定的第2目标拍摄高度CH_target#12要低。
但是,根据情况,第2对象物体组OBG#12的第2高度OH#12通常有可能变得比第1对象物体组OBG#11的第1高度OH#11要高。例如,在第1对象物体组OBG#11所包括的多个第1对象物体OBJ#11配置成部分重叠(例如,随机配置)的状况下,当在其上重叠有其他第1对象物体OBJ#11的一第1对象物体OBJ#11被末端执行器4保持时,移除了该一第1对象物体OBJ#11后的第1对象物体组OBG#11(即,第2对象物体组OBG#12)的堆垛可能会崩塌。其结果是,第2对象物体组OBG#12所包括的至少一个第2对象物体OBJ#12的姿态可能会发生变化。其结果是,例如,如果第2对象物体OBJ#12的姿态从其长度方向沿水平方向的方向变为沿垂直方向的方向,则第2对象物体OBJ#12的高度OH(即,第2对象物体组OBG#12的高度)可能会变高。在该情况下,如后参照图24等详述的第1变形例中所说明的那样,在末端执行器4保持了一第1对象物体OBJ#11之后(图4的步骤S5:Yes),拍摄系统2可以拍摄第2对象物体组OBG#12(图24的步骤S8a),控制装置3可以基于第2对象物体组OBG#12的拍摄结果,计算第2对象物体组OBG#12的第2高度OH#12(图4的步骤S7)。此外,不限于计算第2对象物体组OBG#12的第2高度OH#12的情况,在计算任意对象物体组OBG的高度OH的情况下也是同样的。
之后,如图22(a)所示,位于第3目标拍摄高度CH_target#13的拍摄系统2对包括容器CB中收纳的多个对象物体OBJ中的至少一部分在内的第3对象物体组OBG#13进行拍摄(图4的步骤S1)。其结果是,控制装置3从拍摄系统2获取表示拍入有第3对象物体组OBG#13的图像的图像数据IMG_3D(称为图像数据IMG_3D#13)(图4的步骤S1)。此外,在以下的说明中,为便于说明,将第3对象物体组OBG#13所包括的对象物体OBJ称为第3对象物体OBJ#13。
由位于第3目标拍摄高度CH_target#13的拍摄系统2所拍摄的第3对象物体组OBG#13可以与为了决定第3目标拍摄高度CH_target#13而由拍摄系统2所拍摄的第2对象物体组OBG#12不同。具体而言,第2对象物体组OBG#12所包括的多个第2对象物体OBJ#12中的至少一个可以不包括在第3对象物体组OBG#13中。作为一个示例,在位于第3目标拍摄高度CH_target#13的拍摄系统2拍摄第3对象物体组OBG#13的时刻,第2对象物体组OBG#12所包括的多个第2对象物体OBJ#12中的至少一个应该已被机器人1从容器CB搬出。在该情况下,第2对象物体组OBG#12所包括的多个第2对象物体OBJ#12中的、已从容器CB搬出的至少一个第2对象物体OBJ#12可以不包括在第3对象物体组OBG#13中。作为另一示例,由于拍摄系统2的拍摄高度CH的调整,拍摄系统2相对于容器CB中收纳的对象物体组OBG的视野范围可能会发生变化。在该情况下,第3对象物体组OBG#13可以与第2对象物体组OBG#12不同。
但是,第2对象物体组OBG#12所包括的多个第2对象物体OBJ#12中的、尚未从容器CB搬出的至少一个第2对象物体OBJ#12可以包括在第3对象物体组OBG#13中。也就是说,第2对象物体组OBG#12和第3对象物体组OBG#13可以部分重叠。在该情况下,由于对第3对象物体组OBG#13进行拍摄的拍摄系统2的第3目标拍摄高度CH_target#13是基于第2对象物体组OBG#12的第2高度OH#12来决定的,因此如图22(a)所示,位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内包括与第2对象物体组OBG#12部分重叠的第3对象物体组OBG#13的至少一部分。也就是说,位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内包括第3对象物体组OBG#13所包含的多个第3对象物体OBJ#13中的至少一个。因此,拍摄系统2能够适当地拍摄第3对象物体组OBG#13所包括的多个第3对象物体OBJ#13中的至少一个。但是,第3对象物体组OBG#13所包括的多个第3对象物体OBJ#13的全部可以与第2对象物体组OBG#12所包括的多个第2对象物体OBJ#12不同。
此外,如上所述,由于在拍摄系统2从第3目标拍摄高度CH_target#13拍摄第3对象物体组OBG#13的时刻至少一个第2对象物体OBJ#12从容器CB搬出,因此在拍摄系统2从第3目标拍摄高度CH_target#13拍摄第3对象物体组OBG#13的时刻在容器CB中收纳的对象物体OBJ的数量可以少于在拍摄系统2从第2目标拍摄高度CH_target#12拍摄第2对象物体组OBG#12的时刻在容器CB中收纳的对象物体OBJ的数量。拍摄系统2从第3目标拍摄高度CH_target#13拍摄到的第3对象物体组OBG#13所包括的第3对象物体OBJ#13的数量可以少于拍摄系统2从第2目标拍摄高度CH_target#12拍摄到的第2对象物体组OBG#12所包括的第2对象物体OBJ#12的数量。在拍摄系统2从第3目标拍摄高度CH_target#13拍摄第3对象物体组OBG#13的时刻收纳有多个对象物体OBJ的容器CB的重量可以轻于在拍摄系统2从第2目标拍摄高度CH_target#12拍摄第2对象物体组OBG#12的时刻收纳有多个对象物体OBJ的容器CB的重量。此外,这里所说的“收纳有多个对象物体OBJ的容器CB的重量”,可以是包含容器CB其本身的重量和容器CB中收纳的多个对象物体OBJ的重量双方在内的重量。
之后,位置姿态计算部312基于图像数据IMG_3D#13(具体而言,基于从图像数据IMG_3D#13生成的三维位置数据WSD),生成多个第3对象物体OBJ#13中的、被选为处理执行物体的一个第3对象物体OBJ#13的位置姿态数据POI(称为位置姿态数据POI#13)(图4的步骤S2至步骤S3)。此外,在以下的说明中,将被选为处理执行物体的一个第3对象物体OBJ#13称为第3对象物体OBJ#13_target。
位置姿态计算部312选择包括在位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内的第3对象物体OBJ#13作为处理执行物体即第3对象物体OBJ#13_target的可能性较高。这是因为,包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度变得比不包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度要高的可能性较高。在该情况下,位置姿态计算部312能够生成位置姿态数据POI,该位置姿态数据POI高精度表示包括在位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内的第3对象物体OBJ#13的位置和姿态中的至少一个。这是因为,对象物体OBJ的匹配相似度变得越高,对象物体OBJ的位置姿态数据POI的精度变高的可能性就越高。反过来说,第3目标拍摄高度CH_target#13可以是满足“被选为处理执行物体的第3对象物体OBJ#13包括在位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内”这一条件的拍摄高度CH。也就是说,控制装置3可以决定第3目标拍摄高度CH_target#13,以满足“被选为处理执行物体的第3对象物体OBJ#13包括在位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内”这一条件。但是,位置姿态计算部312可以选择不包括在位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内的第3对象物体OBJ#13作为处理执行物体即第3对象物体OBJ#13_target。
另一方面,被选为处理执行物体的第3对象物体OBJ#13_target可以不包括在位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内。也就是说,被选为处理执行物体的第3对象物体OBJ#13_target可以不包括在调整拍摄高度CH前的拍摄系统2的拍摄允许范围CAR内。这是因为,如边参照图18(a)至图18(b)及图19边说明的那样,由于根据容器CB中收纳的对象物体组OBG的高度OH来调整拍摄系统2的拍摄高度CH,因此即使在第1时刻一对象物体OBJ未包括在拍摄系统2的拍摄允许范围CAR内,在晚于第1时刻的第2时刻,一对象物体OBJ也会包括在拍摄系统2的拍摄允许范围CAR内,其结果是,该一对象物体OBJ能够被选为处理执行物体。也就是说,因为即使在位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内未包括一对象物体OBJ,随着时间的经过,在位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内也会包括一对象物体OBJ,其结果是,该一对象物体OBJ能够被选为处理执行物体。
此外,被选为处理执行物体的第3对象物体OBJ#13_target可以是未包括在位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内的第2对象物体OBJ#12。或者,被选为处理执行物体的第3对象物体OBJ#13_target可以是包括在位于第2目标拍摄高度CH_target#12的拍摄系统2的拍摄允许范围CAR内但未被选为处理执行物体的第2对象物体OBJ#12。
之后,信号生成部313基于第3对象物体OBJ#13_target的位置姿态数据POI#13,生成用于控制机器人1以使末端执行器4接近第3对象物体OBJ#13_target的机器人控制信号(图4的步骤S5)。在末端执行器4根据步骤S4中生成的机器人控制信号接近第3对象物体OBJ#13_target之后,在步骤S5中,机器人1对第3对象物体OBJ#13_target进行规定处理。也就是说,机器人1对容器CB中收纳的第3对象物体OBJ#13_target进行保持,将所保持的第3对象物体OBJ#13_target从容器CB搬出,并释放到容器CB外的释放位置。
之后,在机器人1对第3对象物体OBJ#13_target进行了规定处理之后(图4的步骤S5:是),控制装置3调整拍摄系统2的拍摄高度CH(图4的步骤S7)。此外,如上所述,控制装置3可以在机器人1对单个第3对象物体OBJ#13进行了规定处理之后,调整拍摄系统2的拍摄高度CH。或者,如上所述,控制装置3可以在机器人1对多个第3对象物体OBJ#13分别进行了规定处理之后,调整拍摄系统2的拍摄高度CH。以下,为了便于说明,对在机器人1对单个第3对象物体OBJ#13进行了规定处理之后,控制装置3调整拍摄系统2的拍摄高度CH的示例进行说明。
为了调整拍摄系统2的拍摄高度CH,控制装置3使用为了生成用于控制机器人1以使末端执行器4接近第3对象物体OBJ#13_target的机器人控制信号而在图4的步骤S1中已获取的图像数据IMG_3D#13(具体而言,从图像数据IMG_3D#13生成的三维位置数据WSD),来计算第3对象物体组OBG#13的高度OH。其结果是,如图22(b)所示,控制装置3计算第3高度OH#13作为第3对象物体组OBG#13的高度OH。
在此,如上所述,在拍摄第3对象物体组OBG#13的时刻,第2对象物体组OBG#12所包括的多个第2对象物体OBJ#12中的至少一个已被机器人1从容器CB搬出。因此,第2对象物体组OBG#12中包括的多个第2对象物体OBJ#12中的至少一个不包括在第3对象物体组OBG#13中。也就是说,第3对象物体组OBG#13所包括的第3对象物体OBJ#13的数量变得比第2对象物体组OBG#12所包括的第2对象物体OBJ#12的数量要少。其结果是,第3对象物体组OBG#13的第3高度OH#13通常变得比第2对象物体组OBG#12的第2高度OH#12要低。但是,根据情况,第3对象物体组OBG#13的第3高度OH#13也可以与第2对象物体组OBG#12的第2高度OH#12相同。
此外,在图22(a)所示的示例中,在拍摄到第3对象物体组OBG#13的时刻,尚未被机器人3从容器CB搬出的第3对象物体OBJ#13_target位于第3对象物体组OBG#13中的最高位置。因此,控制装置3计算第3对象物体OBJ#13_target的高度作为第3对象物体组OBG#13的高度OH。但是,如图22(b)所示,在基于第3对象物体组OBG#13的高度OH来实际调整拍摄系统2的拍摄高度CH的时刻,第3对象物体OBJ#13_target已从容器CB搬出。因此,在进行图4所示的机器人控制处理的情况下,在图4的步骤S7中计算出的第3对象物体组OBG#13的高度OH有可能相对于在基于第3对象物体组OBG#13的高度OH实际调整拍摄系统2的拍摄高度CH的时刻在容器CB中实际收纳的对象物体组OBG的高度OH包含误差。但是,即使在这种情况下,包含在图4的步骤S7中计算出的第3对象物体组OBG#13的高度OH中的误差大到对拍摄系统2的拍摄高度CH的调整产生不良影响的可能性也较低。但是,即使在进行图4所示的机器人控制处理的情况下,在图4的步骤S7中计算出的第3对象物体组OBG#13的高度OH有时也会与在基于第3对象物体组OBG#13的高度OH实际调整拍摄系统2的拍摄高度CH的时刻在容器CB中实际收纳的对象物体组OBG的高度OH一致。
之后,控制装置3基于计算出的第3高度OH#13和拍摄系统2的拍摄允许范围CAR,决定拍摄系统2的目标拍摄高度CH_target。具体而言,如图22(b)所示,控制装置3可以将满足“在位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括计算出的第3高度OH#13”这一条件的目标拍摄高度CH_target决定为第4目标拍摄高度CH_target#14。之后,控制装置3生成用于控制机器人1以使拍摄系统2的拍摄高度CH成为基于第3高度OH#13而决定的第4目标拍摄高度CH_target#14的机器人控制信号。其结果是,拍摄系统2位于第4目标拍摄高度CH_target#14。
这里,如上所述,第3对象物体组OBG#13的第3高度OH#13通常变得比第2对象物体组OBG#12的第2高度OH#12要低。在该情况下,基于第3高度OH#13决定的第4目标拍摄高度CH_target#14也可以变得比基于第2高度OH#12决定的第3目标拍摄高度CH_target#13要低。
之后,如图23所示,位于第4目标拍摄高度CH_target#14的拍摄系统2对包括容器CB中收纳的多个对象物体OBJ中的至少一部分在内的第4对象物体组OBG#14进行拍摄(图4的步骤S1)。其结果是,控制装置3从拍摄系统2获取表示拍入有第4对象物体组OBG#14的图像的图像数据IMG_3D(称为图像数据IMG_3D#14)(图4的步骤S1)。此外,在以下的说明中,为便于说明,将第4对象物体组OBG#14中所包括的对象物体OBJ称为第4对象物体OBJ#14。
由位于第4目标拍摄高度CH_target#14的拍摄系统2所拍摄的第4对象物体组OBG#14可以与为了决定第4目标拍摄高度CH_target#14而由拍摄系统2所拍摄的第3对象物体组OBG#13不同。具体而言,第3对象物体组OBG#13所包括的多个第3对象物体OBJ#13中的至少一个可以不包括在第4对象物体组OBG#14中。作为一个示例,在位于第4目标拍摄高度CH_target#14的拍摄系统2拍摄第4对象物体组OBG#14的时刻,第3对象物体组OBG#13所包括的多个第3对象物体OBJ#13中的至少一个应该已被机器人1从容器CB搬出。在该情况下,第3对象物体组OBG#13所包括的多个第3对象物体OBJ#13中的、已从容器CB搬出的至少一个第3对象物体OBJ#13可以不包括在第4对象物体组OBG#14中。作为另一示例,由于拍摄系统2的拍摄高度CH的调整,拍摄系统2相对于容器CB中收纳的对象物体组OBG的视野范围可能会发生变化。在该情况下,第4对象物体组OBG#14可以与第3对象物体组OBG#13不同。
但是,第3对象物体组OBG#13所包括的多个第3对象物体OBJ#13中的、尚未从容器CB搬出的至少一个第3对象物体OBJ#13可以包括在第4对象物体组OBG#14中。也就是说,第3对象物体组OBG#13和第4对象物体组OBG#14可以部分重叠。在该情况下,由于对第4对象物体组OBG#14进行拍摄的拍摄系统2的第4目标拍摄高度CH_target#14是基于第3对象物体组OBG#13的第3高度OH#13来决定的,因此如图23所示,位于第4目标拍摄高度CH_target#14的拍摄系统2的拍摄允许范围CAR内包括与第3对象物体组OBG#13部分重叠的第4对象物体组OBG#14的至少一部分。也就是说,位于第4目标拍摄高度CH_target#14的拍摄系统2的拍摄允许范围CAR内包括第4对象物体组OBG#14所包括的多个第4对象物体OBJ#14中的至少一个。因此,拍摄系统2能够适当地拍摄第4对象物体组OBG#14所包括的多个第4对象物体OBJ#14中的至少一个。但是,第4对象物体组OBG#14所包括的多个第4对象物体OBJ#14的全部可以与第3对象物体组OBG#13所包括的多个第3对象物体OBJ#13不同。
此外,如上所述,由于在拍摄系统2从第4目标拍摄高度CH_target#14拍摄第4对象物体组OBG#14的时刻,至少一个第3对象物体OBJ#11已从容器CB搬出,因此在拍摄系统2从第4目标拍摄高度CH_target#14拍摄第4对象物体组OBG#14的时刻在容器CB中收纳的对象物体OBJ的数量可以少于在拍摄系统2从第3目标拍摄高度CH_target#13拍摄第3对象物体组OBG#13的时刻在容器CB中收纳的对象物体OBJ的数量。拍摄系统2从第4目标拍摄高度CH_target#14拍摄到的第4对象物体组OBG#14所包括的第4对象物体OBJ#14的数量可以少于拍摄系统2从第3目标拍摄高度CH_target#13拍摄到的第3对象物体组OBG#13所包括的第3对象物体OBJ#13的数量。在拍摄系统2从第4目标拍摄高度CH_target#14拍摄第4对象物体组OBG#14的时刻收纳有多个对象物体OBJ的容器CB的重量可以轻于在拍摄系统2从第3目标拍摄高度CH_target#13拍摄第3对象物体组OBG#13的时刻收纳有多个对象物体OBJ的容器CB的重量。此外,这里所说的“收纳有多个对象物体OBJ的容器CB的重量”,可以是包含容器CB其本身的重量和容器CB中收纳的多个对象物体OBJ的重量双方在内的重量。
之后,位置姿态计算部312基于图像数据IMG_3D#14(具体而言,基于从图像数据IMG_3D#14生成的三维位置数据WSD),生成多个第4对象物体OBJ#14中的、被选为处理执行物体的一个第4对象物体OBJ#14的位置姿态数据POI(称为位置姿态数据POI#14)(图4的步骤S2至步骤S3)。此外,在以下的说明中,将被选为处理执行物体的一个第4对象物体OBJ#14称为第4对象物体OBJ#14_target。
位置姿态计算部312选择包括在位于第4目标拍摄高度CH_target#14的拍摄系统2的拍摄允许范围CAR内的第4对象物体OBJ#14作为处理执行物体即第4对象物体OBJ#14_target的可能性较高。这是因为,包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度变得比不包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度要高的可能性较高。在该情况下,位置姿态计算部312能够生成位置姿态数据POI,该位置姿态数据POI高精度表示包含在位于第4目标拍摄高度CH_target#14的拍摄系统2的拍摄允许范围CAR内的第4对象物体OBJ#14的位置和姿态中的至少一个。这是因为,对象物体OBJ的匹配相似度变得越高,对象物体OBJ的位置姿态数据POI的精度变高的可能性就越高。反过来说,第4目标拍摄高度CH_target#14可以是满足“被选为处理执行物体的第4对象物体OBJ#14包括在位于第4目标拍摄高度CH_target#14的拍摄系统2的拍摄允许范围CAR内”这一条件的拍摄高度CH。也就是说,控制装置3可以决定第4目标拍摄高度CH_target#14,以满足“被选为处理执行物体的第4对象物体OBJ#14包括在位于第4目标拍摄高度CH_target#14的拍摄系统2的拍摄允许范围CAR内”这一条件。但是,位置姿态计算部312可以选择不包括在位于第4目标拍摄高度CH_target#14的拍摄系统2的拍摄允许范围CAR内的第4对象物体OBJ#14作为处理执行物体即第4对象物体OBJ#14_target。
另一方面,被选为处理执行物体的第4对象物体OBJ#14_target可以不包括在位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内。也就是说,被选为处理执行物体的第4对象物体OBJ#14_target可以不包括在被调整拍摄高度CH前的拍摄系统2的拍摄允许范围CAR内。这是因为,如边参照图18(a)至图18(b)及图19边说明的那样,由于根据容器CB中收纳的对象物体组OBG的高度OH来调整拍摄系统2的拍摄高度CH,因此即使在第1时刻一对象物体OBJ未包括在拍摄系统2的拍摄允许范围CAR内,在晚于第1时刻的第2时刻,一对象物体OBJ也会包括在拍摄系统2的拍摄允许范围CAR内,其结果是,该一对象物体OBJ能够被选为处理执行物体。也就是说,因为即使在位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内未包括一对象物体OBJ,随着时间的经过,在位于第4目标拍摄高度CH_target#14的拍摄系统2的拍摄允许范围CAR内也会包括一对象物体OBJ,其结果是,该一对象物体OBJ能够被选为处理执行物体。
此外,被选为处理执行物体的第4对象物体OBJ#14_target可以是未包括在位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内的第3对象物体OBJ#13。或者,被选为处理执行物体的第4对象物体OBJ#14_target可以是包括在位于第3目标拍摄高度CH_target#13的拍摄系统2的拍摄允许范围CAR内但未被选为处理执行物体的第3对象物体OBJ#13。
之后,信号生成部313基于第4对象物体OBJ#14_target的位置姿态数据POI#14,生成用于控制机器人1以使末端执行器4接近第4对象物体OBJ#14_target的机器人控制信号(图4的步骤S4)。在末端执行器4根据步骤S4中生成的机器人控制信号接近第4对象物体OBJ#14_target之后,在步骤S5中,机器人1对第4对象物体OBJ#14_target进行规定处理。也就是说,机器人1对容器CB中收纳的第4对象物体OBJ#14_target进行保持,将所保持的第4对象物体OBJ#14_target从容器CB搬出,并释放到容器CB外的释放位置。
此后,重复执行相同的处理,直至在图4的步骤S6中判定为结束机器人控制处理为止。
(3)变形例
接着,对机器人系统SYS的变形例进行说明。此外,以下说明的各变形例可以与其它变形例组合。或者,以下说明中,关于已经说明过的结构要素,通过标注相同参考编号而省略其详细说明。或者,以下说明中,关于已经说明过的处理,通过标注相同步骤编号而省略其详细说明。也就是说,以下说明中,将重点说明与已说明过的结构要素不同的结构要素、以及与已说明过的处理不同的处理。因此,除非另有说明,否则在以下说明的变形例中,机器人系统SYS也可以具备已说明过的结构要素,机器人系统SYS也可以进行已说明过的处理。
(3-1)第1变形例
上述说明中,控制装置3为了调整拍摄系统2的拍摄高度CH,使用为了生成用于控制机器人1以使末端执行器4接近对象物体OBJ的机器人控制信号而在图4的步骤S1中已获取的图像数据IMG_2D和IMG_3D中的至少一个。具体而言,控制装置3为了决定拍摄系统2的目标拍摄高度CH_target,使用为了生成用于控制机器人1以使末端执行器4接近对象物体OBJ的机器人控制信号而在图4的步骤S1中已获取的图像数据IMG_2D和IMG_3D中的至少一个。
另一方面,第1变形例中,控制装置3为了调整拍摄系统2的拍摄高度CH,可以使用与图4的步骤S1中已获取的图像数据IMG_2D和IMG_3D中的至少一个不同的图像数据IMG_2D和IMG_3D中的至少一个。
(3-1-1)第1变形例的机器人控制处理的流程
以下,参照图24的同时对第1变形例的机器人控制处理进行说明。图24是示出第1变形例的机器人控制处理的流程的流程图。
如图24所示,第1变形例中,控制装置3也进行步骤S1至步骤S6的处理。第1变形例中特别地,在步骤S6的判定结果是判定为不结束图24所示的机器人控制处理(步骤S6:否)的情况下,控制装置3在调整拍摄系统2的拍摄高度CH前,从拍摄系统2获取用于调整拍摄系统2的拍摄高度CH的图像数据IMG_2D和IMG_3D中的至少一个(步骤S8a)。
拍摄系统2可以在步骤S8a中控制装置3获取图像数据IMG_2D和IMG_3D中的至少一个的定时,对包括容器CB中收纳的多个对象物体OBJ中的至少一部分在内的对象物体组OBG进行拍摄,以生成步骤S8a中控制装置3获取的图像数据IMG_2D和IMG_3D中的至少一个。即拍摄系统2可以在步骤S6中判定为不结束机器人控制处理后,对容器CB中收纳的对象物体组OBG进行拍摄。
拍摄系统2可以在步骤S6中由控制装置3判定为不结束机器人控制处理前,预先对容器CB中收纳的对象物体组OBG进行拍摄,以生成步骤S8a中控制装置3获取的图像数据IMG_2D和IMG_3D中的至少一个。例如,拍摄系统2可以在步骤S6中由控制装置3判定是否结束机器人控制处理之前,对容器CB中收纳的对象物体组OBG进行拍摄。例如,拍摄系统2可以在步骤S5中由控制装置3判定为机器人1已对被选为对于处理执行物体的处理执行物体的一对象物体OBJ完成了规定处理后,对容器CB中收纳的对象物体组OBG进行拍摄。例如,拍摄系统2可以在步骤S5中由控制装置3判定为机器人1已对被选为对于处理执行物体的处理执行物体的一对象物体OBJ完成了规定处理前,对容器CB中收纳的对象物体组OBG进行拍摄。例如,拍摄系统2可在机器人1对被选为处理执行物体的一对象物体OBJ进行规定处理的期间的至少一部分时间内,对容器CB中收纳的对象物体组OBG进行拍摄。例如,拍摄系统2可以在机器人1进行移动(例如末端执行器4进行移动)以使得机器人1对被选为处理执行物体的一对象物体OBJ进行规定处理的期间的至少一部分时间内,对容器CB中收纳的对象物体组OBG进行拍摄。
在机器人1进行移动(例如末端执行器4进行移动)的期间的至少一部分时间内拍摄系统2对容器CB中收纳的对象物体组OBG进行拍摄的情况下,在拍摄系统2对对象物体组OBG进行拍摄的定时,机器人1(末端执行器4)可以暂时停止。或者,在拍摄系统2对对象物体组OBG进行拍摄的定时,机器人1(末端执行器4)可以继续移动而无需暂时停止。
此处,以下对如下定时的一个示例进行说明:如上所述,在机器人1对被选为处理执行物体的一对象物体OBJ进行保持,且在保持该一对象物体OBJ后将该一对象物体OBJ搬出容器CB外,并将搬出容器CB外的位置的对象物体OBJ释放到容器CB外的释放位置的情况下,拍摄系统2对容器CB中收纳的对象物体组OBG进行拍摄。此外,以下说明中,将被选为处理执行物体的一对象物体OBJ称为对象物体OBJ_target,将未被选为处理执行物体而在容器CB中收纳的其他对象物体OBJ称为对象物体OBJ_cb,将容器CB中收纳的对象物体组OBG(即包括多个对象物体OBJ_cb中的至少一部分在内的对象物体组OBG)称为对象物体组OBG_cb。
在该情况下,拍摄系统2可以在末端执行器4(机器人1)保持对象物体OBJ_target后,对对象物体组OBG_cb进行拍摄。特别地,拍摄系统2可以对包括容器CB中收纳的多个对象物体OBJ_cb中的、拍摄系统2的视野内所包括的至少一个对象物体OBJ_cb在内的对象物体组OBG_cb进行拍摄。另一方面,拍摄系统2可以不对容器CB中收纳的多个对象物体OBJ_cb中的、拍摄系统2的视野内未包括的至少一个对象物体OBJ_cb进行拍摄。
作为末端执行器4保持对象物体OBJ_target后拍摄系统2对对象物体OBJ_cb进行拍摄的第1例,如图25(a)所示,拍摄系统2可以在末端执行器4保持对象物体OBJ_target后、且在末端执行器4将对象物体OBJ_target释放到容器CB外的释放位置RP前,对容器CB中收纳的对象物体组OBG_cb进行拍摄。例如,拍摄系统2可以在末端执行器4保持对象物体OBJ_target后,直至末端执行器4所保持的对象物体OBJ_target从容器CB搬出且在容器CB外的释放位置被末端执行器4释放为止的期间的至少一部分时间内,对容器CB中收纳的对象物体组OBG_cb进行拍摄。例如,拍摄系统2可以在末端执行器4从容器CB内部的收纳空间SP移动到容器CB外的释放位置RP为止的期间的至少一部分时间内,对对象物体组OBG_cb进行拍摄。例如,拍摄系统2可以在随着末端执行器4从容器CB内部的收纳空间SP到容器CB外的释放位置RP的移动而移动的拍摄系统2的移动路径MR1上,对对象物体组OBG_cb进行拍摄。例如,拍摄系统2可以在末端执行器4保持对象物体OBJ_target后,直至末端执行器4所保持的对象物体OBJ_target从容器CB搬出为止的期间的至少一部分时间内,对容器CB中收纳的对象物体组OBG_cb进行拍摄。例如,拍摄系统2可以在末端执行器4从容器CB内部的收纳空间SP移动到容器CB外的期间的至少一部分时间内,对对象物体组OBG_cb进行拍摄。
作为末端执行器4保持对象物体OBJ_target后拍摄系统2拍摄对象物体OBJ_cb的第2例,如图25(b)所示,拍摄系统2可以在末端执行器4将对象物体OBJ_target释放到释放位置RP后、且在末端执行器4到达处理开始位置PSP前,对容器CB中收纳的对象物体组OBG_cb进行拍摄,该处理开始位置PSP是为了将容器CB中收纳的对象物体OBJ_cb选择作为下一个处理执行物体并进行规定处理而将末端执行器4设定在容器CB的上方。处理开始位置PSP可以是满足末端执行器4位于处理开始位置PSP的状况下,拍摄系统2的拍摄视野中包括容器CB的整体(或容器CB中收纳对象物体OBJ的一部分)这一条件的位置。例如,拍摄系统2可以在末端执行器4将对象物体OBJ_target释放到释放位置RP后,直至末端执行器4到达处理开始位置PSP为止的期间的至少一部分时间内,对容器CB中收纳的对象物体组OBG_cb进行拍摄。例如,拍摄系统2可以在末端执行器4从容器CB外的释放位置RP移动到容器CB上方的处理开始位置PSP的期间的至少一部分时间内,对对象物体组OBG_cb进行拍摄。例如,拍摄系统2可以在随着末端执行器4从容器CB外的释放位置RP到容器CB上方的处理开始位置PSP的移动而移动的拍摄系统2的移动路径MR2上,对对象物体组OBG_cb进行拍摄。
作为末端执行器4保持对象物体OBJ_target后拍摄系统2拍摄对象物体OBJ_cb的第3例,如图25(c)所示,拍摄系统2可以在末端执行器4位于处理开始位置PSP的情况下,对容器CB中收纳的对象物体组OBG_cb进行拍摄。
回到图24,之后控制装置3调整拍摄系统2的拍摄高度CH(步骤S7)。但第1变形例中,替代基于步骤S1中最后获取的图像数据IMG_2D和IMG_3D中的至少一个,控制装置3基于步骤S8a中获取的图像数据IMG_2D和IMG_3D中的至少一个来调整拍摄系统2的拍摄高度CH(步骤S7)。也就是说,控制装置3基于步骤S8a中获取到的图像数据IMG_2D和IMG_3D中的至少一个,决定目标拍摄高度CH_target,并生成用于控制机器人1以使拍摄系统2位于所决定的目标拍摄高度CH_target的机器人控制信号。此外,图24的步骤S7中调整拍摄系统2的拍摄高度CH的处理其本身可以与图4的步骤S7中调整拍摄系统2的拍摄高度CH的处理相同,因此省略其详细说明。
或者,替代基于步骤S8a中获取到的图像数据IMG_2D和IMG_3D中的至少一个来调整拍摄系统2的拍摄高度CH,控制装置3可以在末端执行器4将被选为处理执行物体的对象物体OBJ_target释放到释放位置RP后生成用于控制机器人1的机器人控制信号。例如,控制装置3可以生成用于控制机器人1以使得末端执行器4从释放位置RP移动到处理开始位置PSP(其结果是拍摄系统2也从释放位置RP移动到处理开始位置PSP,以下相同)的机器人控制信号。例如,控制装置3可以生成用于控制机器人1以使得末端执行器4从释放位置RP移动到处理开始位置PSP,之后拍摄系统2移动到所期望高度的机器人控制信号。也就是说,控制装置3可以生成用于控制机器人1以使拍摄系统2从释放位置RP经由处理开始位置PSP移动到所期望高度的机器人控制信号。在该情况下,控制装置3可以不必决定目标拍摄高度CH_target,也可以不生成用于控制机器人1以使拍摄系统2位于所决定的目标拍摄高度CH_target的机器人控制信号。
或者,除了基于步骤S8a中获取到的图像数据IMG_2D和IMG_3D中的至少一个来调整拍摄系统2的拍摄高度CH,控制装置3还可以在末端执行器4将被选为处理执行物体的对象物体OBJ_target释放到释放位置RP后,生成用于控制机器人1的机器人控制信号。例如,控制装置3可以生成用于控制机器人1以使得末端执行器4从释放位置RP移动到处理开始位置PSP,之后拍摄系统2移动到目标拍摄高度CH_target的机器人控制信号。即控制装置3可以生成用于控制机器人1以使拍摄系统2从释放位置RP经由处理开始位置PSP移动到目标拍摄高度CH_target的机器人控制信号。
此外,控制装置3可以进行用于控制机器人1以使得末端执行器4从释放位置RP移动到处理开始位置PSP,之后拍摄系统2移动到所期望高度或目标拍摄高度CH_target的处理的一部分,而不进行该处理的另一部分。即控制装置3可以生成用于从末端执行器4将被选为处理执行物体的对象物体OBJ_target释放到释放位置RP后的某个时刻的机器人1的位置开始控制机器人1的机器人控制信号。此外,末端执行器4将对象物体OBJ_target释放到释放位置RP后的某个时刻的机器人1的位置可以包括末端执行器4将对象物体OBJ_target释放到释放位置RP的时刻的机器人1的位置(即释放位置RP)。末端执行器4将对象物体OBJ_target释放到释放位置RP后的某个时刻的机器人1的位置可以包括在末端执行器4将对象物体OBJ_target释放到释放位置RP后机器人1沿某一路径移动完毕的时刻的机器人1的位置(即从释放位置RP向容器CB靠近的位置)。在该情况下,该处理的另一部分可基于示教等其他方法执行。例如,用于控制机器人1以使得末端执行器4从释放位置RP移动到处理开始位置PSP的处理可以基于示教等其他方法进行,控制装置3可以控制机器人1以使得拍摄系统2移动到所期望高度或目标拍摄高度CH_target。例如,用于控制机器人1以使得末端执行器4从释放位置RP移动到释放位置RP与处理开始位置PSP之间的中间位置的处理可以基于示教等其他方法进行,控制装置3可以控制机器人1以使得末端执行器4从中间位置移动到处理开始位置PSP,之后拍摄系统2移动到所期望高度或目标拍摄高度CH_target。
此外,处理开始位置PSP的高度可以与目标拍摄高度CH_target相同。该情况下,在拍摄系统2移动到处理开始位置PSP的时刻,拍摄系统2的拍摄高度CH与目标拍摄高度CH_target相同。因此,拍摄系统2移动到处理开始位置PSP后,拍摄系统2无需进一步移动到目标拍摄高度CH_target。因此,机器人控制处理的吞吐量得到提高。
此外,如后面第4变形例中详细说明,在除了拍摄系统2的拍摄高度CH以外或调整拍摄系统2的拍摄水平位置的情况下,处理开始位置PSP的水平位置(即沿XY平面的位置)可以与作为拍摄系统2的拍摄水平位置的目标值的目标拍摄水平位置相同。在该情况下,在拍摄系统2移动到处理开始位置PSP的时刻,拍摄系统2位于目标拍摄水平位置。因此,拍摄系统2移动到处理开始位置PSP后,拍摄系统2无需进一步移动到目标拍摄水平位置。因此,机器人控制处理的吞吐量得到提高。
(3-1-2)第1变形例中的机器人控制处理的具体例
接着,对第1变形例中的机器人控制处理的具体例进行说明。以下,对在容器CB中收纳有多个对象物体OBJ的状况下,机器人1重复进行对容器CB中收纳的多个对象物体OBJ中的一个进行保持、并将所保持的对象物体OBJ释放到容器CB外的释放位置的处理时所进行的机器人控制处理的一个具体例进行说明。
在图24所示的机器人控制处理开始后,如图26(a)所示,拍摄系统2对包括容器CB中收纳的多个对象物体OBJ中的至少一部分在内的第1对象物体组OBG#21进行拍摄(图24的步骤S1)。在该情况下,如图26(a)所示,拍摄系统2的拍摄高度CH可以被设定为初始拍摄高度即第1目标拍摄高度CH_target#21。也就是说,位于第1目标拍摄高度CH_target#21的拍摄系统2可以对第1对象物体组OBG#21进行拍摄。其结果是,控制装置3从拍摄系统2获取表示拍入有第1对象物体组OBG#21的图像的图像数据IMG_3D(称为图像数据IMG_3D#21)(图4的步骤S1)。此外,在以下的说明中,为便于说明,将第1对象物体组OBG#21中所包括的对象物体OBJ称为第1对象物体OBJ#21。
但是,控制装置3可以在图24所示的机器人控制处理开始后、首次进行图24的步骤S1的处理前,通过进行图24的步骤S8a的处理来获取图像数据IMG_2D和IMG_3D中的至少一个,之后通过进行图24的步骤S7的处理,基于步骤S8a中获取到的图像数据IMG_2D和IMG_3D中的至少一个来决定第1目标拍摄高度CH_target#21。该情况下,拍摄系统2能够更适当地拍摄第1对象物体组#21。具体而言,拍摄系统2可以从被假想为比初始拍摄高度更适合拍摄第1对象物体组#21的第1目标拍摄高度CH_target#21,对第1对象物体组OBG#21进行拍摄。
之后,位置姿态计算部312基于图像数据IMG_3D#21(具体而言,基于从图像数据IMG_3D#21生成的三维位置数据WSD),生成多个第1对象物体OBJ#21中的、被选为处理执行物体的一个第1对象物体OBJ#21的位置姿态数据POI(称为位置姿态数据POI#21)(图24的步骤S2至步骤S3)。此外,在以下的说明中,将被选为处理执行物体的一个第1对象物体OBJ#21称为第1对象物体OBJ#21_target。
位置姿态计算部312选择包括在位于第1目标拍摄高度CH_target#21的拍摄系统2的拍摄允许范围CAR内的第1对象物体OBJ#21作为处理执行物体即第1对象物体OBJ#21_target的可能性较高。这是因为,包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度变得比不包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度要高的可能性较高。在该情况下,位置姿态计算部312能够生成位置姿态数据POI,该位置姿态数据POI高精度表示包括在位于第1目标拍摄高度CH_target#21的拍摄系统2的拍摄允许范围CAR内的第1对象物体OBJ#21的位置和姿态中的至少一个。这是因为,对象物体OBJ的匹配相似度变得越高,对象物体OBJ的位置姿态数据POI的精度变高的可能性就越高。但是,位置姿态计算部312可以选择不包括在位于第1目标拍摄高度CH_target#21的拍摄系统2的拍摄允许范围CAR内的第1对象物体OBJ#21作为处理执行物体即第1对象物体OBJ#21_target。
之后,信号生成部313基于第1对象物体OBJ#21_target的位置姿态数据POI#21,生成用于控制机器人1以使末端执行器4接近第1对象物体OBJ#21_target的机器人控制信号(图24的步骤S4)。在末端执行器4根据步骤S4中生成的机器人控制信号接近第1对象物体OBJ#21_target之后,在步骤S5中,机器人1对第1对象物体OBJ#21_target进行规定处理。也就是说,作为规定处理,机器人1可以进行以下处理:对容器CB中收纳的第1对象物体OBJ#21_target进行保持,将所保持的第1对象物体OBJ#21_target从容器CB搬出,并释放到容器CB外的释放位置。
之后,在机器人1对第1对象物体OBJ#21_target进行了规定处理之后(图4的步骤S5:是),控制装置3调整拍摄系统2的拍摄高度CH(图4的步骤S7和S8a)。此外,如上所述,控制装置3可以在机器人1对单个第1对象物体OBJ#21进行了规定处理之后,调整拍摄系统2的拍摄高度CH。或者,如上所述,控制装置3可以在机器人1对多个第1对象物体OBJ#21分别进行了规定处理之后,调整拍摄系统2的拍摄高度CH。以下,为了便于说明,对在机器人1对单个第1对象物体OBJ#21进行了规定处理之后,控制装置3调整拍摄系统2的拍摄高度CH的示例进行说明。
第1变形例中,为了调整拍摄系统2的拍摄高度CH,控制装置3从拍摄系统2新获取图像数据IMG_2D和IMG_3D中的至少一个(图24的步骤S8a)。具体而言,如图26(b)所示,拍摄系统2对包括容器CB中收纳的多个对象物体OBJ中的至少一部分在内的第2对象物体组OBG#22进行拍摄。此外,图26(b)示出了末端执行器4保持图26(a)所示的第1对象物体OBJ#21_target后,拍摄系统2对第2对象物体组OBG#22进行拍摄的示例。其结果是,控制装置3从拍摄系统2获取表示拍入有第2对象物体组OBG#22的图像的图像数据IMG_3D(称为图像数据IMG_3D#22)(图24的步骤S8a)。此外,在以下的说明中,为便于说明,将第2对象物体组OBG#22中所包括的对象物体OBJ称为第2对象物体OBJ#22。
第2对象物体组OBG#22可以与第1对象物体组OBG#21不同。作为一例,如上所述,第1变形例中,控制装置3新获取在末端执行器4保持第1对象物体OBJ#21_target后通过由拍摄系统2对容器CB中收纳的第2对象物体组OBG#22进行拍摄而生成的图像数据IMG_2D和IMG_3D中的至少一个。因此,如图26(b)所示,第2对象物体组OBG#22中可以至少不包括被末端执行器4保持的第1对象物体OBJ#21_target。也就是说,第2对象物体组OBG#22可以与第1对象物体组OBG#21不同。作为另一例,在拍摄第2对象物体组OBG#22的拍摄系统2的位置与拍摄第1对象物体组OBG#21的拍摄系统2的位置不同的情况下,拍摄系统2的视野内所包括的对象物体OBJ可能发生变化。在该情况下,第2对象物体组OBG#22可以与第1对象物体组OBG#21不同。
之后,控制装置3使用图像数据IMG_3D#22(具体而言,从图像数据IMG_3D#22生成的三维位置数据WSD),计算第2对象物体组OBG#22的高度OH。其结果是,如图27(a)所示,控制装置3计算第2高度OH#22作为第2对象物体组OBG#22的高度OH。
之后,控制装置3基于计算出的第2高度OH#22和拍摄系统2的拍摄允许范围CAR,决定拍摄系统2的目标拍摄高度CH_target。具体而言,如图27(a)所示,控制装置3可以将满足“在位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括计算出的第2高度OH#22”这一条件的目标拍摄高度CH_target决定为第2目标拍摄高度CH_target#22。之后,控制装置3生成用于控制机器人1以使拍摄系统2的拍摄高度CH成为基于第2高度OH#22而决定的第2目标拍摄高度CH_target#22的机器人控制信号。其结果是,拍摄系统2位于第2目标拍摄高度CH_target#22。
这里,如图27(a)所示,在进行图24所示的机器人控制处理的情况下,在图24的步骤S7中计算出的第2对象物体组OBG#22的高度OH与在基于第2对象物体组OBG#22的高度OH实际调整拍摄系统2的拍摄高度CH的时刻在容器CB中实际收纳的对象物体组OBG的高度OH相同。这是因为,在计算出第2对象物体组OBG#22的高度OH的时刻,容器CB中收纳有第2对象物体组OBG#22本身。也就是说,进行图24所示的机器人控制处理的情况下,与执行图4所示的机器人控制处理的情况相比,步骤S7中计算出的对象物体组OBG的高度OH的误差变小。其结果是,与进行图4所示的机器人控制处理的情况相比,控制装置3能够决定第2目标拍摄高度CH_target#22,该第2目标拍摄高度CH_target#22更适当地满足“第2对象物体组OBG#22所包括的多个第2对象物体OBJ#22中的至少一个包括在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内”这一条件。
之后,如图27(b)所示,位于第2目标拍摄高度CH_target#22的拍摄系统2对包括容器CB中收纳的多个对象物体OBJ中的至少一部分在内的第3对象物体组OBG#23进行拍摄(图24的步骤S1)。其结果是,控制装置3从拍摄系统2获取表示拍入有第3对象物体组OBG#23的图像的图像数据IMG_3D(称为图像数据IMG_3D#23)(图24的步骤S1)。此外,在以下的说明中,为了便于说明,将第3对象物体组OBG#23所包括的对象物体OBJ称为第3对象物体OBJ#23。
由位于第2目标拍摄高度CH_target#22的拍摄系统2所拍摄的第3对象物体组OBG#23可以与为了决定第2目标拍摄高度CH_target#22而由拍摄系统2所拍摄的第2对象物体组OBG#22相同。具体而言,首先,在为了决定第2目标拍摄高度CH_target#22而由拍摄系统2对第2对象物体组OBG#22进行拍摄后,直至位于第2目标拍摄高度CH_target#22的拍摄系统2对第3对象物体组OBG#23进行拍摄为止的期间,对象物体OBJ基本不会从容器CB搬出。在此前提下,在拍摄第3对象物体组OBG#23的拍摄系统2的位置与拍摄第2对象物体组OBG#22的拍摄系统2的位置相同的情况下,拍摄系统2的视野内所包括的对象物体OBJ相同。在该情况下,第3对象物体组OBG#23可以与第2对象物体组OBG#22相同。因此,在位于基于第2对象物体组OBG#22的拍摄结果而决定的第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内包括与第2对象物体组OBG#22相同的第3对象物体组OBG#23所包括的多个第3对象物体OBJ#23中的至少一个的可能性较高。在该情况下,拍摄系统2能够适当地拍摄第3对象物体组OBG#23所包括的多个第3对象物体OBJ#23中的至少一个。
但第3对象物体组OBG#23与第2对象物体组OBG#22可以至少部分不同。例如,在拍摄第3对象物体组OBG#23的拍摄系统2的位置与拍摄第2对象物体组OBG#22的拍摄系统2的位置不同的情况下,拍摄系统2的视野内所包括的对象物体OBJ可能发生变化。在该情况下,第3对象物体组OBG#23可以与第2对象物体组OBG#22不同。
此外,如上所述,由于在拍摄系统2从第2目标拍摄高度CH_target#22拍摄第3对象物体组OBG#23的时刻,至少一个第1对象物体OBJ#21已从容器CB搬出,因此在拍摄系统2从第2目标拍摄高度CH_target#22拍摄第3对象物体组OBG#23的时刻在容器CB中收纳的对象物体OBJ的数量可以少于在拍摄系统2从第1目标拍摄高度CH_target#21拍摄第1对象物体组OBG#21的时刻在容器CB中收纳的对象物体OBJ的数量。拍摄系统2从第2目标拍摄高度CH_target#22拍摄到的第3对象物体组OBG#23所包括的第3对象物体OBJ#23的数量可以少于拍摄系统2从第1目标拍摄高度CH_target#21拍摄到的第1对象物体组OBG#21所包括的第1对象物体OBJ#21的数量。在拍摄系统2从第2目标拍摄高度CH_target#22拍摄第3对象物体组OBG#23的时刻收纳有多个对象物体OBJ的容器CB的重量可以轻于在拍摄系统2从第1目标拍摄高度CH_target#21拍摄第1对象物体组OBG#21的时刻收纳有多个对象物体OBJ的容器CB的重量。此外,这里所说的“收纳有多个对象物体OBJ的容器CB的重量”,可以是包含容器CB其本身的重量和容器CB中收纳的多个对象物体OBJ的重量双方在内的重量。
之后,位置姿态计算部312基于图像数据IMG_3D#23(具体而言,基于从图像数据IMG_3D#23生成的三维位置数据WSD),生成多个第3对象物体OBJ#23中的、被选为处理执行物体的一个第3对象物体OBJ#23的位置姿态数据POI(称为位置姿态数据POI#23)(图24的步骤S2至步骤S3)。此外,在以下的说明中,将被选为处理执行物体的一个第3对象物体OBJ#23称为第3对象物体OBJ#23_target。
位置姿态计算部312选择包括在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内的第3对象物体OBJ#23作为处理执行物体即第3对象物体OBJ#23_target的可能性较高。这是因为,包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度变得比不包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度要高的可能性较高。在该情况下,位置姿态计算部312能够生成位置姿态数据POI,该位置姿态数据POI高精度表示包括在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内的第3对象物体OBJ#23的位置和姿态中的至少一个。这是因为,对象物体OBJ的匹配相似度变得越高,对象物体OBJ的位置姿态数据POI的精度变高的可能性就越高。反过来说,第2目标拍摄高度CH_target#22可以是满足“被选为处理执行物体的第3对象物体OBJ#23包括在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内”这一条件的拍摄高度CH。也就是说,控制装置3可以决定第2目标拍摄高度CH_target#22,以满足“被选为处理执行物体的第3对象物体OBJ#23包括在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内”这一条件。但是,位置姿态计算部312可以选择不包括在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内的第3对象物体OBJ#23作为处理执行物体即第3对象物体OBJ#23_target。
另一方面,被选为处理执行物体的第3对象物体OBJ#23_target可以不包括在被调整拍摄高度CH前的拍摄系统2的拍摄允许范围CAR内。也就是说,被选为处理执行物体的第3对象物体OBJ#23_target可以不包括在位于第1目标拍摄高度CH_target#21的拍摄系统2的拍摄允许范围CAR内。这是因为,如边参照图18(a)至图18(b)及图19边说明的那样,由于根据容器CB中收纳的对象物体组OBG的高度OH来调整拍摄系统2的拍摄高度CH,因此即使在第1时刻一对象物体OBJ未包括在拍摄系统2的拍摄允许范围CAR内,在晚于第1时刻的第2时刻,一对象物体OBJ也会包括在拍摄系统2的拍摄允许范围CAR内,其结果是,该一对象物体OBJ能够被选为处理执行物体。也就是说,因为即使在位于第1目标拍摄高度CH_target#21的拍摄系统2的拍摄允许范围CAR内未包括一对象物体OBJ,随着时间的经过,在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内也会包括一对象物体OBJ,其结果是,该一对象物体OBJ能够被选为处理执行物体。
此外,被选为处理执行物体的第3对象物体OBJ#23_target可以是未包括在位于第1目标拍摄高度CH_target#21的拍摄系统2的拍摄允许范围CAR内的第1对象物体OBJ#21。或者,被选为处理执行物体的第3对象物体OBJ#23_target可以是包括在位于第1目标拍摄高度CH_target#21的拍摄系统2的拍摄允许范围CAR内但未被选为处理执行物体的第1对象物体OBJ#21。
之后,信号生成部313基于第3对象物体OBJ#23_target的位置姿态数据POI#23,生成用于控制机器人1以使末端执行器4接近第3对象物体OBJ#23_target的机器人控制信号(图24的步骤S4)。在末端执行器4根据步骤S4中生成的机器人控制信号接近第3对象物体OBJ#23_target之后,在步骤S5中,机器人1对第3对象物体OBJ#23_target进行规定处理。也就是说,机器人1对容器CB中收纳的第3对象物体OBJ#23_target进行保持,将所保持的第3对象物体OBJ#23_target从容器CB搬出,并释放到容器CB外的释放位置。
之后,在机器人1对第3对象物体OBJ#23_target进行了规定处理之后(图4的步骤S5:是),控制装置3调整拍摄系统2的拍摄高度CH(图4的步骤S7)。此外,如上所述,控制装置3可以在机器人1对单个第3对象物体OBJ#23进行了规定处理之后,调整拍摄系统2的拍摄高度CH。或者,如上所述,控制装置3可以在机器人1对多个第3对象物体OBJ#23分别进行了规定处理之后,调整拍摄系统2的拍摄高度CH。以下,为了便于说明,对在机器人1对单个第3对象物体OBJ#23进行了规定处理之后,控制装置3调整拍摄系统2的拍摄高度CH的示例进行说明。
第1变形例中,为了调整拍摄系统2的拍摄高度CH,控制装置3从拍摄系统2新获取图像数据IMG_2D和IMG_3D中的至少一个(图24的步骤S8a)。具体而言,如图28(a)所示,拍摄系统2对包括容器CB中收纳的多个对象物体OBJ中的至少一部分在内的第4对象物体组OBG#24进行拍摄。此外,图28(a)示出了末端执行器4保持图27(b)所示的第3对象物体OBJ#23_target后,拍摄系统2对第4对象物体组OBG#24进行拍摄的示例。其结果是,控制装置3从拍摄系统2获取表示拍入有第4对象物体组OBG#24的图像的图像数据IMG_3D(称为图像数据IMG_3D#24)(图24的步骤S8a)。此外,在以下的说明中,为便于说明,将第4对象物体组OBG#24所包括的对象物体OBJ称为第4对象物体OBJ#24。
第4对象物体组OBG#24可以与第3对象物体组OBG#23不同。作为一例,如上所述,第1变形例中,控制装置3新获取在末端执行器4保持第3对象物体OBJ#23_target后通过由拍摄系统2对容器CB中收纳的对象物体OBJ进行拍摄而生成的图像数据IMG_2D和IMG_3D中的至少一个。因此,如图28(a)所示,第4对象物体组OBG#24中可以至少不包括被末端执行器4保持的第3对象物体OBJ#23_target。也就是说,第4对象物体组OBG#24可以与第3对象物体组OBG#23不同。作为另一例,在拍摄第4对象物体组OBG#24的拍摄系统2的位置与拍摄第3对象物体组OBG#23的拍摄系统2的位置不同的情况下,拍摄系统2的视野内所包括的对象物体OBJ可能发生变化。在该情况下,第4对象物体组OBG#24可以与第3对象物体组OBG#23不同。
之后,控制装置3使用图像数据IMG_3D#24(具体而言,从图像数据IMG_3D#24生成的三维位置数据WSD),计算第4对象物体组OBG#24的高度OH。其结果是,如图28(b)所示,控制装置3计算第4高度OH#24作为第4对象物体组OBG#24的高度OH。
在此,如上所述,在拍摄第4对象物体组OBG#24的时刻,第3对象物体组OBG#23所包括的多个第3对象物体OBJ#23中的至少一个已被机器人1从容器CB搬出。因此,第3对象物体组OBG#23所包括的(进一步地,与第3对象物体组OBG#23相同的第2对象物体组OBG#22所包括的)多个第3对象物体OBJ#23中的至少一个不包括在第4对象物体组OBG#24中。也就是说,第4对象物体组OBG#24所包括的第4对象物体OBJ#24的数量变得比第3对象物体组OBG#23所包括的(进一步地,与第3对象物体组OBG#23相同的第2对象物体组OBG#22所包括的)第3对象物体OBJ#23的数量要少。其结果是,第4对象物体组OBG#24的第4高度OH#24通常变得比与第3对象物体组OBG#23相同的第2对象物体组OBG#22的高度OH#22要低。但是,根据情况,第4对象物体组OBG#24的第4高度OH#24也可以与第2对象物体组OBG#22的第2高度OH#22相同。
之后,控制装置3基于计算出的第4高度OH#24和拍摄系统2的拍摄允许范围CAR,决定拍摄系统2的目标拍摄高度CH_target。具体而言,如图28(b)所示,控制装置3可以将满足“在位于目标拍摄高度CH_target的拍摄系统2的拍摄允许范围CAR内包括计算出的第4高度OH#24”这一条件的目标拍摄高度CH_target决定为第4目标拍摄高度CH_target#24。之后,控制装置3生成用于控制机器人1以使得拍摄系统2的拍摄高度CH成为基于第4高度OH#24而决定的第4目标拍摄高度CH_target#24的机器人控制信号。其结果是,拍摄系统2位于第4目标拍摄高度CH_target#24。
这里,如上所述,第4对象物体组OBG#24的第4高度OH#24通常变得比第2对象物体组OBG#22的第2高度OH#22要低。在该情况下,基于第4高度OH#24决定的第4目标拍摄高度CH_target#24也可以变得比基于第2高度OH#22决定的第2目标拍摄高度CH_target#23要低。
此外,如图28(b)所示,在进行图24所示的机器人控制处理的情况下,在图24的步骤S7中计算出的第4对象物体组OBG#24的高度OH与在计算第4对象物体组OBG#24的高度OH的时刻在容器CB中实际收纳的对象物体组OBG的高度OH相同。这是因为,在计算第4对象物体组OBG#24的高度OH的时刻,容器CB中收纳第4对象物体组OBG#24本身。也就是说,进行图24所示的机器人控制处理的情况下,与执行图4所示的机器人控制处理的情况相比,步骤S7中计算出的对象物体组OBG的高度OH的误差变小。其结果是,与进行图4所示的机器人控制处理的情况相比,控制装置3能够决定第4目标拍摄高度CH_target#24,该第4目标拍摄高度CH_target#24更适当地满足“第4对象物体组OBG#24所包括的多个第4对象物体OBJ#24中的至少一个包括在位于第4目标拍摄高度CH_target#24的拍摄系统2的拍摄允许范围CAR内”这一条件。
之后,如图29所示,位于第4目标拍摄高度CH_target#24的拍摄系统2对包括容器CB中收纳的多个对象物体OBJ中的至少一部分在内的第5对象物体组OBG#25进行拍摄(图24的步骤S1)。其结果是,控制装置3从拍摄系统2获取表示拍入有第5对象物体组OBG#25的图像的图像数据IMG_3D(称为图像数据IMG_3D#25)(图24的步骤S1)。此外,在以下的说明中,为便于说明,将第5对象物体组OBG#25所包括的对象物体OBJ称为第5对象物体OBJ#25。
由位于第4目标拍摄高度CH_target#24的拍摄系统2所拍摄的第5对象物体组OBG#25可以与为了决定第4目标拍摄高度CH_target#24而由拍摄系统2所拍摄的第4对象物体组OBG#24相同。具体而言,首先,在为了决定第4目标拍摄高度CH_target#24而由拍摄系统2对第4对象物体组OBG#24进行拍摄后,直至位于第4目标拍摄高度CH_target#24的拍摄系统2对第5对象物体组OBG#25进行拍摄为止的期间,对象物体OBJ基本不会从容器CB搬出。在此前提下,在拍摄第5对象物体组OBG#25的拍摄系统2的位置与拍摄第4对象物体组OBG#24的拍摄系统2的位置相同的情况下,拍摄系统2的视野内所包括的对象物体OBJ相同。在该情况下,第5对象物体组OBG#25可以与第4对象物体组OBG#24相同。因此,在位于基于第4对象物体组OBG#24的拍摄结果而决定的第4目标拍摄高度CH_target#24的拍摄系统2的拍摄允许范围CAR内包括与第4对象物体组OBG#24相同的第5对象物体组OBG#25所包括的多个第5对象物体OBJ#25中的至少一个的可能性较高。在该情况下,拍摄系统2能够适当地拍摄第5对象物体组OBG#25所包括的多个第5对象物体OBJ#25中的至少一个。
但第5对象物体组OBG#25与第4对象物体组OBG#24可以至少部分不同。例如,拍摄第5对象物体组OBG#25的拍摄系统2的位置与拍摄第4对象物体组OBG#24的拍摄系统2的位置不同的情况下,拍摄系统2的视野内所包括的对象物体OBJ可能发生变化。在该情况下,第5对象物体组OBG#25可以与第4对象物体组OBG#24不同。
此外,如上所述,由于在拍摄系统2从第4目标拍摄高度CH_target#24拍摄第5对象物体组OBG#25的时刻,至少一个第3对象物体OBJ#23已从容器CB搬出,因此在拍摄系统2从第4目标拍摄高度CH_target#24拍摄第5对象物体组OBG#25的时刻在容器CB中收纳的对象物体OBJ的数量可以少于在拍摄系统2从第2目标拍摄高度CH_target#22拍摄第3对象物体组OBG#23的时刻在容器CB中收纳的对象物体OBJ的数量。拍摄系统2从第4目标拍摄高度CH_target#24拍摄到的第5对象物体组OBG#25所包括的第5对象物体OBJ#25的数量可以少于拍摄系统2从第2目标拍摄高度CH_target#22拍摄到的第3对象物体组OBG#23所包括的第3对象物体OBJ#23的数量。在拍摄系统2从第4目标拍摄高度CH_target#24拍摄第5对象物体组OBG#25的时刻收纳有多个对象物体OBJ的容器CB的重量可以轻于在拍摄系统2从第2目标拍摄高度CH_target#22拍摄第3对象物体组OBG#23的时刻收纳有多个对象物体OBJ的容器CB的重量。此外,这里所说的“收纳有多个对象物体OBJ的容器CB的重量”,可以是包含容器CB其本身的重量和容器CB中收纳的多个对象物体OBJ的重量双方在内的重量。
之后,位置姿态计算部312基于图像数据IMG_3D#25(具体而言,基于从图像数据IMG_3D#25生成的三维位置数据WSD),生成多个第5对象物体OBJ#25中的、被选为处理执行物体的一个第5对象物体OBJ#25的位置姿态数据POI(称为位置姿态数据POI#25)(图24的步骤S2至步骤S3)。此外,在以下的说明中,将被选为处理执行物体的一个第5对象物体OBJ#53称为第5对象物体OBJ#25_target。
位置姿态计算部312选择包括在位于第4目标拍摄高度CH_target#24的拍摄系统2的拍摄允许范围CAR内的第5对象物体OBJ#25作为处理执行物体即第5对象物体OBJ#25_target的可能性较高。这是因为,包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度变得比不包括在拍摄允许范围CAR内的对象物体OBJ的匹配相似度要高的可能性较高。在该情况下,位置姿态计算部312能够生成位置姿态数据POI,该位置姿态数据POI高精度表示包括在位于第4目标拍摄高度CH_target#24的拍摄系统2的拍摄允许范围CAR内的第5对象物体OBJ#25的位置和姿态中的至少一个。这是因为,对象物体OBJ的匹配相似度变得越高,对象物体OBJ的位置姿态数据POI的精度变高的可能性就越高。反过来说,第4目标拍摄高度CH_target#24可以是满足“被选为处理执行物体的第5对象物体OBJ#25包括在位于第4目标拍摄高度CH_target#24的拍摄系统2的拍摄允许范围CAR内”这一条件的拍摄高度CH。也就是说,控制装置3可以决定第4目标拍摄高度CH_target#24,以满足“被选为处理执行物体的第5对象物体OBJ#25包括在位于第4目标拍摄高度CH_target#24的拍摄系统2的拍摄允许范围CAR内”这一条件。但是,位置姿态计算部312可以选择不包括在位于第4目标拍摄高度CH_target#24的拍摄系统2的拍摄允许范围CAR内的第5对象物体OBJ#25作为处理执行物体即第5对象物体OBJ#25_target。
另一方面,被选为处理执行物体的第5对象物体OBJ#25_target可以不包括在被调整拍摄高度CH前的拍摄系统2的拍摄允许范围CAR内。也就是说,被选为处理执行物体的第5对象物体OBJ#25_target可以不包括在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内。这是因为,如边参照图18(a)至图18(b)及图19边说明的那样,由于根据容器CB中收纳的对象物体组OBG的高度OH来调整拍摄系统2的拍摄高度CH,因此即使在第1时刻一对象物体OBJ未包括在拍摄系统2的拍摄允许范围CAR内,在晚于第1时刻的第2时刻,一对象物体OBJ也会包括在拍摄系统2的拍摄允许范围CAR内,其结果是,该一对象物体OBJ能够被选为处理执行物体。也就是说,因为即使在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内未包括一对象物体OBJ,随着时间的经过,在位于第4目标拍摄高度CH_target#24的拍摄系统2的拍摄允许范围CAR内也会包括一对象物体OBJ,其结果是,该一对象物体OBJ能够被选为处理执行物体。
此外,被选为处理执行物体的第5对象物体OBJ#25_target可以是未包括在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内的第2对象物体OBJ#22。或者,被选为处理执行物体的第5对象物体OBJ#25_target可以是包括在位于第2目标拍摄高度CH_target#22的拍摄系统2的拍摄允许范围CAR内但未被选为处理执行物体的第2对象物体OBJ#22。
之后,信号生成部313基于第5对象物体OBJ#25_target的位置姿态数据POI#25,生成用于控制机器人1以使末端执行器4接近第5对象物体OBJ#25_target的机器人控制信号(图24的步骤S4)。在末端执行器4根据步骤S4中生成的机器人控制信号接近第5对象物体OBJ#25_target之后,在步骤S5中,机器人1对第5对象物体OBJ#25_target进行规定处理。也就是说,机器人1对容器CB中收纳的第5对象物体OBJ#25_target进行保持,将所保持的第5对象物体OBJ#23_target从容器CB搬出,并释放到容器CB外的释放位置。
此后,重复执行相同的处理,直至在图24的步骤S6中判定为结束机器人控制处理为止。
(3-1-3)第1变形例的技术效果
这样,即使在第1变形例中,也根据对象物体组OBG的高度OH的变化,来调整拍摄系统2的拍摄高度CH。因此,能够获得与进行上述图4所示的机器人控制处理时所能获得的效果相同的效果。
第1变形例中进一步地,具体而言,用于调整拍摄系统2的拍摄高度CH而成为高度OH的计算对象的对象物体组OBG与包括由末端执行器4进行规定处理的对象物体OBJ在内的对象物体组OBG是相同的。具体而言,用于调整拍摄系统2的拍摄高度CH而成为高度OH的计算对象的对象物体组OBG与拍摄系统2为了控制机器人1对对象物体OBJ进行规定处理而拍摄的对象物体组OBG是相同的。因此,对象物体组OBG的高度OH的计算结果能够更准确地表示包括由末端执行器4进行规定处理的对象物体OBJ在内的对象物体组OBG的高度OH。也就是说,对象物体组OBG的高度OH的计算结果能够更准确地表示拍摄系统2为了控制机器人1对对象物体OBJ进行规定处理而拍摄的对象物体组OBG的高度OH。因此,位于基于对象物体组OBG的准确高度OH所决定的目标拍摄高度CH_target的拍摄系统2能够适当地拍摄对象物体组OBG以控制机器人1对对象物体OBJ进行规定处理。其结果,控制装置3能够高精度地计算对象物体OBJ的位置和姿态中的至少一个。因此,控制装置3能够高精度地控制机器人1,以使其对对象物体OBJ进行规定处理。
但在第1变形例中,为了调整拍摄系统2的拍摄高度CH,拍摄系统2需要重新拍摄对象物体组OBG,因此与进行图4所示的可以不为了调整拍摄系统2的拍摄高度CH而由拍摄系统2重新拍摄对象物体组OBG的机器人控制处理的情况相比,可能会导致机器人控制处理的周期时间恶化(周期时间变长)。反之,图4所示的机器人控制处理与图24所示的第1变形例的机器人控制处理相比,具有能够实现更短周期时间的优点。
然而,在第1变形例中,在机器人1对对象物体OBJ完成规定处理前,若为了调整拍摄系统2的拍摄高度CH而由拍摄系统2重新拍摄对象物体组OBG,则周期时间的恶化可得到相应地抑制。或者,在某些情况下,周期时间不会恶化。例如,如上所述,在末端执行器4保持对象物体OBJ后至将其释放到容器CB外的释放位置RP为止的第1期间内,在为了调整拍摄系统2的拍摄高度CH而由拍摄系统2重新拍摄对象物体组OBG的情况下,周期时间的恶化可得到相应地抑制或周期时间不会恶化。这是因为,与是否为了调整拍摄系统2的拍摄高度CH而由拍摄系统2重新拍摄对象物体组OBG无关地,第1期间都是机器人1对对象物体OBJ进行规定处理所需的期间。例如,如上所述,在末端执行器4释放对象物体OBJ后至移动到容器CB上方的处理开始位置PSP为止的第2期间内,在为了调整拍摄系统2的拍摄高度CH而由拍摄系统2重新拍摄对象物体组OBG的情况下,周期时间的恶化可得到相应地抑制或周期时间不会恶化。这是因为,与是否为了调整拍摄系统2的拍摄高度CH而由拍摄系统2重新拍摄对象物体组OBG无关地,第2期间都是机器人1对下一个对象物体OBJ开始规定所需的期间。
此外,在拍摄系统2在到末端执行器4释放对象物体OBJ为止的第1期间内拍摄对象物体组OBG的情况下,与拍摄系统2在末端执行器4释放对象物体OBJ后的第2期间内拍摄对象物体组OBG的情况相比,控制装置3为了调整拍摄系统2的拍摄高度CH所能确保的时间变长。这是因为,在拍摄系统2在到末端执行器4释放对象物体OBJ为止的第1期间内拍摄对象物体组OBG的情况下,与拍摄系统2在末端执行器4释放对象物体OBJ后的第2期间内拍摄对象物体组OBG的情况相比,能够更早地获取调整拍摄系统2的拍摄高度CH所需的图像数据IMG_2D和IMG_3D中的至少一个。
(3-1-4)第1变形例中的其他说明
在第1变形例中,在控制装置3在步骤S6中判定为不结束机器人控制处理前、拍摄系统2对容器CB中收纳的对象物体组OBG进行拍摄的情况下,容器CB中可能一个对象物体OBJ也没有剩余。如上所述,控制装置3在步骤S6中为了判定是否结束机器人控制处理,可以判定机器人1是否对其他对象物体OBJ进行规定处理(换言之,机器人1应进行规定处理的对象物体OBJ在容器CB中是否还有剩余)。在该情况下,在控制装置3尚未判定是否结束机器人控制处理的时刻,容器CB中是否还有机器人1应进行规定处理的对象物体OBJ剩余是不明确的。因此,根据情况不同,容器CB中有可能一个对象物体OBJ也没有剩余。即使在该情况下,拍摄系统2仍可以对容器CB中可能收纳的对象物体组OBG进行拍摄。但是,在容器CB中一个对象物体OBJ也没有剩余的情况下,对容器CB中可能收纳的对象物体组OBG进行拍摄可以被视为与拍摄容器CB的内部(即收纳空间SP)等效。或者,与在容器CB中是否剩余对象物体OBJ无关地,对容器CB中收纳的对象物体组OBG进行拍摄可以被视为与拍摄容器CB的内部(即收纳空间SP)等效。
在容器CB中一个对象物体OBJ也没有剩余的情况下,由拍摄系统2生成的图像数据IMG_2D和IMG_3D中的至少一个所示的图像中不会拍入对象物体OBJ。因此,控制装置3无法为了调整拍摄系统2的拍摄高度CH而计算容器CB中收纳的对象物体组OBG的高度OH。其结果是,控制装置3无法基于对象物体组OBG的高度OH来决定拍摄系统2的目标拍摄高度CH_target。在这种情况下,控制装置3可以将上述初始拍摄高度设定为拍摄系统2的目标拍摄高度CH_target。或者,控制装置3可以将被预先设定为拍摄系统2应待机的场所的待机位置的高度设定为拍摄系统2的目标拍摄高度CH_target。或者,替代决定目标拍摄高度CH_target,控制装置3可以生成用于控制机器人1以使拍摄系统2移动到被预先设定为拍摄系统2应待机的场所的待机位置、或被预先设定为在开始机器人控制处理的时刻拍摄系统2应位于的场所的初始位置的机器人控制信号。
此外,并不仅限于第1变形例所述的场景,在控制装置3无法计算对象物体组OBG的高度OH的任意场景中,控制装置3都可以将上述初始拍摄高度设定为拍摄系统2的目标拍摄高度CH_target。并不仅限于第1变形例所述的场景,在控制装置3无法计算对象物体组OBG的高度OH的任意场景中,控制装置3都可将被预先设定为拍摄系统2应待机的场所的待机位置的高度设定为拍摄系统2的目标拍摄高度CH_target。并不仅限于第1变形例所述的场景,在控制装置3无法计算对象物体组OBG的高度OH的任意场景中,控制装置3可以生成用于控制机器人1以使拍摄系统2移动到被预先设定为拍摄系统2应待机的场所的待机位置、或被预先设定为在开始机器人控制处理的时刻拍摄系统2应位于的场所的初始位置的机器人控制信号。
在上述说明中,拍摄系统2生成为了调整拍摄系统2的拍摄高度CH而在步骤S8a中由控制装置3获取的图像数据IMG_2D和IMG_3D中的至少一个。也就是说,拍摄系统2对对象物体OBJ进行拍摄,以生成用于调整拍摄系统2的拍摄高度CH的图像数据IMG_2D和IMG_3D中的至少一个。然而,与拍摄系统2不同的其他拍摄系统也可以生成为了调整拍摄系统2的拍摄高度CH而在步骤S8a中由控制装置3获取的图像数据IMG_2D和IMG_3D中的至少一个。也就是说,与拍摄系统2不同的其他拍摄系统也可以对对象物体OBJ进行拍摄,以生成用于调整拍摄系统2的拍摄高度CH的图像数据IMG_2D和IMG_3D中的至少一个。与拍摄系统2不同的其他拍摄系统可以设置在机器人1(特别是机械臂12)上。或者,与拍摄系统2不同的其他拍摄系统可以设置在与机器人1(特别是机械臂12)不同的部分上。例如,与拍摄系统2不同的其他拍摄系统可以配置在配置机器人系统SYS的建筑物的天花板上。例如,与拍摄系统2不同的其他拍摄系统可以安装在立柱等构造物上。
控制装置3在图24的步骤S8a中,可以获取与图24的步骤S1中获取的图像数据类型不同的图像数据。例如,在控制装置3在图2的步骤S1中获取了图像数据IMG_2D的情况下,在图24的步骤S8a中,控制装置3可以获取与图像数据IMG_2D类型不同的图像数据即图像数据IMG_3D。例如,在控制装置3在图2的步骤S1中获取了图像数据IMG_3D的情况下,在图24的步骤S8a中,控制装置3可以获取与图像数据IMG_3D类型不同的图像数据即图像数据IMG_2D。
(3-2)第2变形例
在上述说明中,控制装置3在图4或图24的步骤S7中,为了调整拍摄系统2的拍摄高度CH,使用拍摄系统2生成的图像数据IMG_2D和IMG_3D中的至少一方,来计算对象物体组OBG的高度OH。在第2变形例中,控制装置3可以采用与使用由拍摄系统2生成的图像数据IMG_2D和IMG_3D中的至少一方的高度计算方法不同的高度计算方法,来计算对象物体组OBG的高度OH。以下,将对与使用由拍摄系统2生成的图像数据IMG_2D和IMG_3D中的至少一方的高度计算方法不同的高度计算方法的具体示例进行说明。
(3-2-1)使用与拍摄系统2不同的拍摄系统91的第1高度计算方法
控制装置3可以使用与拍摄系统2不同的拍摄系统91来计算对象物体组OBG的高度OH。例如,在机器人系统SYS具备拍摄系统91的情况下,控制装置3可以使用机器人系统SYS所具备的拍摄系统91来计算对象物体组OBG的高度OH。例如,在机器人系统SYS没有具备拍摄系统91的情况下,控制装置3可以使用机器人系统SYS的外部的拍摄系统91来计算对象物体组OBG的高度OH。拍摄系统91可以以在拍摄系统91的拍摄视野中包括更多的对象物体OBJ的位置及姿态来配置。
拍摄系统91可以安装在机器人1上。拍摄系统91可以安装在机械臂12上。拍摄系统91可以安装在与机器人1(特别是机械臂12)不同的部分上。例如,拍摄系统91可以安装在配置机器人系统SYS的建筑物的天花板上。例如,拍摄系统91可以安装在与机器人1不同的机器人上。例如,拍摄系统91可以安装在立柱等构造物上。
如表示拍摄系统91的剖视图即图30所示,拍摄系统91能够对容器CB中收纳的对象物体组OBG进行拍摄。拍摄系统91通过对容器CB中收纳的对象物体组OBG进行拍摄,从而能够生成表示拍入有对象物体组OBG的图像的图像数据。控制装置3可以使用由拍摄系统91生成的图像数据来计算对象物体组OBG的高度OH。
此外,使用由拍摄系统91生成的图像数据来计算对象物体组OBG的高度OH的方法可以与使用由拍摄系统2生成的图像数据IMG_2D和IMG_3D中的至少一方来计算对象物体组OBG的高度OH的方法相同。例如,控制装置3可以通过分析由拍摄系统91生成的图像数据所示的图像来计算对象物体组OBG的高度OH。或者,在拍摄系统91生成的图像数据与图像数据IMG_2D为相同类型的图像数据的情况下,控制装置3可通过使用由拍摄系统91生成的图像数据进行2D匹配处理,从而计算对象物体组OBG的高度OH。或者,在拍摄系统91生成的图像数据与图像数据IMG_3D为相同类型的图像数据(例如立体图像数据)的情况下,控制装置3可以与根据图像数据IMG_3D生成三维位置数据WSD的情况同样地,根据拍摄系统91生成的图像数据生成三维位置数据(例如点云数据)。之后,控制装置3可以使用生成的三维位置数据来计算对象物体组OBG的高度OH。
如此,在第1高度计算方法中,控制装置3使用拍摄系统91来计算对象物体组OBG的高度OH。在该情况下,拍摄系统91可以被视为作为能够直接或间接测量对象物体组OBG的高度OH的测量装置而发挥功能。
(3-2-2)使用重量传感器92的第2高度计算方法
控制装置3可以使用重量传感器92来计算对象物体组OBG的高度OH。例如,如表示重量传感器92的剖视图即图31所示,重量传感器92能够测量在容器CB中收纳的对象物体组OBG的重量。在该情况下,重量传感器92可以内置于容器CB中。或者,容器CB可以载置于重量传感器92,且载置于重量传感器92的容器CB中收纳有对象物体组OBG。重量传感器92的测量结果(即对象物体组OBG的重量的测量结果)会输出至控制装置3。
控制装置3可以基于重量传感器92的测量结果(即对象物体组OBG的重量测量结果)来计算对象物体组OBG的高度OH。具体而言,可以假设容器CB中收纳的对象物体组OBG所包括的对象物体OBJ的数量变得越多,对象物体组OBG的重量就变得越重,且对象物体组OBG的高度OH就变得越高。换言之,可以假设容器CB中收纳的对象物体组OBG所包括的对象物体OBJ的数量变得越少,对象物体组OBG的重量就变得越轻,且对象物体组OBG的高度OH就变得越低。也就是说,假设为对象物体组OBG的重量与对象物体组OBG的高度OH之间下述关系成立,即:对象物体组OBG的重量变得越重,对象物体组OBG的高度OH就变得越高。换言之,也就是说,假设为对象物体组OBG的重量与对象物体组OBG的高度OH之间下述关系成立,即:对象物体组OBG的重量变得越轻,对象物体组OBG的高度OH就变得越低。利用该关系,控制装置3可以基于重量传感器92的测量结果(即对象物体组OBG的重量的测量结果)来计算(该情况下,推测)对象物体组OBG的高度OH。例如,控制装置3可以使用表示对象物体组OBG的高度OH与对象物体组OBG的重量之间的关系的表格、以及重量传感器92的测量结果,来计算(该情况下,推测)对象物体组OBG的高度OH。
如此,在第2高度计算方法中,控制装置3使用能够测量与高度OH不同的参数即重量的重量传感器92,来计算对象物体组OBG的高度OH。在该情况下,重量传感器92可以被视为作为能够间接测量对象物体组OBG的高度OH的测量装置而发挥功能。
(3-2-3)使用物体检测传感器93的第3高度计算方法
控制装置3可以使用物体检测传感器93来计算对象物体组OBG的高度OH。例如,在机器人系统SYS具备物体检测传感器93的情况下,控制装置3可以使用机器人系统SYS所具备的物体检测传感器93来计算对象物体组OBG的高度OH。例如,在机器人系统SYS没有具备物体检测传感器93的情况下,控制装置3可以使用机器人系统SYS的外部的物体检测传感器93来计算对象物体组OBG的高度OH。
物体检测传感器93能够检测对象物体OBJ。例如,物体检测传感器93可以是光电传感器等光传感器,其通过向对象物体OBJ发射检测光,并检测来自对象物体OBJ的检测光的反射光,从而能检测对象物体OBJ。但是,物体检测传感器93也可以是与光电传感器不同的光传感器。此外,只要物体检测传感器93能够检测对象物体OBJ,物体检测传感器93也可以是与光传感器不同的现有传感器。
物体检测传感器93可以配置在所期望位置,以便能够基于物体检测传感器93对对象物体OBJ的检测结果来计算对象物体组OBG的高度OH。例如,如图32所示,多个物体检测传感器93可以配置在彼此不同的高度。在图32所示的示例中,三个作为光电传感器的物体检测传感器93(具体为物体检测传感器93#1、物体检测传感器93#2及物体检测传感器93#3)分别配置在容器CB的侧壁SS上彼此不同的第1高度TH1、第2高度TH2及第3高度TH3。此外,第1高度TH1、第2高度TH2及第3高度TH3中的每一个可以是指距上述基准点的高度。另外,第1高度TH1超过第2高度TH2,第2高度TH2超过第3高度TH3。此外,在图32所示的示例中,各物体检测传感器93沿水平方向照射检测光。在该情况下,各物体检测传感器93可以对位于配置有各物体检测传感器93的高度处的对象物体OBJ进行检测。例如,物体检测传感器93#1可以对位于第1高度TH1处的对象物体OBJ进行检测。例如,物体检测传感器93#2可以对位于第2高度TH2处的对象物体OBJ进行检测。例如,物体检测传感器93#3可以对位于第3高度TH3处的对象物体OBJ进行检测。
多个物体检测传感器93的检测结果输出至控制装置3。控制装置3可以基于多个物体检测传感器93的检测结果来计算对象物体组OBG的高度OH。例如,在位于一高度的一物体检测传感器93检测到了对象物体OBJ(即检测光照射到对象物体OBJ,且来自对象物体OBJ的反射光返回至一物体检测传感器93)的情况下,假设对象物体组OBG的高度OH超过一高度。另一方面,在位于一高度的一物体检测传感器93未检测到对象物体OBJ(即检测光不被照射到对象物体OBJ,且来自对象物体OBJ的反射光不返回至一物体检测传感器93)的情况下,假设对象物体组OBG的高度OH低于一高度。因此,控制装置3能够基于多个物体检测传感器93的检测结果来计算(该情况下,推测)对象物体组OBG的高度OH(特别是大致的高度OH)。例如,在物体检测传感器93#1至93#3全部检测到了对象物体OBJ的情况下,控制装置3可以将第1高度TH1以上的高度计算为对象物体组OBG的高度OH。例如,在物体检测传感器93#1未检测到对象物体OBJ而物体检测传感器93#2至93#3检测到了对象物体OBJ的情况下,控制装置3可以计算第2高度TH2以上且第1高度TH1以下的高度作为对象物体组OBG的高度OH。例如,在物体检测传感器93#1至93#2未检测到对象物体OBJ而物体检测传感器93#3检测到了对象物体OBJ的情况下,控制装置3可以计算第3高度TH3以上且第2高度TH2以下的高度作为对象物体组OBG的高度OH。例如,在物体检测传感器93#1至93#3都未检测到对象物体OBJ的情况下,控制装置3可以计算第3高度TH3以下的高度作为对象物体组OBG的高度OH。
基于多个物体检测传感器93的检测结果来计算对象物体组OBG的高度OH,这可以视为与基于未检测到对象物体OBJ的物体检测传感器93的数量来计算对象物体组OBG的高度OH等效。例如,在未检测到对象物体OBJ的物体检测传感器93的数量为零(即物体检测传感器93#1至93#3都检测到了对象物体OBJ)的情况下,控制装置3可以计算第1高度TH1以上的高度作为对象物体组OBG的高度OH。例如,在未检测到对象物体OBJ的物体检测传感器93的数量为1个(即物体检测传感器93#1未检测到对象物体OBJ而物体检测传感器93#2至93#3检测到对象物体OBJ)的情况下,控制装置3可以计算第2高度TH2以上且第1高度TH1以下的高度作为对象物体组OBG的高度OH。例如,在未检测到对象物体OBJ的物体检测传感器93的数量为2个(即物体检测传感器93#1至93#2未检测到对象物体OBJ而物体检测传感器93#3检测到对象物体OBJ)的情况下,控制装置3可以计算第3高度TH3以上且第2高度TH2以下的高度作为对象物体组OBG的高度OH。例如,在未检测到对象物体OBJ的物体检测传感器93的数量为零(即物体检测传感器93#1至93#3都未检测到对象物体OBJ)的情况下,控制装置3可以计算第3高度TH3以下的高度作为对象物体组OBG的高度OH。
如此,在第3高度计算方法中,控制装置3使用物体检测传感器93来计算对象物体组OBG的高度OH。在该情况下,物体检测传感器93可以被视为作为能够直接测量对象物体组OBG的高度OH的测量装置而发挥功能。
(3-2-4)使用标记94的第4高度计算方法
控制装置3可以使用标记94来计算对象物体组OBG的高度OH。具体而言,如表示标记94的图33所示,标记94可以配置在收纳对象物体OBJ的容器CB中。特别是,标记94可以配置在容器CB面向收纳对象物体OBJ的收纳空间SP的表面(典型为内表面)上。作为一个示例,标记94可以配置在容器CB面向收纳空间SP的侧壁SS上。此外,标记94可以从容器CB上拆卸,标记94也可以固定在容器CB上。或者,标记94可以印刷在容器CB上。
标记94是能够通过拍摄系统2(或第1高度计算方法中使用的拍摄系统91,以下在第4高度计算方法的说明中相同)拍摄的标记。但由于标记94配置在面向对象物体OBJ的收纳空间SP的位置,因此在标记94被对象物体OBJ遮挡的情况下,拍摄系统2无法拍摄标记94。
标记94可以配置在所期望位置,以便能够基于拍摄系统2对标记94的拍摄结果(即拍摄标记94的拍摄系统2所生成的图像数据IMG_2D和IMG_3D中的至少一个)来计算对象物体组OBG的高度OH。例如,如图33所示,多个标记94可以配置在彼此不同的高度。在图33所示的示例中,三个标记94(具体为标记94#1、标记94#2及标记94#3)分别配置在容器CB的侧壁SS上彼此不同的第1高度TH1、第2高度TH2及第3高度TH3。此外,第1高度TH1、第2高度TH2及第3高度TH3中的每一个可以是指距上述基准点的高度。另外,第1高度TH1超过第2高度TH2,第2高度TH2超过第3高度TH3。
在该情况下,控制装置3可以基于拍摄系统2对标记94的拍摄结果来计算对象物体组OBG的高度OH。例如,在位于一高度的一标记94未拍入到拍摄系统2生成的图像中的情况下(即基于作为拍摄系统2的拍摄结果的图像数据无法检测到标记94的情况下),假设为该一标记94被对象物体OBJ遮挡。在该情况下,假设为对象物体OBJ位于配置一标记94的一高度或高于该一高度的位置。其结果是,假设为对象物体组OBG的高度OH超过一高度。另一方面,在位于一高度的一标记94拍入到由拍摄系统2生成的图像中的情况下(即基于作为拍摄系统2的拍摄结果的图像数据能检测到标记94的情况下),假设为该一标记94没有被对象物体OBJ遮挡。在该情况下,假设为对象物体OBJ未位于配置一标记94的一高度或高于该一高度的位置。其结果是,假设为对象物体组OBG的高度OH低于一高度。因此,控制装置3能够基于拍摄系统2对标记94的拍摄结果来计算(该情况下,推测)对象物体组OBG的高度OH(特别是大致的高度OH)。例如,在标记94#1至94#3全部未拍入到由拍摄系统2生成的图像中的情况下,控制装置3可以计算第1高度TH1以上的高度作为对象物体组OBG的高度OH。例如,在标记94#1拍入到由拍摄系统2生成的图像中而标记94#2至94#3未拍入到由拍摄系统2生成的图像中的情况下,控制装置3可以计算第2高度TH2以上且第1高度TH1以下的高度作为对象物体组OBG的高度OH。例如,在标记94#1至94#2拍入到由拍摄系统2生成的图像中而标记94#3未拍入到由拍摄系统2生成的图像中的情况下,控制装置3可以计算第3高度TH3以上且第2高度TH2以下的高度作为对象物体组OBG的高度OH。例如,在标记94#1至94#3全部拍入到由拍摄系统2生成的图像中的情况下,控制装置3可以计算第3高度TH3以下的高度作为对象物体组OBG的高度OH。
控制装置3可以通过沿用图4的步骤S1中获取到的图像数据IMG_2D和IMG_3D中的至少一个作为拍摄系统2对标记94的拍摄结果,来计算对象物体组OBG的高度OH。在该情况下,拍摄系统2可以不用为了计算对象物体组OBG_trigger的高度H而重新拍摄标记94。但是,拍摄系统2可以不为了计算对象物体组OBG的高度OH而重新拍摄标记94。控制装置3也可以不沿用图4的步骤S1中获取到的图像数据IMG_2D和IMG_3D中的至少一个作为拍摄系统2对标记94的拍摄结果,而是使用为了计算对象物体组OBG的高度OH而由拍摄系统2重新拍摄标记94所生成的图像数据IMG_2D和IMG_3D中的至少一个,来计算对象物体组OBG的高度OH。
基于拍摄系统2对标记94的拍摄结果来计算对象物体组OBG的高度OH,这可以视为与基于拍摄系统2对标记94的拍摄结果所检测到的标记94的数量来计算对象物体组OBG的高度OH等效。例如,在检测到的标记94的数量为零(即标记94#1至94#3全部未拍入到由拍摄系统2生成的图像中)的情况下,控制装置3可计算第1高度TH1以上的高度作为对象物体组OBG的高度OH。例如,在检测到的标记94的数量为一个(即标记94#1拍入到由拍摄系统2生成的图像中而标记94#2至94#3未拍入到由拍摄系统2生成的图像中)的情况下,控制装置3可以计算第2高度TH2以上且第1高度TH1以下的高度作为对象物体组OBG的高度OH。例如,在检测到的标记94的数量为两个(即标记94#1至94#2拍入到由拍摄系统2生成的图像中而标记94#3未拍入到由拍摄系统2生成的图像中)的情况下,控制装置3可以计算第3高度TH3以上且第2高度TH2以下的高度作为对象物体组OBG的高度OH。例如,在检测到的标记94的数量为三个(即标记94#1至94#3全部拍入到由拍摄系统2生成的图像中)的情况下,控制装置3可以计算第3高度TH3以下的高度作为对象物体组OBG的高度OH。
多个标记94的形状可彼此不同。在该情况下,控制装置3可以基于拍入到由拍摄系统2生成的图像中的标记94的形状,来计算对象物体组OBG的高度OH。例如,在图33所示的示例中,对标记94#1具有第1形状,标记94#2具有与第1形状不同的第2形状,标记94#3具有与第1及第2形状不同的第3形状的示例进行说明。该情况下,在拍入到由拍摄系统2生成的图像中的标记94的形状仅是第1形状(即仅标记94#1拍入到由拍摄系统2生成的图像中)的情况下,控制装置3可以计算第2高度TH2以上且第1高度TH1以下的高度作为对象物体组OBG的高度OH。例如,在拍入到由拍摄系统2生成的图像中的标记94的形状仅是第1形状和第2形状(即仅标记94#1至标记94#2拍入到由拍摄系统2生成的图像中)的情况下,控制装置3可以计算第3高度TH3以上且第2高度TH2以下的高度作为对象物体组OBG的高度OH。例如,在拍入到由拍摄系统2生成的图像中的标记94的形状是第1形状至第3形状(即标记94#1至标记94#3全部拍入到由拍摄系统2生成的图像中)的情况下,控制装置3可以计算第3高度TH3以下的高度作为对象物体组OBG的高度OH。
如此,在第4高度计算方法中,控制装置3使用标记94和拍摄系统2来计算对象物体组OBG的高度OH。在该情况下,可以视为拍摄系统2作为能够直接测量对象物体组OBG的高度OH的测量装置而发挥作用,并且标记94作为能够直接测量对象物体组OBG的高度OH的测量构件而发挥作用。
(3-2-5)使用末端执行器4所保持(拾取)的对象物体OBJ的数量的第5高度计算方
控制装置3可以使用与末端执行器4所保持(拾取)的对象物体OBJ的数量相关的信息,来计算对象物体组OBG的高度OH。另外,由于末端执行器4在控制装置3的控制下对对象物体OBJ进行保持(拾取),因此与末端执行器4所保持(拾取)的对象物体OBJ的数量相关的信息对于控制装置3而言是已知的信息。此外,末端执行器4所保持(拾取)的对象物体OBJ的数量与末端执行器4从容器CB搬出(即取出)的对象物体OBJ的数量等效。
具体而言,假设末端执行器4所拾取的对象物体OBJ的数量(即从容器CB取出的对象物体OBJ的数量)变得越多,容器CB中剩余的对象物体的数量变得就越少,对象物体组OBG的高度OH变得就越低。换言之,假设末端执行器4所拾取的对象物体OBJ的数量变得越少,容器CB中剩余的对象物体的数量就变得越多,对象物体组OBG的高度OH就变得越高。也就是说,假设末端执行器4拾取的对象物体OBJ的数量与对象物体组OBG的高度OH之间下述关系成立,即:末端执行器4拾取的对象物体OBJ的数量越少,对象物体组OBG的高度OH就变得越高。换言之,假设末端执行器4拾取的对象物体OBJ的数量与对象物体组OBG的高度OH之间下述关系成立,即:末端执行器4拾取的对象物体OBJ的数量变得越多,对象物体组OBG的高度OH就变得越低。利用该关系,控制装置3可以基于与末端执行器4拾取的对象物体OBJ的数量相关的信息,来计算(该情况下,推测)对象物体组OBG的高度OH。例如,控制装置3可以使用表示对象物体组OBG的高度OH与末端执行器4拾取的对象物体OBJ的数量之间的关系的表格、以及与末端执行器4拾取的对象物体OBJ的数量相关的信息,来计算(该情况下,推测)对象物体组OBG的高度OH。
(3-3)第3变形例
在上述说明中,控制装置3基于容器CB中收纳的多个对象物体OBJ的至少一部分的高度OH(即对象物体组OBG的高度OH),来调整拍摄系统2的拍摄高度CH。具体而言,控制装置3基于容器CB中收纳的多个对象物体OBJ的至少一部分的高度OH(即对象物体组OBG的高度OH)来决定目标拍摄高度CH_target,从而调整拍摄系统2的拍摄高度CH。此处,容器CB中收纳的对象物体组OBG的高度OH可以说是表示容器CB中收纳的对象物体组OBG的分量(即对象物体组OBG所包括的对象物体OBJ的分量)的参数。这是因为,可以说对象物体组OBG的高度OH变得越高,对象物体组OBG的分量就越多。换言之,可以说对象物体组OBG的高度OH变得越低,对象物体组OBG的分量就越少。
由此,若考虑对象物体组OBG的高度OH可视为与对象物体组OBG的分量等效,则在与高度OH不同的任意参数表示对象物体组OBG的分量的情况下,除了对象物体组OBG的高度OH之外或作为其替代,控制装置3可以基于对象物体组OBG的分量来决定目标拍摄高度CH_target。在该情况下,容器CB中收纳的对象物体组OBG的分量可以是指容器CB中收纳的多个对象物体OBJ的全部分量(即包括容器CB中收纳的多个对象物体OBJ的全部在内的对象物体组OBG的分量)。或者,容器CB中收纳的对象物体组OBG的分量可以是指容器CB中收纳的多个对象物体OBJ中的一部分分量(即包括容器CB中收纳的多个对象物体OBJ的一部分在内的对象物体组OBG的分量)。例如,成为分量的计算对象的对象物体组OBG可以是包括为了调整拍摄系统2的拍摄高度CH而由拍摄系统2拍摄的至少一个对象物体OBJ在内的对象物体组OBG。例如,成为分量的计算对象的对象物体组OBG可以是包括为了调整拍摄系统2的拍摄高度CH而对对象物体OBJ进行拍摄的拍摄系统2的拍摄视野内所包括的至少一个对象物体OBJ在内的对象物体组OBG。换言之,成为分量的计算对象的对象物体组OBG可以不包括容器CB中收纳的多个对象物体OBJ中、拍摄系统2为了进行位置姿态运算而未拍摄的至少一个对象物体OBJ。成为分量的计算对象的对象物体组OBG可以不包括容器CB中收纳的多个对象物体OBJ中、为了调整拍摄系统2的拍摄高度CH而对对象物体OBJ进行拍摄的拍摄系统2的拍摄视野中未包括的至少一个对象物体OBJ。
作为对象物体组OBG的分量,可以使用对象物体组OBG的整体分量。例如,作为对象物体组OBG的分量,可以使用对象物体组OBG所包括的多个对象物体OBJ的整体分量。或者,作为对象物体组OBG的分量,可以使用对象物体组OBG的一部分分量。例如,可以使用按照所期望的选择基准从对象物体组OBG所包括的多个对象物体OBJ中选择出的至少一个对象物体OBJ的分量,作为对象物体组OBG的分量。
作为表示对象物体组OBG的分量的参数的一个示例,举例有对象物体组OBG中所包括的对象物体OBJ的数量。作为表示对象物体组OBG的分量的参数的一个示例,举例有对象物体组OBG的重量(即对象物体组OBG所包括的对象物体OBJ的重量)。作为表示对象物体组OBG的分量的参数的一个示例,举例有对象物体组OBG的体积(即对象物体组OBG所包括的对象物体OBJ的体积)。
以下,将具体说明表示对象物体组OBG的分量的参数的一个示例。
(3-3-1)对象物体组OBG所包括的对象物体OBJ的数量
控制装置3可以基于对象物体组OBG所包括的对象物体OBJ的数量,来决定目标拍摄高度CH_target。在该情况下,控制装置3可以决定目标拍摄高度CH_target,以使得对象物体组OBG所包括的对象物体OBJ的数量变得越少,目标拍摄高度CH_target就变得越低。控制装置3可以决定目标拍摄高度CH_target,以使得对象物体组OBG所包括的对象物体OBJ的数量变得越多,目标拍摄高度CH_target就变得越高。控制装置3可以使用表示对象物体组OBG所包括的对象物体OBJ的数量与目标拍摄高度CH_target之间的关系的表格,基于对象物体组OBG所包括的对象物体OBJ的数量,来决定目标拍摄高度CH_target。在该情况下,能够获得与基于上述对象物体组OBG的高度OH来决定目标拍摄高度CH_target时所能得到的效果相同的效果。这是因为,假设为对象物体组OBG所包括的对象物体OBJ的数量与对象物体组OBG的高度OH之间下述关系成立,即:对象物体组OBG所包括的对象物体OBJ的数量变得越多,对象物体组OBG的高度OH就变得越高(即对象物体组OBG所包括的对象物体OBJ的数量变得越少,对象物体组OBG的高度OH就变得越低)。
控制装置3可以计算对象物体组OBG所包括的对象物体OBJ的数量,基于所计算出的数量来决定目标拍摄高度CH_target。
作为第1示例,控制装置3可以使用由拍摄系统2生成的图像数据IMG_2D和IMG_3D中的至少一方(或第2变形例的第1高度计算方法中使用的由拍摄系统91生成的图像数据,以下在第3变形例中相同),来计算对象物体组OBG所包括的对象物体OBJ的数量。例如,控制装置3可以通过分析由拍摄系统91生成的图像数据所示的图像来计算对象物体组OBG所包括的对象物体OBJ的数量。或者,除了分析图像数据IMG_2D和IMG_3D中的至少一个所示的图像之外或者作为其替代,控制装置3可以使用根据图像数据IMG_3D生成的三维位置数据WSD来计算对象物体组OBG所包括的对象物体OBJ的数量。在该情况下,拍摄系统2可以被视为作为能够间接测量对象物体组OBG所包括的对象物体OBJ的数量(分量)的测量装置而发挥功能。
作为第2示例,控制装置3可以基于第2变形例的第2高度计算方法中使用的重量传感器92的测量结果(即对象物体组OBG的重量测量结果),来计算对象物体组OBG所包含的对象物体OBJ的数量。具体而言,假设为对象物体组OBG所包括的对象物体OBJ的数量变得越多,对象物体组OBG的重量就变得越重。换言之,假设为对象物体组OBG所包括的对象物体OBJ的数量变得越少,对象物体组OBG的重量就变得越轻。也就是说,假设为对象物体组OBG所包括的对象物体OBJ的数量与对象物体组OBG的重量之间下述关系成立:对象物体组OBG的重量变得越重,对象物体组OBG所包括的对象物体OBJ的数量变得越多。换言之,假设为对象物体组OBG所包括的对象物体OBJ的数量与对象物体组OBG的重量之间下述关系成立:对象物体组OBG的重量变得越轻,对象物体组OBG所包括的对象物体OBJ的数量变得越少。利用该关系,控制装置3可以基于重量传感器92的测量结果(即对象物体组OBG的重量的测量结果)来计算(该情况下,推测)对象物体组OBG所包括的对象物体OBJ的数量。例如,控制装置3可以使用表示对象物体组OBG所包括的对象物体OBJ的数量与对象物体组OBG的重量之间的关系的表格、以及重量传感器92的测量结果,来计算(该情况下,推测)对象物体组OBG所包括的对象物体OBJ的数量。在该情况下,重量传感器92可以视为作为能够间接测量对象物体组OBG所包括的对象物体OBJ的数量(分量)的测量装置而发挥功能。
作为第3示例,控制装置3可以基于第2变形例的第5高度计算方法中使用的与末端执行器4保持(拾取)的对象物体OBJ的数量相关的信息,来计算对象物体组OBG所包括的对象物体OBJ的数量。例如,控制装置3可以将通过从开始机器人控制处理前容器CB中收纳的对象物体OBJ的数量减去末端执行器4保持(拾取)的对象物体OBJ的数量而得到的数量,作为对象物体组OBG所包括的对象物体OBJ的数量(即容器CB中剩余的对象物体OBJ的数量)来计算。
此外,控制装置3可以基于第2变形例的第3高度计算方法中使用的物体检测传感器93的检测结果,来计算对象物体组OBG所包括的对象物体OBJ的数量。控制装置3可以基于第2变形例的第4高度计算方法中使用的标记94的拍摄结果,来计算对象物体组OBG所包括的对象物体OBJ的数量。这是因为,假设为对象物体组OBG所包括的对象物体OBJ的数量与对象物体组OBG的高度OH之间下述关系成立,即:对象物体组OBG的高度OH变得越高,对象物体组OBG所包括的对象物体OBJ的数量就变得越多(即对象物体组OBG的高度OH变得越低,对象物体组OBG所包括的对象物体OBJ的数量就变得越少的关系)。
此外,对象物体组OBG所包括的对象物体OBJ的数量与末端执行器4拾取的对象物体OBJ的数量之间下述关系成立,即:对象物体组OBG所包括的对象物体OBJ的数量变得越多,末端执行器4拾取的对象物体OBJ的数量就变得越少(即对象物体组OBG所包括的对象物体OBJ的数量变得越少,末端执行器4拾取的对象物体OBJ的数量就变得越多)。因此,除了对象物体组OBG所包括的对象物体OBJ的数量(即容器CB中剩余的对象物体OBJ的数量)之外或作为其替代,控制装置3可以基于末端执行器4拾取的对象物体OBJ的数量(即从容器CB取出的对象物体OBJ的数量),来调整拍摄系统2的拍摄高度CH。
(3-3-2)对象物体组OBG的重量
控制装置3可以基于对象物体组OBG的重量,来决定目标拍摄高度CH_target。在该情况下,控制装置3可以决定目标拍摄高度CH_target,以使得对象物体组OBG的重量变得越轻,目标拍摄高度CH_target变得越低。控制装置3可以决定目标拍摄高度CH_target,以使得对象物体组OBG的重量变得越重,目标拍摄高度CH_target变得越高。控制装置3可以使用表示对象物体组OBG的重量与目标拍摄高度CH_target之间的关系的表格,基于对象物体组OBG的重量,来决定目标拍摄高度CH_target。在该情况下,能够获得与基于上述对象物体组OBG的高度OH来决定目标拍摄高度CH_target时所能得到的效果相同的效果。这是因为,假设为对象物体组OBG的重量与对象物体组OBG的高度OH之间下述关系成立:对象物体组OBG的重量变得越重,对象物体组OBG的高度OH就变得越高(即对象物体组OBG的重量变得越轻,对象物体组OBG的高度OH就变得越低)。
控制装置3可以计算对象物体组OBG的重量,基于所计算出的重量来决定目标拍摄高度CH_target。
作为第1示例,控制装置3可以使用由拍摄系统2生成的图像数据IMG_2D和IMG_3D中的至少一方,来计算对象物体组OBG的重量。例如,控制装置3可以通过分析由拍摄系统2生成的图像数据所示的图像来计算对象物体组OBG的重量。或者,除了分析图像数据IMG_2D和IMG_3D中的至少一个所示的图像之外或者作为其替代,控制装置3可以使用根据图像数据IMG_3D生成的三维位置数据WSD来计算对象物体组OBG的重量。在该情况下,拍摄系统2可以视为作为能够间接测量对象物体组OBG的重量(分量)的测量装置而发挥功能。
作为第2示例,控制装置3可以基于第2变形例的第2高度计算方法中使用的重量传感器92的测量结果(即对象物体组OBG的重量测量结果),来计算对象物体组OBG的重量。在该情况下,重量传感器92可以视为作为能够直接测量对象物体组OBG的重量(分量)的测量装置而发挥功能。
作为第3示例,控制装置3可以基于第2变形例的第5高度计算方法中使用的与末端执行器4保持(拾取)的对象物体OBJ的数量相关的信息,来计算对象物体组OBG的重量。具体而言,假设为末端执行器4拾取的对象物体OBJ的数量(即从容器CB取出的对象物体OBJ的数量)变得越少,容器CB中剩余的对象物体组OBG的重量就变得越重。换言之,假设为末端执行器4拾取的对象物体OBJ的数量(即从容器CB取出的对象物体OBJ的数量)变得越多,容器CB中剩余的对象物体组OBG的重量就变得越轻。也就是说,假设为末端执行器4拾取的对象物体OBJ的数量与对象物体组OBG的重量之间下述关系成立,即:末端执行器4拾取的对象物体OBJ的数量变得越少,对象物体组OBG的重量就变得越重。换言之,假设为末端执行器4拾取的对象物体OBJ的数量与对象物体组OBG的重量之间下述关系成立,即:末端执行器4拾取的对象物体OBJ的数量变得越多,对象物体组OBG的重量就变得越轻。利用该关系,控制装置3可以基于与末端执行器4拾取的对象物体OBJ的数量相关的信息,来计算(该情况下,推测)对象物体组OBG的重量。例如,控制装置3可以使用表示末端执行器4拾取的对象物体OBJ的数量与对象物体组OBG的重量之间的关系的表格、以及与末端执行器4拾取的对象物体OBJ的数量相关的信息,来计算(该情况下,推测)对象物体组OBG的重量。
此外,控制装置3可以基于第2变形例的第3高度计算方法中使用的物体检测传感器93的检测结果,来计算对象物体组OBG的重量。控制装置3可以基于第2变形例的第4高度计算方法中使用的标记94的拍摄结果,来计算对象物体组OBG的重量。这是因为,假设为对象物体组OBG的重量与对象物体组OBG的高度OH之间下述关系成立,即:对象物体组OBG的高度OH变得越高,对象物体组OBG的重量就变得越重(即对象物体组OBG的高度OH变得越低,对象物体组OBG的重量就变得越轻的关系)。
(3-3-3)对象物体组OBG的体积
控制装置3可以基于对象物体组OBG的体积,来决定目标拍摄高度CH_target。在该情况下,控制装置3可以决定目标拍摄高度CH_target,以使得对象物体组OBG的体积变得越小,目标拍摄高度CH_target就变得越低。控制装置3可以决定目标拍摄高度CH_target,以使得对象物体组OBG的体积变得越大,目标拍摄高度CH_target就变得越高。控制装置3可以使用表示对象物体组OBG的体积与目标拍摄高度CH_target之间的关系的表格,基于对象物体组OBG的体积,来决定目标拍摄高度CH_target。在该情况下,能够获得与基于上述对象物体组OBG的高度OH来决定目标拍摄高度CH_target时所能得到的效果相同的效果。这是因为,假设为对象物体组OBG的体积与对象物体组OBG的高度OH之间下述关系成立:对象物体组OBG的体积变得越大,对象物体组OBG的高度OH就变得越高(即对象物体组OBG的体积变得越小,对象物体组OBG的高度OH就变得越低)。
控制装置3可以计算对象物体组OBG的体积,基于所计算出的体积来决定目标拍摄高度CH_target。
作为第1示例,控制装置3可以使用由拍摄系统2生成的图像数据IMG_2D和IMG_3D中的至少一方,来计算对象物体组OBG的体积。例如,控制装置3可以通过分析由拍摄系统2生成的图像数据所示的图像来计算对象物体组OBG的体积。或者,除了分析图像数据IMG_2D和IMG_3D中的至少一个所示的图像之外或者作为其替代,控制装置3可以使用根据图像数据IMG_3D生成的三维位置数据WSD来计算对象物体组OBG的体积。在该情况下,拍摄系统2可以视为作为能够间接测量对象物体组OBG的体积(分量)的测量装置而发挥功能。
作为第2示例,控制装置3可以基于第2变形例的第2高度计算方法中使用的重量传感器92的测量结果(即对象物体组OBG的重量测量结果),来计算对象物体组OBG的体积。具体而言,假设为对象物体组OBG的体积变得越大,对象物体组OBG的重量就变得越重。换言之,假设为对象物体组OBG的体积变得越小,对象物体组OBG的重量就变得越轻。也就是说,假设为对象物体组OBG的体积与对象物体组OBG的重量之间下述关系成立,即:对象物体组OBG的重量变得越重,对象物体组OBG的体积就变得越大。换言之,假设为对象物体组OBG的体积与对象物体组OBG的重量之间下述关系成立,即:对象物体组OBG的重量变得越轻,对象物体组OBG的体积就变得越小。利用该关系,控制装置3可以基于重量传感器92的测量结果(即对象物体组OBG的重量的测量结果)来计算(该情况下推测)对象物体组OBG的体积。例如,控制装置3可以使用表示对象物体组OBG的体积与对象物体组OBG的重量之间的关系的表格、以及重量传感器92的测量结果,来计算(该情况下,推测)对象物体组OBG的体积。在该情况下,重量传感器92可以视为作为能够间接测量对象物体组OBG的体积(分量)的测量装置而发挥功能。
作为第3示例,控制装置3可以基于第2变形例的第5高度计算方法中使用的与末端执行器4保持(拾取)的对象物体OBJ的数量相关的信息,来计算对象物体组OBG的体积。具体而言,假设为末端执行器4拾取的对象物体OBJ的数量(即从容器CB取出的对象物体OBJ的数量)变得越少,容器CB中剩余的对象物体组OBG的体积就变得越大。换言之,假设为末端执行器4拾取的对象物体OBJ的数量(即从容器CB取出的对象物体OBJ的数量)变得越多,容器CB中剩余的对象物体组OBG的体积就变得越小。也就是说,假设为末端执行器4拾取的对象物体OBJ的数量与对象物体组OBG的体积之间下述关系成立,即:末端执行器4拾取的对象物体OBJ的数量变得越少,对象物体组OBG的体积就变得越大。换言之,假设为末端执行器4拾取的对象物体OBJ的数量与对象物体组OBG的体积之间下述关系成立,即:末端执行器4拾取的对象物体OBJ的数量变得越多,对象物体组OBG的体积就变得越小。利用该关系,控制装置3可以基于与末端执行器4拾取的对象物体OBJ的数量相关的信息,来计算(该情况下,推测)对象物体组OBG的体积。例如,控制装置3可以使用表示末端执行器4拾取的对象物体OBJ的数量与对象物体组OBG的体积之间的关系的表格、以及与末端执行器4拾取的对象物体OBJ的数量相关的信息,来计算(该情况下,推测)对象物体组OBG的体积。
此外,控制装置3可以基于第2变形例的第3高度计算方法中使用的物体检测传感器93的检测结果,来计算对象物体组OBG的体积。控制装置3可以基于第2变形例的第4高度计算方法中使用的标记94的拍摄结果,来计算对象物体组OBG的体积。这是因为,假设为对象物体组OBG的体积与对象物体组OBG的高度OH之间下述关系成立,即:对象物体组OBG的高度OH变得越高,对象物体组OBG的体积就变得越大(即对象物体组OBG的高度OH变得越低,对象物体组OBG的体积就变得越小的关系)。
(3-4)第4变形例
在上述说明中,控制装置3在图4或图24的步骤S7中,调整拍摄系统2的拍摄高度CH。也就是说,控制装置3在图4或图24的步骤S7中,调整拍摄系统2在Z轴方向(例如沿全局坐标系的Z轴的方向或沿与全局坐标系不同的坐标系的Z轴的方向,以下在第4变形例中相同)上的位置。
另一方面,在第4变形例中,控制装置3在图4或图24的步骤S7中,除了调整拍摄系统2在Z轴方向上的位置之外或作为其替代,还可以调整拍摄系统2在X轴方向(例如沿全局坐标系的X轴的方向或沿与全局坐标系不同的坐标系的X轴的方向,以下在第4变形例中相同)及Y轴方向(例如沿全局坐标系的Y轴的方向或沿与全局坐标系不同的坐标系的Y轴的方向,以下在第4变形例中相同)中的至少一个方向上的位置。具体而言,控制装置3可以调整拍摄系统2拍摄对象物体OBJ的水平位置即拍摄水平位置(即沿全局坐标系的XY平面或沿与全局坐标系不同的坐标系的XY平面的位置,以下在第4变形例中相同)。
或者,控制装置3在图4或图24的步骤S7中,除了调整拍摄系统2的拍摄高度CH及拍摄水平位置中的至少一个(即拍摄系统2的位置)之外或作为其替代,还可以调整拍摄系统2拍摄对象物体OBJ的姿态即拍摄姿态。拍摄系统2的拍摄姿态可以是指拍摄系统2围绕沿X轴方向的旋转轴、沿Y轴方向的旋转轴及沿Z轴方向的旋转轴中的至少一个的姿态。
以下,将依次说明调整拍摄系统2的拍摄水平位置的处理、以及调整拍摄系统2的拍摄姿态的处理。
(3-4-1)调整拍摄系统2的拍摄水平位置的处理的一个示例
控制装置3可以基于图像数据IMG_2D和IMG_3D中的至少一方来调整拍摄系统2的拍摄水平位置。例如,控制装置3可以基于图4或图24的步骤S1中获取到的图像数据IMG_2D及IMG_3D中的至少一方,来调整拍摄系统2的拍摄水平位置。例如,控制装置3可以基于图24的步骤S8a中获取到的图像数据IMG_2D及IMG_3D中的至少一方,来调整拍摄系统2的拍摄水平位置。
为了调整拍摄系统2的拍摄水平位置,控制装置3可以基于图像数据IMG_2D及IMG_3D中的至少一方,来决定拍摄系统2的拍摄水平位置的目标值。此外,在以下说明中,将拍摄系统2的拍摄水平位置的目标值称为“目标拍摄水平位置”。
控制装置3可以基于图像数据IMG_2D和IMG_3D中的至少一方,计算上述对象物体组OBG的高度OH,并基于计算出的对象物体组OBG的高度OH,决定目标拍摄水平位置。例如,控制装置3可以首先如上所述,基于计算出的对象物体组OBG的高度OH,来决定上述目标拍摄高度CH_target。之后,控制装置3可以在实际使拍摄系统2移动至目标拍摄高度CH_target之前,假设为使拍摄系统2移动到了目标拍摄高度CH_target的情况下,判定末端执行器4是否与容器CB中收纳的至少一个对象物体OBJ发生干扰。此外,末端执行器4与对象物体OBJ发生干扰的状态可以包括末端执行器4与对象物体OBJ接触的状态。末端执行器4与对象物体OBJ发生干扰的状态也可以包括末端执行器4未与对象物体OBJ接触、但末端执行器4与对象物体OBJ之间的距离变得比规定的距离阈值要短的状态。
在判定为末端执行器4与至少一个对象物体OBJ发生干扰的情况下,假设为若实际使拍摄系统2移动至目标拍摄高度CH_target,则末端执行器4可能会与至少一个对象物体OBJ发生干扰。其结果是,末端执行器4及对象物体OBJ中的至少一方可能会受损。因此,在该情况下,控制装置3可以调整拍摄系统2的拍摄水平位置,以使得末端执行器4不会与对象物体OBJ发生干扰。例如,如图34(a)所示,在判定为在拍摄系统2的拍摄水平位置为第1水平位置XY1的状况下使拍摄系统2移动至目标拍摄高度CH_target时末端执行器4与至少一个对象物体OBJ发生干扰的情况下,控制装置3可以如图34(b)所示,将满足“即使使拍摄系统2移动至目标拍摄高度CH_target,末端执行器4也不会与对象物体OBJ发生干扰”这一条件的第2水平位置XY2决定为目标拍摄水平位置。之后,控制装置3可以生成用于控制机器人1以使拍摄系统2移动至所决定的目标拍摄水平位置的机器人控制信号。其结果是,拍摄系统2移动至所决定的目标拍摄水平位置。之后,控制装置3可以实际使拍摄系统2移动至目标拍摄高度CH_target。也就是说,控制装置3可以生成用于控制机器人1以使得拍摄系统2移动至所决定的目标拍摄高度CH_target的机器人控制信号。其结果是,即使拍摄系统2移动至目标拍摄高度CH_target,末端执行器4也不会与对象物体OBJ发生干扰。之后,控制装置3可以获取拍摄系统2在目标拍摄水平位置且目标拍摄高度CH_target处拍摄对象物体OBJ所生成的图像数据IMG_2D及IMG_3D中的至少一个(图4或图24的步骤S1),并基于获取到的图像数据IMG_2D和IMG_3D中的至少一个,生成用于控制机器人1以使末端执行器4对对象物体OBJ进行规定处理的机器人控制信号(图4或图24的步骤S2至步骤S4)。
另一方面,在判定为末端执行器4不会与至少一个对象物体OBJ发生干扰的情况下,假设为即使实际使拍摄系统2移动至目标拍摄高度CH_target,末端执行器4也不会与至少一个对象物体OBJ发生干扰。在该情况下,控制装置3可以不调整拍摄系统2的拍摄水平位置。控制装置3可以在不调整拍摄系统2的拍摄水平位置的情况下,使拍摄系统2移动至目标拍摄高度CH_target。
此外,控制装置3在假设为使拍摄系统2移动至目标拍摄高度CH_target的情况下,除了判定末端执行器4是否与对象物体OBJ发生干扰以外或作为其替代,还可以判定末端执行器4是否与不同于对象物体OBJ的其他物体发生干扰。作为不同于对象物体OBJ的其他物体的一个示例,举例有容器CB。在该情况下,在判定为末端执行器4与不同于对象物体OBJ的其他物体发生干扰的情况下,与判定为末端执行器4与对象物体OBJ发生干扰的情况同样地,控制装置3可以调整拍摄系统2的拍摄水平位置,以使得末端执行器4不会与不同于对象物体OBJ的其他物体发生干扰。
另外,在第4变形例中,如在第2变形例中说明的那样,控制装置3可以使用与使用由拍摄系统2生成的图像数据IMG_2D和IMG_3D中的至少一方的高度计算方法不同的高度计算方法,来计算对象物体组OBG的高度OH。在第4变形例中,如第3变形例所说明的那样,除了对象物体组OBG的高度OH之外或作为其替代,控制装置3可以基于对象物体组OBG的分量来调整拍摄系统2的拍摄水平位置。具体而言,例如,除了对象物体组OBG的高度OH之外或作为其替代,控制装置3可以基于对象物体组OBG的分量,计算目标拍摄高度CH_target,并基于目标拍摄高度CH_target,判定末端执行器4是否与至少一个对象物体OBJ发生干扰。
(3-4-2)调整拍摄系统2的拍摄姿态的处理的一个示例
控制装置3可以基于图像数据IMG_2D和IMG_3D中的至少一方来调整拍摄系统2的拍摄姿态。例如,控制装置3可以基于图4或图24的步骤S1中获取到的图像数据IMG_2D及IMG_3D中的至少一方,来调整拍摄系统2的拍摄姿态。例如,控制装置3可以基于图24的步骤S8a中获取到的图像数据IMG_2D及IMG_3D中的至少一方,来调整拍摄系统2的拍摄姿态。
为了调整拍摄系统2的拍摄姿态,控制装置3可以基于图像数据IMG_2D和IMG_3D中的至少一方,来决定拍摄系统2的拍摄姿态的目标值。此外,在以下说明中,将拍摄系统2的拍摄姿态的目标值称为“目标拍摄姿态”。
例如,如图35(a)所示,控制装置3可以基于图像数据IMG_2D和IMG_3D中的至少一方,来确定对象物体组OBG的虚拟上表面VUS。对象物体组OBG的虚拟上表面VUS可以是指在将对象物体组OBG视为一个物体的状况下,对象物体组OBG中朝向拍摄系统2所在方向(例如上方)的一个表面。为了确定虚拟上表面VUS,控制装置3可以如图35(a)所示,基于图像数据IMG_2D和IMG_3D中的至少一方,计算XY平面内的多个位置各自的对象物体组OBG的高度OH'。此外,计算高度OH'的处理可以与计算上述高度OH(特别是对象物体组OBG中XY平面内的各位置处的某个部位的高度OH)的处理相同。作为一个示例,控制装置3可以基于根据图像数据IMG_3D生成的三维位置数据WSD(点云数据),计算XY平面内的各位置处位于最高(或第N高)位置的点的高度,以作为XY平面内的各位置处的高度OH'。之后,控制装置3可以将连接XY平面内的多个位置处的对象物体组OBG的多个高度OH'所得到的虚拟表面确定为对象物体组OBG的虚拟上表面VUS。此外,控制装置3可以通过基于XY平面内的各位置处位于最高(或第N高)位置的点的高度,利用最小二乘法等进行拟合,来确定虚拟上表面VUS。
之后,如图35(b)所示,控制装置3可以调整拍摄系统2的姿态,使拍摄系统2正对对象物体组OBG的虚拟上表面VUS。具体而言,控制装置3可以决定拍摄系统2的姿态目标值(以下称为目标姿态),以使得拍摄系统2正对对象物体组OBG的虚拟上表面VUS。此外,拍摄系统2正对对象物体组OBG的虚拟上表面VUS的状态可以包括拍摄系统2的光轴相对于对象物体组OBG的虚拟上表面VUS以规定角度(例如70度以上的任意角度、75度以上的任意角度、80度以上的任意角度或85度以上的任意角度)以上进行交叉的状态。拍摄系统2正对对象物体组OBG的虚拟上表面VUS的状态可以包括拍摄系统2的光轴与对象物体组OBG的虚拟上表面VUS正交的状态。也就是说,拍摄系统2正对对象物体组OBG的虚拟上表面VUS的状态可以包括拍摄系统2的光轴与对象物体组OBG的虚拟上表面VUS以90度进行交叉的状态。之后,控制装置3可以生成用于控制机器人1以使得拍摄系统2的姿态成为所决定的目标姿态的机器人控制信号。也就是说,控制装置3可以生成用于控制机器人1以使得拍摄系统2移动且拍摄系统2的姿态成为目标姿态的机器人控制信号。其结果是,拍摄系统2进行移动以使得拍摄系统2的姿态成为目标姿态。之后,控制装置3可以实际使拍摄系统2移动至目标拍摄高度CH_target。也就是说,控制装置3可以生成用于控制机器人1以使得拍摄系统2移动至所决定的目标拍摄高度CH_target的机器人控制信号。其结果是,拍摄系统2在目标拍摄高度CH_target处,能够以拍摄系统2正对对象物体组OBG的虚拟上表面VUS(即正对对象物体组OBG)的状态,拍摄对象物体组OBG。
在正对对象物体组OBG的虚拟上表面VUS的拍摄系统2拍摄对象物体组OBG的情况下,与不正对对象物体组OBG的虚拟上表面VUS的拍摄系统2拍摄对象物体组OBG的情况相比,拍摄允许范围CAR中包括的对象物体OBJ的数量变多的可能性变高。其结果是,匹配相似度超过匹配判定阈值的对象物体OBJ的数量变多的可能性变高。因此,与匹配相似度超过匹配判定阈值的对象物体OBJ的数量较少的情况相比,控制装置3选择匹配相似度更高的对象物体OBJ作为处理执行物体的可能性变高。如上所述,如果考虑对象物体OBJ的匹配相似度变得越高,对象物体OBJ的位置姿态数据POI的精度(即位置和姿态中的至少一方的计算精度)就变得越高,则控制装置3能够基于高精度的位置姿态数据POI,生成用于控制机器人1以使得末端执行器4更准确地接近对象物体OBJ的机器人控制信号。其结果是,末端执行器4能够更准确地对对象物体OBJ进行规定处理。换言之,末端执行器4对对象物体OBJ所进行的规定处理失败的可能性变低。
另外,在第4变形例中,如在第2变形例中说明的那样,控制装置3可以使用与使用由拍摄系统2生成的图像数据IMG_2D和IMG_3D中的至少一方的高度计算方法不同的高度计算方法,来计算对象物体组OBG的高度OH'。在第4变形例中,如第3变形例所说明的那样,除了XY平面内各位置处的对象物体组OBG的高度OH'之外或作为其替代,控制装置3可以基于XY平面内的各位置处的对象物体组OBG的分量来调整拍摄系统2的拍摄水平位置。
(3-5)第5变形例
在上述说明中,摄像系统2设置在机器人1(特别是机械臂12)上。然而,如图36所示那样,拍摄系统2可以设置在与机器人1(特别是机械臂12)不同的部分上。拍摄系统2可以配置在配置机器人系统SYS的建筑物的天花板上。例如,拍摄系统2可以安装在立柱等构造物上。例如,拍摄系统2可以安装在与机器人1不同的其他机器人上。例如,拍摄系统2可以安装在可飞行的无人机上。
在以下说明中,如图36所示,将以拍摄系统2安装在机器人系统SYS所具备的独立于机器人1的支承框架(支承构件)24上的示例进行说明。支承框架24包括例如从支承面S向上方延伸的至少一个柱构件241、以及从柱构件向水平方向延伸的梁构件242,拍摄系统2可以安装在梁构件242上。
即使在拍摄系统2安装在支承框架24上的情况下,控制装置3也可以通过进行图4或图24所示的机器人控制处理,来调整拍摄系统2的拍摄高度CH。即使在拍摄系统2安装在支承框架24上的情况下,控制装置3也可以如第4变形例所述,调整拍摄系统2的拍摄水平位置和拍摄姿态中的至少一个。因此,拍摄系统2可以安装在支承框架24上,以能够调整拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。作为第1示例,如图36所示,拍摄系统2可以经由能相对于支承框架24移动拍摄系统2的第1移动装置251安装在支承框架24上,以调整拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。在该情况下,控制装置3可以通过控制第1移动装置251,来移动拍摄系统2以调整拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。作为第2示例,拍摄系统2可以安装在可移动的支承框架24上。在该情况下,控制装置3可以通过控制使支承框架24移动的第2移动装置252,来使支承框架24移动,其结果,调整安装在支承框架24上的拍摄系统2的拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。也就是说,控制装置3通过控制使支承框架24移动的第2移动装置252,来调整支承框架24的位置和姿态中的至少一个,其结果,可以调整安装在支承框架24上的拍摄系统2的拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。
此外,如上所述,在拍摄系统2安装在与机器人1不同的其他机器人上的情况下,其他机器人可以使拍摄系统2移动,以调整拍摄系统2的拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。如上所述,在拍摄系统2安装在可飞行的无人机上的情况下,无人机可以使拍摄系统2移动,以调整拍摄系统2的拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。
在拍摄系统2安装在与机器人1不同的部分的情况下,拍摄系统2的拍摄视野内有可能包括机器人1及末端执行器4的至少一部分。在该情况下,机器人1及末端执行器4的至少一部分有可能会遮挡拍摄系统2应拍摄的对象物体组OBG的至少一部分。因此,在第5变形例中,拍摄系统2可以在机器人1的全部(或一部分)偏离拍摄系统2的拍摄视野的期间的至少一部分时间内,对容器CB中收纳的对象物体组OBG进行拍摄,以调整拍摄系统2的拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。拍摄系统2可以在末端执行器4的全部(或一部分)偏离拍摄系统2的拍摄视野的期间的至少一部分时间内,对容器CB中收纳的对象物体组OBG进行拍摄,以调整拍摄系统2的拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。
作为一个示例,如图37(a)及图37(b)所示,拍摄系统2可以在末端执行器4保持的对象物体OBJ_target被搬出容器CB外之后,对容器CB中收纳的对象物体组OBG_cb进行拍摄,以调整拍摄系统2的拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。也就是说,拍摄系统2可以在保持有对象物体OBJ_target的末端执行器4移动至容器CB外之后,对容器CB中收纳的对象物体组OBG_cb进行拍摄,以调整拍摄系统2的拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个。其结果是,生成由控制装置3在图24的步骤S8a中为了调整拍摄系统2的拍摄高度CH、拍摄水平位置及拍摄姿态中的至少一个而获取的图像数据IMG_2D和IMG_3D中的至少一个。此外,图37(a)示出在末端执行器4保持的对象物体OBJ_target被搬出容器CB外之后,且在末端执行器4保持的对象物体OBJ_target被释放至释放位置RP之前,拍摄系统2对对象物体组OBG_cb进行拍摄的示例。图37(b)示出在末端执行器4保持的对象物体OBJ_target被搬出容器CB外之后,且在末端执行器4保持的对象物体OBJ_target被释放至释放位置RP之后,拍摄系统2对对象物体组OBG_cb进行拍摄的示例。特别是,图37(b)示出了在将对象物体OBJ_target释放至释放位置RP的末端执行器4到达容器CB上方的位置(例如,参考图26(b)说明的处理开始位置PSP)之前,拍摄系统2对对象物体组OBG_cb进行拍摄的示例。
此外,即使在拍摄系统2设置在与机器人1(特别是机械臂12)不同的部分的情况下,除了图24的步骤S8a中主要以调整拍摄系统2的拍摄高度CH为目的而获取的图像数据IMG_2D和IMG_3D中的至少一个之外或作为其替代,控制装置3还可沿用图4或图24的步骤S1中主要以生成位置姿态数据POI为目的而获取的图像数据IMG_2D和IMG_3D中的至少一个,来调整拍摄系统2的拍摄高度CH。
(3-6)其他变形例
(3-6-1)机器人控制处理的变形例
在上述说明中,在图4或图24的步骤S7中,控制装置3调整拍摄系统2的拍摄高度CH(即Z轴方向上的位置),以在拍摄系统2的拍摄允许范围CAR内包括至少一个对象物体OBJ。此处,调整拍摄系统2的拍摄高度CH与使拍摄系统2的拍摄允许范围CAR相对于至少一个对象物体OBJ移动以使拍摄系统2的拍摄允许范围CAR内包括至少一个对象物体OBJ是等效的。在该情况下,除了调整拍摄系统2的拍摄高度CH以外或作为其替代,控制装置3还可以调整拍摄系统2的光学特性,以在拍摄系统2的拍摄允许范围CAR内包括至少一个对象物体OBJ。例如,如图38所示,在拍摄系统2具备能够调整最佳聚焦位置BFP(参考图10)的聚焦调整光学系统26的情况下,控制装置3可以通过控制聚焦调整光学系统26,来调整(移动)最佳聚焦位置BFP,以在拍摄系统2的拍摄允许范围CAR内包括至少一个对象物体OBJ。在该情况下,随着最佳聚焦位置BFP的调整(移动),拍摄系统2的拍摄允许范围CAR也移动,因此与调整拍摄系统2的拍摄高度的情况同样地,拍摄系统2的拍摄允许范围CAR中包括至少一个对象物体OBJ。
此外,调整拍摄系统2的拍摄高度的处理及调整拍摄系统2的最佳聚焦位置BFP(即光学特性)的处理分别可以视为与使拍摄系统2的拍摄允许范围CAR相对于至少一个对象物体OBJ移动的处理等效。换言之,调整拍摄系统2的拍摄高度的处理及调整拍摄系统2的最佳聚焦位置BFP(即光学特性)的处理分别与调整至少一个对象物体OBJ和拍摄系统2的拍摄允许范围CAR之间的位置关系的处理等效。因此,基于对象物体组OBG的高度OH(或分量)来决定目标拍摄高度CH_target的处理可以视为与基于对象物体组OBG的高度OH(或分量)来决定至少一个对象物体OBJ和拍摄系统2的拍摄允许范围CAR之间的位置关系的目标值(目标位置关系)的处理等效。使拍摄系统2移动至目标拍摄高度CH_target的处理可以视为等效于使至少一个对象物体OBJ和拍摄系统2的拍摄允许范围CAR之间的位置关系与所决定的目标位置关系一致的处理。
同样地,调整拍摄系统2的拍摄高度的处理及调整拍摄系统2的最佳聚焦位置BFP(即光学特性)的处理分别与调整至少一个对象物体OBJ和最佳聚焦位置BFP之间的位置关系的处理等效,该最佳聚焦位置BFP为决定拍摄系统2的拍摄允许范围CAR的参数之一。因此,基于对象物体组OBG的高度OH(或分量)来决定目标拍摄高度CH_target的处理可以视为与基于对象物体组OBG的高度OH(或分量)来决定至少一个对象物体OBJ和最佳聚焦位置BFP之间的位置关系的目标值(目标位置关系)的处理等效。使拍摄系统2移动至目标拍摄高度CH_target的处理可以视为等效于使至少一个对象物体OBJ和最佳聚焦位置BFP之间的位置关系与所决定的目标位置关系一致的处理。
在上述说明中,控制装置3生成用于控制机器人1以使得末端执行器4接近对象物体OBJ的机器人控制信号(图4的步骤S4)、和用于控制机器人1以调整拍摄系统2的拍摄高度CH的机器人控制信号(图4或图24的步骤S7)双方。然而,控制装置3可以生成用于控制机器人1以调整拍摄系统2的拍摄高度CH的机器人控制信号(图4的步骤S7),而另一方面,可以不生成用于控制机器人1以使末端执行器4接近对象物体OBJ的机器人控制信号(图4的步骤S4)。在该情况下,与控制装置3不同的控制装置可以生成用于控制机器人1以使得末端执行器4接近对象物体OBJ的机器人控制信号(图4的步骤S4)。或者,控制装置3可以生成用于控制机器人1以使得末端执行器4接近对象物体OBJ的机器人控制信号(图4的步骤S4),而另一方面,可以不生成用于控制机器人1以调整拍摄系统2的拍摄高度CH的机器人控制信号(图4的步骤S7)。在该情况下,与控制装置3不同的控制装置可以生成用于控制机器人1以调整拍摄系统2的拍摄高度CH的机器人控制信号(图4的步骤S7)。
在上述说明中,控制装置3(特别是三维位置数据生成部311)根据图像数据IMG_3D生成三维位置数据WSD。然而,与控制装置3不同的装置也可以根据图像数据IMG_3D生成三维位置数据WSD。例如,生成图像数据IMG_3D的拍摄装置2可以根据图像数据IMG_3D生成三维位置数据WSD。在该情况下,控制装置3可以从与控制装置3不同的装置获取三维位置数据WSD。控制装置3可以使用从与控制装置3不同的装置获取到的三维位置数据WSD,计算对象物体OBJ的位置和姿态中的至少一方。
(3-6-2)机器人1的变形例
在上述说明中,在机械臂12上安装有进行保持处理及释放处理中的至少一个(例如配置处理)的末端执行器4(例如,机械夹爪或真空夹爪)。然而,末端执行器4并不限于进行保持处理和释放处理的至少一个的装置,也可以是对对象物体OBJ进行其他处理的装置。
作为一个示例,也可以在机械臂12上安装作为末端执行器4的一个示例的、用于加工对象物体OBJ的加工装置。加工装置可以进行对对象物体OBJ附加新的造型物的附加加工、去除对象物体OBJ的一部分的去除加工、焊接两个对象物体OBJ的焊接加工、以及切断对象物体OBJ的切断加工中的至少一个。加工装置可以使用切削工具等工具来对对象物体OBJ进行加工。在该情况下,包括工具在内的加工装置也可以安装在机械臂12上。或者,加工装置也可以通过将能量束(例如光、电磁波和带电粒子束)照射到对象物体OBJ来加工对象物体OBJ。在该情况下,包括将能量束照射到对象物体OBJ的照射装置在内的加工装置可以安装在机械臂12上。
作为末端执行器4的一个示例的加工装置可以进行将部件焊接在对象物体OBJ上的焊接加工。加工装置可以使用电烙铁将部件焊接在对象物体OBJ上。在该情况下,包括电烙铁的加工装置也可以安装在机械臂12上。或者,加工装置也可以通过将能量束(例如光、电磁波和带电粒子束)照射到焊料上来将部件焊接在对象物体OBJ上。在该情况下,包括将能量束照射到对象物体OBJ的照射装置在内的加工装置可以安装在机械臂12上。
作为另一个示例,也可以在机械臂12上安装作为末端执行器4的一个示例的、用于测量对象物体OBJ的测量装置。测量装置能够测量对象物体OBJ的特性。作为对象物体OBJ的特性的一个示例,可举出对象物体OBJ的形状、对象物体OBJ的尺寸、从测量装置到对象物体OBJ的距离、对象物体OBJ的反射率、对象物体OBJ的透射率以及对象物体OBJ的温度中的至少一个。测量装置可以是现有的接触式测量装置。例如,测量装置可以使用触摸探针来测量对象物体OBJ。在该情况下,包括触摸探针的测量装置可以安装在机械臂12上。或者,测量装置可以是现有的非接触式测量装置。例如,测量装置也可以通过将能量束(例如光、电磁波和带电粒子束)照射到对象物体OBJ来测量对象物体OBJ。在该情况下,包括将能量束照射到对象物体OBJ的照射装置在内的测量装置可以安装在机械臂12上。此外,测量装置可以是具备1个或多个单目摄像头的拍摄装置。作为一个示例,测量装置可以是具备2个单目摄像头的立体摄像头。
在作为末端执行器4的一个示例的加工装置和测量装置中的至少一方安装在机械臂12上的情况下,控制装置3可以生成用于控制加工装置和测量装置的至少一方的动作的控制信号。例如,控制装置3可以生成用于控制加工装置所具备的工具的旋转的控制信号。例如,控制装置3可以生成用于控制加工装置和测量装置中的至少一方所具备的照射装置所进行的能量束的导通/关断的控制信号。
作为其他一例,也可以在机械臂12上安装作为末端执行器4的一例的喷出装置。例如,喷出装置可以喷出粘合剂、密封材料、涂料和焊料中的至少一个。喷出装置可以向对象物体OBJ喷出粘合剂、密封材料、涂料和焊料中的至少一个。例如,控制装置3可以生成用于控制来自喷出装置的喷出的导通/关断以及喷出量中的至少一方的控制信号。另外,将粘合剂、密封材料、涂料及焊料中的至少一个向对象物体OBJ喷出也可以称为是对对象物体OBJ进行加工,因此,喷出装置也可以被称为加工装置。
(3-6-3)拍摄系统2的变形例
(3-6-3-1)拍摄装置21、22及投影装置23的变形例
在上述说明中,为了生成图像数据IMG_3D,拍摄装置2具备拍摄装置22和投影装置23。然而,拍摄系统2也可以不为了生成图像数据IMG_3D而具备投影装置23。这是因为,如上所述,由于拍摄装置22是立体摄像头,所以能够根据由立体摄像头的两个拍摄元件分别生成的两个图像数据IMG_3D,来生成表示对象物体OBJ的多个点各自的三维位置的三维位置数据WSD。在该情况下,三维位置数据生成部311也可以通过对图像数据IMG_3D中包含的两个图像数据分别所示的图像彼此的各部分(例如各像素)利用公知的处理进行对应来计算视差,并利用基于使用了计算出的视差的三角测量原理的公知方法来生成三维位置数据WSD。
拍摄装置22也可以不是立体摄像头。例如,拍摄装置22也可以是使用单个拍摄元件对物体OBJ进行拍摄的单目摄像头。即使在该情况下,在图像数据IMG_3D所示的图像中,拍入有从投影装置23投影了投影图案的对象物体OBJ。在该情况下,在拍入到图像数据IMG_3D所示的图像中的投影图案的形状中反映出投影了投影图案的对象物体OBJ的三维形状。因此,即使在拍摄装置22不是立体摄像头的情况下,三维位置数据生成部311也能够基于拍入到图像数据IMG_3D所示的图像中的投影图案,利用公知的处理来生成三维位置数据WSD。
拍摄系统2具备作为单目摄像头的拍摄装置21,另一方面也可以不具备作为立体摄像头的拍摄装置22。在该情况下,在投影装置23未将所期望的投影图案投影到对象物体OBJ的期间中,通过由拍摄装置21对对象物体OBJ进行拍摄而生成的图像数据可以用作图像数据IMG_2D。另一方面,在投影装置23将所期望的投影图案投影到对象物体OBJ的期间中,通过由拍摄装置21对对象物体OBJ进行拍摄而生成的图像数据可以用作图像数据IMG_3D。在该情况下,图像数据IMG_3D可以是相当于单个图像数据(即包括单个图像)的单目图像数据。
拍摄系统2具备作为立体摄像头的拍摄装置22,另一方面也可以不具备拍摄装置21。在该情况下,通过拍摄装置22所具备的两个单目摄像头中的任意一方对对象物体OBJ进行拍摄而生成的图像数据可以用作图像数据IMG_2D。在该情况下,图像数据IMG_2D可以称为单目图像数据。另一方面,表示通过拍摄装置22所具备的两个单目摄像头双方对对象物体OBJ进行拍摄而分别生成的两个图像的图像数据也可以用作图像数据IMG_3D。
(3-6-3-2)拍摄系统2的替代方案
如图39所示,除了能够对对象物体OBJ进行拍摄的拍摄系统2之外或作为其替代,机器人系统SYS还可以具备能够测量出到对象物体OBJ的距离及三维形状中的至少一个的测量系统5。在该情况下,控制装置3(特别是三维位置数据生成部311)可以基于到对象物体OBJ的距离及三维形状中的至少一个的测量结果,来生成三维位置数据WSD。之后,与根据由拍摄系统2生成的图像数据IMG_3D来生成三维位置数据WSD的情况同样地,控制装置3(特别是位置姿态计算部312)可以使用三维位置数据WSD进行匹配处理(即3D匹配处理)。例如,机器人系统SYS可以具备测量系统5及作为拍摄系统2的拍摄装置21。在该情况下,控制装置3可以使用在测量系统5的测量中所生成的三维位置数据WSD、以及在拍摄装置21的拍摄中所生成的图像数据IMG_2D双方进行匹配处理。
测量系统5可以是能够光学地测量出到对象物体OBJ的距离及三维形状中的至少一个的现有系统。例如,测量系统5可以是能够非接触地测量出到对象物体OBJ的距离及三维形状中的至少一个的现有系统。例如,测量系统5可以通过向对象物体OBJ照射测量用的电磁波,并检测从被照射了电磁波的对象物体OBJ向测量系统5返回的电磁波,来光学地测量出到对象物体OBJ的距离及三维形状中的至少一个。测量用的电磁波可以是光(在该情况下,照射到对象物体OBJ的光可以称为测量光),也可以是电波(在该情况下,照射到对象物体OBJ的电波可以称为测量波)。作为这种测量系统5的一个示例,举例有TOF(Time OfFlight:飞行时间)方式的测量仪、FMCW(Frequency Modulated Continuous Wave:调频连续波)方式的测量仪、使用包含在频率轴上等间隔排列的频率分量在内的光(光频率梳)作为测量光的光梳方式的干涉仪、三角测量方式的测量仪、以及使用毫米波作为测量波的毫米波雷达中的至少一个。此外,TOF方式的测量仪及FMCW方式的测量仪中的至少一方可称为LiDAR(Light Detection And Ranging:光探测与测距)。在测量系统5是这种测量传感器的情况下,控制装置3(特别是三维位置数据生成部311)可以基于测量传感器对对象物体OBJ的测量结果,生成相当于点云数据的三维位置数据WSD。之后,与根据拍摄系统2生成的图像数据IMG_3D生成三维位置数据WSD的情况同样地,控制装置3(特别是位置姿态计算部312)可以使用三维位置数据WSD进行匹配处理(即3D匹配处理)。此外,测量系统5可以称为测量装置,也可以称为测量传感器。
即使在使用测量系统5的情况下,与使用拍摄系统2的情况同样地,在图4或图24的步骤S7中,也可以调整测量系统5的高度。此外,调整测量系统5的高度的处理可以与调整拍摄系统2的高度(拍摄高度CH)的处理相同。然而,可以使用测量系统5的测量允许范围,以替代拍摄系统2的拍摄允许范围CAR。测量系统5的测量允许范围可以是指测量系统5能够测量的范围。特别是,测量系统5的测量允许范围可以是指测量系统5能够以规定的测量精度以上测量出到对象物体OBJ的距离及三维形状中的至少一个的范围。作为一个示例,在使用TOF方式的测量仪作为测量系统5的情况下,若对象物体OBJ未位于TOF测量用的测量光以一定强度能够到达的范围内,则测量系统5无法测量出到对象物体OBJ的距离及三维形状中的至少一个的可能性较高。因此,在该情况下,TOF测量用的测量光以一定强度能够到达的范围可以用作测量系统5的测量允许范围。
此外,拍摄系统2也通过使用拍摄装置21及22分别具备的拍摄元件来检测来自对象物体OBJ的返回光,从而对对象物体OBJ进行拍摄。也就是说,可以说拍摄系统2及测量系统5均对来自对象物体OBJ的返回光进行检测。因此,可以将拍摄系统2及测量系统5统称为光检测系统。
(4)附记
关于以上说明的实施方式,进一步公开以下附记。
[附记A1]一种控制装置,
生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置,并且使所述保持装置移动,所述控制装置包括:
生成所述控制信号的运算装置;以及
输出由所述运算装置生成的所述控制信号的通信装置,
所述运算装置基于由拍摄系统以第1拍摄位置和第1拍摄姿态中的至少一方对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,使得所述保持装置接近所述第1对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行保持,
基于所述第1控制信号使得所述保持装置接近所述第1对象物体,被所述保持装置保持的所述第1对象物体从所述容器中被搬出,在所述容器外被所述保持装置释放后,基于所述拍摄系统以与所述第1拍摄位置不同的第2拍摄位置和与所述第1拍摄姿态不同的第2拍摄姿态中的至少一方对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
[附记A2]如附记A1所述的控制装置,
所述第1拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第1拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即第1拍摄水平位置中的至少一个,
所述第2拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第2拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即第2拍摄水平位置中的至少一个。
[附记A3]如附记A2所述的控制装置,
所述第2拍摄水平位置与所述第1拍摄水平位置不同。
[附记A4]如附记A2或A3所述的控制装置,
所述第2拍摄高度与所述第1拍摄高度不同。
[附记A5]如附记A2至A4的任一项所述的控制装置,
所述第2拍摄高度低于所述第1拍摄高度。
[附记A6]如附记A2至A5的任一项所述的控制装置,
所述第2对象物体组的高度低于所述第1对象物体组的高度。
[附记A7]如附记A2至A6的任一项所述的控制装置,
从所述第2拍摄高度对所述第1对象物体组进行拍摄时所述容器中收纳的所述对象物体的数量少于从所述第1拍摄高度进行拍摄时所述容器中收纳的所述对象物体的数量。
[附记A8]如附记A2至A7的任一项所述的控制装置,
所述第2对象物体组中包括的所述对象物体的数量少于所述第1对象物体组中包括的所述对象物体组的数量。
[附记A9]如附记A2至A8的任一项所述的控制装置,
从所述第2拍摄高度对所述第2对象物体组进行拍摄时收纳有多个所述对象物体的所述容器的重量小于从所述第1拍摄高度进行拍摄时收纳有多个所述对象物体的所述容器的重量,小于所收纳的所述对象物体的数量。
[附记A10]如附记A2至A9的任一项所述的控制装置,
所述第1拍摄高度为在位于所述第1拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第1对象物体的高度,
所述第2拍摄高度为在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第2对象物体的高度。
[附记A11]如附记A10所述的控制装置,
所述第1拍摄高度为在位于所述第1拍摄高度的所述拍摄系统的所述拍摄允许范围内不包括所述第2对象物体的高度。
[附记A12]如附记A10或A11所述的控制装置,
所述拍摄允许范围为所述拍摄系统的焦深和景深中的至少一方。
[附记A13]如附记A10至A12的任一项所述的控制装置,
所述拍摄允许范围基于所述拍摄系统的视野来设定。
[附记A14]如附记A10至A13的任一项所述的控制装置,
所述拍摄允许范围通过用户输入来设定。
[附记A15]如附记A1至A14的任一项所述的控制装置,
基于所述第2控制信号使得所述保持装置接近所述第2对象物体,被所述保持装置保持的所述第2对象物体从所述容器中被搬出,在所述容器外被所述保持装置释放后,基于所述拍摄系统以与所述第2拍摄位置不同的第3拍摄位置和与所述第2拍摄姿态不同的第3拍摄姿态中的至少一方对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第3对象物体组进行拍摄而得到的拍摄结果,生成第3控制信号作为所述控制信号,该第3控制信号用于控制所述机器人,使得所述保持装置接近所述第3对象物体组中的一个所述对象物体即第3对象物体,以对所述第3对象物体进行保持。
[附记A16]如附记A15所述的控制装置,
所述第2拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第2拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即第2拍摄水平位置中的至少一个,
所述第3拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第3拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即第3拍摄水平位置中的至少一个。
[附记A17]如附记A16所述的控制装置,
所述第3拍摄水平位置与所述第2拍摄水平位置不同。
[附记A18]如附记A16或A17所述的控制装置,
所述第3拍摄高度与所述第2拍摄高度不同。
[附记A19]如附记A16至A18的任一项所述的控制装置,
所述第3拍摄高度低于所述第2拍摄高度。
[附记A20]如附记A16至A19的任一项所述的控制装置,
所述第3对象物体组的高度低于所述第2对象物体组的高度。
[附记A21]如附记A16至A20的任一项所述的控制装置,
所述第2拍摄高度为在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第2对象物体且不包括所述第3对象物体的高度,
所述第3拍摄高度为在位于所述第3拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第3对象物体的高度。
[附记A22]如附记A16至A21的任一项所述的控制装置,
所述第3对象物体组包括所述第2对象物体组的至少一部分。
[附记A23]如附记A1至A22的任一项所述的控制装置,
所述拍摄系统包括单目摄像头和具备与所述单目摄像头不同的两个单目摄像头的立体摄像头中的至少一方。
[附记A24]如附记A1至A23的任一项所述的控制装置,
所述第2对象物体组包括所述第1对象物体组的至少一部分。
[附记A25]如附记A1至A24的任一项所述的控制装置,
所述拍摄系统设于所述机器人。
[附记A26]如附记A1至A25的任一项所述的控制装置,
所述拍摄系统设于与所述机器人不同的部分。
[附记A27]如附记A26所述的控制装置,
所述拍摄系统设于与所述机器人不同的其他机器人。
[附记A28]如附记A26或A27所述的控制装置,
所述拍摄系统设于无人机。
[附记A29]如附记A26至A28的任一项所述的控制装置,
所述拍摄系统设于能支承所述拍摄系统的支承构件。
[附记A30]如附记A29所述的控制装置,
还包括移动装置,该移动装置能够移动所述拍摄系统,以变更所述拍摄系统的位置和姿态中的至少一个。
[附记A31]如附记A30所述的控制装置,
所述移动装置通过使所述拍摄系统相对于所述支承构件移动,从而变更所述拍摄系统的位置和姿态中的至少一个。
[附记A32]如附记A30或A31所述的控制装置,
所述移动装置通过使设有所述拍摄系统的所述支承构件移动,从而变更所述拍摄系统的位置和姿态中的至少一个。
[附记A33]一种控制系统,包括:
如附记A1至A32的任一项所述的控制装置;以及
所述拍摄系统。
[附记A34]一种机器人系统,包括:
如附记A1至A32的任一项所述的控制装置;
所述拍摄系统;以及
所述机器人。
[附记A35]一种控制方法,是生成用于控制机器人的控制信号的控制方法,该机器人设有能对对象物体进行保持的保持装置,并且使所述保持装置移动,所述控制方法包括:
基于由拍摄系统以第1拍摄位置和第1拍摄姿态中的至少一方对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,使得所述保持装置接近所述第1对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行保持;以及
基于所述第1控制信号使得所述保持装置接近所述第1对象物体,被所述保持装置保持的所述第1对象物体从所述容器中被搬出,在所述容器外被所述保持装置释放后,基于所述拍摄系统以与所述第1拍摄位置不同的第2拍摄位置和与所述第1拍摄姿态不同的第2拍摄姿态中的至少一方对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
[附记A36]一种计算机程序,
使计算机执行如附记A35所述的控制方法。
[附记B1]一种控制装置,生成用于控制设有能对对象物体进行处理的处理装置且使所述处理装置移动的机器人的控制信号、以及用于使对所述对象物体进行拍摄的拍摄系统移动的控制信号,
所述控制装置包括:
生成所述控制信号的运算装置;以及
输出由所述运算装置生成的所述控制信号的通信装置,
所述运算装置基于所述拍摄系统对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的拍摄结果,生成第1控制信号,该第1控制信号用于使所述拍摄系统移动至所述拍摄系统对所述对象物体进行拍摄的拍摄位置和拍摄姿态中的至少一方,
基于所述拍摄系统以所述拍摄位置和所述拍摄姿态中的至少一方对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行所述处理。
[附记B2]如附记B1所述的控制装置,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,决定所述拍摄位置和所述拍摄姿态中的至少一方,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄位置和所述拍摄姿态中的至少一方的所述第1控制信号。
[附记B3]如附记B1或B2所述的控制装置,
所述运算装置基于所述拍摄结果,计算所述第1对象物体组的高度,
基于所述第1对象物体组的高度,决定所述拍摄位置和所述拍摄姿态中的至少一方。
[附记B4]如附记B1至B3的任一项所述的控制装置,
所述拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即拍摄水平位置中的至少一个。
[附记B5]如附记B4所述的控制装置,
所述运算装置基于所述拍摄结果,计算所述第1对象物体组的高度,
基于所述第1对象物体组的高度和所述拍摄系统的拍摄允许范围,决定所述拍摄高度。
[附记B6]如附记B4或B5所述的控制装置,
所述拍摄高度为在位于所述拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第1对象物体的高度。
[附记B7]如附记B1至B6的任一项所述的控制装置,
所述处理装置是能保持所述对象物体的保持装置,
将所述拍摄位置设为第1拍摄位置、且将所述拍摄姿态设为第1拍摄姿态时,
基于所述第2控制信号使得所述保持装置接近所述第1对象物体,被所述保持装置保持的所述第1对象物体从所述容器被搬出,在所述容器外被所述保持装置释放后,
所述运算装置基于所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第3对象物体组的拍摄结果,生成第3控制信号作为所述控制信号,该第3控制信号用于使所述拍摄系统移动至与所述第1拍摄位置不同的第2拍摄位置、及与所述第1拍摄姿态不同的第2拍摄姿态中的至少一个。
[附记B8]如附记B7所述的控制装置,
所述第1拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第1拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即第1拍摄水平位置中的至少一个,
所述第2拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第2拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即第2拍摄水平位置中的至少一个。
[附记B9]如附记B8所述的控制装置,
所述第2拍摄水平位置与所述第1拍摄水平位置不同。
[附记B10]如附记B8或B9所述的控制装置,
所述第2拍摄高度与所述第1拍摄高度不同。
[附记B11]如附记B8至B10的任一项所述的控制装置,
所述第2拍摄高度低于所述第1拍摄高度。
[附记B12]如附记B7至B11的任一项所述的控制装置,
所述第3对象物体组为所述第2对象物体组,
用于生成所述第3控制信号的、所述拍摄系统对所述第3对象物体组的所述拍摄结果为用于生成所述第2控制信号的、所述拍摄系统对所述第2对象物体组的所述拍摄结果。
[附记B13]如附记B7至B12的任一项所述的控制装置,
所述运算装置基于所述拍摄系统对所述第3对象物体组的所述拍摄结果,决定所述第2拍摄位置和所述第2拍摄姿态中的至少一个,
生成用于使所述拍摄系统移动至所决定的所述第2拍摄位置和所述第2拍摄姿态中的至少一个的所述第3控制信号。
[附记B14]如附记B7至B13的任一项所述的控制装置,
所述运算装置基于所述拍摄系统以所述第2拍摄位置和所述第2拍摄姿态中的至少一个对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第4对象物体组进行拍摄而得到的拍摄结果,生成第4控制信号作为所述控制信号,该第4控制信号用于控制所述机器人,使得所述保持装置接近所述第4对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
[附记B15]如附记B14所述的控制装置,
所述第4对象物体组包括所述第3对象物体组的至少一部分。
[附记B16]如附记B14或B15所述的控制装置,
所述第4对象物体组的高度低于所述第2对象物体组的高度。
[附记B17]如附记B14至B16的任一项所述的控制装置,
所述第1拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第1拍摄高度,
所述第2拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第2拍摄高度,
所述第1拍摄高度为在位于所述第1拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第1对象物体且不包括所述第2对象物体的高度,
所述第2拍摄高度为在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第2对象物体的高度。
[附记B18]如附记B7至B17的任一项所述的控制装置,
所述第3对象物体组包括所述第2对象物体组的至少一部分。
[附记B19]如附记B5、B6或B17所述的控制装置,
所述拍摄允许范围为所述拍摄系统的焦深和景深中的至少一方。
[附记B20]如附记B5、B6、B17或B19所述的控制装置,
所述拍摄允许范围基于所述拍摄系统的视野来设定。
[附记B21]如附记B5、B6、B17、B19或B20所述的控制装置,
所述拍摄允许范围通过用户输入来设定。
[附记B22]如附记B1至B21的任一项所述的控制装置,
所述拍摄系统包括单目摄像头和具备与所述单目摄像头不同的两个单目摄像头的立体摄像头中的至少一方。
[附记B23]如附记B1至B22的任一项所述的控制装置,
所述第2对象物体组包括所述第1对象物体组的至少一部分。
[附记B24]如附记B1至B23的任一项所述的控制装置,
所述拍摄系统设于所述机器人。
[附记B25]如附记B24所述的控制装置,
用于使所述拍摄系统移动的控制信号为用于控制使所述拍摄系统与所述处理装置一起移动的所述机器人的控制信号。
[附记B26]如附记B1至B25的任一项所述的控制装置,
所述拍摄系统设于与所述机器人不同的部分。
[附记B27]如附记B26所述的控制装置,
所述拍摄系统设于与所述机器人不同的其他机器人。
[附记B28]如附记B26或B27所述的控制装置,
所述拍摄系统设于无人机。
[附记B29]如附记B26至B28的任一项所述的控制装置,
所述拍摄系统设于能支承所述拍摄系统的支承构件。
[附记B30]如附记B29所述的控制装置,
还包括移动装置,该移动装置能够移动所述拍摄系统,以变更所述拍摄系统的位置和姿态中的至少一个。
[附记B31]如附记B30所述的控制装置,
所述移动装置通过使所述拍摄系统相对于所述支承构件移动,从而变更所述拍摄系统的位置和姿态中的至少一个。
[附记B32]如附记B30或B31所述的控制装置,
所述移动装置通过使设有所述拍摄系统的所述支承构件移动,从而变更所述拍摄系统的位置和姿态中的至少一个。
[附记B33]如附记B1至B32的任一项所述的控制装置,
所述处理装置是能保持所述对象物体的保持装置,
所述拍摄系统对所述第1对象物体组的所述拍摄结果包括在所述容器中收纳的多个所述对象物体中的一个所述对象物体即第3对象物体被所述保持装置保持后、到被所述保持装置保持的所述第3对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内由所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果。
[附记B34]如附记B1至B33的任一项所述的控制装置,
所述拍摄系统对所述第1对象物体组的所述拍摄结果包括所述机器人的全部偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果。
[附记B35]如附记B1至B33的任一项所述的控制装置,
所述拍摄系统对所述第1对象物体组的所述拍摄结果包括所述机器人的一部分偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果。
[附记B36]如附记B1至B35的任一项所述的控制装置,
所述拍摄系统对所述第1对象物体组的所述拍摄结果包括所述处理装置的全部偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果。
[附记B37]如附记B1至B35的任一项所述的控制装置,
所述拍摄系统对所述第1对象物体组的所述拍摄结果包括所述处理装置的一部分偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果。
[附记B38]一种控制系统,包括:
如附记B1至B36的任一项所述的控制装置;以及
所述拍摄系统。
[附记B39]一种机器人系统,包括:
如附记B1至B35的任一项所述的控制装置;
所述拍摄系统;以及
所述机器人。
[附记B40]一种控制方法,是生成用于控制设有能对对象物体进行处理的处理装置且使所述处理装置移动的机器人的控制信号、以及用于使对所述对象物体进行拍摄的拍摄系统移动的控制信号的控制方法,所述控制方法包括:
基于所述拍摄系统对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的拍摄结果,生成第1控制信号,该第1控制信号用于使所述拍摄系统移动至所述拍摄系统对所述对象物体进行拍摄的拍摄位置和拍摄姿态中的至少一方;以及
基于所述拍摄系统以所述拍摄位置和所述拍摄姿态中的至少一方对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行所述处理。
[附记B41]一种计算机程序,
使计算机执行如附记B40所述的控制方法。
[附记C1]一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,所述控制装置包括:
生成所述控制信号的运算装置;以及
输出由所述运算装置生成的所述控制信号的通信装置,
容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持,
所述机器人被控制为使得对所述第1对象物体进行保持的所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的位置,
所述运算装置基于在随所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的所述位置而产生的所述拍摄系统的移动路径上,所述拍摄系统对包括所述容器中收纳的多个所述对象物体中至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于从所述保持装置释放所述第1对象物体后的位置开始控制所述机器人。
[附记C2]如附记C1所述的控制装置,
所述第1对象物体组的所述拍摄结果为所述拍摄系统沿所述移动路径移动的同时对所述容器中收纳的所述第1对象物体组进行拍摄而得到的结果。
[附记C3]如附记C1或C2所述的控制装置,
基于根据所述第1控制信号移动的所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
[附记C4]如附记C3所述的控制装置,
所述第2对象物体组包括所述第1对象物体组的至少一部分。
[附记C5]如附记C1至C4的任一项所述的控制装置,
所述第1控制信号为用于控制所述机器人以使得所述拍摄系统从所述保持装置释放所述第1对象物体后的位置移动至所述拍摄系统对所述容器中收纳的所述对象物体进行拍摄的拍摄位置和拍摄姿态中的至少一个的信号。
[附记C6]如附记C5所述的控制装置,
所述拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即拍摄水平位置中的至少一个。
[附记C7]如附记C5或C6所述的控制装置,
所述第1控制信号为用于控制所述机器人以使得所述拍摄系统从所述保持装置释放所述第1对象物体的位置移动至所述拍摄位置和所述拍摄姿态中的至少一个的信号。
[附记C8]如附记C5至C7的任一项所述的控制装置,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,决定所述拍摄位置和所述拍摄姿态中的至少一个,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄位置和所述拍摄姿态中的至少一个的所述第1控制信号。
[附记C9]如附记C5至C8的任一项所述的控制装置,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,计算所述第1对象物体组的高度,
基于所述第1对象物体组的高度,决定所述拍摄位置和所述拍摄姿态中的至少一个。
[附记C10]如附记C5至C9的任一项所述的控制装置,
所述拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即拍摄高度,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,计算所述第1对象物体组的高度,
基于所述第1对象物体组的高度和所述拍摄系统的拍摄允许范围,决定所述拍摄高度。
[附记C11]如附记C5至C10的任一项所述的控制装置,
所述运算装置基于根据所述第1控制信号移动至所述拍摄位置和所述拍摄姿态中的至少一个的所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
[附记C12]如附记C11所述的控制装置,
所述拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即拍摄高度,
所述运算装置基于根据所述第1控制信号移动至所述拍摄高度的所述拍摄系统对所述第2对象物体组进行拍摄而得到的拍摄结果,生成所述第2控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体,以对所述第2对象物体进行保持,
所述拍摄高度为在位于所述拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第2对象物体的高度。
[附记C13]如附记C11或C12所述的控制装置,
将所述拍摄位置设为第1拍摄位置、且将所述拍摄姿态设为第1拍摄姿态时,
基于所述第2控制信号使得所述第2对象物体被所述保持装置保持,
所述机器人被控制为对所述第2对象物体进行保持的所述保持装置从所述容器移动至所述容器外的释放所述第2对象物体的位置,
所述运算装置基于在随所述保持装置从所述容器移动至所述容器外的释放所述第2对象物体的所述位置而产生的所述拍摄系统的移动路径上,所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第3对象物体组进行拍摄而得到的拍摄结果,生成第3控制信号作为所述控制信号,该第3控制信号用于控制所述机器人,使得所述拍摄系统从所述保持装置释放所述第2对象物体后的位置移动至与所述第1拍摄位置不同的第2拍摄位置和与所述第1拍摄姿态不同的第2拍摄姿态中的至少一个。
[附记C14]如附记C13所述的控制装置,
所述第3对象物体组包括所述第2对象物体组的至少一部分。
[附记C15]如附记C13或C14所述的控制装置,
所述第1拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第1拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即第1拍摄水平位置中的至少一个,
所述第2拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第2拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即第2拍摄水平位置中的至少一个。
[附记C16]如附记C15所述的控制装置,
所述第2拍摄水平位置与所述第1拍摄水平位置不同。
[附记C17]如附记C15或C16所述的控制装置,
所述第2拍摄高度与所述第1拍摄高度不同。
[附记C18]如附记C15至C17的任一项所述的控制装置,
所述第2拍摄高度低于所述第1拍摄高度。
[附记C19]如附记C13至C18的任一项所述的控制装置,
所述第3对象物体组的所述拍摄结果为所述拍摄系统沿着随所述保持装置从所述容器移动至所述容器外的释放所述第2对象物体的所述位置而产生的所述拍摄系统的所述移动路径进行移动的同时、对所述容器中收纳的所述第3对象物体组进行拍摄而得到的结果。
[附记C20]如附记C13至C19的任一项所述的控制装置,
所述第3控制信号为用于控制所述机器人以使得所述拍摄系统从所述保持装置释放所述第2对象物体的位置移动至所述第2拍摄位置和所述第2拍摄姿态中的至少一个的信号。
[附记C21]如附记C13至C20的任一项所述的控制装置,
所述运算装置基于所述拍摄系统对所述第3对象物体组的所述拍摄结果,决定所述第2拍摄位置和所述第2拍摄姿态中的至少一个,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述第2拍摄位置和所述第2拍摄姿态中的至少一个的所述第3控制信号。
[附记C22]如附记C13至C21的任一项所述的控制装置,
所述运算装置基于所述拍摄系统以所述第2拍摄位置和所述第2拍摄姿态中的至少一个对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第4对象物体组进行拍摄而得到的拍摄结果,生成第4控制信号作为所述控制信号,该第4控制信号用于控制所述机器人,使得所述保持装置接近所述第4对象物体组中的一个所述对象物体即第3对象物体,以对所述第3对象物体进行保持。
[附记C23]如附记C22所述的控制装置,
所述第4对象物体组包括所述第3对象物体组的至少一部分。
[附记C24]如附记C22或C23的控制装置,
所述第4对象物体组的高度低于所述第2对象物体组的高度。
[附记C25]如附记C22至C24的任一项所述的控制装置,
所述第1拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第1拍摄高度,
所述第2拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第2拍摄高度,
所述第1拍摄高度为在位于所述第1拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第2对象物体且不包括所述第3对象物体的高度,
所述第2拍摄高度为在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第3对象物体的高度。
[附记C26]如附记C10、C12或C25所述的控制装置,
所述拍摄允许范围为所述拍摄系统的焦深和景深中的至少一方。
[附记C27]如附记C10、C12、C25或C26所述的控制装置,
所述拍摄允许范围基于所述拍摄系统的视野来设定。
[附记C28]如附记C10、C12以及C25至C27的任一项所述的控制装置,
所述拍摄允许范围通过用户输入来设定。
[附记C29]如附记C1至C28的任一项所述的控制装置,
所述拍摄系统包括单目摄像头和具备与所述单目摄像头不同的两个单目摄像头的立体摄像头中的至少一方。
[附记C30]一种控制系统,包括:
如附记C1至C29的任一项所述的控制装置;以及
所述拍摄系统。
[附记C31]一种机器人系统,包括:
如附记C1至C29的任一项所述的控制装置;
所述拍摄系统;以及
所述机器人。
[附记C32]一种控制方法,是生成用于控制机器人的控制信号的控制方法,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,
容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持,
所述机器人被控制为使得对所述第1对象物体进行保持的所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的位置,
所述控制方法包括:
基于在随所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的所述位置而产生的所述拍摄系统的移动路径上,所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于从所述保持装置释放所述第1对象物体后的位置开始控制所述机器人。
[附记C33]一种计算机程序,
使计算机执行如附记C32所述的控制方法。
[附记D1]一种控制装置,生成用于控制设有能对对象物体进行保持的保持装置且使所述保持装置移动的机器人的控制信号、以及用于使对所述对象物体进行拍摄的拍摄系统移动的控制信号,
所述控制装置包括:
生成所述控制信号的运算装置;以及
输出由所述运算装置生成的所述控制信号的通信装置,
所述运算装置基于在容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持后、到被所述保持装置保持的所述第1对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内由所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于在所述保持装置释放所述第1对象物体后控制所述机器人。
[附记D2]如附记D1所述的控制装置,
对所述容器的内部进行拍摄而得到的所述拍摄结果包括所述机器人的全部偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果。
[附记D3]如附记D1所述的控制装置,
对所述容器的内部进行拍摄而得到的所述拍摄结果包括所述机器人的一部分偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果。
[附记D4]如附记D1至D3的任一项所述的控制装置,
对所述容器的内部进行拍摄而得到的所述拍摄结果包括所述保持装置的全部偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果。
[附记D5]如附记D1至D3的任一项所述的控制装置,
对所述容器的内部进行拍摄而得到的所述拍摄结果包括所述保持装置的一部分偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果。
[附记D6]如附记D1至D5的任一项所述的控制装置,
对所述容器的内部进行拍摄而得到的所述拍摄结果包括对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果。
[附记D7]如附记D6所述的控制装置,
基于根据所述第1控制信号移动的所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
[附记D8]如附记D7所述的控制装置,
所述第2对象物体组包括所述第1对象物体组的至少一部分。
[附记D9]如附记D7或D8所述的控制装置,
所述第1控制信号为用于控制所述机器人以使得在由所述保持装置释放所述第1对象物体后所述拍摄系统移动至所述拍摄系统对所述第2对象物体组进行拍摄的拍摄位置和拍摄姿态中的至少一个的信号。
[附记D10]如附记D9所述的控制装置,
所述拍摄位置包括所述拍摄系统对所述第2对象物体组进行拍摄的高度即拍摄高度、以及所述拍摄系统对所述第2对象物体组进行拍摄的水平面上的位置即拍摄水平位置中的至少一个。
[附记D11]如附记D9或D10所述的控制装置,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,决定所述拍摄位置和所述拍摄姿态中的至少一个,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄位置和所述拍摄姿态中的至少一个的所述第1控制信号。
[附记D12]如附记D9至D11的任一项所述的控制装置,
所述拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即拍摄高度,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,计算所述第1对象物体组的高度,
基于所述第1对象物体组的高度,决定所述拍摄位置和所述拍摄姿态中的至少一个。
[附记D13]如附记D9至D12的任一项所述的控制装置,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,计算所述第1对象物体组的高度,
基于所述第1对象物体组的高度和所述拍摄系统的拍摄允许范围,决定所述拍摄高度。
[附记D14]如附记D9至D13的任一项所述的控制装置,
所述拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即拍摄高度,
所述拍摄高度为在位于所述拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第2对象物体的高度。
[附记D15]如附记D7至D14的任一项所述的控制装置,
基于在根据所述第2控制信号使得所述第2对象物体被所述保持装置保持、到被所述保持装置保持的所述第2对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内由所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果,生成第3控制信号作为所述控制信号,该第3控制信号用于在所述保持装置释放所述第2对象物体后控制所述机器人。
[附记D16]如附记D9至D14的任一项所述的控制装置,
将所述拍摄位置设为第1拍摄位置、且将所述拍摄姿态设为第1拍摄姿态时,
基于在根据所述第2控制信号使得所述第2对象物体被所述保持装置保持、到被所述保持装置保持的所述第2对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内由所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第3对象物体组进行拍摄而得到的拍摄结果,生成第3控制信号作为所述控制信号,该第3控制信号用于控制所述机器人,使得在由所述保持装置释放所述第2对象物体后所述拍摄系统移动至所述拍摄系统对所述第2对象物体组进行拍摄的与所述第1拍摄位置不同的第2拍摄位置和与所述第1拍摄姿态不同的第2拍摄姿态中的至少一方。
[附记D17]如附记D16所述的控制装置,
所述第3对象物体组包括所述第2对象物体组的至少一部分。
[附记D18]如附记D16或D17所述的控制装置,
所述第1拍摄位置包括所述拍摄系统对所述第2对象物体组进行拍摄的高度即第1拍摄高度、以及所述拍摄系统对所述第2对象物体组进行拍摄的水平面上的位置即第1拍摄水平位置中的至少一个,
所述第2拍摄位置包括所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第4对象物体组进行拍摄的高度即第2拍摄高度、以及所述拍摄系统对所述第4对象物体组进行拍摄的水平面上的位置即第2拍摄水平位置中的至少一个。
[附记D19]如附记C18所述的控制装置,
所述第2拍摄水平位置与所述第1拍摄水平位置不同。
[附记D20]如附记D18或D19所述的控制装置,
所述第2拍摄高度与所述第1拍摄高度不同。
[附记D21]如附记C15至C17的任一项所述的控制装置,
所述第2拍摄高度低于所述第1拍摄高度。
[附记D22]如附记D16至D21的任一项所述的控制装置,
所述运算装置基于所述拍摄系统对所述第3对象物体组的所述拍摄结果,决定所述第2拍摄位置和所述第2拍摄姿态中的至少一个,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述第2拍摄位置和所述第2拍摄姿态中的至少一个的所述第3控制信号。
[附记D23]如附记D16至D22的任一项所述的控制装置,
所述运算装置基于所述拍摄系统在所述第2拍摄高度对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第4对象物体组进行拍摄而得到的拍摄结果,生成第4控制信号作为所述控制信号,该第4控制信号用于控制所述机器人,使得所述保持装置接近所述第4对象物体组中的一个所述对象物体即第3对象物体,以对所述第3对象物体进行保持。
[附记D24]如附记D23所述的控制装置,
所述第4对象物体组包括所述第3对象物体组的至少一部分。
[附记D25]如附记D23或D24所述的控制装置,
所述第4对象物体组的高度低于所述第2对象物体组的高度。
[附记D26]如附记D23至D25的任一项所述的控制装置,
所述第1拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第1拍摄高度,
所述第2拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第2拍摄高度,
所述第1拍摄高度为在位于所述第1拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第2对象物体且不包括所述第3对象物体的高度,
所述第2拍摄高度为在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第3对象物体的高度。
[附记D27]如附记D13、D14或D26所述的控制装置,
所述拍摄允许范围为所述拍摄系统的焦深和景深中的至少一方。
[附记D28]如附记D13、D14、D26或D27所述的控制装置,
所述拍摄允许范围基于所述拍摄系统的视野来设定。
[附记D29]如附记D13、D14及D26至D28的任一项所述的控制装置,
所述拍摄允许范围通过用户输入来设定。
[附记D30]如附记D1至D29的任一项所述的控制装置,
所述拍摄系统包括单目摄像头和具备与所述单目摄像头不同的两个单目摄像头的立体摄像头中的至少一方。
[附记D31]如附记D1至D30的任一项所述的控制装置,
所述拍摄系统设于所述机器人。
[附记D32]如附记D1至D31的任一项所述的控制装置,
所述拍摄系统设于与所述机器人不同的部分。
[附记D33]如附记D32所述的控制装置,
所述拍摄系统设于与所述机器人不同的其他机器人。
[附记D34]如附记D32或D33所述的控制装置,
所述拍摄系统设于无人机。
[附记D35]如附记D32至D34的任一项所述的控制装置,
所述拍摄系统设于能支承所述拍摄系统的支承构件。
[附记D36]如附记D35所述的控制装置,
还包括移动装置,该移动装置能够移动所述拍摄系统,以变更所述拍摄系统的位置和姿态中的至少一个。
[附记D37]如附记D36所述的控制装置,
所述移动装置通过使所述拍摄系统相对于所述支承构件移动,从而变更所述拍摄系统的位置和姿态中的至少一个。
[附记D38]如附记D36或D37所述的控制装置,
所述移动装置通过使设有所述拍摄系统的所述支承构件移动,从而变更所述拍摄系统的位置和姿态中的至少一个。
[附记D39]一种控制系统,包括:
如附记D1至D38的任一项所述的控制装置;以及
所述拍摄系统。
[附记D40]一种机器人系统,包括:
如附记D1至D38的任一项所述的控制装置;
所述拍摄系统;以及
所述机器人。
[附记D41]一种控制方法,是生成用于控制设有能对对象物体进行保持的保持装置且使所述保持装置移动的机器人的控制信号、以及用于使对所述对象物体进行拍摄的拍摄系统移动的控制信号的控制方法,
所述控制方法包括:
基于在容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持后、到被所述保持装置保持的所述第1对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内由所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于在所述保持装置释放所述第1对象物体后控制所述机器人。
[附记D42]一种计算机程序,
使计算机执行如附记D41所述的控制方法。
[附记E1]一种控制装置,生成用于控制设有能对对象物体进行处理的处理装置且使所述处理装置移动的机器人的控制信号、以及用于使对所述对象物体进行拍摄的拍摄系统移动的控制信号,
所述控制装置包括:
生成所述控制信号的运算装置;以及
输出由所述运算装置生成的所述控制信号的通信装置,
所述运算装置基于包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方,生成使所述拍摄系统移动至所述拍摄系统对所述对象物体进行拍摄的拍摄位置和拍摄姿态中的至少一方的第1控制信号,
基于所述拍摄系统以所述拍摄位置和所述拍摄姿态中的至少一方对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体,以对所述一个对象物体进行所述处理。
[附记E2]如附记E1所述的控制装置,
所述第2对象物体组包括所述第1对象物体组的至少一部分。
[附记E3]如附记E1或E2所述的控制装置,
所述第2对象物体组与所述第1对象物体组相同。
[附记E4]如附记E1至E3的任一项所述的控制装置,
所述拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即拍摄高度、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即拍摄水平位置中的至少一个。
[附记E5]如附记E4所述的控制装置,
所述拍摄高度为在位于所述拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第1对象物体组中的至少一个所述对象物体的高度。
[附记E6]如附记E4或E5所述的控制装置,
所述第2对象物体组中的所述一个对象物体为在位于所述拍摄高度的所述拍摄系统的拍摄允许范围内所包括的所述第1对象物体组中的一个所述对象物体。
[附记E7]如附记E1至E6的任一项所述的控制装置,
所述运算装置基于所述容器中收纳的所述第1对象物体组的所述高度和所述容器中收纳的所述第1对象物体组的所述分量中的至少一方,决定所述拍摄位置和所述拍摄姿态中的至少一个,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄位置和所述拍摄姿态中的至少一个的所述第1控制信号。
[附记E8]如附记E1至E7的任一项所述的控制装置,
所述运算装置基于所述拍摄系统对所述容器中收纳的所述第1对象物体组的拍摄结果,计算所述容器中收纳的所述第1对象物体组的高度,
基于所计算出的所述高度,生成所述第1控制信号。
[附记E9]如附记E1至E8的任一项所述的控制装置,
所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方基于测量装置的测量结果直接或间接计算出。
[附记E10]如附记E9所述的控制装置,
所述拍摄系统为第1拍摄系统,
所述测量装置包括所述第1拍摄系统、以及与所述第1拍摄系统不同的第2拍摄系统中的至少一方,
所述运算装置基于作为所述测量结果的、所述第1拍摄系统和所述第2拍摄系统中的至少一个的拍摄结果,计算所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方。
[附记E11]如附记E10所述的控制装置,
所述第1拍摄系统和所述第2拍摄系统中的至少一个的所述拍摄结果为对所述容器中收纳的所述第1对象物体组的拍摄结果。
[附记E12]如附记E10或E11所述的控制装置,
所述第1拍摄系统和所述第2拍摄系统中的至少一个的所述拍摄结果为在所述容器的表面中面向所述第1对象物体组所在的空间的位置上形成的至少一个标记的拍摄结果。
[附记E13]如附记E12所述的控制装置,
所述运算装置基于根据所述标记的拍摄结果检测出的所述标记的数量,计算所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方。
[附记E14]如附记E9至E13的任一项所述的控制装置,
所述测量装置包括能够测量所述容器中收纳的所述第1对象物体组的重量的重量传感器。
[附记E15]如附记E9至E14的任一项所述的控制装置,
所述测量装置包括能够检测所述容器中的所述第1对象物体组中的至少一个所述对象物体的至少一个传感器。
[附记E16]如附记E15所述的控制装置,
所述运算装置基于不检测所述第1对象物体组中的至少一个所述对象物体的所述传感器的数量,计算所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方。
[附记E17]如附记E15或E16所述的控制装置,
所述至少一个传感器配置于所述容器。
[附记E18]如附记E1至E17的任一项所述的控制装置,
所述运算装置基于所述处理装置已进行所述处理的所述对象物体的数量,计算所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方。
[附记E19]如附记E1至E18的任一项所述的控制装置,
所述处理装置是能保持所述对象物体的保持装置,
将所述拍摄位置设为第1拍摄位置、且将所述拍摄姿态设为第1拍摄姿态时,
基于所述第2控制信号使得所述保持装置接近所述一个对象物体即所述第1对象物体,被所述保持装置保持的所述第1对象物体从所述容器被搬出,在所述容器外被所述保持装置释放后,
所述运算装置基于包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第3对象物体组的高度和所述容器中收纳的所述第3对象物体组的分量中的至少一方,生成第3控制信号作为所述控制信号,该第3控制信号用于使所述拍摄系统移动至与所述拍摄系统的所述第1拍摄位置不同的第2拍摄位置和与所述第1拍摄姿态不同的第2拍摄姿态中的至少一个。
[附记E20]如附记E19所述的控制装置,
所述第3对象物体组包括所述第2对象物体组的至少一部分。
[附记E21]如附记E19或E20所述的控制装置,
所述第1拍摄位置包括所述拍摄系统对所述第2对象物体组进行拍摄的高度即第1拍摄高度、以及所述拍摄系统对所述第2对象物体组进行拍摄的水平面上的位置即第1拍摄水平位置中的至少一个,
所述第2拍摄位置包括所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第4对象物体组进行拍摄的高度即第2拍摄高度、以及所述拍摄系统对所述第4对象物体组进行拍摄的水平面上的位置即第2拍摄水平位置中的至少一个。
[附记B22]如附记E21所述的控制装置,
所述第2拍摄水平位置与所述第1拍摄水平位置不同。
[附记E23]如附记E21或E22所述的控制装置,
所述第2拍摄高度与所述第1拍摄高度不同。
[附记E24]如附记E21至E23的任一项所述的控制装置,
所述第2拍摄高度低于所述第1拍摄高度。
[附记E25]如附记E19至E24的任一项所述的控制装置,
所述运算装置基于所述拍摄系统以所述第2拍摄位置和所述第2拍摄姿态中的至少一个对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第4对象物体组进行拍摄而得到的拍摄结果,生成第4控制信号作为所述控制信号,该第4控制信号用于控制所述机器人,使得所述保持装置接近所述第4对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
[附记E26]如附记E25所述的控制装置,
所述第4对象物体组包括所述第3对象物体组的至少一部分。
[附记E27]如附记E25或E26所述的控制装置,
所述第4对象物体组的高度低于所述第2对象物体组的高度。
[附记E28]如附记E25至E27的任一项所述的控制装置,
所述第1拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第1拍摄高度,
所述第2拍摄位置包括所述拍摄系统对所述对象物体进行拍摄的高度即第2拍摄高度,
所述第1拍摄高度为在位于所述第1拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第1对象物体且不包括所述第2对象物体的高度,
所述第2拍摄高度为在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第2对象物体的高度。
[附记E29]如附记E5、E6或E28所述的控制装置,
所述拍摄允许范围为所述拍摄系统的焦深和景深中的至少一方。
[附记E30]如附记E5、E6、E28或E29所述的控制装置,
所述拍摄允许范围基于所述拍摄系统的视野来设定。
[附记E31]如附记E5、E6及E28至E30的任一项所述的控制装置,
所述拍摄允许范围通过用户输入来设定。
[附记E32]如附记E1至E31的任一项所述的控制装置,
所述拍摄系统包括单目摄像头和具备与所述单目摄像头不同的两个单目摄像头的立体摄像头中的至少一方。
[附记E33]如附记E1至E32的任一项所述的控制装置,
所述拍摄系统设于所述机器人。
[附记E34]如附记E33所述的控制装置,
用于使所述拍摄系统移动的控制信号为用于控制使所述拍摄系统与所述处理装置一起移动的所述机器人的控制信号。
[附记E35]如附记E1至E34的任一项所述的控制装置,
所述拍摄系统设于与所述机器人不同的部分。
[附记E36]如附记E35所述的控制装置,
所述拍摄系统设于与所述机器人不同的其他机器人。
[附记E37]如附记E35或E36所述的控制装置,
所述拍摄系统设于无人机。
[附记E38]如附记E35至E37的任一项所述的控制装置,
所述拍摄系统设于能支承所述拍摄系统的支承构件。
[附记E39]如附记E38所述的控制装置,
还包括移动装置,该移动装置能够移动所述拍摄系统,以变更所述拍摄系统的位置和姿态中的至少一个。
[附记E40]如附记E39所述的控制装置,
所述移动装置通过使所述拍摄系统相对于所述支承构件移动,从而变更所述拍摄系统的位置和姿态中的至少一个。
[附记E41]如附记E39或E40所述的控制装置,
所述移动装置通过使设有所述拍摄系统的所述支承构件移动,从而变更所述拍摄系统的位置和姿态中的至少一个。
[附记E42]如附记E1至E41的任一项所述的控制装置,
所述处理装置是能保持所述对象物体的保持装置,
所述运算装置基于在所述容器中收纳的多个所述对象物体中的一个所述对象物体即第3对象物体被所述保持装置保持后、到被所述保持装置保持的所述第3对象物体从所述容器被搬出并在容器外被所述保持装置释放为止的期间内由所述拍摄系统对所述第1对象物体组进行拍摄而得到的拍摄结果,计算所述第1对象物体组的高度和所述第1对象物体组的分量中的至少一方。
[附记E43]如附记E1至E42的任一项所述的控制装置,
所述运算装置基于所述机器人的全部偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述第1对象物体组进行拍摄而得到的拍摄结果,计算所述第1对象物体组的高度和所述第1对象物体组的分量中的至少一方。
[附记E44]如附记E1至E42的任一项所述的控制装置,
所述运算装置基于所述机器人的一部分偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述第1对象物体组进行拍摄而得到的拍摄结果,计算所述第1对象物体组的高度和所述第1对象物体组的分量中的至少一方。
[附记E45]如附记E1至E44的任一项所述的控制装置,
所述运算装置基于所述处理装置的全部偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述第1对象物体组进行拍摄而得到的拍摄结果,计算所述第1对象物体组的高度和所述第1对象物体组的分量中的至少一方。
[附记E46]如附记E1至E44的任一项所述的控制装置,
所述运算装置基于所述处理装置的一部分偏离所述拍摄系统的拍摄视野的期间内所述拍摄系统对所述第1对象物体组进行拍摄而得到的拍摄结果,计算所述第1对象物体组的高度和所述第1对象物体组的分量中的至少一方。
[附记E47]一种控制系统,包括:
如附记E1至E4465的任一项所述的控制装置;以及
所述拍摄系统。
[附记E48]一种机器人系统,包括:
如附记E1至E46的任一项所述的控制装置;
所述拍摄系统;以及
所述机器人。
[附记E49]一种控制方法,是生成用于控制设有能对对象物体进行处理的处理装置且使所述处理装置移动的机器人的控制信号、以及用于使对所述对象物体进行拍摄的拍摄系统移动的控制信号的控制方法,所述控制方法包括:
基于包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方,生成第1控制信号,该第1控制信号用于使所述拍摄系统移动至所述拍摄系统对所述对象物体进行拍摄的拍摄位置和拍摄姿态中的至少一方;以及
基于所述拍摄系统以所述拍摄位置和所述拍摄姿态中的至少一方对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体,以对所述一个对象物体进行所述处理。
[附记E50]一种计算机程序,
使计算机执行如附记E49所述的控制方法。
上述各实施方式的结构要件的至少一部分可以与上述各实施方式的结构要件的至少另一部分适当组合。也可以不使用上述各实施方式的结构要件中的一部分。另外,在法令允许的范围内,援引上述各实施方式中所引用的全部公开公报及美国专利的公开来作为本文记载的一部分。
本发明不限于上述实施例,可以在不违背从权利要求书及说明书整体读取的发明的主旨或思想的范围内进行适当变更,伴随这样的变更的控制装置、控制系统、机器人系统、控制方法及计算机程序也包含在本发明的技术范围内。
标号说明
SYS 机器人系统
1 机器人
12 机械臂
13 机器人控制装置
2 拍摄系统
21、22 拍摄装置
3 控制装置
31 运算装置
311 三维位置数据生成部
312 位置姿态计算部
313 信号生成部
33 通信装置
4 末端执行器
OBJ 对象物体
W 工件
CB 容器。

Claims (110)

1.一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,
所述控制装置的特征在于,包括:
生成所述控制信号的运算装置;以及
输出由所述运算装置生成的所述控制信号的通信装置,
所述运算装置基于由所述拍摄系统从第1拍摄高度对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,使得所述保持装置接近所述第1对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行保持,
基于所述第1控制信号使得所述保持装置接近所述第1对象物体,被所述保持装置保持的所述第1对象物体从所述容器中被搬出,在所述容器外被所述保持装置释放后,基于所述拍摄系统从低于所述第1拍摄高度的第2拍摄高度对包括所述容器中收纳的所述第1对象物体组中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2 控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
2.如权利要求1所述的控制装置,其特征在于,
所述第2对象物体组的高度低于所述第1对象物体组的高度。
3.如权利要求1或2所述的控制装置,其特征在于,
从所述第2拍摄高度对所述第1对象物体组进行拍摄时所述容器中收纳的所述对象物体的数量少于从所述第1拍摄高度进行拍摄时所述容器中收纳的所述对象物体的数量。
4.如权利要求1至3的任一项所述的控制装置,其特征在于,
所述第2对象物体组中包括的所述对象物体的数量少于所述第1对象物体组中包括的所述对象物体组的数量。
5.如权利要求1至4的任一项所述的控制装置,其特征在于,
从所述第2拍摄高度对所述第2对象物体组进行拍摄时收纳有多个所述对象物体的所述容器的重量小于从所述第1拍摄高度进行拍摄时收纳有多个所述对象物体的所述容器的重量。
6.如权利要求1至5的任一项所述的控制装置,其特征在于,
所述第1拍摄高度是在位于所述第1拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第1对象物体的高度,
所述第2拍摄高度是在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第2对象物体的高度。
7.如权利要求6所述的控制装置,其特征在于,
所述第1拍摄高度是在位于所述第1拍摄高度的所述拍摄系统的所述拍摄允许范围内不包括所述第2对象物体的高度。
8.如权利要求6或7所述的控制装置,其特征在于,
所述拍摄允许范围为所述拍摄系统的焦深和景深中的至少一方。
9.如权利要求6至8的任一项所述的控制装置,其特征在于,
所述拍摄允许范围基于所述拍摄系统的视野来设定。
10.如权利要求6至9的任一项所述的控制装置,其特征在于,
所述拍摄允许范围通过用户输入来设定。
11.如权利要求1至10的任一项所述的控制装置,其特征在于,
基于所述第2控制信号使得所述保持装置接近所述第2对象物体,被所述保持装置保持的所述第2对象物体从所述容器中被搬出,在所述容器外被所述保持装置释放后,基于所述拍摄系统从低于所述第2拍摄高度的第3拍摄高度对包括所述容器中收纳的所述第2对象物体组中的至少一部分在内的第3对象物体组进行拍摄而得到的拍摄结果,生成第3 控制信号作为所述控制信号,该第3控制信号用于控制所述机器人,使得所述保持装置接近所述第3对象物体组中的一个所述对象物体即第3对象物体,以对所述第3对象物体进行保持。
12.如权利要求11所述的控制装置,其特征在于,
所述第3对象物体组的高度低于所述第2对象物体组的高度。
13.如权利要求11或12所述的控制装置,其特征在于,
所述第2拍摄高度是在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第2对象物体且不包括所述第3对象物体的高度,
所述第3拍摄高度是在位于所述第3拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第3对象物体的高度。
14.如权利要求1至13的任一项所述的控制装置,其特征在于,
所述拍摄系统包括单目摄像头和具备与所述单目摄像头不同的两个单目摄像头的立体摄像头中的至少一方。
15.一种控制系统,其特征在于,包括:
如权利要求1至14的任一项所述的控制装置;以及
所述拍摄系统。
16.一种机器人系统,其特征在于,包括:
如权利要求1至14的任一项所述的控制装置;
所述拍摄系统;以及
所述机器人。
17.一种控制方法,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,
所述控制方法的特征在于,包括:
基于由所述拍摄系统从第1拍摄高度对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,使得所述保持装置接近所述第1对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行保持;以及
基于所述第1控制信号使得所述保持装置接近所述第1对象物体,被所述保持装置保持的所述第1对象物体从所述容器中被搬出,在所述容器外被所述保持装置释放后,基于所述拍摄系统从低于所述第1拍摄高度的第2 拍摄高度对包括所述容器中收纳的所述第1对象物体组中的至少一部分在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
18.一种计算机程序,其特征在于,
使计算机执行如权利要求17所述的控制方法。
19.一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行处理的处理装置和对所述对象物体进行拍摄的拍摄系统,并且使所述处理装置和所述拍摄系统移动,
所述控制装置的特征在于,包括:
生成所述控制信号的运算装置;以及
输出由所述运算装置生成的所述控制信号的通信装置,
所述运算装置基于所述拍摄系统对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,使得所述拍摄系统移动至对所述对象物体进行拍摄的拍摄高度,
基于所述拍摄系统在所述拍摄高度对包括所述容器中收纳的所述第1对象物体组中的至少一部分所述对象物体在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行所述处理。
20.如权利要求19所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,决定所述拍摄高度,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄高度的所述第1控制信号。
21.如权利要求19或20所述的控制装置,其特征在于,
所述运算装置基于所述拍摄结果,计算所述第1对象物体组的高度,
基于所述第1对象物体组的高度和所述拍摄系统的拍摄允许范围,决定所述拍摄高度。
22.如权利要求19至21的任一项所述的控制装置,其特征在于,
所述拍摄高度是在位于所述拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第1对象物体的高度。
23.如权利要求19至22的任一项所述的控制装置,其特征在于,
所述处理装置是能保持所述对象物体的保持装置,
将所述拍摄高度设为第1拍摄高度时,
基于所述第2控制信号使得所述保持装置接近所述第1对象物体,被所述保持装置保持的所述第1对象物体从所述容器被搬出,在所述容器外被所述保持装置释放后,
所述运算装置基于所述拍摄系统对包括所述容器中收纳的所述第2对象物体组中的至少一部分在内的第3对象物体组的拍摄结果,生成第3控制信号作为所述控制信号,该第3控制信号用于控制所述机器人以使得所述拍摄系统移动至低于所述第1拍摄高度的第2拍摄高度。
24.如权利要求23所述的控制装置,其特征在于,
所述第3对象物体组为所述第2对象物体组,
生成所述第3控制信号所用的所述拍摄系统对所述第3对象物体组的拍摄结果,为生成所述第2控制信号所用的所述拍摄系统对所述第2对象物体组的所述拍摄结果。
25.如权利要求23或24所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述第3对象物体组的所述拍摄结果,决定所述第2拍摄高度,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述第2拍摄高度的所述第3控制信号。
26.如权利要求23至25的任一项所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统在所述第2拍摄高度对包括所述容器中收纳的所述第3对象物体组中的至少一部分所述对象物体在内的第4对象物体组进行拍摄而得到的拍摄结果,生成第4控制信号作为所述控制信号,该第4控制信号用于控制所述机器人,使得所述保持装置接近所述第4对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
27.如权利要求26所述的控制装置,其特征在于,
所述第4对象物体组的高度低于所述第2对象物体组的高度。
28.如权利要求26或27所述的控制装置,其特征在于,
所述第1拍摄高度是在位于所述第1拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第1对象物体且不包括所述第2对象物体的高度,
所述第2拍摄高度是在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第2对象物体的高度。
29.如权利要求21、22或28所述的控制装置,其特征在于,
所述拍摄允许范围为所述拍摄系统的焦深和景深中的至少一方。
30.如权利要求21、22、28或29所述的控制装置,其特征在于,
所述拍摄允许范围基于所述拍摄系统的视野来设定。
31.如权利要求21、22、28至30的任一项所述的控制装置,其特征在于,
所述拍摄允许范围通过用户输入来设定。
32.如权利要求19至31的任一项所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,生成所述第1控制信号,该第1控制信号用于控制所述机器人,使得所述拍摄系统移动至所述拍摄系统对所述对象物体进行拍摄的姿态即拍摄姿态、以及所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即拍摄水平位置中的至少一方。
33.如权利要求32所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,决定所述拍摄姿态和所述拍摄水平位置中的至少一方,
生成所述第1控制信号,该第1控制信号用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄姿态和所述拍摄水平位置中的至少一方。
34.如权利要求19至33的任一项所述的控制装置,其特征在于,
所述拍摄系统包括单目摄像头和具备与所述单目摄像头不同的两个单目摄像头的立体摄像头中的至少一方。
35.一种控制系统,其特征在于,包括:
如权利要求19至33的任一项所述的控制装置;以及
所述拍摄系统。
36.一种机器人系统,其特征在于,包括:
如权利要求19至33的任一项所述的控制装置;
所述拍摄系统;以及
所述机器人。
37.一种控制方法,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行处理的处理装置和对所述对象物体进行拍摄的拍摄系统,并且使所述处理装置和所述拍摄系统移动,
所述控制方法的特征在于,包括:
基于所述拍摄系统对包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,使得所述拍摄系统移动至对所述对象物体进行拍摄的拍摄高度;以及
基于所述拍摄系统在所述拍摄高度对包括所述容器中收纳的所述第1对象物体组中的至少一部分所述对象物体在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体即第1对象物体,以对所述第1对象物体进行所述处理。
38.一种计算机程序,其特征在于,
使计算机执行如权利要求37所述的控制方法。
39.一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,
所述控制装置的特征在于,包括:
生成所述控制信号的运算装置;以及
输出由所述运算装置生成的所述控制信号的通信装置,
容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持,
所述机器人被控制为使得对所述第1对象物体进行保持的所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的位置,
所述运算装置基于在随所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的所述位置而产生的所述拍摄系统的移动路径上,所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于从所述保持装置释放所述第1对象物体后的位置开始控制所述机器人。
40.如权利要求39所述的控制装置,其特征在于,
所述第1对象物体组的所述拍摄结果为所述拍摄系统沿所述移动路径移动的同时对所述容器中收纳的所述第1对象物体组进行拍摄而得到的结果。
41.如权利要求39或40所述的控制装置,其特征在于,
基于根据所述第1控制信号移动的所述拍摄系统对包括所述容器中收纳的所述第1对象物体组中的至少一部分所述对象物体在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
42.如权利要求39至41的任一项所述的控制装置,其特征在于,
所述第1控制信号为用于控制所述机器人以使得所述拍摄系统从所述保持装置释放所述第1对象物体后的位置移动至所述拍摄系统对所述容器中收纳的所述对象物体进行拍摄的拍摄高度的信号。
43.如权利要求42所述的控制装置,其特征在于,
所述第1控制信号为用于控制所述机器人以使得所述拍摄系统从所述保持装置释放所述第1对象物体的位置移动至所述拍摄高度的信号。
44.如权利要求42或43所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,决定所述拍摄高度,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄高度的所述第1控制信号。
45.如权利要求42至44的任一项所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,计算所述第1对象物体组的高度,
基于所述第1对象物体组的高度和所述拍摄系统的拍摄允许范围,决定所述拍摄高度。
46.如权利要求42至45的任一项所述的控制装置,其特征在于,
所述运算装置基于根据所述第1控制信号移动至所述拍摄高度的所述拍摄系统对包括所述容器中收纳的所述第1对象物体组中的至少一部分所述对象物体在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
47.如权利要求46所述的控制装置,其特征在于,
所述拍摄高度是在位于所述拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第2对象物体的高度。
48.如权利要求46或47所述的控制装置,其特征在于,
将所述拍摄高度设为第1拍摄高度时,
基于所述第2控制信号使得所述第2对象物体被所述保持装置保持,
所述机器人被控制为使得对所述第2对象物体进行保持的所述保持装置从所述容器移动至所述容器外的释放所述第2对象物体的位置,
所述运算装置基于在随所述保持装置从所述容器移动至所述容器外的释放所述第2对象物体的所述位置而产生的所述拍摄系统的移动路径上,所述拍摄系统对包括所述容器中收纳的所述第2对象物体组中的至少一部分所述对象物体在内的第3对象物体组进行拍摄而得到的拍摄结果,生成第3控制信号作为所述控制信号,该第3控制信号用于控制所述机器人,使得所述拍摄系统从所述保持装置释放所述第2对象物体后的位置移动至低于所述第1拍摄高度的第2拍摄高度。
49.如权利要求48所述的控制装置,其特征在于,
所述第3对象物体组的所述拍摄结果为所述拍摄系统沿着随所述保持装置从所述容器移动至所述容器外的释放所述第2对象物体的所述位置而产生的所述拍摄系统的所述移动路径进行移动的同时、对所述容器中收纳的所述第3对象物体组进行拍摄而得到的结果。
50.如权利要求48或49所述的控制装置,其特征在于,
所述第3控制信号为用于控制所述机器人以使得所述拍摄系统从所述保持装置释放所述第2对象物体的位置移动至所述第2拍摄高度的信号。
51.如权利要求48至50的任一项所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述第3对象物体组的所述拍摄结果,决定所述第2拍摄高度,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述第2拍摄高度的所述第3控制信号。
52.如权利要求48至51的任一项所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统在所述第2拍摄高度对包括所述容器中收纳的所述第3对象物体组中的至少一部分所述对象物体在内的第4对象物体组进行拍摄而得到的拍摄结果,生成第4控制信号作为所述控制信号,该第4控制信号用于控制所述机器人,使得所述保持装置接近所述第4对象物体组中的一个所述对象物体即第3对象物体,以对所述第3对象物体进行保持。
53.如权利要求52所述的控制装置,其特征在于,
所述第4对象物体组的高度低于所述第2对象物体组的高度。
54.如权利要求52或53所述的控制装置,其特征在于,
所述第1拍摄高度是在位于所述第1拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第2对象物体且不包括所述第3对象物体的高度,
所述第2拍摄高度是在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第3对象物体的高度。
55.如权利要求45、47或54所述的控制装置,其特征在于,
所述拍摄允许范围为所述拍摄系统的焦深和景深中的至少一方。
56.如权利要求45、47、54或55所述的控制装置,其特征在于,
所述拍摄允许范围基于所述拍摄系统的视野来设定。
57.如权利要求45、47及54至56的任一项所述的控制装置,其特征在于,
所述拍摄允许范围通过用户输入来设定。
58.如权利要求39至57的任一项所述的控制装置,其特征在于,
所述第1控制信号为用于控制所述机器人以使得所述拍摄系统从所述保持装置释放所述第1对象物体后的位置移动至所述拍摄系统对所述容器中收纳的所述对象物体进行拍摄的姿态即拍摄姿态、和所述拍摄系统对所述容器中收纳的所述对象物体进行拍摄的水平面上的位置即拍摄水平位置中的至少一方的信号。
59.如权利要求58所述的控制装置,其特征在于,
所述运算装置基于在所述拍摄系统的所述移动路径上,所述拍摄系统对所述容器中收纳的所述第1对象物体组进行拍摄而得到的所述拍摄结果,决定所述拍摄姿态和所述拍摄水平位置中的至少一方,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄姿态和所述拍摄水平位置中的至少一方的所述第1控制信号。
60.如权利要求39至59的任一项所述的控制装置,其特征在于,
所述拍摄系统包括单目摄像头和具备与所述单目摄像头不同的两个单目摄像头的立体摄像头中的至少一方。
61.一种控制系统,其特征在于,包括:
如权利要求39至60的任一项所述的控制装置;以及
所述拍摄系统。
62.一种机器人系统,其特征在于,包括:
如权利要求39至60的任一项所述的控制装置;
所述拍摄系统;以及
所述机器人。
63.一种控制方法,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,
所述控制方法的特征在于,
容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持,
所述机器人被控制为使得对所述第1对象物体进行保持的所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的位置,
所述控制方法包括:
基于在随所述保持装置从所述容器移动至所述容器外的释放所述第1对象物体的所述位置而产生的所述拍摄系统的移动路径上,所述拍摄系统对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于从所述保持装置释放所述第1对象物体后的位置开始控制所述机器人。
64.一种计算机程序,其特征在于,
使计算机执行如权利要求63所述的控制方法。
65.一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,
所述控制装置的特征在于,包括:
生成所述控制信号的运算装置;以及
输出由所述运算装置生成的所述控制信号的通信装置,
所述运算装置在容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持后、被所述保持装置保持的所述第1对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内,基于由所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于在所述保持装置释放所述第1对象物体后控制所述机器人。
66.如权利要求65所述的控制装置,其特征在于,
对所述容器的内部进行拍摄而得到的拍摄结果包含对包括所述容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组进行拍摄而得到的拍摄结果。
67.如权利要求66所述的控制装置,其特征在于,
基于根据所述第1控制信号移动的所述拍摄系统对包括所述容器中收纳的所述第1对象物体组中的至少一部分所述对象物体在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述保持装置接近所述第2对象物体组中的一个所述对象物体即第2对象物体,以对所述第2对象物体进行保持。
68.如权利要求67所述的控制装置,其特征在于,
所述第1控制信号为用于控制所述机器人以在所述保持装置释放所述第1对象物体后使得所述拍摄系统移动至所述拍摄系统对所述第2对象物体组进行拍摄的拍摄高度的信号。
69.如权利要求68所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,决定所述拍摄高度,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄高度的所述第1控制信号。
70.如权利要求68或69所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述第1对象物体组的所述拍摄结果,计算所述第1对象物体组的高度,
基于所述第1对象物体组的高度和所述拍摄系统的拍摄允许范围,决定所述拍摄高度。
71.如权利要求68至70的任一项所述的控制装置,其特征在于,
所述拍摄高度是在位于所述拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第2对象物体的高度。
72.如权利要求67至71的任一项所述的控制装置,其特征在于,
在根据所述第2控制信号使得所述第2对象物体被所述保持装置保持、被所述保持装置保持的所述第2对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内,基于由所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果,生成第3控制信号作为所述控制信号,该第3控制信号用于在所述保持装置释放所述第2对象物体后控制所述机器人。
73.如权利要求68至71的任一项所述的控制装置,其特征在于,
将所述拍摄高度设为第1拍摄高度时,
在根据所述第2控制信号使得所述第2对象物体被所述保持装置保持、被所述保持装置保持的所述第2对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内,基于由所述拍摄系统对包括所述容器中收纳的所述第2对象物体组中的至少一部分所述对象物体在内的第3对象物体组进行拍摄而得到的拍摄结果,生成第3控制信号作为所述控制信号,该第3控制信号用于控制所述机器人,使得在所述保持装置释放所述第2对象物体后,所述拍摄系统移动至第2拍摄高度,所述第2拍摄高度低于所述拍摄系统对所述第2对象物体组进行拍摄的所述第1拍摄高度。
74.如权利要求73所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述第3对象物体组的所述拍摄结果,决定所述第2拍摄高度,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述第2拍摄高度的所述第3控制信号。
75.如权利要求73或74所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统在所述第2拍摄高度对包括所述容器中收纳的所述第3对象物体组中的至少一部分所述对象物体在内的第4对象物体组进行拍摄而得到的拍摄结果,生成第4控制信号作为所述控制信号,该第4控制信号用于控制所述机器人,使得所述保持装置接近所述第4对象物体组中的一个所述对象物体即第3对象物体,以对所述第3对象物体进行保持。
76.如权利要求75所述的控制装置,其特征在于,
所述第4对象物体组的高度低于所述第2对象物体组的高度。
77.如权利要求75或76所述的控制装置,其特征在于,
所述第1拍摄高度是在位于所述第1拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第2对象物体且不包括所述第3对象物体的高度,
所述第2拍摄高度是在位于所述第2拍摄高度的所述拍摄系统的所述拍摄允许范围内包括所述第3对象物体的高度。
78.如权利要求70、71或77所述的控制装置,其特征在于,
所述拍摄允许范围为所述拍摄系统的焦深和景深中的至少一方。
79.如权利要求70、71、77或78所述的控制装置,其特征在于,
所述拍摄允许范围基于所述拍摄系统的视野来设定。
80.如权利要求70、71及77至79的任一项所述的控制装置,其特征在于,
所述拍摄允许范围通过用户输入来设定。
81.如权利要求65至80的任一项所述的控制装置,其特征在于,
所述第1控制信号为用于控制所述机器人以在所述保持装置释放所述第1对象物体后使得所述拍摄系统移动至所述拍摄系统进行拍摄的姿态即拍摄姿态和所述拍摄系统进行拍摄的水平面上的位置即拍摄水平位置中的至少一方的信号。
82.如权利要求81所述的控制装置,其特征在于,
所述运算装置在所述容器中收纳的所述第1对象物体被所述保持装置保持后、被所述保持装置保持的所述第1对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内,基于由所述拍摄系统对所述容器的内部进行拍摄而得到的所述拍摄结果,决定所述拍摄姿态和所述拍摄水平位置中的至少一方,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄姿态和所述拍摄水平位置中的至少一方的所述第1控制信号。
83.如权利要求65至82的任一项所述的控制装置,其特征在于,
所述拍摄系统包括单目摄像头和具备与所述单目摄像头不同的两个单目摄像头的立体摄像头中的至少一方。
84.一种控制系统,其特征在于,包括:
如权利要求65至83的任一项所述的控制装置;以及
所述拍摄系统。
85.一种机器人系统,其特征在于,包括:
如权利要求65至83的任一项所述的控制装置;
所述拍摄系统;以及
所述机器人。
86.一种控制方法,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,
所述控制方法的特征在于,包括:
在容器中收纳的多个所述对象物体中的一个所述对象物体即第1对象物体被所述保持装置保持后、被所述保持装置保持的所述第1对象物体从所述容器中被搬出并在所述容器外被所述保持装置释放为止的期间内,基于由所述拍摄系统对所述容器的内部进行拍摄而得到的拍摄结果,生成第1控制信号作为所述控制信号,该第1控制信号用于在所述保持装置释放所述第1对象物体后控制所述机器人。
87.一种计算机程序,其特征在于,
使计算机执行如权利要求86所述的控制方法。
88.一种控制装置,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行处理的处理装置和对所述对象物体进行拍摄的拍摄系统,并且使所述处理装置和所述拍摄系统移动,
所述控制装置的特征在于,包括:
生成所述控制信号的运算装置;以及
输出由所述运算装置生成的所述控制信号的通信装置,
所述运算装置基于包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,以使得所述拍摄系统移动至对所述对象物体进行拍摄的拍摄高度,
基于所述拍摄系统在所述拍摄高度对包括所述容器中收纳的所述第1对象物体组的至少一部分所述对象物体在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体,以对所述一个对象物体进行所述处理。
89.如权利要求88所述的控制装置,其特征在于,
所述第2对象物体组与所述第1对象物体组相同。
90.如权利要求88或89所述的控制装置,其特征在于,
所述拍摄高度是在位于所述拍摄高度的所述拍摄系统的拍摄允许范围内包括所述第1对象物体组中的至少一个所述对象物体的高度。
91.如权利要求88至90的任一项所述的控制装置,其特征在于,
所述第2对象物体组中的所述一个对象物体是在位于所述拍摄高度的所述拍摄系统的拍摄允许范围内所包括的所述第1对象物体组中的一个所述对象物体。
92.如权利要求88至91的任一项所述的控制装置,其特征在于,
所述运算装置基于所述容器中收纳的所述第1对象物体组的所述高度和所述容器中收纳的所述第1对象物体组的所述分量中的至少一方,决定所述拍摄高度,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄高度的所述第1控制信号。
93.如权利要求88至92的任一项所述的控制装置,其特征在于,
所述运算装置基于所述拍摄系统对所述容器中收纳的所述第1对象物体组的拍摄结果,计算所述容器中收纳的所述第1对象物体组的高度,
基于所计算出的所述高度,生成所述第1控制信号。
94.如权利要求88至93的任一项所述的控制装置,其特征在于,
所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方是基于测量装置的测量结果直接或间接计算得出的。
95.如权利要求94所述的控制装置,其特征在于,
所述拍摄系统为第1拍摄系统,
所述测量装置包括所述第1拍摄系统、以及与所述第1拍摄系统不同的第2拍摄系统中的至少一方,
所述运算装置基于作为所述测量结果的所述第1拍摄系统和所述第2拍摄系统中的至少一个的拍摄结果,计算所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方。
96.如权利要求95所述的控制装置,其特征在于,
所述第1拍摄系统和所述第2拍摄系统中的至少一个的所述拍摄结果是对所述容器中收纳的所述第1对象物体组的拍摄结果。
97.如权利要求95或96所述的控制装置,其特征在于,
所述第1拍摄系统和所述第2拍摄系统中的至少一个的所述拍摄结果是在所述容器的表面中的面向所述第1对象物体组所在空间的位置上形成的至少一个标记的拍摄结果。
98.如权利要求97所述的控制装置,其特征在于,
所述运算装置基于从所述标记的拍摄结果中检测出的所述标记的数量,计算所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方。
99.如权利要求94至98的任一项所述的控制装置,其特征在于,
所述测量装置包括能够测量所述容器中收纳的所述第1对象物体组的重量的重量传感器。
100.如权利要求94至99的任一项所述的控制装置,其特征在于,
所述测量装置包括能够检测所述容器中的所述第1对象物体组中的至少一个所述对象物体的至少一个传感器。
101.如权利要求100所述的控制装置,其特征在于,
所述运算装置基于不检测所述第1对象物体组中的至少一个所述对象物体的所述传感器的数量,计算所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方。
102.如权利要求100或101所述的控制装置,其特征在于,
所述至少一个传感器配置于所述容器。
103.如权利要求88至102的任一项所述的控制装置,其特征在于,
所述运算装置基于所述处理装置已进行所述处理的所述对象物体的数量,计算所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方。
104.如权利要求88至103的任一项所述的控制装置,其特征在于,
所述运算装置基于所述容器中收纳的所述第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方,生成所述第1控制信号,该第1控制信号用于控制所述机器人,以使得所述拍摄系统移动至所述拍摄系统对所述对象物体进行拍摄的姿态即拍摄姿态、和所述拍摄系统对所述对象物体进行拍摄的水平面上的位置即拍摄水平位置中的至少一方。
105.如权利要求104所述的控制装置,其特征在于,
所述运算装置基于所述容器中收纳的所述第1对象物体组的所述高度和所述容器中收纳的所述第1对象物体组的所述分量中的至少一方,决定所述拍摄姿态和所述拍摄水平位置中的至少一方,
生成用于控制所述机器人以使得所述拍摄系统移动至所决定的所述拍摄姿态和所述拍摄水平位置中的至少一方的所述第1控制信号。
106.如权利要求88至105的任一项所述的控制装置,其特征在于,
所述拍摄系统包括单目摄像头和具备与所述单目摄像头不同的两个单目摄像头的立体摄像头中的至少一方。
107.一种控制系统,其特征在于,包括:
如权利要求88至106的任一项所述的控制装置;以及
所述拍摄系统。
108.一种机器人系统,其特征在于,包括:
如权利要求88至106的任一项所述的控制装置;
所述拍摄系统;以及
所述机器人。
109.一种控制方法,生成用于控制机器人的控制信号,该机器人设有能对对象物体进行保持的保持装置和对所述对象物体进行拍摄的拍摄系统,并且使所述保持装置和所述拍摄系统移动,
所述控制方法的特征在于,包括:
基于包括容器中收纳的多个所述对象物体中的至少一部分在内的第1对象物体组的高度和所述容器中收纳的所述第1对象物体组的分量中的至少一方,生成第1控制信号作为所述控制信号,该第1控制信号用于控制所述机器人,以使得所述拍摄系统移动至对所述对象物体进行拍摄的拍摄高度;以及
基于所述拍摄系统在所述拍摄高度对包括所述容器中收纳的所述第1对象物体组的至少一部分所述对象物体在内的第2对象物体组进行拍摄而得到的拍摄结果,生成第2控制信号作为所述控制信号,该第2控制信号用于控制所述机器人,使得所述处理装置接近所述第2对象物体组中的一个所述对象物体,以对所述一个对象物体进行所述处理。
110.一种计算机程序,其特征在于,
使计算机执行如权利要求109所述的控制方法。
CN202380102680.5A 2023-09-28 2023-09-28 控制装置、控制系统、机器人系统、控制方法及计算机程序 Pending CN121925331A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2023/035380 WO2025069298A1 (ja) 2023-09-28 2023-09-28 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
CN121925331A true CN121925331A (zh) 2026-04-24

Family

ID=95202467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202380102680.5A Pending CN121925331A (zh) 2023-09-28 2023-09-28 控制装置、控制系统、机器人系统、控制方法及计算机程序

Country Status (2)

Country Link
CN (1) CN121925331A (zh)
WO (1) WO2025069298A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03202290A (ja) * 1989-12-27 1991-09-04 Toyota Motor Corp ばら積み物体の取出装置
JPH0430991A (ja) * 1990-05-25 1992-02-03 Toyoda Mach Works Ltd 視覚装置付ロボット
JP5769411B2 (ja) * 2010-12-15 2015-08-26 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP7591938B2 (ja) * 2021-02-10 2024-11-29 株式会社キーエンス 制御装置
WO2023127021A1 (ja) * 2021-12-27 2023-07-06 株式会社ニコン 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム

Also Published As

Publication number Publication date
WO2025069298A1 (ja) 2025-04-03

Similar Documents

Publication Publication Date Title
US9630321B2 (en) Continuous updating of plan for robotic object manipulation based on received sensor data
KR101772367B1 (ko) 스테레오와 구조화된 광 처리의 결합
JP6461369B2 (ja) 視覚光、および、赤外の投射されるパターンを検出するためのイメージャ
US9630316B2 (en) Real-time determination of object metrics for trajectory planning
US9205562B1 (en) Integration of depth points into a height map
JP6879238B2 (ja) ワークピッキング装置及びワークピッキング方法
US20170151673A1 (en) Manipulator system, and image capturing system
JP7331527B2 (ja) ロボットの動作を決定する装置、方法およびプログラム
US12222196B2 (en) Measurement system, measurement device, measurement method, and measurement program
US10455212B1 (en) Projected pattern motion/vibration for depth sensing
US11213958B2 (en) Transferring system and method for transferring an object
JP7750072B2 (ja) 画像処理装置、ロボット制御システムおよび制御方法
WO2023073780A1 (ja) 学習データの生成装置および学習データの生成方法、並びに学習データを使用する機械学習装置および機械学習方法
CN121925331A (zh) 控制装置、控制系统、机器人系统、控制方法及计算机程序
KR20250003671A (ko) 제어 장치, 제어 시스템, 로봇 시스템, 제어 방법 및 컴퓨터 프로그램
CN121925332A (zh) 控制装置、控制系统、机器人系统、控制方法和计算机程序
WO2025141878A1 (ja) 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
JPH11291187A (ja) 積荷位置姿勢認識装置
WO2025069297A1 (ja) 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
WO2025115102A1 (ja) 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
WO2026069666A1 (ja) 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
WO2025187059A1 (ja) 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
TW202430450A (zh) 物品移動裝置、其控制方法及電腦程式

Legal Events

Date Code Title Description
PB01 Publication