Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7750072B2 - Image processing device, robot control system and control method - Google Patents
[go: Go Back, main page]

JP7750072B2 - Image processing device, robot control system and control method - Google Patents

Image processing device, robot control system and control method

Info

Publication number
JP7750072B2
JP7750072B2 JP2021200235A JP2021200235A JP7750072B2 JP 7750072 B2 JP7750072 B2 JP 7750072B2 JP 2021200235 A JP2021200235 A JP 2021200235A JP 2021200235 A JP2021200235 A JP 2021200235A JP 7750072 B2 JP7750072 B2 JP 7750072B2
Authority
JP
Japan
Prior art keywords
container
orientation
camera
image
end effector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021200235A
Other languages
Japanese (ja)
Other versions
JP2023085917A (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2021200235A priority Critical patent/JP7750072B2/en
Publication of JP2023085917A publication Critical patent/JP2023085917A/en
Application granted granted Critical
Publication of JP7750072B2 publication Critical patent/JP7750072B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Manipulator (AREA)

Description

本開示は、画像処理装置、ロボット制御システムおよび制御方法に関する。 This disclosure relates to an image processing device, a robot control system, and a control method.

従来、生産現場において、コンテナ内の複数の物品を1つずつピッキングするロボットが知られている。対象物をピッキングする際にロボットがコンテナと干渉しないことが望ましい。特開2019-188516号公報(特許文献1)には、コンテナを撮像して取得された知覚情報を基に、部品箱の位置姿勢を検出し、その検出結果を用いて、コンテナとロボットとの干渉回避動作を行なうことが開示されている。 Conventionally, robots that pick multiple items one by one from a container are known at production sites. It is desirable for the robot to avoid interfering with the container when picking an object. JP 2019-188516 A (Patent Document 1) discloses a system that detects the position and orientation of a parts box based on sensory information acquired by capturing an image of the container, and then uses the detection results to perform operations to avoid interference between the container and the robot.

特開2019-188516号公報Japanese Patent Application Laid-Open No. 2019-188516

生産現場において、コンテナは、作業者やロボットなどの外部環境から意図しない力を受けて移動する可能性がある。コンテナの位置姿勢の変化に気付かないままロボットが動作し続けると、コンテナとロボットとの干渉が発生し得る。特許文献1には、コンテナの位置姿勢が変化し得る点について考慮されていない。 At production sites, containers may move due to unintended forces from the external environment, such as workers or robots. If a robot continues to operate without noticing changes in the container's position and orientation, interference between the container and robot may occur. Patent Document 1 does not take into account the possibility that the container's position and orientation may change.

本開示は、上記の問題に鑑みてなされたものであり、その目的は、コンテナとロボットとの干渉の発生を抑制することができる画像処理装置、ロボット制御システムおよび制御方法を提供することである。 This disclosure was made in consideration of the above-mentioned problems, and its purpose is to provide an image processing device, robot control system, and control method that can reduce interference between containers and robots.

本開示の一例によれば、画像処理装置は、カメラの画像に対する処理を行なう。カメラは、第1エリアから第2エリアに対象物をピックアンドプレースするエンドエフェクタに対する相対位置が一定となるように、エンドエフェクタを有するロボットに搭載される。画像処理装置は、第1取得部と、第2取得部と、検出部と、を備える。第1取得部は、第1エリアまたは第2エリアにおいて対象物を収容するコンテナの初期位置姿勢を示す初期情報を取得する。第2取得部は、ピックアンドプレースの開始後に、初期位置姿勢を有するコンテナの少なくとも一部が視野に含まれる状態のカメラの撮像によって得られる対象画像を取得する。検出部は、対象画像と初期情報とに基づいて、コンテナの位置姿勢の変化を検出する。 According to one example of the present disclosure, an image processing device processes an image from a camera. The camera is mounted on a robot having an end effector so that the relative position of the camera to the end effector that picks and places an object from a first area to a second area is constant. The image processing device includes a first acquisition unit, a second acquisition unit, and a detection unit. The first acquisition unit acquires initial information indicating the initial position and orientation of a container that holds the object in the first area or the second area. The second acquisition unit acquires an object image obtained by capturing an image of the camera after the start of pick-and-place, with at least a portion of the container having the initial position and orientation included in its field of view. The detection unit detects changes in the position and orientation of the container based on the object image and the initial information.

この開示によれば、コンテナが外部環境から意図しない力を受けて移動したとしても、コンテナの位置姿勢の変化が認識される。これにより、コンテナの位置姿勢の変化の検出に応じて、ロボットの動作の変更、停止などの適切な対応が取れる。その結果、コンテナとロボットとの干渉の発生を抑制することができる。 According to this disclosure, even if a container is moved due to an unintended force from the external environment, the change in the container's position and posture can be recognized. This allows appropriate measures to be taken, such as changing or stopping the robot's operation, in response to the detected change in the container's position and posture. As a result, interference between the container and the robot can be reduced.

上述の開示において、画像処理装置は、計測部と設定部とをさらに備える。計測部は、カメラの画像を用いて第1エリアに存在する対象物の位置姿勢を計測する。設定部は、対象物の位置姿勢に基づいて、ホームポジションから対象物をピッキングし、対象物を第2エリアにプレースし、ホームポジションに戻るためのエンドエフェクタの経路を設定する。経路は、初期位置姿勢を有するコンテナの特徴部分がカメラの視野内に含まれるときのエンドエフェクタの位置に対応する通過点を含む。対象画像は、エンドエフェクタが通過点を通過するタイミングにおけるカメラの撮像によって得られる。 In the above disclosure, the image processing device further includes a measurement unit and a setting unit. The measurement unit measures the position and orientation of an object present in the first area using an image from the camera. The setting unit sets a path for the end effector to pick up the object from the home position, place the object in the second area, and return to the home position based on the position and orientation of the object. The path includes waypoints that correspond to the position of the end effector when a characteristic portion of the container having the initial position and orientation is included in the field of view of the camera. The object image is obtained by capturing an image with the camera at the time the end effector passes through the waypoint.

上記の開示によれば、ピックアンドプレースの動作中に対象画像を取得される。そのため、対象画像を取得するための動作をピックアンドプレースの動作とは別に設定する必要がない。 According to the above disclosure, target images are acquired during the pick-and-place operation. Therefore, there is no need to set up an operation for acquiring target images separately from the pick-and-place operation.

上述の開示において、通過点は、対象物をプレースしてからホームポジションに戻るまでの間に設定される。 In the above disclosure, the waypoint is set between placing the object and returning to the home position.

上記の開示によれば、エンドエフェクタが対象物を保持していない状態で対象画像が撮像される。その結果、対象画像に、エンドエフェクタによって保持される対象物が写り込むことがない。 According to the above disclosure, an image of a target is captured when the end effector is not holding an object. As a result, the target image does not include the object being held by the end effector.

上述の開示において、コンテナは、平面視矩形の箱状である。特徴部分は、コンテナの角部、コンテナの上面と側面との稜、上面に形成されたマークのうちの少なくとも1つを含む。 In the above disclosure, the container is a rectangular box-like container in a plan view. The characteristic portion includes at least one of the corners of the container, the edges of the top and side surfaces of the container, and a mark formed on the top surface.

上記の開示によれば、対象画像に基づいて特徴部分の位置を特定することにより、コンテナの位置姿勢の変化を容易に検出できる。 According to the above disclosure, changes in the position and orientation of a container can be easily detected by identifying the position of characteristic parts based on the target image.

上述の開示において、第1取得部は、検出部によってコンテナの位置姿勢の変化が検出されたことに応じて、初期情報を取得し直す。 In the above disclosure, the first acquisition unit re-acquires the initial information in response to a change in the position and orientation of the container detected by the detection unit.

あるいは、画像処理装置は、対象画像に基づいて、コンテナの位置姿勢を特定し、特定した位置姿勢に応じて初期情報を更新する更新部をさらに備える。 Alternatively, the image processing device may further include an update unit that identifies the position and orientation of the container based on the target image and updates the initial information according to the identified position and orientation.

上記の開示によれば、コンテナの位置姿勢が変化した場合に、変化後の位置姿勢に応じた初期情報が更新される。その結果、コンテナとロボットとの干渉の発生を抑制できる。 According to the above disclosure, when the position and orientation of a container changes, the initial information is updated according to the changed position and orientation. As a result, interference between the container and the robot can be reduced.

本開示の一例によれば、ロボット制御システムは、ロボットと、カメラと、第1取得部と、第2取得部と、検出部と、を備える。ロボットは、第1エリアから第2エリアに対象物をピックアンドプレースするエンドエフェクタを有する。カメラは、エンドエフェクタとの相対位置が一定となるようにロボットに搭載される。第1取得部は、第1エリアまたは第2エリアにおいて対象物を収容するコンテナの初期位置姿勢を示す初期情報を取得する。第2取得部は、ピックアンドプレースの開始後に、初期位置姿勢を有するコンテナの少なくとも一部が視野に含まれる状態のカメラの撮像によって得られる対象画像を取得する。検出部は、対象画像と初期情報とに基づいて、コンテナの位置姿勢の変化を検出する。 According to one example of the present disclosure, a robot control system includes a robot, a camera, a first acquisition unit, a second acquisition unit, and a detection unit. The robot has an end effector that picks and places an object from a first area to a second area. The camera is mounted on the robot so that its relative position with the end effector is constant. The first acquisition unit acquires initial information indicating the initial position and orientation of a container that holds the object in the first area or the second area. The second acquisition unit acquires an object image obtained by capturing an image of the container with the initial position and orientation after the start of pick-and-place, with at least a portion of the container included in its field of view. The detection unit detects changes in the position and orientation of the container based on the object image and the initial information.

本開示の一例によれば、カメラの画像に対する処理を行なう画像処理装置の制御方法は、第1~第3のステップを備える。第1のステップは、第1エリアまたは第2エリアにおいて対象物を収容するコンテナの初期位置姿勢を示す初期情報を取得するステップである。第2のステップは、ピックアンドプレースの開始後に、初期位置姿勢を有するコンテナの少なくとも一部が視野に含まれる状態のカメラの撮像によって得られる対象画像を取得するステップである。第3のステップは、対象画像と初期情報とに基づいて、コンテナの位置姿勢の変化を検出するステップである。 According to one example of the present disclosure, a control method for an image processing device that processes camera images comprises first to third steps. The first step is a step of acquiring initial information indicating the initial position and orientation of a container that holds an object in a first area or a second area. The second step is a step of acquiring an object image obtained by capturing an image with the camera after pick-and-place has started, with at least a portion of the container having the initial position and orientation included in the field of view. The third step is a step of detecting changes in the position and orientation of the container based on the object image and the initial information.

これらの開示によっても、コンテナとロボットとの干渉の発生を抑制することができる。 These disclosures will also help prevent interference between containers and robots.

本開示によれば、コンテナとロボットとの干渉の発生を抑制することができる。 This disclosure makes it possible to reduce interference between containers and robots.

実施の形態に係るロボット制御システムの全体構成を示す概略図である。1 is a schematic diagram illustrating an overall configuration of a robot control system according to an embodiment. 図1に示すカメラの具体的な構造の概念を示す模式図である。FIG. 2 is a schematic diagram showing a concept of a specific structure of the camera shown in FIG. 1 . 図1に示す画像処理装置のハードウェア構成の一例を示す概略図である。FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of the image processing apparatus illustrated in FIG. 1 . ロボット制御システムにおいて用いられる座標系の一例を示す図である。FIG. 1 is a diagram illustrating an example of a coordinate system used in a robot control system. 図1に示す画像処理装置の機能構成の一例を示すブロック図である。FIG. 2 is a block diagram showing an example of a functional configuration of the image processing apparatus shown in FIG. 1 . コンテナの一例を示す図である。FIG. 1 illustrates an example of a container. コンテナの位置姿勢の特定方法の一例を説明する図である。10A and 10B are diagrams illustrating an example of a method for identifying the position and orientation of a container. コンテナの位置姿勢の特定方法の別の例を説明する図である。10A and 10B are diagrams illustrating another example of a method for identifying the position and orientation of a container. カメラの位置の探索処理の一例を説明する図である。FIG. 10 is a diagram illustrating an example of a search process for a camera position. コンテナの位置姿勢が変化していないときの対象画像の一例を示す図である。FIG. 10 is a diagram showing an example of a target image when the position and orientation of the container are not changed. コンテナの位置姿勢が変化しているときの対象画像の一例を示す図である。FIG. 10 is a diagram showing an example of a target image when the position and orientation of a container are changing. コンテナの位置姿勢が変化していないときの対象画像の別の例を示す図である。FIG. 10 is a diagram showing another example of a target image when the position and orientation of the container have not changed. コンテナの位置姿勢が変化しているときの対象画像の別の例を示す図である。FIG. 10 is a diagram showing another example of the target image when the position and orientation of the container are changing. コンテナの位置姿勢が変化していないときの対象画像のさらに別の例を示す図である。FIG. 10 is a diagram showing yet another example of a target image when the position and orientation of the container have not changed. コンテナの位置姿勢が変化しているときの対象画像のさらに別の例を示す図である。FIG. 10 is a diagram showing yet another example of a target image when the position and orientation of a container are changing. 画像処理装置の処理の全体の流れの一例を示すフローチャートである。10 is a flowchart illustrating an example of the overall flow of processing by the image processing device. 図16に示すステップS1のサブルーチンの処理の流れを示すフローチャートである。17 is a flowchart showing the flow of processing in a subroutine of step S1 shown in FIG. 16. 図16に示すステップS5のサブルーチンの処理の流れの一例を示すフローチャートである。17 is a flowchart showing an example of the process flow of a subroutine of step S5 shown in FIG. 16. 図16に示すステップS5のサブルーチンの処理の流れの別の例を示すフローチャートである。17 is a flowchart showing another example of the process flow of the subroutine of step S5 shown in FIG. 16. 図16に示すステップS6のサブルーチンの処理の流れの一例を示すフローチャートである。17 is a flowchart showing an example of the process flow of a subroutine of step S6 shown in FIG. 16. 変形例1に係る画像処理装置の機能構成の一例を示すブロック図である。FIG. 10 is a block diagram showing an example of a functional configuration of an image processing device according to a first modified example. 対象画像と補助画像との関係を示す図である。FIG. 10 is a diagram illustrating the relationship between a target image and an auxiliary image. 変形例1に係るステップS6のサブルーチンの処理の流れを示すフローチャートである。10 is a flowchart showing the flow of processing in a subroutine of step S6 according to Modification 1.

本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。 Embodiments of the present invention will be described in detail with reference to the drawings. Note that identical or equivalent parts in the drawings will be designated by the same reference numerals and their description will not be repeated.

§1 適用例
図1を参照して、本発明が適用される場面の一例について説明する。図1は、実施の形態に係るロボット制御システムの全体構成を示す概略図である。図1に例示されるロボット制御システム1は、たとえば生産ラインなどに組み込まれ、コンテナ5内の第1エリアからコンテナ6内の第2エリアへの対象物の移動の制御のために利用される。対象物は、コンテナ5内に収容される1以上の物品2の中から選択される。
§1 Application Example An example of a situation in which the present invention is applied will be described with reference to Figure 1. Figure 1 is a schematic diagram showing the overall configuration of a robot control system according to an embodiment. The robot control system 1 illustrated in Figure 1 is incorporated into, for example, a production line, and is used to control the movement of an object from a first area in a container 5 to a second area in a container 6. The object is selected from one or more articles 2 stored in the container 5.

図1に示されるように、ロボット制御システム1は、画像処理装置100と、カメラ200と、ロボット300と、ロボット制御装置400と、を備える。 As shown in FIG. 1, the robot control system 1 includes an image processing device 100, a camera 200, a robot 300, and a robot control device 400.

カメラ200は、物品2、コンテナ5,6などを含む被写体を撮像する。カメラ200は、撮像により得られた画像データ(以下、単に「画像」と称する。)を画像処理装置100に出力する。 The camera 200 captures images of subjects including the item 2, containers 5 and 6, etc. The camera 200 outputs image data (hereinafter simply referred to as "image") obtained by capturing the image to the image processing device 100.

カメラ200は、3Dカメラとして動作する第1モードと2Dカメラとして動作する第2モードとを有し、画像処理装置100からの撮像指示に応じたモードで被写体を撮像する。例えば、第1モードが指定された場合、カメラ200は、投影パターン光を被写体に投影しながら、被写体を撮像する。投影パターンは、例えば照射面内の所定方向に沿って明るさが周期的に変化するパターンである。第2モードが指定された場合、カメラ200は、均一な光を被写体に照射しながら、被写体を撮像する。 The camera 200 has a first mode in which it operates as a 3D camera and a second mode in which it operates as a 2D camera, and captures an image of a subject in a mode that corresponds to an image capture command from the image processing device 100. For example, when the first mode is specified, the camera 200 captures an image of the subject while projecting a projection pattern of light onto the subject. The projection pattern is, for example, a pattern in which the brightness changes periodically along a predetermined direction within the irradiation surface. When the second mode is specified, the camera 200 captures an image of the subject while irradiating the subject with uniform light.

第1モードは、コンテナ5内の1以上の物品2の位置姿勢を計測するときに指定される。第1モードの撮像により位置姿勢の計測が可能な範囲Rは、カメラ200の視野角および被写界深度に応じて定められる。 The first mode is specified when measuring the position and orientation of one or more items 2 in a container 5. The range R in which the position and orientation can be measured by imaging in the first mode is determined according to the viewing angle and depth of field of the camera 200.

第2モードは、コンテナ5,6の初期位置姿勢を特定するときに指定される。コンテナ5,6は、予め定められた面(例えば、机の上面、床面など)に置かれる。そのため、コンテナ5,6の上面の高さは既知である。従って、第2モードの撮像により得られる画像(以下、「2D画像」と称する。)を用いても、コンテナ5,6の初期位置姿勢が特定される。 The second mode is specified when determining the initial position and orientation of the containers 5 and 6. The containers 5 and 6 are placed on a predetermined surface (e.g., the top of a desk, the floor, etc.). Therefore, the height of the top surfaces of the containers 5 and 6 is known. Therefore, the initial position and orientation of the containers 5 and 6 can be determined even using images obtained by imaging in the second mode (hereinafter referred to as "2D images").

ロボット300は、対象物のピックアンドプレースを行なう。ロボット300は、例えば垂直多関節ロボットである。図1に例示されるロボット300は、ベース301と、多関節アーム302と、フランジプレート303と、支持部材304と、エンドエフェクタ305と、を含む。なお、図1では、ロボット300が模式的に描かれており、各部材の形状は、図1に示す例に限定されない。 Robot 300 picks and places objects. Robot 300 is, for example, a vertical articulated robot. The robot 300 illustrated in FIG. 1 includes a base 301, an articulated arm 302, a flange plate 303, a support member 304, and an end effector 305. Note that FIG. 1 illustrates the robot 300 in a schematic manner, and the shapes of the individual components are not limited to the example shown in FIG. 1.

ベース301は、生産現場の固定位置に設置される。多関節アーム302の一方端は、ベース301に接続される。多関節アーム302の他方端にはフランジプレート303が設けられる。フランジプレート303には、支持部材304を介してエンドエフェクタ305が取り付けられる。 The base 301 is installed at a fixed position in the production site. One end of the articulated arm 302 is connected to the base 301. A flange plate 303 is provided at the other end of the articulated arm 302. An end effector 305 is attached to the flange plate 303 via a support member 304.

エンドエフェクタ305は、コンテナ5内の第1エリアからコンテナ6内の第2エリアに対象物をピックアンドプレースする。すなわち、エンドエフェクタ305は、コンテナ5内の1以上の物品2の中の対象物をピッキングし、コンテナ6内に対象物をプレースする。エンドエフェクタ305は、例えば、二指ハンド、多指ハンド、吸着パッドなどを含む。 The end effector 305 picks and places an object from a first area in the container 5 to a second area in the container 6. That is, the end effector 305 picks an object from one or more items 2 in the container 5 and places the object in the container 6. The end effector 305 includes, for example, a two-fingered hand, a multi-fingered hand, a suction pad, etc.

カメラ200は、エンドエフェクタ305に対する相対位置が一定となるようにロボット300に搭載される。具体的には、カメラ200は、ロボット300の支持部材304に取り付けられる。 The camera 200 is mounted on the robot 300 so that its relative position with respect to the end effector 305 is constant. Specifically, the camera 200 is attached to the support member 304 of the robot 300.

ロボット制御装置400は、画像処理装置100からの移動指令に従って、多関節アーム302を制御する。移動指令は、たとえば、エンドエフェクタ305の位置姿勢(フランジプレート303におけるエンドエフェクタ305が取り付けられる面の位置姿勢とも言い換えられる)を示す。ロボット制御装置400は、エンドエフェクタ305の位置姿勢が移動指令と一致するように、多関節アーム302を制御する。 The robot control device 400 controls the articulated arm 302 in accordance with a movement command from the image processing device 100. The movement command indicates, for example, the position and orientation of the end effector 305 (which can also be said to be the position and orientation of the surface of the flange plate 303 to which the end effector 305 is attached). The robot control device 400 controls the articulated arm 302 so that the position and orientation of the end effector 305 matches the movement command.

さらに、ロボット制御装置400は、画像処理装置100からの把持指令および解放指令に従って、エンドエフェクタ305を制御する。把持指令は、エンドエフェクタ305による対象物の把持を指示する。解放指令は、エンドエフェクタ305による対象物の解放を指示する。 Furthermore, the robot control device 400 controls the end effector 305 in accordance with the grip command and release command from the image processing device 100. The grip command instructs the end effector 305 to grip an object. The release command instructs the end effector 305 to release the object.

画像処理装置100は、カメラ200から受けた画像に基づいて、エンドエフェクタ305が取るべき位置姿勢を決定する。画像処理装置100は、決定した位置姿勢へエンドエフェクタ305を移動させるための移動指令を生成し、生成した移動指令をロボット制御装置400に出力する。画像処理装置100は、決定した位置姿勢へエンドエフェクタ305が移動したタイミングにおいて、把持指令または解放指令をロボット制御装置400に出力する。 The image processing device 100 determines the position and orientation that the end effector 305 should assume based on the image received from the camera 200. The image processing device 100 generates a movement command to move the end effector 305 to the determined position and orientation, and outputs the generated movement command to the robot control device 400. The image processing device 100 outputs a grip command or release command to the robot control device 400 at the timing when the end effector 305 has moved to the determined position and orientation.

また、画像処理装置100は、カメラ200が取るべき位置姿勢を決定してもよい。画像処理装置100は、決定した位置姿勢へカメラ200を移動させるための移動指令を生成し、生成した移動指令をロボット制御装置400に出力する。画像処理装置100は、決定した位置姿勢へカメラ200が移動したタイミングにおいて、撮像指示をカメラ200に出力する。 The image processing device 100 may also determine the position and orientation that the camera 200 should assume. The image processing device 100 generates a movement command for moving the camera 200 to the determined position and orientation, and outputs the generated movement command to the robot control device 400. The image processing device 100 outputs an image capture command to the camera 200 at the timing when the camera 200 has moved to the determined position and orientation.

図1に示されるように、画像処理装置100は、情報取得部11と、画像取得部12と、検出部13と、を備える。 As shown in FIG. 1, the image processing device 100 includes an information acquisition unit 11, an image acquisition unit 12, and a detection unit 13.

情報取得部11は、コンテナ5,6の初期位置姿勢を示す初期情報を取得する。例えば、情報取得部11は、2D画像に写るコンテナ5,6の特徴部分(例えば角)の位置とコンテナ5,6の形状データとに基づいて、コンテナ5,6の初期位置姿勢を特定する。情報取得部11は、特定した初期位置姿勢を示す初期情報を生成する。 The information acquisition unit 11 acquires initial information indicating the initial positions and orientations of the containers 5 and 6. For example, the information acquisition unit 11 identifies the initial positions and orientations of the containers 5 and 6 based on the positions of characteristic parts (e.g., corners) of the containers 5 and 6 shown in the 2D image and the shape data of the containers 5 and 6. The information acquisition unit 11 generates initial information indicating the identified initial positions and orientations.

画像取得部12は、エンドエフェクタ305による対象物のピックアンドプレースの開始後に、カメラ200から、コンテナ5の少なくとも一部が写る第1対象画像と、コンテナ6の少なくとも一部が写る第2対象画像とを取得する。 After the end effector 305 starts picking and placing the object, the image acquisition unit 12 acquires from the camera 200 a first object image showing at least a portion of the container 5 and a second object image showing at least a portion of the container 6.

検出部13は、第1対象画像と初期情報とに基づいて、コンテナ5の位置姿勢の変化を検出する。さらに、検出部13は、第2対象画像と初期情報とに基づいて、コンテナ6の位置姿勢の変化を検出する。 The detection unit 13 detects changes in the position and orientation of the container 5 based on the first target image and the initial information. Furthermore, the detection unit 13 detects changes in the position and orientation of the container 6 based on the second target image and the initial information.

本実施の形態によれば、コンテナ5,6の位置姿勢の変化が検出される。そのため、コンテナ5,6が外部環境から意図しない力を受けて移動したとしても、コンテナ5,6の位置姿勢の変化が認識される。これにより、コンテナ5,6の位置姿勢の変化の検出に応じて、ロボット300の動作の変更、停止などの適切な対応が取れる。その結果、コンテナ5,6とロボット300との干渉の発生を抑制することができる。 According to this embodiment, changes in the position and orientation of the containers 5, 6 are detected. Therefore, even if the containers 5, 6 are moved due to unintended forces from the external environment, the change in the position and orientation of the containers 5, 6 is recognized. As a result, appropriate measures can be taken, such as changing or stopping the operation of the robot 300, in response to the detected change in the position and orientation of the containers 5, 6. As a result, interference between the containers 5, 6 and the robot 300 can be reduced.

§2 具体例
<カメラの構成>
図2は、図1に示すカメラの具体的な構造の概念を示す模式図である。図2に示されるように、カメラ200は、投影部21と撮像部22とを有する。投影部21は、画像処理装置100からの指示に従って任意の投影パターン光を被写体に投影する。撮像部22は、画像処理装置100からの指示に従って、投影パターン光が投影された状態の被写体を撮像する。
§2 Specific examples <Camera configuration>
Fig. 2 is a schematic diagram showing the concept of the specific structure of the camera shown in Fig. 1. As shown in Fig. 2, the camera 200 has a projection unit 21 and an imaging unit 22. The projection unit 21 projects an arbitrary projection pattern of light onto a subject in accordance with instructions from the image processing device 100. The imaging unit 22, in accordance with instructions from the image processing device 100, images the subject with the projection pattern of light projected onto it.

投影部21は、主要なコンポーネントとして、例えば、LED(Light Emitting Diode)やハロゲンランプなどの光源210と、フィルタ211と、光学系212と、を有する。投影部21は、これら光源210、フィルタ211、光学系212、図示しない鏡筒および支持構造部が互いに組付けられることで構成されたアセンブリによって構成される。 The projection unit 21 has, as its main components, a light source 210, such as an LED (Light Emitting Diode) or a halogen lamp, a filter 211, and an optical system 212. The projection unit 21 is formed by assembling together the light source 210, filter 211, optical system 212, lens barrel, and support structure (not shown).

光源210は、所定の波長の光をフィルタ211の方向に向けて照射する。フィルタ211は、画像処理装置100からの指示に従って、面内の透光率を任意に変化させる。フィルタ211は、例えばフォトマスク、液晶、DMD(Digital Mirror Device)などを含む。フィルタ211は、画像処理装置100から第1モードの撮像指示を受けると、三次元形状の計測に必要な投影パターン光を発生させる。フィルタ211は、画像処理装置100から第2モードの撮像指示を受けると、面内の透過率を均一にする。光学系212は、1以上のレンズを含む。フィルタ211を通過した光は、光学系212を介して、外部に照射される。これにより、フィルタ211の状態に応じた投影パターン光が外部空間に照射される。 The light source 210 emits light of a predetermined wavelength toward the filter 211. The filter 211 arbitrarily changes the in-plane light transmittance in accordance with instructions from the image processing device 100. The filter 211 includes, for example, a photomask, liquid crystal, or a DMD (Digital Mirror Device). When the filter 211 receives an instruction to capture images in a first mode from the image processing device 100, it generates the projection pattern light required to measure a three-dimensional shape. When the filter 211 receives an instruction to capture images in a second mode from the image processing device 100, it makes the in-plane transmittance uniform. The optical system 212 includes one or more lenses. The light that passes through the filter 211 is irradiated externally via the optical system 212. As a result, projection pattern light according to the state of the filter 211 is irradiated into external space.

撮像部22は、光学デバイスとしての撮像素子220と、光学系221と、図示しない鏡筒および支持構造部とを有している。すなわち、撮像部22は、これら撮像素子220、光学系221、鏡筒および支持構造部が互いに組付けられることで構成されたアセンブリによって構成される。撮像部22は、投影部21によって光が投影された状態の被写体を撮像する。詳しくは、光学系221を通過した光を撮像素子220が受光することにより、画像が得られる。撮像部22は、第1モードにおいて、三次元形状の計測に必要な投影パターン光が被写体に投影された状態で被写体を撮像し、第2モードにおいて、均一な光が被写体に投影された状態で被写体を撮像する。このように、撮像部22は、第1モードおよび第2モードの両者において共用される。 The imaging unit 22 has an imaging element 220 as an optical device, an optical system 221, and a lens barrel and support structure (not shown). That is, the imaging unit 22 is composed of an assembly formed by assembling the imaging element 220, optical system 221, lens barrel, and support structure together. The imaging unit 22 captures an image of an object with light projected by the projection unit 21. More specifically, an image is obtained when the imaging element 220 receives light that has passed through the optical system 221. In the first mode, the imaging unit 22 captures an object with a projection pattern light required for measuring a three-dimensional shape projected onto the object, and in the second mode, it captures an object with uniform light projected onto the object. In this way, the imaging unit 22 is shared in both the first and second modes.

カメラ200の視野角は、光学系221によって定まる。本実施の形態では、カメラ200は、第1モードおよび第2モードの両者で共用される撮像部22を有する。そのため、第1モードおよび第2モードのいずれにおいても、カメラ200の視野角は同一である。カメラ200の視野角を広げると、分解能が低下する。カメラ200は、主として、1以上の物品2の位置姿勢を計測するために利用される。そのため、カメラ200の視野角は、第1モードによって得られる画像に基づいて3D計測を行なう際に必要な分解能が得られるように設定される。 The field of view of camera 200 is determined by optical system 221. In this embodiment, camera 200 has an imaging unit 22 that is shared by both the first mode and the second mode. Therefore, the field of view of camera 200 is the same in both the first mode and the second mode. Increasing the field of view of camera 200 reduces the resolution. Camera 200 is primarily used to measure the position and orientation of one or more objects 2. Therefore, the field of view of camera 200 is set so as to obtain the resolution required when performing 3D measurement based on images obtained in the first mode.

なお、光学系221の仕様を変更することにより、高い分解能を維持しつつ、広い視野角を得ることが可能となる、ただし、この場合、光学系221のサイズが大きくなり、かつ、光学系221が重くなる。カメラ200は、上述したように、ロボット300に搭載されて移動するため、小型および軽量であることが好ましい。そのため、カメラ200の視野角は、カメラ200の移動に影響がない範囲で制限される。その結果、コンテナ5のサイズが大きく変更された場合、第1モードの撮像により位置姿勢の計測が可能な範囲Rがコンテナ5内の物品2を含むときのカメラ200の位置において、カメラ200の視野内にコンテナ5の上面501が含まれない可能性が生じ得る(図1参照)。 Note that by changing the specifications of the optical system 221, it is possible to obtain a wide field of view while maintaining high resolution. However, in this case, the size and weight of the optical system 221 will increase. As described above, the camera 200 is preferably small and lightweight because it is mounted on the robot 300 and moves. Therefore, the field of view of the camera 200 is limited to a range that does not affect the movement of the camera 200. As a result, if the size of the container 5 is changed significantly, there is a possibility that the top surface 501 of the container 5 will not be included in the field of view of the camera 200 at the position of the camera 200 when the range R in which the position and orientation can be measured by first mode imaging includes the item 2 inside the container 5 (see Figure 1).

<画像処理装置のハードウェア構成>
画像処理装置100は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム(命令コード)を実行することで、本実施の形態に係る処理を実行する。このようなプログラムは、典型的には、各種記録媒体などに格納された状態で流通し、あるいは、ネットワークなどを介して画像処理装置100にインストールされる。
<Hardware configuration of image processing device>
The image processing device 100 is typically a computer having a general-purpose architecture, and executes the processing according to the present embodiment by executing a pre-installed program (instruction code). Such a program is typically distributed in a state stored on various recording media, or is installed in the image processing device 100 via a network, etc.

このような汎用的なコンピュータを利用する場合には、本実施の形態に係る処理を実行するためのアプリケーションに加えて、コンピュータの基本的な処理を実行するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行されてもよい。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。 When using such a general-purpose computer, an OS (Operating System) for executing basic computer processing may be installed in addition to an application for executing the processing according to this embodiment. In this case, the program according to this embodiment may execute processing by calling the necessary modules, among the program modules provided as part of the OS, in a predetermined sequence at a predetermined timing. In other words, the program according to this embodiment itself may not include the modules described above, and may execute processing in cooperation with the OS. The program according to this embodiment may also be in a form that does not include some of these modules.

さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。 Furthermore, the program according to this embodiment may be provided as part of another program. In this case, the program itself does not include the modules included in the other program with which it is combined, and processing is performed in cooperation with the other program. In other words, the program according to this embodiment may be in a form that is incorporated into such other program. Note that some or all of the functions provided by the execution of the program may be implemented as dedicated hardware circuits.

図3は、図1に示す画像処理装置のハードウェア構成の一例を示す概略図である。図3に示されるように、画像処理装置100は、演算処理部であるCPU(Central Processing Unit)101と、記憶部としてのメインメモリ102およびハードディスク103と、カメラインターフェース104と、入力インターフェース105と、表示コントローラ106と、通信インターフェース107と、データリーダ/ライタ108とを含む。これらの各部は、バス109を介して、互いにデータ通信可能に接続される。 Figure 3 is a schematic diagram showing an example of the hardware configuration of the image processing device shown in Figure 1. As shown in Figure 3, the image processing device 100 includes a CPU (Central Processing Unit) 101, which is an arithmetic processing unit, a main memory 102 and a hard disk 103, which serve as storage units, a camera interface 104, an input interface 105, a display controller 106, a communication interface 107, and a data reader/writer 108. These units are connected to each other via a bus 109 so that they can communicate data with each other.

CPU101は、ハードディスク103にインストールされたプログラム(コード)をメインメモリ102に展開して、これらを所定順序で実行することで、各種の演算を実施する。メインメモリ102は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク103から読み出されたプログラムに加えて、カメラ200によって取得された画像などを保持する。さらに、ハードディスク103には、後述するような各種データなどが格納される。なお、ハードディスク103に加えて、あるいは、ハードディスク103に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。 The CPU 101 performs various calculations by loading programs (code) installed on the hard disk 103 into the main memory 102 and executing them in a predetermined order. The main memory 102 is typically a volatile storage device such as a DRAM (Dynamic Random Access Memory), and in addition to programs read from the hard disk 103, it also stores images captured by the camera 200. The hard disk 103 also stores various data, as described below. Note that a semiconductor storage device such as a flash memory may be used in addition to or instead of the hard disk 103.

カメラインターフェース104は、CPU101とカメラ200との間のデータ伝送を仲介する。すなわち、カメラインターフェース104は、カメラ200と接続される。カメラインターフェース104は、CPU101が生成した内部コマンドに従って、カメラ200に対して撮像指令を与える。撮像指令には、投影条件および撮像条件が含まれる。カメラインターフェース104は、カメラ200からの画像を一時的に蓄積するための画像バッファ104aを含む。カメラインターフェース104は、画像バッファ104aに所定コマ数の画像が蓄積されると、その蓄積された画像をメインメモリ102へ転送する。 Camera interface 104 mediates data transmission between CPU 101 and camera 200. In other words, camera interface 104 is connected to camera 200. Camera interface 104 issues image capture commands to camera 200 in accordance with internal commands generated by CPU 101. The image capture command includes projection conditions and image capture conditions. Camera interface 104 includes image buffer 104a for temporarily storing images from camera 200. When a predetermined number of images have been stored in image buffer 104a, camera interface 104 transfers the stored images to main memory 102.

入力インターフェース105は、CPU101と入力装置150との間のデータ伝送を仲介する。すなわち、入力インターフェース105は、ユーザが入力装置150に入力した入力情報を受け付ける。入力装置150は、キーボード、マウス、タッチパネルなどを含む。 The input interface 105 mediates data transmission between the CPU 101 and the input device 150. That is, the input interface 105 accepts input information entered by the user into the input device 150. The input device 150 includes a keyboard, mouse, touch panel, etc.

表示コントローラ106は、ディスプレイ160と接続され、CPU101における処理結果などをユーザに通知するようにディスプレイ160の画面を制御する。 The display controller 106 is connected to the display 160 and controls the screen of the display 160 to notify the user of processing results from the CPU 101, etc.

通信インターフェース107は、CPU101とロボット制御装置400などの外部装置との間のデータ伝送を仲介する。通信インターフェース107は、典型的には、イーサネット(登録商標)やUSB(Universal Serial Bus)などからなる。 The communication interface 107 mediates data transmission between the CPU 101 and external devices such as the robot control device 400. The communication interface 107 typically comprises Ethernet (registered trademark) or USB (Universal Serial Bus).

データリーダ/ライタ108は、CPU101と記録媒体であるメモリカード700との間のデータ伝送を仲介する。すなわち、メモリカード700には、画像処理装置100で実行されるプログラムなどが格納された状態で流通し、データリーダ/ライタ108は、このメモリカード700からプログラムを読出す。また、データリーダ/ライタ108は、CPU101の内部指令に応答して、カメラ200によって撮像された画像および/または画像処理装置100における処理結果などをメモリカード700へ書込む。なお、メモリカード700は、SD(Secure Digital)などの汎用的な半導体記憶デバイスや、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体や、CD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体等からなる。 Data reader/writer 108 mediates data transmission between CPU 101 and memory card 700, which is a recording medium. That is, memory card 700 stores programs to be executed by image processing device 100, and data reader/writer 108 reads the programs from memory card 700. In response to internal commands from CPU 101, data reader/writer 108 also writes images captured by camera 200 and/or processing results from image processing device 100 to memory card 700. Memory card 700 may be a general-purpose semiconductor storage device such as an SD (Secure Digital), a magnetic storage medium such as a flexible disk, or an optical storage medium such as a CD-ROM (Compact Disk Read Only Memory).

さらに、画像処理装置100は、RFID(Radio Frequency Identification)リーダーおよびバーコードリーダーの少なくとも一方と接続可能なインターフェースを備えていてもよい。 Furthermore, the image processing device 100 may be equipped with an interface that can be connected to at least one of an RFID (Radio Frequency Identification) reader and a barcode reader.

<座標系>
CPU101は、複数の座標系の座標値を用いて、物品2、カメラ200およびロボット300の位置姿勢を演算する。
<Coordinate system>
The CPU 101 calculates the positions and orientations of the article 2, the camera 200, and the robot 300 using coordinate values of multiple coordinate systems.

図4は、ロボット制御システムにおいて用いられる座標系の一例を示す図である。図4に示されるように、ロボット制御システム1は、ロボットベース座標系、フランジ座標系(ツール座標系とも称される)、カメラ座標系、およびワーク座標系を用いる。 Figure 4 shows an example of a coordinate system used in a robot control system. As shown in Figure 4, the robot control system 1 uses a robot base coordinate system, a flange coordinate system (also called a tool coordinate system), a camera coordinate system, and a workpiece coordinate system.

ロボットベース座標系は、ロボット300のベース301を基準とする座標系である。ロボットベース座標系は、ベース301に設定された原点Obと基底ベクトルXb,Yb,Zbとによって定められる。 The robot base coordinate system is a coordinate system based on the base 301 of the robot 300. The robot base coordinate system is defined by the origin Ob set on the base 301 and the base vectors Xb, Yb, and Zb.

フランジ座標系は、ロボット300の多関節アーム302の他方端に設けられたフランジプレート303を基準とする座標系である。フランジプレート303には支持部材304を介してエンドエフェクタ305およびカメラ200が取り付けられる。フランジ座標系は、フランジプレート303のフランジ面に設定された原点Ofと基底ベクトルXf,Yf,Zfとによって定められる。 The flange coordinate system is a coordinate system based on the flange plate 303 attached to the other end of the articulated arm 302 of the robot 300. The end effector 305 and camera 200 are attached to the flange plate 303 via a support member 304. The flange coordinate system is defined by an origin Of set on the flange surface of the flange plate 303 and basis vectors Xf, Yf, and Zf.

カメラ座標系は、カメラ200の撮像部22を基準とする座標系である。カメラ座標系は、撮像部22に設定された原点Ocと基底ベクトルXc,Yc,Zcとによって定められる。基底ベクトルZcは、撮像部22の光軸上である。 The camera coordinate system is a coordinate system based on the imaging unit 22 of the camera 200. The camera coordinate system is defined by an origin Oc set in the imaging unit 22 and base vectors Xc, Yc, and Zc. The base vector Zc is on the optical axis of the imaging unit 22.

ワーク座標系は、物品2を基準とする座標系である。ワーク座標系は、物品2に設定された原点Owと基底ベクトルXw,Yw,Zwとによって定められる。 The work coordinate system is a coordinate system based on item 2. The work coordinate system is defined by the origin Ow set on item 2 and the base vectors Xw, Yw, and Zw.

カメラ200から受けた画像に基づいて検出される物品2の位置姿勢は、たとえばカメラ座標系をワーク座標系に変換する座標変換行列CWによって示される。座標変換行列CWは、カメラ座標系におけるワーク座標系の原点Owの位置および基底ベクトルXw,Yw,Zwを表す。 The position and orientation of the article 2 detected based on the image received from the camera 200 is indicated by, for example , a coordinate transformation matrix CHW that transforms the camera coordinate system into the work coordinate system. The coordinate transformation matrix CHW represents the position of the origin Ow of the work coordinate system in the camera coordinate system and the base vectors Xw, Yw, and Zw.

カメラ200は、支持部材304を介してフランジプレート303に固定される。そのため、カメラ200とフランジプレート303との相対位置関係は一定である。当該相対位置関係は、たとえばフランジ座標系をカメラ座標系に変換する座標変換行列FCによって示される。座標変換行列FCは、フランジ座標系におけるカメラ座標系の原点Ocの位置および基底ベクトルXc,Yc,Zcを表す。座標変換行列FCは、固定値で表され、事前に実施されるキャリブレーションによって求められる。キャリブレーションとして、たとえば、ロボット300を動作させながら、カメラ200の撮像部22で固定位置に設置されたマーカを撮像する公知のハンドアイキャリブレーションが採用され得る。 The camera 200 is fixed to the flange plate 303 via a support member 304. Therefore, the relative positional relationship between the camera 200 and the flange plate 303 is constant. This relative positional relationship is represented, for example , by a coordinate transformation matrix FHC that transforms the flange coordinate system into the camera coordinate system. The coordinate transformation matrix FHC represents the position of the origin Oc of the camera coordinate system in the flange coordinate system and the basis vectors Xc, Yc, and Zc . The coordinate transformation matrix FHC is represented by fixed values and is determined by calibration that is performed in advance. For example, the calibration may employ known hand-eye calibration in which the imaging unit 22 of the camera 200 captures an image of a marker installed at a fixed position while the robot 300 is operating.

画像処理装置100からロボット制御装置400に出力される移動指令は、たとえばロボットベース座標系をフランジ座標系に変換する座標変換行列BFによって示される。座標変換行列BFは、ロボットベース座標系におけるフランジ座標系の原点Ofと基底ベクトルXf,Yf,Zfを表す。 The movement command output from the image processing device 100 to the robot control device 400 is represented by, for example, a coordinate transformation matrix BH F that transforms the robot base coordinate system into the flange coordinate system. The coordinate transformation matrix BH F represents the origin Of and the base vectors Xf, Yf, and Zf of the flange coordinate system in the robot base coordinate system.

ロボットベース座標系におけるカメラ200の位置姿勢は、たとえばロボットベース座標系をカメラ座標系に変換する座標変換行列BCによって示される。座標変換行列BCは、
BCBFFC
を満たす。上述したように、そのため、座標変換行列FCは、固定値で表される。そのため、CPU101は、移動先のカメラ200の位置姿勢から、ロボット制御装置400に出力すべき移動指令を演算できる。
The position and orientation of the camera 200 in the robot base coordinate system is indicated by, for example, a coordinate transformation matrix B H C that transforms the robot base coordinate system into the camera coordinate system. The coordinate transformation matrix B H C is expressed as follows:
B H C = B H FF H C
As described above, the coordinate transformation matrix F H C is expressed by fixed values. Therefore, the CPU 101 can calculate the movement command to be output to the robot control device 400 from the position and orientation of the camera 200 at the movement destination.

ロボットベース座標系における物品2の位置姿勢は、たとえばロボットベース座標系をワーク座標系に変換する座標変換行列BWによって示される。座標変換行列BWは、
BWBFFCCW
を満たす。上述したように、座標変換行列CWは、カメラ座標系における物品2の位置姿勢を示し、カメラ200から受けた画像に基づいて検出される。そのため、CPU101は、ロボット制御装置400に出力した移動指令および画像に基づく計測結果を用いて、ロボットベース座標系における物品2の位置姿勢を演算できる。
The position and orientation of the article 2 in the robot base coordinate system is represented by, for example , a coordinate transformation matrix BHW that transforms the robot base coordinate system into the workpiece coordinate system. The coordinate transformation matrix BHW is expressed as follows:
B H W = B H FF H CC H W
As described above, the coordinate transformation matrix C H W indicates the position and orientation of the article 2 in the camera coordinate system, and is detected based on the image received from the camera 200. Therefore, the CPU 101 can calculate the position and orientation of the article 2 in the robot base coordinate system using the movement command output to the robot control device 400 and the measurement results based on the image.

<画像処理装置の機能構成例>
図5は、図1に示す画像処理装置の機能構成の一例を示すブロック図である。図5に示されるように、画像処理装置100は、記憶部10と、情報取得部11と、画像取得部12と、検出部13と、形状データ取得部14と、計測部15と、設定部16と、指令部17と、を備える。記憶部10は、図3に示すメインメモリ102およびハードディスク103によって実現される。情報取得部11、画像取得部12、検出部13、形状データ取得部14、計測部15、設定部16、および指令部17は、図3に示すCPU101がハードディスク103に格納されたプログラムを実行することにより実現される。
<Example of functional configuration of image processing device>
Fig. 5 is a block diagram showing an example of the functional configuration of the image processing device shown in Fig. 1. As shown in Fig. 5, the image processing device 100 includes a storage unit 10, an information acquisition unit 11, an image acquisition unit 12, a detection unit 13, a shape data acquisition unit 14, a measurement unit 15, a setting unit 16, and a command unit 17. The storage unit 10 is realized by the main memory 102 and the hard disk 103 shown in Fig. 3. The information acquisition unit 11, the image acquisition unit 12, the detection unit 13, the shape data acquisition unit 14, the measurement unit 15, the setting unit 16, and the command unit 17 are realized by the CPU 101 shown in Fig. 3 executing a program stored on the hard disk 103.

(記憶部)
記憶部10は、キャリブレーションデータ10aと、複数のテンプレートデータ10bと、コンテナ形状データ10cと、第1初期情報10dと、第2初期情報10eと、少なくとも1つの把持点データ10fと、ホームポジションデータ10gと、を記憶する。
(Storage part)
The memory unit 10 stores calibration data 10a, multiple template data 10b, container shape data 10c, first initial information 10d, second initial information 10e, at least one gripping point data 10f, and home position data 10g.

キャリブレーションデータ10aは、カメラ200とフランジプレート303との相対位置関係を定義付けるデータである。キャリブレーションデータ10aは、例えば公知のハンドアイキャリブレーションによって予め生成され、記憶部10に格納される。 The calibration data 10a is data that defines the relative positional relationship between the camera 200 and the flange plate 303. The calibration data 10a is generated in advance, for example, by known hand-eye calibration, and stored in the memory unit 10.

複数のテンプレートデータ10bは、仮想空間上において、物品2と同一形状のモデルを複数の仮想視点からそれぞれ見たときのモデルの表面上の点の座標を示す。複数のテンプレートデータ10bは、物品2の三次元形状を示すデータに基づいて予め作成され、記憶部10に格納される。 The multiple template data 10b indicate the coordinates of points on the surface of a model having the same shape as the item 2 when viewed from multiple virtual viewpoints in virtual space. The multiple template data 10b are created in advance based on data indicating the three-dimensional shape of the item 2 and stored in the memory unit 10.

コンテナ形状データ10cは、コンテナ5,6の三次元形状を示す。コンテナ形状データ10cは、形状データ取得部14によって取得され、記憶部10に格納される。 Container shape data 10c indicates the three-dimensional shape of containers 5 and 6. Container shape data 10c is acquired by the shape data acquisition unit 14 and stored in the memory unit 10.

図6は、コンテナの一例を示す図である。図6に示されるように、コンテナ5は、平面視矩形の箱状であり、矩形枠状の上面501を有する。コンテナ形状データ10cは、コンテナ5の幅W、奥行D、高さH、側壁の厚みT、深さH2などを示す。 Figure 6 is a diagram showing an example of a container. As shown in Figure 6, the container 5 is a rectangular box in plan view, and has a rectangular frame-shaped top surface 501. The container shape data 10c indicates the width W, depth D, height H, side wall thickness T, depth H2, etc. of the container 5.

上面501には、1以上のマーク502が形成されていてもよい。図6に示す例では、コンテナ5の中心に対して対称な2つの位置にマーク502が形成されている。上面501に1以上のマーク502が形成されている場合、コンテナ形状データ10cは、さらに、上面501の角504~507の位置と、マーク502の位置およびマーク502の近傍の稜508(または稜510)を含む直線の式との相対関係を示してもよい。 One or more marks 502 may be formed on the top surface 501. In the example shown in FIG. 6, the marks 502 are formed at two positions symmetrical with respect to the center of the container 5. When one or more marks 502 are formed on the top surface 501, the container shape data 10c may further indicate the relative relationship between the positions of the corners 504-507 of the top surface 501 and the equation of a straight line including the position of the mark 502 and the edge 508 (or edge 510) near the mark 502.

コンテナ6は、コンテナ5と同じ形状を有していてもよいし、コンテナ5と異なる形状を有していてもよい。コンテナ6がコンテナ5と同じ形状を有する場合、コンテナ形状データ10cは、コンテナ5,6に共通の三次元形状を示す。コンテナ6がコンテナ5と異なる形状を有する場合、コンテナ形状データ10cは、コンテナ5,6の各々の三次元形状を示す。 Container 6 may have the same shape as container 5, or may have a different shape from container 5. If container 6 has the same shape as container 5, container shape data 10c indicates the three-dimensional shape common to containers 5 and 6. If container 6 has a different shape from container 5, container shape data 10c indicates the three-dimensional shapes of each of containers 5 and 6.

第1初期情報10dは、コンテナ5の初期位置姿勢を示す。具体的には、第1初期情報10dは、例えばロボットベース座標系の空間において、初期位置姿勢のコンテナ5が占める範囲を示す。第1初期情報10dは、情報取得部11によって生成され、記憶部10に格納される。 The first initial information 10d indicates the initial position and orientation of the container 5. Specifically, the first initial information 10d indicates the range occupied by the container 5 in its initial position and orientation, for example, in the space of the robot base coordinate system. The first initial information 10d is generated by the information acquisition unit 11 and stored in the memory unit 10.

第2初期情報10eは、コンテナ6の初期位置姿勢を示す。具体的には、第2初期情報10eは、例えばロボットベース座標系の空間において、初期位置姿勢のコンテナ6が占める範囲を示す。第2初期情報10eは、情報取得部11によって生成され、記憶部10に格納される。 The second initial information 10e indicates the initial position and orientation of the container 6. Specifically, the second initial information 10e indicates the range occupied by the container 6 in its initial position and orientation, for example, in the space of the robot base coordinate system. The second initial information 10e is generated by the information acquisition unit 11 and stored in the memory unit 10.

把持点データ10fは、物品2に対する、当該物品2をピッキングするときのエンドエフェクタ305の相対位置姿勢を示す。把持点データ10fは、例えば物品2のモデルおよびエンドエフェクタ305のモデルを用いて予め作成され、記憶部10に格納される。 The gripping point data 10f indicates the relative position and orientation of the end effector 305 with respect to the item 2 when picking up the item 2. The gripping point data 10f is created in advance using, for example, a model of the item 2 and a model of the end effector 305, and is stored in the memory unit 10.

ホームポジションデータ10gは、エンドエフェクタ305のホームポジションを示す。ホームポジションは、例えばロボットベース座標系で表される。ホームポジションは、例えば、コンテナ5が理想的な配置場所に置かれたときのコンテナ5の中心の上方であり、かつ、第1モードの撮像により位置姿勢の計測が可能な範囲Rがコンテナ5内となる位置である。ホームポジションデータ10gは、コンテナ5の理想的な配置場所に応じて予め作成され、記憶部10に格納される。 The home position data 10g indicates the home position of the end effector 305. The home position is expressed, for example, in a robot base coordinate system. The home position is, for example, above the center of the container 5 when the container 5 is placed in an ideal location, and is a position within the container 5 where the range R within which the position and orientation can be measured using first mode imaging is within the container 5. The home position data 10g is created in advance according to the ideal location of the container 5 and stored in the memory unit 10.

(形状データ取得部)
形状データ取得部14は、例えば以下の取得方法a~eのいずれかに従って、コンテナ形状データ10cを取得する。
(shape data acquisition unit)
The shape data acquisition unit 14 acquires the container shape data 10c according to, for example, one of the following acquisition methods a to e.

[取得方法a]形状データ取得部14は、コンテナ5,6の形状(例えば、幅W、奥行D、高さH、側壁の厚みT、深さH2など)の入力を促す画面をディスプレイ160に表示し、入力装置150への入力に応じてコンテナ形状データ10cを生成する。 [Acquisition method a] The shape data acquisition unit 14 displays a screen on the display 160 prompting input of the shape of the containers 5 and 6 (e.g., width W, depth D, height H, side wall thickness T, depth H2, etc.), and generates container shape data 10c in response to the input to the input device 150.

[取得方法b]形状データ取得部14は、コンテナ5,6の三次元形状を示すCADデータを外部装置から取得し、当該CADデータを解析して、コンテナ形状データ10cを生成する。 [Acquisition method b] The shape data acquisition unit 14 acquires CAD data indicating the three-dimensional shape of the containers 5 and 6 from an external device, analyzes the CAD data, and generates container shape data 10c.

[取得方法c]コンテナ5,6には、コンテナ形状データ10cを記憶するRFIDタグが取り付けられている。形状データ取得部14は、RFIDリーダーを介して、当該RFIDタグからコンテナ形状データ10cを取得する。 [Acquisition method c] An RFID tag that stores container shape data 10c is attached to the containers 5 and 6. The shape data acquisition unit 14 acquires the container shape data 10c from the RFID tag via an RFID reader.

[取得方法d]コンテナ5,6には、コンテナ形状データ10cと関連付けられたバーコードが印刷されている。形状データ取得部14は、コンテナ5,6の種類ごとに、バーコードとコンテナ形状データ10cとを対応付けて記憶している。形状データ取得部14は、バーコードリーダーによって読み取られたバーコードに対応するコンテナ形状データ10cを取得する。 [Acquisition method d] A barcode associated with container shape data 10c is printed on the containers 5 and 6. The shape data acquisition unit 14 stores the barcode and container shape data 10c associated with each type of container 5 and 6. The shape data acquisition unit 14 acquires the container shape data 10c corresponding to the barcode read by the barcode reader.

[取得方法e]コンテナ5の側壁外面が視野に含まれるようにカメラ200の位置を手動で調整する。第1モードの撮像によって得られた画像を用いた3D計測により、コンテナ5の高さHを取得する。また、コンテナ5の側壁内面が視野に含まれるようにカメラ200の位置を手動で調整する。第1モードの撮像によって得られた画像を用いた3D計測により、コンテナ5の深さH2を取得する。さらに、コンテナ5の上面501が視野に含まれるようにカメラ200の位置を手動で調整する。第2モードの撮像によって得られた2D画像により、コンテナ5の幅W、奥行D、および側壁の厚みTを取得する。同様に、コンテナ6の高さH、幅W、奥行D、側壁の厚みT、および深さH2を取得する。 [Acquisition method e] The position of the camera 200 is manually adjusted so that the outer surface of the side wall of the container 5 is included in the field of view. The height H of the container 5 is obtained by 3D measurement using the image obtained by imaging in the first mode. The position of the camera 200 is also manually adjusted so that the inner surface of the side wall of the container 5 is included in the field of view. The depth H2 of the container 5 is obtained by 3D measurement using the image obtained by imaging in the first mode. The position of the camera 200 is also manually adjusted so that the top surface 501 of the container 5 is included in the field of view. The width W, depth D, and side wall thickness T of the container 5 are obtained by 2D images obtained by imaging in the second mode. Similarly, the height H, width W, depth D, side wall thickness T, and depth H2 of the container 6 are obtained.

(画像取得部)
画像取得部12は、カメラ200に撮像指示を出力し、カメラ200から画像を取得する。画像取得部12は、コンテナ5,6の初期位置姿勢を特定する際には、第2モードの撮像指示を出力する。画像取得部12は、物品2の位置姿勢を計測する際には、第1モードの撮像指示を出力する。
(Image acquisition unit)
The image acquisition unit 12 outputs an image capture instruction to the camera 200 and acquires an image from the camera 200. The image acquisition unit 12 outputs an image capture instruction in the second mode when identifying the initial positions and orientations of the containers 5 and 6. The image acquisition unit 12 outputs an image capture instruction in the first mode when measuring the position and orientation of the item 2.

さらに、画像取得部12は、ピックアンドプレースの開始後に、検出部13から指示に応じて、第2モードの撮像指示を出力し、コンテナ5,6の少なくとも一部がそれぞれ写る第1対象画像および第2対象画像を取得する。 Furthermore, after pick-and-place begins, the image acquisition unit 12 outputs an image capture instruction for the second mode in response to an instruction from the detection unit 13, and acquires a first target image and a second target image that each show at least a portion of the containers 5 and 6.

(情報取得部)
情報取得部11は、コンテナ5の初期位置姿勢を示す第1初期情報10dと、コンテナ6の初期位置姿勢を示す第2初期情報10eとを取得する。図5に示されるように、情報取得部11は、特定部11aおよび探索部11bを含む。
(Information acquisition department)
The information acquisition unit 11 acquires first initial information 10d indicating the initial position and orientation of the container 5 and second initial information 10e indicating the initial position and orientation of the container 6. As shown in Fig. 5, the information acquisition unit 11 includes an identification unit 11a and a search unit 11b.

(特定部)
特定部11aは、第2モードの撮像により得られた2D画像とコンテナ形状データ10cとを用いて、コンテナ5の位置姿勢を特定する。なお、後述するように、2D画像は、カメラ200の撮像部22の光軸が鉛直方向に平行である(言い換えると、撮像部22の光軸がコンテナ5の上面501に直交する)ときの撮像により得られることが好ましい。
(Specific section)
The identification unit 11a uses the 2D image obtained by imaging in the second mode and the container shape data 10c to identify the position and orientation of the container 5. As will be described later, it is preferable that the 2D image be obtained by imaging when the optical axis of the imaging unit 22 of the camera 200 is parallel to the vertical direction (in other words, the optical axis of the imaging unit 22 is perpendicular to the top surface 501 of the container 5).

図7は、コンテナの位置姿勢の特定方法の一例を説明する図である。特定部11aは、コンテナ形状データ10cによって示される高さHに基づいて、コンテナ5の上面501を含む仮想面90を特定する。仮想面90は、ロボットベース座標系で表される。特定部11aは、コンテナ5が置かれる面(机の上面、床面など)の位置を予め記憶しており、当該面の位置とコンテナ5の高さHとに基づいて、仮想面90を特定すればよい。 Figure 7 is a diagram illustrating an example of a method for identifying the position and orientation of a container. The identification unit 11a identifies a virtual surface 90 including the top surface 501 of the container 5 based on the height H indicated by the container shape data 10c. The virtual surface 90 is expressed in the robot base coordinate system. The identification unit 11a stores in advance the position of the surface on which the container 5 is placed (such as the top surface of a desk or floor), and identifies the virtual surface 90 based on the position of that surface and the height H of the container 5.

特定部11aは、カメラ200の位置姿勢とカメラ200の視野角θとに基づいて、2D画像80の右上画素81、右下画素82、左下画素83および左上画素84に写る仮想面90上の点の座標を算出する。特定部11aは、2D画像80を撮像したときのフランジプレート303の位置姿勢とキャリブレーションデータ10aによって示される座標変換行列FCとを用いて、カメラ200の位置姿勢を算出すればよい。特定部11aは、カメラ200の仕様に応じて予め設定された視野角θを記憶している。右上画素81、右下画素82、左下画素83および左上画素84に写る仮想面90上の点の座標は、例えばロボットベース座標系で表される。 The identification unit 11a calculates the coordinates of points on the virtual surface 90 that appear in the upper right pixel 81, the lower right pixel 82, the lower left pixel 83, and the upper left pixel 84 of the 2D image 80, based on the position and orientation of the camera 200 and the viewing angle θ of the camera 200. The identification unit 11a may calculate the position and orientation of the camera 200 using the position and orientation of the flange plate 303 when the 2D image 80 is captured and the coordinate transformation matrix FHC indicated by the calibration data 10a. The identification unit 11a stores the viewing angle θ that is set in advance in accordance with the specifications of the camera 200. The coordinates of the points on the virtual surface 90 that appear in the upper right pixel 81, the lower right pixel 82, the lower left pixel 83, and the upper left pixel 84 are expressed, for example, in the robot base coordinate system.

特定部11aは、2D画像80において、コンテナ5の複数の特徴部分が写る複数の画素を特定する。例えば、特定部11aは、2D画像80において、コンテナ5の外輪郭の角(特徴部分)が写る画素85~88を特定する。なお、2D画像80にボケが生じている可能性があるため、特定部11aは、輪郭強調処理等の公知の画像処理を施した後に、画素85~88を特定してもよい。画素85~88には、コンテナ5の上面501の角504~507(図6参照)のいずれかが写っている。すなわち、画素85~88には、仮想面90上に位置するコンテナ5の角504~507のいずれかが写っている。特定部11aは、画素85~88の各々について、2D画像80における右上画素81、右下画素82、左下画素83および左上画素84に対する位置関係から当該画素に写る仮想面90上の点の座標を特定する。当該座標は、例えばロボットベース座標系で表される。特定された4つの点の座標は、コンテナ5の上面501の4つの角の位置を示す。 The identification unit 11a identifies multiple pixels in the 2D image 80 that depict multiple characteristic portions of the container 5. For example, the identification unit 11a identifies pixels 85-88 in the 2D image 80 that depict corners (characteristic portions) of the outer contour of the container 5. Note that, because the 2D image 80 may be blurred, the identification unit 11a may identify pixels 85-88 after performing known image processing such as contour enhancement. Pixels 85-88 depict one of the corners 504-507 (see Figure 6) of the top surface 501 of the container 5. In other words, pixels 85-88 depict one of the corners 504-507 of the container 5 located on the virtual surface 90. For each of pixels 85-88, the identification unit 11a identifies the coordinates of the point on the virtual surface 90 that is depicted in that pixel based on its positional relationship with the upper right pixel 81, lower right pixel 82, lower left pixel 83, and upper left pixel 84 in the 2D image 80. The coordinates are expressed, for example, in the robot base coordinate system. The coordinates of the four identified points indicate the positions of the four corners of the top surface 501 of the container 5.

特定部11aは、特定した4つの点の座標とコンテナ形状データ10cとに基づいて、ロボットベース座標系の空間においてコンテナ5が占める範囲を示す第1初期情報10dを生成し、生成した第1初期情報10dを記憶部10に格納する。このようにして、特定部11aは、コンテナ5の位置姿勢を特定する。 The identification unit 11a generates first initial information 10d indicating the range occupied by the container 5 in the space of the robot base coordinate system based on the coordinates of the four identified points and the container shape data 10c, and stores the generated first initial information 10d in the memory unit 10. In this way, the identification unit 11a identifies the position and orientation of the container 5.

コンテナ形状データ10cがコンテナ5の幅Wおよび奥行Dを示す場合には、特定部11aは、2D画像80において、コンテナ5の外輪郭の角が写る少なくとも2つの画素に基づいて、コンテナ5の位置姿勢を特定すればよい。 When the container shape data 10c indicates the width W and depth D of the container 5, the identification unit 11a can identify the position and orientation of the container 5 based on at least two pixels in the 2D image 80 that capture the corners of the outer contour of the container 5.

例えば、画素85,86に基づいて、以下のようにしてコンテナ5の位置姿勢が特定される。特定部11aは、画素85,86にそれぞれ写る仮想面90上の2つの点の座標(ロボットベース座標系)に基づいて、当該2つの点の距離を算出する。 For example, the position and orientation of the container 5 is determined based on pixels 85 and 86 as follows: The determination unit 11a calculates the distance between two points on the virtual surface 90 that are reflected in pixels 85 and 86, respectively, based on the coordinates of the two points (robot base coordinate system).

算出した距離がW±計測誤差範囲内である場合、特定部11aは、画素85,86にそれぞれ写る仮想面90上の2つの点を結ぶ線がコンテナ5の幅方向に平行であると判断する。特定部11aは、仮想面90上において、当該2つの点の一方の点を通り、かつ、当該2つの点を結ぶ線に直交する線を特定する。特定部11aは、仮想面90上において、特定した線上であり、かつ、上記一方の点から左側に奥行Dを同じ距離だけ離れた点をコンテナ5の上面501の1つの角として決定する。さらに、特定部11aは、仮想面90上において、当該2つの点の他方の点を通り、かつ、当該2つの点を結ぶ線に直交する線を特定する。特定部11aは、仮想面90上において、特定した線上であり、かつ、上記他方の点から左側に幅Wと同じ距離だけ離れた点をコンテナ5の上面501の1つの角として決定する。 If the calculated distance is within W ± the measurement error range, the identification unit 11a determines that the line connecting the two points on the virtual surface 90 that are captured by pixels 85 and 86 is parallel to the width direction of the container 5. The identification unit 11a identifies a line on the virtual surface 90 that passes through one of the two points and is perpendicular to the line connecting the two points. The identification unit 11a determines a point on the virtual surface 90 that is on the identified line and is a distance to the left of the one point equal to the depth D as one corner of the top surface 501 of the container 5. The identification unit 11a then identifies a line on the virtual surface 90 that passes through the other of the two points and is perpendicular to the line connecting the two points. The identification unit 11a determines a point on the virtual surface 90 that is on the identified line and is a distance to the left of the other point equal to the width W as one corner of the top surface 501 of the container 5.

このように、特定部11aは、2D画像80において、コンテナ5の外輪郭の角が写る少なくとも2つの画素に基づいて、コンテナ5の位置姿勢を特定できる。そのため、コンテナ5の上面501の角504~507(図6参照)のうちの少なくとも2つが写る2D画像を用いることにより、特定部11aによるコンテナ5の位置姿勢の特定が成功する。 In this way, the identification unit 11a can identify the position and orientation of the container 5 based on at least two pixels in the 2D image 80 that show the corners of the container 5's outer contour. Therefore, by using a 2D image that shows at least two of the corners 504 to 507 (see Figure 6) of the container 5's top surface 501, the identification unit 11a can successfully identify the position and orientation of the container 5.

図8は、コンテナの位置姿勢の特定方法の別の例を説明する図である。特定部11aは、2D画像80において、コンテナ5に形成されたマーク502(特徴部分)が写る画素群89aを特定する。マーク502は、コンテナ5の上面501に形成されているため、仮想面90上に位置する。そのため、特定部11aは、2D画像80における右上画素81、右下画素82、左下画素83および左上画素84に対する画素群89aの位置関係から、画素群89aに写るマーク502の中心座標(ロボットベース座標系)を特定できる。 Figure 8 is a diagram illustrating another example of a method for identifying the position and orientation of a container. The identification unit 11a identifies a pixel group 89a in the 2D image 80 that reflects a mark 502 (characteristic portion) formed on the container 5. The mark 502 is formed on the top surface 501 of the container 5, and is therefore located on the virtual surface 90. Therefore, the identification unit 11a can identify the center coordinates (robot base coordinate system) of the mark 502 reflected in the pixel group 89a from the positional relationship of the pixel group 89a with the upper right pixel 81, lower right pixel 82, lower left pixel 83, and upper left pixel 84 in the 2D image 80.

さらに、特定部11aは、2D画像80において、画素群89aの近傍であり、コンテナ5と背景との境界となるエッジライン(特徴部分)が写る画素群89bを特定する。図6を参照することにより、画素群89bには、マーク502の近傍の稜510が写っている。稜510は、コンテナ5の上面501の端の線であるため、仮想面90上に位置する。そのため、特定部11aは、2D画像80における右上画素81、右下画素82、左下画素83および左上画素84に対する画素群89bの位置関係から、画素群89aに写る稜510を含む直線の式(ロボットベース座標系で表される式)を特定できる。 Furthermore, the identification unit 11a identifies pixel group 89b in the 2D image 80, which is near pixel group 89a and which captures an edge line (characteristic portion) that forms the boundary between the container 5 and the background. Referring to Figure 6, pixel group 89b captures an edge 510 near mark 502. Edge 510 is a line at the edge of the top surface 501 of the container 5, and is therefore located on the virtual surface 90. Therefore, the identification unit 11a can identify the equation (expressed in the robot base coordinate system) of the straight line that includes edge 510 captured in pixel group 89a, based on the positional relationship of pixel group 89b with respect to the upper right pixel 81, lower right pixel 82, lower left pixel 83, and upper left pixel 84 in the 2D image 80.

特定部11aは、コンテナ形状データ10cを参照して、上面501の角504~507の位置とマーク502の位置およびマーク502の近傍の稜510を含む直線の式との相対関係を読み出す。特定部11aは、読み出した相関関係に、特定したマーク502の位置および稜510の直線式を適用することにより、コンテナ5の角504~507の座標を特定する。当該座標は、例えばロボットベース座標系で表される。 The identification unit 11a references the container shape data 10c and reads out the relative relationship between the positions of the corners 504 to 507 of the top surface 501 and the position of the mark 502 and the equation of a straight line including the edge 510 near the mark 502. The identification unit 11a applies the identified position of the mark 502 and the equation of a straight line including the edge 510 to the read-out correlation, thereby identifying the coordinates of the corners 504 to 507 of the container 5. These coordinates are expressed, for example, in the robot base coordinate system.

特定部11aは、特定した4つの角504~507の座標とコンテナ形状データ10cとに基づいて、ロボットベース座標系の空間においてコンテナ5が占める範囲を示す第1初期情報10dを生成し、生成した第1初期情報10dを記憶部10に格納する。このようにして、特定部11aは、コンテナ5の位置姿勢を特定する。 The identification unit 11a generates first initial information 10d indicating the range occupied by the container 5 in the space of the robot base coordinate system based on the coordinates of the identified four corners 504 to 507 and the container shape data 10c, and stores the generated first initial information 10d in the storage unit 10. In this way, the identification unit 11a identifies the position and orientation of the container 5.

このように、2D画像80に写る、コンテナ5のマーク502およびマーク502の近傍の稜510に基づいて、コンテナ5の位置姿勢が特定される。そのため、コンテナ5のマーク502およびその近傍の稜510(または稜508)が写る2D画像を用いることにより、特定部11aによるコンテナ5の位置姿勢の特定が成功する。 In this way, the position and orientation of the container 5 is determined based on the mark 502 of the container 5 and the edge 510 near the mark 502, which appear in the 2D image 80. Therefore, by using a 2D image that shows the mark 502 of the container 5 and the edge 510 (or edge 508) near it, the determination unit 11a can successfully determine the position and orientation of the container 5.

同様に、特定部11aは、第2モードの撮像により得られた2D画像とコンテナ形状データ10cとを用いて、コンテナ6の位置姿勢を特定する。特定部11aは、特定した位置姿勢のコンテナ6が占める範囲を示す第2初期情報10eを生成し、生成した第2初期情報10eを記憶部10に格納する。 Similarly, the identification unit 11a identifies the position and orientation of the container 6 using the 2D image obtained by imaging in the second mode and the container shape data 10c. The identification unit 11a generates second initial information 10e indicating the range occupied by the container 6 in the identified position and orientation, and stores the generated second initial information 10e in the memory unit 10.

(探索部)
探索部11bは、コンテナ5,6の各々について、特定部11aによる位置姿勢の特定が成功するときのカメラ200の位置の探索を行なう。
(Search Department)
The search unit 11b searches for the position of the camera 200 when the identification unit 11a successfully identifies the position and orientation of each of the containers 5 and 6.

探索部11bは、基準位置に位置しているカメラ200から得られた2D画像に基づくコンテナの位置姿勢の特定に失敗したことに応じて、探索を開始する。基準位置は、コンテナ5,6の各々に対して予め定められる。例えば、コンテナ5に対応する第1基準位置は、理想的な位置姿勢のコンテナ5の中心の上方に定められる。コンテナ6に対応する第2基準位置は、理想的な位置姿勢のコンテナ6の中心の上方に定められる。なお、基準位置は、カメラ200の撮像部22の光軸が鉛直方向になるように定められる。 The search unit 11b initiates a search in response to a failure to identify the position and orientation of a container based on 2D images acquired from the camera 200 positioned at the reference position. A reference position is determined in advance for each of the containers 5 and 6. For example, the first reference position corresponding to container 5 is determined above the center of container 5 in its ideal position and orientation. The second reference position corresponding to container 6 is determined above the center of container 6 in its ideal position and orientation. The reference positions are determined so that the optical axis of the imaging unit 22 of the camera 200 is vertical.

図9は、カメラの位置の探索処理の一例を説明する図である。図9には、コンテナ5の位置姿勢の特定が成功するときのカメラ200の位置の探索処理の方法が示される。 Figure 9 is a diagram illustrating an example of the camera position search process. Figure 9 shows the method of the camera 200 position search process when the position and orientation of the container 5 are successfully identified.

図9の左下に示されるように、探索部11bは、第1基準位置P0から上方にカメラ200を移動させることにより、特定部11aによる特定が成功するときのカメラ200の位置姿勢を探索する。具体的には、探索部11bは、上方にカメラ200を所定距離だけ移動させた後、第2モードの撮像指示をカメラ200に出力し、カメラ200から受けた2D画像に基づいてコンテナ5の位置姿勢の特定に成功したか否かを確認する第1制御処理を実行する。コンテナ5の位置姿勢の特定に成功した場合、探索部11bは、探索を終了する。コンテナ5の位置姿勢の特定に失敗した場合、探索部11bは、コンテナ5の位置姿勢の特定に成功するまで第1制御処理を繰り返す。 As shown in the lower left of Figure 9, the search unit 11b moves the camera 200 upward from the first reference position P0 to search for the position and orientation of the camera 200 when identification by the identification unit 11a is successful. Specifically, after moving the camera 200 upward a predetermined distance, the search unit 11b outputs an image capture instruction for the second mode to the camera 200 and executes a first control process to confirm whether or not the position and orientation of the container 5 has been successfully identified based on the 2D image received from the camera 200. If the position and orientation of the container 5 has been successfully identified, the search unit 11b ends the search. If the position and orientation of the container 5 has not been successfully identified, the search unit 11b repeats the first control process until the position and orientation of the container 5 has been successfully identified.

また、図9の右下に示されるように、探索部11bは、第1基準位置P0から水平方向にカメラ200を移動させることにより、特定部11aによる特定が成功するときのカメラ200の位置姿勢を探索してもよい。具体的には、探索部11bは、水平方向にカメラ200を所定距離だけ移動させた後、第2モードの撮像指示をカメラ200に出力し、カメラ200から受けた2D画像に基づいてコンテナ5の位置姿勢の特定に成功したか否かを確認する第2制御処理を実行する。コンテナ5の位置姿勢の特定に成功した場合、探索部11bは、探索を終了する。コンテナ5の位置姿勢の特定に失敗した場合、探索部11bは、コンテナ5の位置姿勢の特定に成功するまで第2制御処理を繰り返す。 Also, as shown in the lower right of FIG. 9 , the search unit 11b may search for the position and orientation of the camera 200 when the identification by the identification unit 11a is successful by moving the camera 200 horizontally from the first reference position P0. Specifically, the search unit 11b moves the camera 200 horizontally a predetermined distance, then outputs an image capture instruction for the second mode to the camera 200 and executes a second control process to confirm whether the position and orientation of the container 5 have been successfully identified based on the 2D image received from the camera 200. If the position and orientation of the container 5 have been successfully identified, the search unit 11b terminates the search. If the position and orientation of the container 5 have not been successfully identified, the search unit 11b repeats the second control process until the position and orientation of the container 5 have been successfully identified.

なお、カメラ200の位置が限界まで到達してもコンテナ5の位置姿勢の特定に成功しない場合、探索部11bは、エラー通知を行なう。 If the position and orientation of the container 5 are not successfully identified even after the camera 200 reaches its limit, the search unit 11b will issue an error notification.

同様の方法に従って、探索部11bは、コンテナ6の位置姿勢の特定が成功するときのカメラ200の位置の探索を行なう。 Using a similar method, the search unit 11b searches for the position of the camera 200 when the position and orientation of the container 6 are successfully identified.

(計測部)
計測部15は、カメラ200から取得した画像に基づいて被写体の三次元形状を計測する三次元計測処理と、計測された三次元形状の中から物品2の形状を検出する検出処理と、を行なうことにより、物品2の位置姿勢を計測する。図5に示されるように、計測部15は、三次元計測処理を行なう点群データ生成部15aと、検出処理を行なうワーク検出部15bと、を含む。
(Measurement section)
The measurement unit 15 measures the position and orientation of the item 2 by performing a three-dimensional measurement process that measures the three-dimensional shape of the subject based on the image acquired from the camera 200 and a detection process that detects the shape of the item 2 from the measured three-dimensional shape. As shown in Fig. 5, the measurement unit 15 includes a point cloud data generation unit 15a that performs the three-dimensional measurement process and a workpiece detection unit 15b that performs the detection process.

点群データ生成部15aは、画像に基づいて、カメラ200の視野領域の三次元計測を行ない、三次元点群データを生成する。三次元点群データは、カメラ200の視野領域に存在する被写体表面(計測表面)上の各点の三次元座標を示す。本実施の形態では、点群データ生成部15aは、三次元計測処理として例えば構造化照明法を用いる。 The point cloud data generator 15a performs three-dimensional measurement of the field of view of the camera 200 based on the image, and generates three-dimensional point cloud data. The three-dimensional point cloud data indicates the three-dimensional coordinates of each point on the subject surface (measurement surface) that exists in the field of view of the camera 200. In this embodiment, the point cloud data generator 15a uses, for example, structured illumination as the three-dimensional measurement process.

ワーク検出部15bは、三次元サーチによって物品2の位置姿勢を検出する。具体的には、ワーク検出部15bは、記憶部10に格納された複数のテンプレートデータ10bと三次元点群データとを照合し、三次元点群データの中からテンプレートと類似するデータを探索する。探索されたデータは、物品2が存在する部分のデータに対応する。ワーク検出部15bは、三次元点群データの中から探索した、テンプレートと類似するデータに基づいて、物品2の位置姿勢を検出する。ワーク検出部15bによって検出される物品2の位置姿勢は、カメラ座標系で示される。 The workpiece detection unit 15b detects the position and orientation of the item 2 by a three-dimensional search. Specifically, the workpiece detection unit 15b compares multiple template data 10b stored in the memory unit 10 with the three-dimensional point cloud data, and searches the three-dimensional point cloud data for data similar to the templates. The searched data corresponds to data for the portion where the item 2 is located. The workpiece detection unit 15b detects the position and orientation of the item 2 based on the data similar to the template that has been searched for in the three-dimensional point cloud data. The position and orientation of the item 2 detected by the workpiece detection unit 15b is expressed in the camera coordinate system.

なお、ワーク検出部15bは、公知の検出アルゴリズムを用いて、物品2の位置姿勢を検出すればよい。具体的には、ワーク検出部15bは、三次元点群データとテンプレートデータ10bとの相関値を算出し、算出した相関値が予め定められた閾値以上であることに応じて、物品2が存在していると判断する。そして、ワーク検出部15bは、相関値が最も高くなるテンプレートデータ10bに応じて、物品2の位置姿勢を検出する。 The workpiece detection unit 15b may detect the position and orientation of the item 2 using a known detection algorithm. Specifically, the workpiece detection unit 15b calculates the correlation value between the three-dimensional point cloud data and the template data 10b, and determines that the item 2 is present if the calculated correlation value is equal to or greater than a predetermined threshold. The workpiece detection unit 15b then detects the position and orientation of the item 2 according to the template data 10b with the highest correlation value.

(設定部)
設定部16は、計測部15によって位置姿勢が計測された1以上の物品2の中の1つを対象物として決定し、対象物をピックアンドプレースするためのエンドエフェクタ305の経路を設定する。設定部16によって設定される経路は、ホームポジションから対象物をピッキングする位置(以下、「ピッキング位置」と称する。)までの第1経路と、ピッキング位置から対象物をプレースする位置(以下、「プレース位置」と称する、)までの第2経路と、プレース位置からホームポジションへ戻る第3経路とを含む。
(Settings section)
The setting unit 16 determines one of the one or more articles 2 whose position and orientation have been measured by the measurement unit 15 as the target, and sets a path for the end effector 305 to pick and place the target. The paths set by the setting unit 16 include a first path from the home position to a position where the target is picked (hereinafter referred to as the "picking position"), a second path from the picking position to a position where the target is placed (hereinafter referred to as the "place position"), and a third path returning from the place position to the home position.

設定部16は、計測部15によって位置姿勢が特定された1以上の物品2の中から1つの物品2を選択する。設定部16は、選択した物品2の位置姿勢と把持点データ10fとに基づいて、当該物品2を把持するときのエンドエフェクタ305の位置姿勢を算出する。設定部16は、第1初期情報10dに基づいて、算出した位置姿勢のエンドエフェクタ305および当該エンドエフェクタ305を支持する多関節アーム302がコンテナ5と干渉するか否かを判定する。このとき、設定部16は、エンドエフェクタ305および多関節アーム302が他の物品2と干渉するか否かも合わせて判定してもよい。干渉が生じる場合、設定部16は、計測部15によって位置姿勢が特定された1以上の物品2の中から別の1つの物品2を選択する。干渉が生じない場合、設定部16は、選択した1つの物品2をピッキングの対象物として決定する。そして、設定部16は、対象物を把持するときのエンドエフェクタ305の位置をピッキング位置として決定する。 The setting unit 16 selects one item 2 from one or more items 2 whose position and orientation have been identified by the measurement unit 15. The setting unit 16 calculates the position and orientation of the end effector 305 when grasping the item 2 based on the position and orientation of the selected item 2 and the gripping point data 10f. The setting unit 16 determines whether the end effector 305 and the articulated arm 302 supporting the end effector 305 in the calculated position and orientation will interfere with the container 5 based on the first initial information 10d. At this time, the setting unit 16 may also determine whether the end effector 305 and the articulated arm 302 will interfere with another item 2. If interference occurs, the setting unit 16 selects another item 2 from one or more items 2 whose position and orientation have been identified by the measurement unit 15. If no interference occurs, the setting unit 16 determines the selected item 2 as the object to be picked. The setting unit 16 then determines the position of the end effector 305 when grasping the object as the picking position.

設定部16は、ホームポジションからピッキング位置までの第1経路を決定する。このとき、設定部16は、第1初期情報10dに基づいて、コンテナ5とエンドエフェクタ305との干渉を回避するように、第1経路を決定する。 The setting unit 16 determines a first path from the home position to the picking position. At this time, the setting unit 16 determines the first path based on the first initial information 10d so as to avoid interference between the container 5 and the end effector 305.

設定部16は、空のコンテナ6が設置されてから当該コンテナ6にプレースした各物品2の位置姿勢を記憶している。設定部16は、第2初期情報10eとコンテナ6にプレースした各物品2の位置姿勢とに基づいて、コンテナ6内にプレースされる対象物の位置姿勢を決定する。例えば、コンテナ6内に予め定められたルールに従って物品2をプレースする場合、設定部16は、前回プレースされた物品2の位置姿勢から予め定められたオフセット量だけ異なる位置姿勢を、プレースされる対象物の位置姿勢として決定する。設定部16は、決定した位置姿勢の対象物をプレースするためのエンドエフェクタ305の位置姿勢を算出する。そして、設定部16は、対象物を解放するときのエンドエフェクタ305の位置をプレース位置として決定する。 The setting unit 16 stores the position and orientation of each item 2 placed in the empty container 6 since the container 6 was installed. The setting unit 16 determines the position and orientation of the object to be placed in the container 6 based on the second initial information 10e and the position and orientation of each item 2 placed in the container 6. For example, when placing an item 2 in the container 6 according to predetermined rules, the setting unit 16 determines, as the position and orientation of the object to be placed, a position and orientation that differs by a predetermined offset amount from the position and orientation of the item 2 placed previously. The setting unit 16 calculates the position and orientation of the end effector 305 for placing the object with the determined position and orientation. The setting unit 16 then determines, as the placement position, the position of the end effector 305 when releasing the object.

設定部16は、第1経路の終点からプレース位置までの第2経路を決定する。このとき、設定部16は、第1初期情報10dおよび第2初期情報10eに基づいて、コンテナ5,6とエンドエフェクタ305との干渉を回避するように、第2経路を決定する。 The setting unit 16 determines a second path from the end point of the first path to the place position. At this time, the setting unit 16 determines the second path based on the first initial information 10d and the second initial information 10e so as to avoid interference between the containers 5 and 6 and the end effector 305.

設定部16は、第2経路の終点からホームポジションまでの第3経路を決定する。このとき、設定部16は、第1初期情報10dおよび第2初期情報10eに基づいて、コンテナ5,6とエンドエフェクタ305との干渉を回避するように、第3経路を決定する。 The setting unit 16 determines a third path from the end point of the second path to the home position. At this time, the setting unit 16 determines the third path based on the first initial information 10d and the second initial information 10e so as to avoid interference between the containers 5 and 6 and the end effector 305.

さらに、設定部16は、以下の条件A,Bを満たすように、第2経路または第3経路を設定する。
条件A:第1初期情報10dによって示される初期位置姿勢を有するコンテナ5の特徴部分がカメラ200の視野内に含まれるときのエンドエフェクタの位置に対応する第1通過点を含む。
条件B:第2初期情報10eによって示される初期位置姿勢を有するコンテナ6の特徴部分がカメラ200の視野内に含まれるときのエンドエフェクタの位置に対応する第2通過点を含む。
Furthermore, the setting unit 16 sets the second route or the third route so as to satisfy the following conditions A and B.
Condition A: The characteristic portion of the container 5 having the initial position and orientation indicated by the first initial information 10d includes a first passing point corresponding to the position of the end effector when it is included within the field of view of the camera 200.
Condition B: The characteristic portion of the container 6 having the initial position and orientation indicated by the second initial information 10e includes a second passing point corresponding to the position of the end effector when it is included within the field of view of the camera 200.

コンテナ5の特徴部分は、例えば、コンテナ5の角、コンテナ5の上面と側面との稜、コンテナ5の上面に形成されたマークのうちの少なくとも1つを含む。コンテナ6の特徴部分は、例えば、コンテナ6の角、コンテナ6の上面と側面との稜、コンテナ6の上面に形成されたマークのうちの少なくとも1つを含む。 Characteristic portions of container 5 include, for example, at least one of the following: a corner of container 5, an edge between the top surface and side surface of container 5, and a mark formed on the top surface of container 5. Characteristic portions of container 6 include, for example, at least one of the following: a corner of container 6, an edge between the top surface and side surface of container 6, and a mark formed on the top surface of container 6.

(指令部)
指令部17は、設定部16によって設定された第1経路に従って、制御周期ごとの移動指令を生成し、生成した移動指令をロボット制御装置400に出力する。これにより、エンドエフェクタ305は、ホームポジションからピッキング位置まで移動する。
(Command Department)
The command unit 17 generates a movement command for each control period in accordance with the first path set by the setting unit 16, and outputs the generated movement command to the robot control device 400. As a result, the end effector 305 moves from the home position to the picking position.

指令部17は、エンドエフェクタ305が第1経路の終点に到達したタイミングで把持指令をロボット制御装置400に出力する。これにより、エンドエフェクタ305は、ピッキング位置において、対象物を把持する。 The command unit 17 outputs a grip command to the robot control device 400 when the end effector 305 reaches the end point of the first path. This causes the end effector 305 to grip the target object at the picking position.

指令部17は、設定部16によって設定された第2経路に従って、制御周期ごとの移動指令を生成し、生成した移動指令をロボット制御装置400に出力する。これにより、エンドエフェクタ305は、対象物を把持した状態で、ピッキング位置からプレース位置まで移動する。 The command unit 17 generates a movement command for each control cycle according to the second path set by the setting unit 16, and outputs the generated movement command to the robot control device 400. As a result, the end effector 305 moves from the picking position to the placing position while gripping the target object.

指令部17は、エンドエフェクタ305が第2経路の終点に到達したタイミングで解放指令をロボット制御装置400に出力する。これにより、エンドエフェクタ305は、プレース位置において、対象物を解放する。 The command unit 17 outputs a release command to the robot control device 400 when the end effector 305 reaches the end point of the second path. This causes the end effector 305 to release the target object at the place position.

指令部17は、設定部16によって設定された第3経路に従って、制御周期ごとの移動指令を生成し、生成した移動指令をロボット制御装置400に出力する。これにより、エンドエフェクタ305は、プレース位置からホームポジションまで移動する。 The command unit 17 generates a movement command for each control cycle according to the third path set by the setting unit 16, and outputs the generated movement command to the robot control device 400. As a result, the end effector 305 moves from the place position to the home position.

(検出部)
検出部13は、ピックアンドプレースの開始後に、コンテナ5,6の位置姿勢の変化を検出する。
(Detection unit)
The detection unit 13 detects changes in the position and orientation of the containers 5 and 6 after pick-and-place is started.

検出部13は、ピックアンドプレースの一連の動作を行なっているエンドエフェクタ305が第1通過点に到達したタイミングで、第1対象画像の取得指示を画像取得部12に出力する。画像取得部12は、当該取得指示を受けたことに応じて、第2モードの撮像指示をカメラ200に出力し、第1対象画像を取得する。検出部13は、第1対象画像と第1初期情報10dとに基づいて、コンテナ5の位置姿勢の変化を検出する。 When the end effector 305, which is performing a series of pick-and-place operations, reaches the first passing point, the detection unit 13 outputs an instruction to acquire a first target image to the image acquisition unit 12. In response to receiving the acquisition instruction, the image acquisition unit 12 outputs an instruction to capture an image in the second mode to the camera 200 and acquires the first target image. The detection unit 13 detects changes in the position and orientation of the container 5 based on the first target image and the first initial information 10d.

上述したように、第1通過点は、第1初期情報10dによって示される初期位置姿勢を有するコンテナ5の特徴部分がカメラ200の視野内に含まれるときのエンドエフェクタの位置に対応する。コンテナ5の特徴部分は、例えば、コンテナ5の角、コンテナ5の上面と側面との稜、コンテナ5の上面に形成されたマークのうちの少なくとも1つを含む。 As described above, the first passing point corresponds to the position of the end effector when a characteristic portion of the container 5 having the initial position and orientation indicated by the first initial information 10d is included within the field of view of the camera 200. The characteristic portion of the container 5 includes, for example, at least one of the corners of the container 5, the edges between the top and side surfaces of the container 5, and a mark formed on the top surface of the container 5.

図10は、コンテナの位置姿勢が変化していないときの対象画像の一例を示す図である。図11は、コンテナの位置姿勢が変化しているときの対象画像の一例を示す図である。図10,11には、特徴部分として、コンテナ5の上面と側面との稜が設定されたときの第1対象画像70が示される。図10,11に示されるように、第1対象画像70には、コンテナ5の上面と側面との稜511が写る。 Figure 10 is a diagram showing an example of a target image when the position and orientation of the container has not changed. Figure 11 is a diagram showing an example of a target image when the position and orientation of the container has changed. Figures 10 and 11 show a first target image 70 when the edge between the top surface and side surface of the container 5 has been set as a characteristic part. As shown in Figures 10 and 11, the edge 511 between the top surface and side surface of the container 5 is captured in the first target image 70.

検出部13は、第1対象画像70から稜511が写る画素群を抽出する。例えば、検出部13は、エッジ抽出処理を行なうことにより、稜511が写る画素群を抽出する。 The detection unit 13 extracts a group of pixels in which the edge 511 appears from the first target image 70. For example, the detection unit 13 extracts a group of pixels in which the edge 511 appears by performing edge extraction processing.

さらに、検出部13は、仮想空間において、第1初期情報10dによって示される初期位置姿勢と同じ位置姿勢のコンテナモデル5Mを配置する。コンテナモデル5Mは、コンテナ形状データ10cによって示されるコンテナ5の形状に基づいて作成される。さらに、検出部13は、当該仮想空間において、エンドエフェクタ305が第1通過点を通過するときのカメラ200と同じ位置姿勢の仮想カメラを配置する。検出部13は、仮想カメラによってコンテナモデルを撮像したときの仮想画像70Mを作成する。なお、仮想カメラの撮像条件(視野角、解像度など)は、カメラ200の撮像条件と同一である。検出部13は、仮想画像70Mにおいて、コンテナモデル5Mの稜511Mが写る画素群を抽出する。 Furthermore, the detection unit 13 places a container model 5M in the virtual space in the same position and orientation as the initial position and orientation indicated by the first initial information 10d. The container model 5M is created based on the shape of the container 5 indicated by the container shape data 10c. Furthermore, the detection unit 13 places a virtual camera in the virtual space in the same position and orientation as the camera 200 when the end effector 305 passes through the first pass point. The detection unit 13 creates a virtual image 70M when the container model is captured by the virtual camera. The imaging conditions of the virtual camera (field of view, resolution, etc.) are the same as those of the camera 200. The detection unit 13 extracts a group of pixels in the virtual image 70M that captures the edge 511M of the container model 5M.

検出部13は、第1対象画像70において稜511が写る画素群の座標と、仮想画像70Mにおいて稜511Mが写る画素群の座標との差分を算出する。例えば、同一のX座標を有する画素のY座標の差の合計が差分として算出される。検出部13は、算出された差分が閾値以下である場合に、コンテナ5の位置姿勢が変化無しと決定し(図10参照)、算出された差分が閾値を超える場合に、コンテナ5の位置姿勢が変化有りと決定する(図11参照)。 The detection unit 13 calculates the difference between the coordinates of the pixel group in which the edge 511 appears in the first object image 70 and the coordinates of the pixel group in which the edge 511M appears in the virtual image 70M. For example, the difference is calculated as the sum of the differences in the Y coordinates of pixels having the same X coordinate. If the calculated difference is equal to or less than a threshold, the detection unit 13 determines that the position and orientation of the container 5 has not changed (see FIG. 10), and if the calculated difference exceeds the threshold, the detection unit 13 determines that the position and orientation of the container 5 has changed (see FIG. 11).

図12は、コンテナの位置姿勢が変化していないときの対象画像の別の例を示す図である。図13は、コンテナの位置姿勢が変化しているときの対象画像の別の例を示す図である。図12,図13には、特徴部分として、コンテナ5の角506が設定されたときの第1対象画像70が示される。図12,図13に示されるように、第1対象画像70には、コンテナ5の角506が写る。 Figure 12 is a diagram showing another example of a target image when the position and orientation of the container has not changed. Figure 13 is a diagram showing another example of a target image when the position and orientation of the container has changed. Figures 12 and 13 show a first target image 70 when the corner 506 of the container 5 has been set as a characteristic part. As shown in Figures 12 and 13, the corner 506 of the container 5 appears in the first target image 70.

検出部13は、第1対象画像70から角506が写る画素を抽出する。例えば、検出部13は、エッジ抽出処理を行なうことにより、角506が写る画素を抽出する。さらに、検出部13は、角506を含む2つの稜509,510にそれぞれ沿った2つの単位ベクトルv1,v2を特定する。 The detection unit 13 extracts pixels in which the corner 506 appears from the first target image 70. For example, the detection unit 13 extracts pixels in which the corner 506 appears by performing edge extraction processing. Furthermore, the detection unit 13 identifies two unit vectors v1 and v2 that are respectively along two edges 509 and 510 that include the corner 506.

検出部13は、仮想空間において、第1初期情報10dによって示される初期位置姿勢と同じ位置姿勢のコンテナモデル5Mを配置する。コンテナモデル5Mは、コンテナ形状データ10cによって示されるコンテナ5の形状に基づいて作成される。さらに、検出部13は、当該仮想空間において、エンドエフェクタ305が第1通過点を通過するときのカメラ200と同じ位置姿勢の仮想カメラを配置する。検出部13は、仮想カメラによってコンテナモデルを撮像したときの仮想画像70Mを作成する。なお、仮想カメラの撮像条件(視野角、解像度など)は、カメラ200の撮像条件と同一である。検出部13は、仮想画像70Mにおいて、コンテナモデル5Mの角506Mが写る画素と、角506Mを含む2つの稜509M,510Mにそれぞれ沿った2つの単位ベクトルv1M,v2Mを特定する。 The detection unit 13 places a container model 5M in virtual space with the same position and orientation as the initial position and orientation indicated by the first initial information 10d. The container model 5M is created based on the shape of the container 5 indicated by the container shape data 10c. Furthermore, the detection unit 13 places a virtual camera in the virtual space with the same position and orientation as the camera 200 when the end effector 305 passes through the first pass point. The detection unit 13 creates a virtual image 70M when the container model is captured by the virtual camera. The imaging conditions of the virtual camera (field of view, resolution, etc.) are the same as those of the camera 200. In the virtual image 70M, the detection unit 13 identifies the pixel that captures the corner 506M of the container model 5M and two unit vectors v1M and v2M that are respectively along the two edges 509M and 510M that include the corner 506M.

検出部13は、第1対象画像70において角506が写る画素の座標と、仮想画像70Mにおいて角506Mが写る画素の座標との第1差分を算出する。第1差分は、X座標の差の二乗とY座標の差の二乗との和を示す。さらに、検出部13は、単位ベクトルv1,v2と単位ベクトルv1M,v2Mとの第2差分を算出する。第2差分は、例えば、単位ベクトルv1と単位ベクトルv1Mとのなす角度、および、単位ベクトルv2と単位ベクトルv2Mとのなす角度の代表値(平均値、最大値など)を示す。 The detection unit 13 calculates a first difference between the coordinates of the pixel where the corner 506 appears in the first object image 70 and the coordinates of the pixel where the corner 506M appears in the virtual image 70M. The first difference indicates the sum of the square of the difference in the X coordinates and the square of the difference in the Y coordinates. Furthermore, the detection unit 13 calculates a second difference between the unit vectors v1 and v2 and the unit vectors v1M and v2M. The second difference indicates, for example, a representative value (average value, maximum value, etc.) of the angle between the unit vectors v1 and v1M and the angle between the unit vectors v2 and v2M.

検出部13は、第1差分が第1閾値未満であり、かつ、第2差分が第2閾値未満である場合に、コンテナ5の位置姿勢が変化無しと決定する(図12参照)。検出部13は、第1差分が第1閾値を超える場合、あるいは、第2差分が第2閾値を超える場合に、コンテナ5の位置姿勢が変化有りと決定する(図13参照)。なお、検出部13は、第1差分が第1閾値を超える場合、コンテナ5の位置姿勢の変化が並進移動に起因していると判定し、第2差分が第2閾値を超える場合、コンテナ5の位置姿勢の変化が回転移動に起因していると判定してもよい。 The detection unit 13 determines that the position and orientation of the container 5 have not changed if the first difference is less than the first threshold and the second difference is less than the second threshold (see FIG. 12). The detection unit 13 determines that the position and orientation of the container 5 have changed if the first difference exceeds the first threshold or if the second difference exceeds the second threshold (see FIG. 13). Note that the detection unit 13 may determine that the change in the position and orientation of the container 5 has been caused by translational movement if the first difference exceeds the first threshold, and may determine that the change in the position and orientation of the container 5 has been caused by rotational movement if the second difference exceeds the second threshold.

図14は、コンテナの位置姿勢が変化していないときの対象画像のさらに別の例を示す図である。図15は、コンテナの位置姿勢が変化しているときの対象画像のさらに別の例を示す図である。図14,図15には、特徴部分として、コンテナ5の上面に形成されたマーク502が設定されたときの第1対象画像70が示される。図14,図15に示されるように、第1対象画像70には、コンテナ5のマーク502が写る。 Figure 14 is a diagram showing yet another example of a target image when the position and orientation of the container has not changed. Figure 15 is a diagram showing yet another example of a target image when the position and orientation of the container has changed. Figures 14 and 15 show a first target image 70 when a mark 502 formed on the top surface of the container 5 is set as a characteristic part. As shown in Figures 14 and 15, the mark 502 on the container 5 appears in the first target image 70.

検出部13は、第1対象画像70からマーク502が写る画素を抽出する。例えば、検出部13は、公知のマッチング処理を行なうことにより、マーク502が写る画素を抽出する。さらに、検出部13は、マーク502の近傍の稜510に沿った単位ベクトルv3を特定する。 The detection unit 13 extracts pixels in which the mark 502 appears from the first target image 70. For example, the detection unit 13 extracts pixels in which the mark 502 appears by performing a known matching process. Furthermore, the detection unit 13 identifies a unit vector v3 along the edge 510 near the mark 502.

検出部13は、仮想空間において、第1初期情報10dによって示される初期位置姿勢と同じ位置姿勢のコンテナモデル5Mを配置する。コンテナモデル5Mは、コンテナ形状データ10cによって示されるコンテナ5の形状に基づいて作成される。さらに、検出部13は、当該仮想空間において、エンドエフェクタ305が第1通過点を通過するときのカメラ200と同じ位置姿勢の仮想カメラを配置する。検出部13は、仮想カメラによってコンテナモデル5Mを撮像したときの仮想画像70Mを作成する。なお、仮想カメラの撮像条件(視野角、解像度など)は、カメラ200の撮像条件と同一である。検出部13は、仮想画像70Mにおいて、コンテナモデル5Mのマーク502Mが写る画素と、マーク502Mの近傍の稜510Mに沿った単位ベクトルv3Mを特定する。 The detection unit 13 places a container model 5M in the virtual space with the same position and orientation as the initial position and orientation indicated by the first initial information 10d. The container model 5M is created based on the shape of the container 5 indicated by the container shape data 10c. Furthermore, the detection unit 13 places a virtual camera in the virtual space with the same position and orientation as the camera 200 when the end effector 305 passes through the first pass point. The detection unit 13 creates a virtual image 70M when the container model 5M is imaged by the virtual camera. The imaging conditions of the virtual camera (field of view, resolution, etc.) are the same as those of the camera 200. The detection unit 13 identifies, in the virtual image 70M, the pixel where the mark 502M of the container model 5M appears and the unit vector v3M along the edge 510M near the mark 502M.

検出部13は、第1対象画像70においてマーク502が写る画素の座標と、仮想画像70Mにおいてマーク502Mが写る画素の座標との第3差分を算出する。第3差分は、例えば、X座標の差の二乗とY座標の差の二乗との和を示す。さらに、検出部13は、単位ベクトルv3と単位ベクトルv3Mとの第4差分を算出する。第4差分は、例えば、単位ベクトルv3と単位ベクトルv3Mとのなす角度を示す。 The detection unit 13 calculates a third difference between the coordinates of the pixel where the mark 502 appears in the first object image 70 and the coordinates of the pixel where the mark 502M appears in the virtual image 70M. The third difference indicates, for example, the sum of the square of the difference in the X coordinates and the square of the difference in the Y coordinates. Furthermore, the detection unit 13 calculates a fourth difference between the unit vector v3 and the unit vector v3M. The fourth difference indicates, for example, the angle between the unit vector v3 and the unit vector v3M.

検出部13は、第3差分が第3閾値未満であり、かつ、第4差分が第4閾値未満である場合に、コンテナ5の位置姿勢が変化無しと決定する(図14参照)。検出部13は、第3差分が第3閾値を超える場合、あるいは、第4差分が第4閾値を超える場合に、コンテナ5の位置姿勢が変化有りと決定する(図15参照)。なお、検出部13は、第3差分が第3閾値を超える場合、コンテナ5の位置姿勢の変化が並進移動に起因していると判定し、第4差分が第4閾値を超える場合、コンテナ5の位置姿勢の変化が回転移動に起因していると判定してもよい。 The detection unit 13 determines that the position and orientation of the container 5 have not changed if the third difference is less than the third threshold and the fourth difference is less than the fourth threshold (see FIG. 14). The detection unit 13 determines that the position and orientation of the container 5 have changed if the third difference exceeds the third threshold or if the fourth difference exceeds the fourth threshold (see FIG. 15). Note that the detection unit 13 may determine that the change in the position and orientation of the container 5 has been caused by translational movement if the third difference exceeds the third threshold, and may determine that the change in the position and orientation of the container 5 has been caused by rotational movement if the fourth difference exceeds the fourth threshold.

検出部13は、コンテナ5と同じ方法によって、第2対象画像に基づいて、コンテナ6の位置姿勢の変化を検出すればよい。 The detection unit 13 can detect changes in the position and orientation of container 6 based on the second target image using the same method as for container 5.

<画像処理装置の処理フロー>
図16は、画像処理装置の処理の全体の流れの一例を示すフローチャートである。まず、画像処理装置100のCPU101は、コンテナ5,6の初期位置姿勢をそれぞれ示す第1初期情報10dおよび第2初期情報10eを取得する(ステップS1)。
<Processing flow of image processing device>
16 is a flowchart showing an example of the overall flow of processing by the image processing device. First, the CPU 101 of the image processing device 100 acquires first initial information 10d and second initial information 10e indicating the initial positions and orientations of the containers 5 and 6, respectively (step S1).

次に、CPU101は、コンテナ5内の第1エリアをピッキング対象の検索範囲として決定する(ステップS2)。 Next, the CPU 101 determines the first area within the container 5 as the search range for items to be picked (step S2).

次に、CPU101は、ホームポジションへの移動指令をロボット制御装置400に出力した後、第1モードの撮像指示をカメラ200に出力する。CPU101は、カメラ200から受けた画像に基づいて、ピッキング対象の検索範囲の3D計測を行ない、コンテナ5内に存在する1以上の物品2の位置姿勢を検出する(ステップS3)。 Next, the CPU 101 outputs a command to move to the home position to the robot control device 400, and then outputs an image capture command in the first mode to the camera 200. Based on the image received from the camera 200, the CPU 101 performs 3D measurement of the search range for the picking target and detects the position and orientation of one or more items 2 present in the container 5 (step S3).

次に、CPU101は、3D計測結果に基づいて、コンテナ5内の1以上の物品2のうちの対象物をピッキングし、コンテナ6内の第2エリアにプレースするためのエンドエフェクタ305の経路を設定する(ステップS4)。 Next, based on the 3D measurement results, the CPU 101 sets a path for the end effector 305 to pick up a target item from one or more items 2 in the container 5 and place it in a second area in the container 6 (step S4).

次に、CPU101は、設定した経路に従って、ピックアンドプレース動作のための指令を生成し、生成した指令をロボット制御装置400に出力する(ステップS5)。 Next, the CPU 101 generates commands for the pick-and-place operation according to the set path and outputs the generated commands to the robot control device 400 (step S5).

次に、CPU101は、ピックアンドプレース動作中に得られた第1対象画像および第2対象画像に基づいて、コンテナ5,6の位置姿勢の変化をそれぞれ検出する(ステップS6)。 Next, the CPU 101 detects changes in the position and orientation of the containers 5 and 6 based on the first and second target images obtained during the pick-and-place operation (step S6).

次に、CPU101は、コンテナ5内に残りの物品2が存在するか否かを判定する(ステップS7)。例えば、CPU101は、直近のステップS3において2以上の物品2の位置姿勢が検出された場合、ステップS7でYESと判定する。 Next, the CPU 101 determines whether there are any remaining items 2 in the container 5 (step S7). For example, if the positions and orientations of two or more items 2 were detected in the most recent step S3, the CPU 101 determines YES in step S7.

ステップS7でYESの場合、CPU101は、処理をステップS3に戻す。ステップS7でNOの場合、CPU101は、処理を終了する。 If the answer is YES in step S7, the CPU 101 returns the process to step S3. If the answer is NO in step S7, the CPU 101 ends the process.

<ステップS1のサブルーチン>
図17は、図16に示すステップS1のサブルーチンの処理の流れを示すフローチャートである。
<Subroutine of Step S1>
FIG. 17 is a flowchart showing the flow of the subroutine processing of step S1 shown in FIG.

CPU101は、カメラ200を第1基準位置に移動するための移動指令を生成し、生成した移動指令をロボット制御装置400に出力した後、第2モードの撮像指示をカメラ200に出力する(ステップS11)。これにより、カメラ200は、第1基準位置において、第2モードの撮像を行ない、当該撮像により得られた2D画像を画像処理装置100に出力する。 The CPU 101 generates a movement command to move the camera 200 to the first reference position, outputs the generated movement command to the robot control device 400, and then outputs an instruction to capture images in the second mode to the camera 200 (step S11). This causes the camera 200 to capture images in the second mode at the first reference position and output the 2D images obtained by the capture to the image processing device 100.

CPU101は、コンテナ5の位置姿勢が特定可能な程度に、2D画像にコンテナ5が写っているか判定する(ステップS12)。例えば、CPU101は、2D画像から、コンテナ5の上面501の角504~507の少なくとも2つが写る画素を特定できた場合に、ステップS12でYESと判定する。あるいは、CPU101は、2D画像から、マーク502とその近傍の稜とを特定できた場合に、ステップS12でYESと判定する。 The CPU 101 determines whether the container 5 is visible in the 2D image to the extent that the position and orientation of the container 5 can be determined (step S12). For example, the CPU 101 determines YES in step S12 if it can identify pixels from the 2D image that show at least two of the corners 504 to 507 of the top surface 501 of the container 5. Alternatively, the CPU 101 determines YES in step S12 if it can identify the mark 502 and its nearby edge from the 2D image.

ステップS12でNOの場合、CPU101は、カメラ200が上方の限界まで移動済みか否かを判定する(ステップS13)。ステップS13でNOの場合、CPU101は、カメラ200を上方に所定距離だけ移動させるための移動指令を生成し、生成した移動指令をロボット制御装置400に出力する第1移動制御を実行する(ステップS4)。 If the result of step S12 is NO, the CPU 101 determines whether the camera 200 has been moved to its upper limit (step S13). If the result of step S13 is NO, the CPU 101 executes first movement control, generating a movement command to move the camera 200 upward by a predetermined distance and outputting the generated movement command to the robot control device 400 (step S4).

ステップS13でYESの場合、CPU101は、カメラ200が横方向の限界まで移動済みか否かを判定する(ステップS15)。ステップS15でNOの場合、CPU101は、カメラ200を横方向(水平面に平行な任意の方向)に所定距離だけ移動させるための移動指令を生成し、生成した移動指令をロボット制御装置400に出力する第2移動制御を実行する(ステップS16)。すなわち、CPU101は、第1移動制御においてコンテナ5の位置姿勢の特定が成功しないことに応じて、第2移動制御を実行する。なお、1回目のステップS16において、CPU101は、一旦カメラ200を第1基準位置に移動させてから第2移動制御を実行する。 If step S13 is YES, the CPU 101 determines whether the camera 200 has moved to its lateral limit (step S15). If step S15 is NO, the CPU 101 generates a movement command to move the camera 200 a predetermined distance in the lateral direction (any direction parallel to the horizontal plane) and executes second movement control to output the generated movement command to the robot control device 400 (step S16). That is, the CPU 101 executes second movement control if the position and orientation of the container 5 are not successfully identified in the first movement control. Note that in the first execution of step S16, the CPU 101 first moves the camera 200 to the first reference position and then executes second movement control.

ステップS14またはステップS16の後、CPU101は、第2モードの撮像指令をカメラ200に出力する(ステップS17)。これにより、カメラ200は、第2モードの撮像を行ない、当該撮像により得られた2D画像を画像処理装置100に出力する。ステップS17の後、CPU101は、処理をステップS12に戻す。 After step S14 or step S16, the CPU 101 outputs a second mode imaging command to the camera 200 (step S17). This causes the camera 200 to perform second mode imaging and output the 2D image obtained by this imaging to the image processing device 100. After step S17, the CPU 101 returns the process to step S12.

ステップS15でYESの場合、CPU101は、エラー通知を行なう(ステップS18)。ステップS18の後、CPU101は、処理を終了する。 If the answer is YES in step S15, the CPU 101 issues an error notification (step S18). After step S18, the CPU 101 terminates processing.

ステップS12でYESの場合、CPU101は、2D画像とコンテナ形状データ10cとに基づいて、コンテナ5の初期位置姿勢を特定する(ステップS19)。ステップS19の後、処理は図16のステップS2に戻る。 If the answer is YES in step S12, the CPU 101 determines the initial position and orientation of the container 5 based on the 2D image and the container shape data 10c (step S19). After step S19, the process returns to step S2 in FIG. 16.

CPU101は、コンテナ6についても、図17に示すフローチャートに従った処理を実行し、コンテナ6の初期位置姿勢を特定する。 The CPU 101 also performs processing according to the flowchart shown in Figure 17 for container 6 to determine the initial position and orientation of container 6.

<ステップS5のサブルーチン>
図18は、図16に示すステップS5のサブルーチンの処理の流れの一例を示すフローチャートである。図18には、ピッキング位置からプレース位置までの第2経路上に第1通過点および第2通過点が含まれるときの処理の流れが示される。
<Subroutine of Step S5>
Fig. 18 is a flowchart showing an example of the processing flow of the subroutine of step S5 shown in Fig. 16. Fig. 18 shows the processing flow when the first pass point and the second pass point are included on the second route from the picking position to the placing position.

まず、CPU101は、エンドエフェクタ305をホームポジションから対象物をピッキングする位置(ピッキング位置)まで移動させるための移動指令をロボット制御装置400に出力する(ステップS21)。 First, the CPU 101 outputs a movement command to the robot control device 400 to move the end effector 305 from the home position to a position (picking position) where the target object will be picked up (step S21).

CPU101は、エンドエフェクタ305がピッキング位置に到達すると、把持指令をロボット制御装置400に出力する(ステップS22)。これにより、エンドエフェクタ305は、対象物をピッキングする。 When the end effector 305 reaches the picking position, the CPU 101 outputs a gripping command to the robot control device 400 (step S22). This causes the end effector 305 to pick up the target object.

次に、CPU101は、エンドエフェクタ305をピッキング位置から対象物をプレースする位置(プレース位置)まで移動させるための移動指令をロボット制御装置400に出力する(ステップS23)。 Next, the CPU 101 outputs a movement command to the robot control device 400 to move the end effector 305 from the picking position to the position where the target object is to be placed (placement position) (step S23).

次に、CPU101は、エンドエフェクタ305が第1通過点に到達したか否かを判断する(ステップS31)。エンドエフェクタ305が第1通過点に到達していない場合(ステップS31でNO)、CPU101は、処理をステップS31に戻す。 Next, the CPU 101 determines whether the end effector 305 has reached the first passing point (step S31). If the end effector 305 has not reached the first passing point (NO in step S31), the CPU 101 returns the process to step S31.

エンドエフェクタ305が第1通過点に到達した場合(ステップS31でYES)、CPU101は、第2モードの撮像指示をカメラ200に出力し、第1対象画像を取得する(ステップS32)。 If the end effector 305 reaches the first passing point (YES in step S31), the CPU 101 outputs an image capture instruction in the second mode to the camera 200 and acquires the first target image (step S32).

次に、CPU101は、エンドエフェクタ305が第2通過点に到達したか否かを判断する(ステップS33)。エンドエフェクタ305が第2通過点に到達していない場合(ステップS33でNO)、CPU101は、処理をステップS33に戻す。 Next, the CPU 101 determines whether the end effector 305 has reached the second passing point (step S33). If the end effector 305 has not reached the second passing point (NO in step S33), the CPU 101 returns the process to step S33.

エンドエフェクタ305が第2通過点に到達した場合(ステップS33でYES)、CPU101は、第2モードの撮像指示をカメラ200に出力し、第2対象画像を取得する(ステップS34)。 If the end effector 305 reaches the second passing point (YES in step S33), the CPU 101 outputs an image capture instruction in the second mode to the camera 200 and acquires a second target image (step S34).

次に、CPU101は、エンドエフェクタ305がプレース位置に到達すると、解放指令をロボット制御装置400に出力する(ステップS24)。これにより、エンドエフェクタ305は、対象物をコンテナ6内にプレースする。 Next, when the end effector 305 reaches the placement position, the CPU 101 outputs a release command to the robot control device 400 (step S24). This causes the end effector 305 to place the object into the container 6.

次に、CPU101は、エンドエフェクタ305をプレース位置からホームポジションまで移動させるための移動指令をロボット制御装置400に出力する(ステップS25)。ステップS25の後、処理は図16のステップS6に戻る。 Next, the CPU 101 outputs a movement command to the robot control device 400 to move the end effector 305 from the place position to the home position (step S25). After step S25, the process returns to step S6 in Figure 16.

図18に示す処理の流れの場合、第1対象画像および第2対象画像は、エンドエフェクタ305が対象物を把持している状態のときに撮像される。そのため、第1対象画像および第2対象画像に、エンドエフェクタ305によって把持されている対象物が写り込む可能性がある。その結果、第1対象画像および第2対象画像を用いてコンテナ5,6の位置姿勢の変化を精度良く検出できない可能性がある。従って、図18に示すフローチャートの代わりに図19に示すフローチャートに従って、ステップS5が実施されてもよい。 In the processing flow shown in Figure 18, the first and second target images are captured when the end effector 305 is gripping an object. Therefore, the object being gripped by the end effector 305 may appear in the first and second target images. As a result, it may not be possible to accurately detect changes in the position and orientation of the containers 5, 6 using the first and second target images. Therefore, step S5 may be performed according to the flowchart shown in Figure 19 instead of the flowchart shown in Figure 18.

図19は、図16に示すステップS5のサブルーチンの処理の流れの別の例を示すフローチャートである。図19には、プレース位置からホームポジションまでの第3経路上に第1通過点および第2通過点が含まれるときの処理の流れが示される。図19に示すフローチャートは、図18に示すフローチャートと比較して、ステップS31~S34の処理がステップS23の後ではなくステップS25の後で実行される点で相違する。これにより、第1対象画像および第2対象画像は、エンドエフェクタ305が対象物を把持していない状態のときに撮像される。そのため、第1対象画像および第2対象画像を用いてコンテナ5,6の位置姿勢の変化を精度良く検出できる。 Figure 19 is a flowchart showing another example of the processing flow of the subroutine of step S5 shown in Figure 16. Figure 19 shows the processing flow when a first pass point and a second pass point are included on the third route from the place position to the home position. The flowchart shown in Figure 19 differs from the flowchart shown in Figure 18 in that the processing of steps S31 to S34 is performed after step S25 rather than after step S23. As a result, the first and second target images are captured when the end effector 305 is not gripping an object. Therefore, changes in the position and orientation of the containers 5 and 6 can be detected with high accuracy using the first and second target images.

<ステップS6のサブルーチン>
図20は、図16に示すステップS6のサブルーチンの処理の流れの一例を示すフローチャートである。
<Subroutine of Step S6>
FIG. 20 is a flowchart showing an example of the process flow of the subroutine of step S6 shown in FIG.

CPU101は、第1対象画像にコンテナ5の特徴部分が写っているか否かを判定する(ステップS41)。例えば、特徴部分がコンテナ6の上面と側面との稜508である場合、CPU101は、所定長さ以上のエッジラインが第1対象画像から抽出されるか否かに応じて、第1対象画像にコンテナ5の稜508が写っているか否かを判定すればよい。 The CPU 101 determines whether a characteristic part of the container 5 is shown in the first target image (step S41). For example, if the characteristic part is the edge 508 between the top and side surfaces of the container 6, the CPU 101 determines whether the edge 508 of the container 5 is shown in the first target image depending on whether an edge line of a predetermined length or more is extracted from the first target image.

ステップS41でYESの場合、CPU101は、第1対象画像と第1初期情報10dとに基づいて、コンテナ5の位置姿勢が変化したか否かを判定する(ステップS42)。 If the answer is YES in step S41, the CPU 101 determines whether the position and orientation of the container 5 has changed based on the first target image and the first initial information 10d (step S42).

ステップS41でNOの場合、あるいは、ステップS42でYESの場合、CPU101は、コンテナ5の初期位置姿勢を取得するためにステップS1aを実施する。ステップS1bの具体的な処理方法はステップS1と同様である。これにより、コンテナ5の位置姿勢が変化した場合、コンテナ5の初期位置姿勢が再度取得され、第1初期情報10dが更新される。その結果、コンテナ5とエンドエフェクタ305との干渉が回避される。 If the answer is NO in step S41 or YES in step S42, the CPU 101 performs step S1a to acquire the initial position and orientation of the container 5. The specific processing method of step S1b is the same as that of step S1. As a result, if the position and orientation of the container 5 changes, the initial position and orientation of the container 5 is acquired again, and the first initial information 10d is updated. As a result, interference between the container 5 and the end effector 305 is avoided.

ステップS42でNO場合、CPU101は、第2対象画像にコンテナ6の特徴部分が写っているか否かを判定する(ステップS43)。ステップS43でYESの場合、CPU101は、第2対象画像と第2初期情報10eとに基づいて、コンテナ6の位置姿勢が変化したか否かを判定する(ステップS44)。 If the answer is NO in step S42, the CPU 101 determines whether a characteristic part of the container 6 is shown in the second target image (step S43). If the answer is YES in step S43, the CPU 101 determines whether the position and orientation of the container 6 have changed based on the second target image and the second initial information 10e (step S44).

ステップS43でNOの場合、あるいは、ステップS44でYESの場合、CPU101は、コンテナ6の初期位置姿勢を取得するためにステップS1bを実施する。ステップS1bの具体的な処理方法はステップS1と同様である。これにより、コンテナ6の位置姿勢が変化した場合、コンテナ6の初期位置姿勢が再度取得され、第2初期情報10eが更新される。その結果、コンテナ6とエンドエフェクタ305との干渉が回避される。 If the answer is NO in step S43 or YES in step S44, the CPU 101 performs step S1b to acquire the initial position and orientation of the container 6. The specific processing method of step S1b is the same as that of step S1. As a result, if the position and orientation of the container 6 changes, the initial position and orientation of the container 6 is acquired again, and the second initial information 10e is updated. As a result, interference between the container 6 and the end effector 305 is avoided.

<変形例1>
上記の説明では、コンテナ5,6の位置姿勢の変化が検出された場合、コンテナ5,6の初期位置姿勢を取得する動作が再度実行され、第1初期情報10dおよび第2初期情報10eが更新される。しかしながら、第1対象画像および第2対象画像を用いて、コンテナ5,6の変化後の位置姿勢が測定され、測定された位置姿勢に従って第1初期情報10dおよび第2初期情報10eが更新されてもよい。
<Modification 1>
In the above description, when a change in the positions and orientations of the containers 5 and 6 is detected, the operation of acquiring the initial positions and orientations of the containers 5 and 6 is executed again, and the first initial information 10d and the second initial information 10e are updated. However, the positions and orientations of the containers 5 and 6 after the change may be measured using the first target image and the second target image, and the first initial information 10d and the second initial information 10e may be updated in accordance with the measured positions and orientations.

図21は、変形例1に係る画像処理装置の機能構成の一例を示すブロック図である。図21に示されるように、変形例1に係る画像処理装置100Aは、図5に示す画像処理装置100と比較して、更新部18をさらに備える点で相違する。更新部18は、図3に示すCPU101がハードディスク103に格納されたプログラムを実行することにより実現される。 Figure 21 is a block diagram showing an example of the functional configuration of an image processing device according to Modification 1. As shown in Figure 21, image processing device 100A according to Modification 1 differs from image processing device 100 shown in Figure 5 in that it further includes an update unit 18. The update unit 18 is realized by CPU 101 shown in Figure 3 executing a program stored on hard disk 103.

更新部18は、エンドエフェクタ305が第1通過点に到達したときのカメラ200の撮像により得られる第1対象画像を用いてコンテナ5の位置姿勢を特定し、特定された位置姿勢に従って第1初期情報10dを更新する。同様に、更新部18は、エンドエフェクタ305が第2通過点に到達したときのカメラ200の撮像により得られる第2対象画像を用いてコンテナ6の位置姿勢を特定し、特定された位置姿勢に従って第2初期情報10eを更新する。 The update unit 18 identifies the position and orientation of the container 5 using a first target image obtained by imaging with the camera 200 when the end effector 305 reaches the first passing point, and updates the first initial information 10d according to the identified position and orientation. Similarly, the update unit 18 identifies the position and orientation of the container 6 using a second target image obtained by imaging with the camera 200 when the end effector 305 reaches the second passing point, and updates the second initial information 10e according to the identified position and orientation.

コンテナの上面に形成されたマークが写る対象画像が取得される場合(図14,図15参照)、更新部18は、特定部11aと同様の手法に従って、対象画像からコンテナの位置姿勢を特定する。 When a target image showing a mark formed on the top surface of a container is acquired (see Figures 14 and 15), the update unit 18 identifies the position and orientation of the container from the target image using a method similar to that used by the identification unit 11a.

具体的には、更新部18は、第1対象画像においてマーク502が写る画素およびマーク502の近傍の稜510が写る画素群の座標に基づいて、マーク502の位置と稜510を含む直線の式とを特定する。更新部18は、コンテナ形状データ10cを参照して、コンテナ5の角504~507の位置とマーク502の位置およびマーク502の近傍の稜510を含む直線の式との相対関係を読み出す。更新部18は、読み出した相関関係に、特定したマーク502の位置および稜510を含む直線の式を適用することにより、コンテナ5の角504~507の座標を特定する。当該座標は、例えばロボットベース座標系で表される。更新部18は、特定した4つの角504~507の座標とコンテナ形状データ10cとに基づいて、ロボットベース座標系の空間においてコンテナ5が占める範囲を算出し、当該範囲を示すように第1初期情報10dを更新する。 Specifically, the update unit 18 identifies the position of the mark 502 and the equation of a line including the edge 510 based on the coordinates of the pixel in which the mark 502 appears and the pixel group in which the edge 510 near the mark 502 appears in the first target image. The update unit 18 references the container shape data 10c and reads the correlation between the positions of the corners 504 to 507 of the container 5 and the equation of a line including the position of the mark 502 and the edge 510 near the mark 502. The update unit 18 identifies the coordinates of the corners 504 to 507 of the container 5 by applying the identified position of the mark 502 and the equation of a line including the edge 510 to the read correlation. These coordinates are expressed, for example, in the robot base coordinate system. The update unit 18 calculates the range occupied by the container 5 in the space of the robot base coordinate system based on the coordinates of the identified four corners 504 to 507 and the container shape data 10c, and updates the first initial information 10d to indicate this range.

更新部18は、同様の方法により、コンテナ6の上面に形成されたマークが写る第2対象画像からコンテナ6の位置姿勢を特定し、特定された位置姿勢に応じて第2初期情報10eを更新する。 The update unit 18 uses a similar method to identify the position and orientation of the container 6 from a second target image that shows the mark formed on the top surface of the container 6, and updates the second initial information 10e according to the identified position and orientation.

コンテナの稜が写る対象画像が取得される場合(図10,図11参照)、対象画像のみではコンテナの位置姿勢を測定することができない。そのため、更新部18は、補助画像の取得指示を画像取得部12に出力し、補助画像(第1補助画像および第2補助画像)を取得する。補助画像には、コンテナのうち、対象画像に写る稜に直交する稜が写る。 When a target image showing the edges of a container is acquired (see Figures 10 and 11), the position and orientation of the container cannot be measured from the target image alone. Therefore, the update unit 18 outputs an instruction to acquire auxiliary images to the image acquisition unit 12, and acquires auxiliary images (first auxiliary image and second auxiliary image). The auxiliary images show edges of the container that are perpendicular to the edges shown in the target image.

例えば、第1補助画像75は、第1初期情報10dによって示される初期位置姿勢を有するコンテナ5の稜508が視野内に含まれる位置のカメラ200の撮像によって取得される。そのため、画像取得部12は、初期位置姿勢を有するコンテナ5の稜508がカメラ200の視野内に含まれるときのエンドエフェクタ305の位置への移動指令を生成し、生成した移動指令をロボット制御装置400に出力する。画像取得部12は、ロボット300の移動後に、第2モードの撮像指示をカメラ200に出力し、第1補助画像を取得する。 For example, the first auxiliary image 75 is acquired by capturing an image with the camera 200 at a position where the edge 508 of the container 5 having the initial position and orientation indicated by the first initial information 10d is included in the field of view. Therefore, the image acquisition unit 12 generates a movement command for the end effector 305 to the position when the edge 508 of the container 5 having the initial position and orientation is included in the field of view of the camera 200, and outputs the generated movement command to the robot control device 400. After the robot 300 has moved, the image acquisition unit 12 outputs an image capture command in the second mode to the camera 200 and acquires the first auxiliary image.

図22は、対象画像と補助画像との関係を示す図である。図22に示されるように、第1対象画像70にはコンテナ5の稜511が写り、第1補助画像75にはコンテナ5の稜508が写る。 Figure 22 shows the relationship between the target image and the auxiliary image. As shown in Figure 22, the first target image 70 shows the edge 511 of the container 5, and the first auxiliary image 75 shows the edge 508 of the container 5.

更新部18は、第1対象画像70と第1補助画像75とに基づいて、コンテナ5の変化後の位置姿勢を測定すればよい。 The update unit 18 simply measures the changed position and orientation of the container 5 based on the first target image 70 and the first auxiliary image 75.

具体的には、更新部18は、第1対象画像70において稜511が写る画素群を抽出し、抽出された画素群の座標に基づいて、稜511を含む直線(以下、「第1直線520」と称する。)の式(以下、「第1直線式」と称する。)を算出する。第1直線式は、ロボットベース座標系において、コンテナ5の上面を含む仮想面90(図7参照)におけるX座標とY座標との関係を示す。同様に、更新部18は、第1補助画像75において稜508が写る画素群を抽出し、抽出された画素群の座標に基づいて、稜508を含む直線(以下、「第2直線521」と称する。)の式(以下、「第2直線式」と称する。)を算出する。 Specifically, the update unit 18 extracts a group of pixels in which the edge 511 appears in the first target image 70, and calculates an equation (hereinafter referred to as the "first line equation") of a straight line (hereinafter referred to as the "first line 520") containing the edge 511 based on the coordinates of the extracted pixel group. The first line equation indicates the relationship between the X and Y coordinates on a virtual surface 90 (see FIG. 7) containing the top surface of the container 5 in the robot base coordinate system. Similarly, the update unit 18 extracts a group of pixels in which the edge 508 appears in the first auxiliary image 75, and calculates an equation (hereinafter referred to as the "second line equation") of a straight line (hereinafter referred to as the "second line 521") containing the edge 508 based on the coordinates of the extracted pixel group.

更新部18は、第1直線式と第2直線式とに基づいて、第1直線520と第2直線521との交点76の座標を算出する。更新部18は、交点76にコンテナ5の角504が存在していると判定し、角504の座標を特定する。さらに、更新部18は、第1直線520上において、交点76から幅Wだけ離れた点77の座標を算出する。幅Wは、コンテナ形状データ10cによって示される。更新部18は、点77にコンテナ5の角507が存在していると判定し、角507の座標を特定する。更新部18は、第2直線521上において、交点76から奥行Dだけ離れた点78の座標を算出する。奥行Dは、コンテナ形状データ10cによって示される。更新部18は、点78にコンテナ5の角505が存在していると判定し、角505の座標を特定する。更新部18は、コンテナ形状データ10cに基づいて、残りの角506の座標を特定する。 The update unit 18 calculates the coordinates of the intersection 76 between the first line 520 and the second line 521 based on the first line equation and the second line equation. The update unit 18 determines that a corner 504 of the container 5 exists at the intersection 76, and specifies the coordinates of the corner 504. Furthermore, the update unit 18 calculates the coordinates of a point 77 on the first line 520 that is a width W away from the intersection 76. The width W is indicated by the container shape data 10c. The update unit 18 determines that a corner 507 of the container 5 exists at the point 77, and specifies the coordinates of the corner 507. The update unit 18 calculates the coordinates of a point 78 on the second line 521 that is a depth D away from the intersection 76. The depth D is indicated by the container shape data 10c. The update unit 18 determines that a corner 505 of the container 5 exists at the point 78, and specifies the coordinates of the corner 505. The update unit 18 determines the coordinates of the remaining corners 506 based on the container shape data 10c.

更新部18は、特定した4つの角504~507の座標とコンテナ形状データ10cとに基づいて、ロボットベース座標系の空間においてコンテナ5が占める範囲を算出し、当該範囲に示すように第1初期情報10dを更新する。 The update unit 18 calculates the range occupied by the container 5 in the space of the robot base coordinate system based on the coordinates of the identified four corners 504 to 507 and the container shape data 10c, and updates the first initial information 10d to indicate this range.

同様の方法で、更新部18は、コンテナ6のうち、第2対象画像に写る稜に直交する稜が写る第2補助画像を取得する。更新部18は、第2対象画像と第2補助画像とに基づいて、コンテナ6の4つの角の座標を特定する。更新部18は、特定した4つの角の座標とコンテナ形状データ10cとに基づいて、ロボットベース座標系の空間においてコンテナ6が占める範囲を算出し、当該範囲に示すように第2初期情報10eを更新する。 In a similar manner, the update unit 18 acquires a second auxiliary image of the container 6, which captures edges of the container 6 that are perpendicular to the edges captured in the second target image. The update unit 18 identifies the coordinates of the four corners of the container 6 based on the second target image and the second auxiliary image. The update unit 18 calculates the range occupied by the container 6 in the space of the robot base coordinate system based on the coordinates of the identified four corners and the container shape data 10c, and updates the second initial information 10e to indicate this range.

変形例1に係る画像処理装置100Aは、画像処理装置100と同様に、図16に示すステップS1~S7を実行する。ただし、画像処理装置100Aは、ステップS6のサブルーチンとして、図20に示すフローチャートの代わりに図23に示すフローチャートに従った処理を実行する。 Image processing device 100A according to variant 1 executes steps S1 to S7 shown in FIG. 16, similar to image processing device 100. However, image processing device 100A executes processing according to the flowchart shown in FIG. 23 as a subroutine of step S6, instead of the flowchart shown in FIG. 20.

図23は、変形例1に係るステップS6のサブルーチンの処理の流れを示すフローチャートである。図23に示すフローチャートは、図20に示すフローチャートと比較して、ステップS42,S44でYESの場合にステップS51,S52がそれぞれ実行される点で相違する。 Figure 23 is a flowchart showing the processing flow of the subroutine of step S6 in Variation 1. The flowchart shown in Figure 23 differs from the flowchart shown in Figure 20 in that steps S51 and S52 are executed when the answer to steps S42 and S44 is YES, respectively.

ステップS42でYESの場合、画像処理装置100AのCPU101は、第1対象画像に基づいて、コンテナ5の位置姿勢を特定し、特定した位置姿勢に応じて第1初期情報10dを更新する(ステップS51)。 If the answer is YES in step S42, the CPU 101 of the image processing device 100A determines the position and orientation of the container 5 based on the first target image, and updates the first initial information 10d according to the determined position and orientation (step S51).

ステップS44でYESの場合、画像処理装置100AのCPU101は、第2対象画像に基づいて、コンテナ6の位置姿勢を特定し、特定した位置姿勢に応じて第2初期情報10eを更新する(ステップS52)。 If the answer is YES in step S44, the CPU 101 of the image processing device 100A determines the position and orientation of the container 6 based on the second target image, and updates the second initial information 10e according to the determined position and orientation (step S52).

<変形例2>
上記の説明では、検出部13は、第2モードの撮像によって得られた第1対象画像および第2対象画像に基づいて、コンテナ5,6の位置姿勢の変化を検出するものとした。しかしながら、検出部13は、第1モードの撮像によって得られた第1対象画像および第2対象画像に基づいて、コンテナ5,6の位置姿勢の変化を検出してもよい。
<Modification 2>
In the above description, the detection unit 13 detects changes in the positions and orientations of the containers 5 and 6 based on the first and second object images obtained by imaging in the second mode. However, the detection unit 13 may also detect changes in the positions and orientations of the containers 5 and 6 based on the first and second object images obtained by imaging in the first mode.

例えば、検出部13は、第1モードの撮像によって得られた第1対象画像に基づいて、コンテナ5の三次元点群データを生成する。検出部13は、第1初期情報10dに基づいて、初期位置姿勢のコンテナ5の表面の位置を特定する。検出部13は、生成された三次元点群データによって示される表面の位置と、第1初期情報10dに基づいて特定された表面の位置との差分を算出する。検出部13は、算出された差分が閾値以下であることに応じて、コンテナ5の位置姿勢が変化無しと判定し、算出された差分が閾値を超えることに応じて、コンテナ5の位置姿勢が変化有りと判定すればよい。 For example, the detection unit 13 generates three-dimensional point cloud data of the container 5 based on a first target image obtained by imaging in the first mode. The detection unit 13 identifies the surface position of the container 5 in its initial position and orientation based on the first initial information 10d. The detection unit 13 calculates the difference between the surface position indicated by the generated three-dimensional point cloud data and the surface position identified based on the first initial information 10d. The detection unit 13 determines that the position and orientation of the container 5 have not changed if the calculated difference is equal to or less than a threshold, and determines that the position and orientation of the container 5 have changed if the calculated difference exceeds the threshold.

<変形例3>
上記の説明では、ピックアンドプレース動作の途中において、第1対象画像および第2対象画像が取得されるものとした。しかしながら、画像取得部12は、ピックアンドプレース開始後の任意のタイミングで、第1対象画像および第2対象画像を取得すればよい。例えば、画像取得部12は、規定回数のピックアンドプレース動作が完了するたびに、カメラ200を上記の第1通過点および第2通過点に移動させ、第1対象画像および第2対象画像を取得してもよい。あるいは、画像取得部12は、ピックアンドプレース開始後、規定時間が経過するたびに、カメラ200を上記の第1通過点および第2通過点に移動させ、第1対象画像および第2対象画像を取得してもよい。
<Modification 3>
In the above description, the first and second target images are assumed to be acquired during the pick-and-place operation. However, the image acquisition unit 12 may acquire the first and second target images at any timing after the start of the pick-and-place operation. For example, the image acquisition unit 12 may move the camera 200 to the first and second pass points and acquire the first and second target images each time a predetermined number of pick-and-place operations are completed. Alternatively, the image acquisition unit 12 may move the camera 200 to the first and second pass points and acquire the first and second target images each time a predetermined time has elapsed after the start of the pick-and-place operation.

<変形例4>
カメラ200は、図2に示す構成に限定されない。例えば、カメラ200は、2眼ステレオカメラであってもよい。この場合、カメラ200は、第1モードの撮像指示を受けた場合、ステレオ方式に従った画像を撮像する。また、カメラ200は、例えば特開2019-138822に開示されているように、プロジェクタが付加された2眼ステレオカメラであってもよい。このように、カメラ200は、3Dカメラとして動作する第1モードと2Dカメラとして動作する第2モードとを有していればよく、3Dカメラとして動作する方式として様々な方式を採用し得る。
<Modification 4>
Camera 200 is not limited to the configuration shown in FIG. 2 . For example, camera 200 may be a twin-lens stereo camera. In this case, when camera 200 receives an instruction to capture images in the first mode, it captures images according to a stereo system. Camera 200 may also be a twin-lens stereo camera with an attached projector, as disclosed in Japanese Patent Application Laid-Open No. 2019-138822, for example. In this way, camera 200 only needs to have a first mode in which it operates as a 3D camera and a second mode in which it operates as a 2D camera, and various systems may be adopted as the system for operating as a 3D camera.

§3 付記
以上のように、本実施の形態は以下のような開示を含む。
§3 Supplementary Note As described above, the present embodiment includes the following disclosure.

(構成1)
カメラ(200)の画像に対する処理を行なう画像処理装置(100,100A)であって、前記カメラ(200)は、第1エリアから第2エリアに対象物をピックアンドプレースするエンドエフェクタ(305)に対する相対位置が一定となるように、前記エンドエフェクタ(305)を有するロボット(300)に搭載され、前記画像処理装置(100,100A)は、
前記第1エリアまたは前記第2エリアにおいて前記対象物を収容するコンテナ(5,6)の初期位置姿勢を示す初期情報(10d,10e)を取得する第1取得部(11,101)と、
前記ピックアンドプレースの開始後に、前記初期位置姿勢を有する前記コンテナ(5,6)の少なくとも一部が視野に含まれる状態の前記カメラ(200)の撮像によって得られる対象画像を取得する第2取得部(12,101)と、
前記対象画像と前記初期情報とに基づいて、前記コンテナ(5,6)の位置姿勢の変化を検出する検出部(13,101)と、を備える画像処理装置(100,100A)。
(Configuration 1)
An image processing device (100, 100A) that processes an image of a camera (200), wherein the camera (200) is mounted on a robot (300) having an end effector (305) that picks and places an object from a first area to a second area so that the relative position of the camera (200) with respect to the end effector (305) is constant, and the image processing device (100, 100A)
a first acquisition unit (11, 101) that acquires initial information (10d, 10e) indicating an initial position and orientation of a container (5, 6) that accommodates the object in the first area or the second area;
a second acquisition unit (12, 101) that acquires a target image obtained by capturing an image of the camera (200) in a state in which at least a portion of the container (5, 6) having the initial position and orientation is included in a field of view after the start of the pick-and-place;
and a detection unit (13, 101) that detects a change in the position and orientation of the container (5, 6) based on the target image and the initial information.

(構成2)
前記カメラ(200)の画像を用いて前記第1エリアに存在する前記対象物の位置姿勢を計測する計測部(15,101)と、
前記対象物の位置姿勢に基づいて、ホームポジションから前記対象物をピッキングし、前記対象物を前記第2エリアにプレースし、前記ホームポジションに戻るための前記エンドエフェクタ(305)の経路を設定する設定部(16)とをさらに備え、
前記経路は、前記初期位置姿勢を有する前記コンテナ(5,6)の特徴部分が前記カメラ(200)の視野内に含まれるときの前記エンドエフェクタ(305)の位置に対応する通過点を含み、
前記対象画像は、前記エンドエフェクタ(305)が前記通過点を通過するタイミングにおける前記カメラ(200)の撮像によって得られる、構成1に記載の画像処理装置(100,100A)。
(Configuration 2)
a measurement unit (15, 101) that measures the position and orientation of the object present in the first area using an image from the camera (200);
a setting unit (16) that sets a path for the end effector (305) to pick up the object from a home position, place the object in the second area, and return to the home position based on the position and orientation of the object,
the path includes waypoints corresponding to positions of the end effector (305) when a feature of the container (5, 6) having the initial position and orientation is within the field of view of the camera (200);
The image processing device (100, 100A) according to configuration 1, wherein the target image is obtained by capturing an image with the camera (200) at the timing when the end effector (305) passes through the passing point.

(構成3)
前記通過点は、前記対象物をプレースしてから前記ホームポジションに戻るまでの間に設定される、請求項2に記載の画像処理装置(100,100A)。
(Configuration 3)
The image processing device (100, 100A) according to claim 2, wherein the passing point is set during a period from when the object is placed until when the object returns to the home position.

(構成4)
前記コンテナ(5,6)は、平面視矩形の箱状であり、
前記特徴部分は、前記コンテナ(5,6)の角部、前記コンテナ(5,6)の上面と側面との稜、前記上面に形成されたマーク(502)のうちの少なくとも1つを含む、構成2または3に記載の画像処理装置(100,100A)。
(Configuration 4)
The containers (5, 6) are rectangular box-shaped in plan view,
The image processing device (100, 100A) according to configuration 2 or 3, wherein the characteristic portion includes at least one of a corner of the container (5, 6), a ridge between the top surface and the side surface of the container (5, 6), and a mark (502) formed on the top surface.

(構成5)
前記第1取得部(11,101)は、前記検出部(13,101)によって前記コンテナ(5,6)の位置姿勢の変化が検出されたことに応じて、前記初期情報を取得し直す、構成1から4のいずれかに記載の画像処理装置(100,100A)。
(Configuration 5)
The image processing device (100, 100A) described in any one of configurations 1 to 4, wherein the first acquisition unit (11, 101) re-acquires the initial information in response to a change in the position and orientation of the container (5, 6) being detected by the detection unit (13, 101).

(構成6)
前記対象画像に基づいて、前記コンテナ(5,6)の位置姿勢を特定し、特定した位置姿勢に応じて前記初期情報を更新する更新部(18,101)をさらに備える、構成1から4のいずれかに記載の画像処理装置(100A)。
(Configuration 6)
The image processing device (100A) according to any one of configurations 1 to 4, further comprising an update unit (18, 101) that identifies a position and orientation of the container (5, 6) based on the target image and updates the initial information in accordance with the identified position and orientation.

(構成7)
ロボット制御システム(1)であって、
第1エリアから第2エリアに対象物をピックアンドプレースするエンドエフェクタ(305)を有するロボット(300)と、
前記エンドエフェクタ(305)との相対位置が一定となるように前記ロボット(300)に搭載されるカメラ(200)と、
前記第1エリアまたは前記第2エリアにおいて前記対象物を収容するコンテナ(5,6)の初期位置姿勢を示す初期情報を取得する第1取得部(11,101)と、
前記ピックアンドプレースの開始後に、前記初期位置姿勢を有する前記コンテナの少なくとも一部が視野に含まれる状態の前記カメラ(200)の撮像によって得られる対象画像を取得する第2取得部(12,101)と、
前記対象画像と前記初期情報とに基づいて、前記コンテナ(5,6)の位置姿勢の変化を検出する検出部(13,101)と、を備えるロボット制御システム。
(Configuration 7)
A robot control system (1), comprising:
a robot (300) having an end effector (305) for picking and placing an object from a first area to a second area;
a camera (200) mounted on the robot (300) so that its relative position with respect to the end effector (305) is constant;
a first acquisition unit (11, 101) that acquires initial information indicating an initial position and orientation of a container (5, 6) that accommodates the object in the first area or the second area;
a second acquisition unit (12, 101) that acquires a target image obtained by capturing an image of the camera (200) in a state in which at least a portion of the container having the initial position and orientation is included in a field of view after the start of the pick-and-place;
A robot control system comprising: a detection unit (13, 101) that detects a change in the position and orientation of the container (5, 6) based on the target image and the initial information.

(構成8)
カメラ(200)の画像に対する処理を行なう画像処理装置(100,100A)の制御方法であって、前記カメラ(200)は、第1エリアから第2エリアに対象物をピックアンドプレースするエンドエフェクタ(305)に対する相対位置が一定となるように、前記エンドエフェクタ(305)を有するロボット(300)に搭載され、前記制御方法は、
前記第1エリアまたは前記第2エリアにおいて前記対象物を収容するコンテナ(5,6)の初期位置姿勢を示す初期情報を取得するステップと、
前記ピックアンドプレースの開始後に、前記初期位置姿勢を有する前記コンテナ(5,6)の少なくとも一部が視野に含まれる状態の前記カメラ(200)の撮像によって得られる対象画像を取得するステップと、
前記対象画像と前記初期情報とに基づいて、前記コンテナ(5,6)の位置姿勢の変化を検出するステップと、を備える制御方法。
(Configuration 8)
A control method for an image processing device (100, 100A) that processes an image of a camera (200), wherein the camera (200) is mounted on a robot (300) having an end effector (305) that picks and places an object from a first area to a second area so that the relative position of the camera (200) with respect to the end effector (305) is constant, and the control method includes:
acquiring initial information indicating an initial position and orientation of a container (5, 6) that accommodates the object in the first area or the second area;
After the pick-and-place operation is started, an object image is acquired by capturing an image of the camera (200) in a state in which at least a portion of the container (5, 6) having the initial position and orientation is included in the field of view;
and detecting a change in the position and orientation of the container (5, 6) based on the target image and the initial information.

本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 Although the embodiments of the present invention have been described, the embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is defined by the claims, and it is intended to include all modifications within the meaning and scope of the claims.

1 ロボット制御システム、2 物品、5,6 コンテナ、5M コンテナモデル、10 記憶部、10a キャリブレーションデータ、10b テンプレートデータ、10c コンテナ形状データ、10d 第1初期情報、10e 第2初期情報、10f 把持点データ、10g ホームポジションデータ、11 情報取得部、11a 特定部、11b 探索部、12 画像取得部、13 検出部、14 形状データ取得部、15 計測部、15a 点群データ生成部、15b ワーク検出部、16 設定部、17 指令部、18 更新部、21 投影部、22 撮像部、70 第1対象画像、70M 仮想画像、75 第1補助画像、76 交点、77,78 点、80 2D画像、81 右上画素、82 右下画素、83 左下画素、84 左上画素、85,86,88 画素、89a,89b 画素群、90 仮想面、100,100A 画像処理装置、101 CPU、102 メインメモリ、103 ハードディスク、104 カメラインターフェース、104a 画像バッファ、105 入力インターフェース、106 表示コントローラ、107 通信インターフェース、108 データリーダ/ライタ、109 バス、150 入力装置、160 ディスプレイ、200 カメラ、210 光源、211 フィルタ、212,221 光学系、220 撮像素子、300 ロボット、301 ベース、302 多関節アーム、303 フランジプレート、304 支持部材、305 エンドエフェクタ、400 ロボット制御装置、501 上面、502,502M マーク、504~507,506M 角、508~511,509M~511M 稜、520 第1直線、700 メモリカード。 1 Robot control system, 2 Item, 5, 6 Container, 5M Container model, 10 Memory unit, 10a Calibration data, 10b Template data, 10c Container shape data, 10d First initial information, 10e Second initial information, 10f Grasping point data, 10g Home position data, 11 Information acquisition unit, 11a Identification unit, 11b Search unit, 12 Image acquisition unit, 13 Detection unit, 14 Shape data acquisition unit, 15 Measurement unit, 15a Point cloud data generation unit, 15b Workpiece detection unit, 16 Setting unit, 17 Command unit, 18 Update unit, 21 Projection unit, 22 Imaging unit, 70 First object image, 70M Virtual image, 75 First auxiliary image, 76 Intersection, 77, 78 Point, 80 2D image, 81 Upper right pixel, 82 Lower right pixel, 83 Lower left pixel, 84 Upper left pixel, 85, 86, 88 pixels, 89a, 89b pixel group, 90 virtual surface, 100, 100A image processing device, 101 CPU, 102 main memory, 103 hard disk, 104 camera interface, 104a image buffer, 105 input interface, 106 display controller, 107 communication interface, 108 data reader/writer, 109 bus, 150 input device, 160 display, 200 camera, 210 light source, 211 filter, 212, 221 optical system, 220 imaging element, 300 robot, 301 base, 302 articulated arm, 303 flange plate, 304 support member, 305 end effector, 400 robot control device, 501 upper surface, 502, 502M marks, 504 to 507, 506M Corner, 508-511, 509M-511M Edge, 520 First straight line, 700 Memory card.

Claims (7)

カメラの画像に対する処理を行なう画像処理装置であって、前記カメラは、第1エリアから第2エリアに対象物をピックアンドプレースするエンドエフェクタに対する相対位置が一定となるように、前記エンドエフェクタを有するロボットに搭載され、前記画像処理装置は、
前記第1エリアまたは前記第2エリアにおいて前記対象物を収容するコンテナの初期位置姿勢を示す初期情報を取得する第1取得部と、
前記ピックアンドプレースの開始後に、前記初期位置姿勢を有する前記コンテナの少なくとも一部が視野に含まれる状態の前記カメラの撮像によって得られる対象画像を取得する第2取得部と、
前記対象画像と前記初期情報とに基づいて、前記コンテナの位置姿勢の変化を検出する検出部と、
前記カメラの画像を用いて前記第1エリアに存在する前記対象物の位置姿勢を計測する計測部と、
前記対象物の位置姿勢に基づいて、ホームポジションから前記対象物をピッキングし、前記対象物を前記第2エリアにプレースし、前記ホームポジションに戻るための前記エンドエフェクタの経路を設定する設定部と、を備え、
前記経路は、前記初期位置姿勢を有する前記コンテナの特徴部分が前記カメラの視野内に含まれるときの前記エンドエフェクタの位置に対応する通過点を含み、
前記対象画像は、前記エンドエフェクタが前記通過点を通過するタイミングにおける前記カメラの撮像によって得られる、画像処理装置。
An image processing device that processes an image of a camera, the camera being mounted on a robot having an end effector that picks and places an object from a first area to a second area so that a relative position of the camera with respect to the end effector is constant, the image processing device comprising:
a first acquisition unit that acquires initial information indicating an initial position and orientation of a container that accommodates the object in the first area or the second area;
a second acquisition unit that acquires, after the start of the pick-and-place operation, a target image obtained by capturing an image of the camera in a state in which at least a portion of the container having the initial position and orientation is included in a field of view;
a detection unit that detects a change in the position and orientation of the container based on the target image and the initial information;
a measurement unit that measures the position and orientation of the object present in the first area using an image from the camera;
a setting unit that sets a path for the end effector to pick up the object from a home position, place the object in the second area, and return to the home position based on the position and orientation of the object,
the path includes waypoints corresponding to positions of the end effector when a feature of the container having the initial position and orientation is within a field of view of the camera;
The target image is obtained by capturing an image with the camera at the timing when the end effector passes through the passing point .
前記通過点は、前記対象物をプレースしてから前記ホームポジションに戻るまでの間に設定される、請求項に記載の画像処理装置。 The image processing device according to claim 1 , wherein the passing point is set between when the object is placed and when the object returns to the home position. 前記コンテナは、平面視矩形の箱状であり、
前記特徴部分は、前記コンテナの角部、前記コンテナの上面と側面との稜、前記上面に形成されたマークのうちの少なくとも1つを含む、請求項またはに記載の画像処理装置。
The container has a rectangular box shape in a plan view,
The image processing device according to claim 1 or 2 , wherein the characteristic portion includes at least one of a corner of the container, a ridge between the top surface and a side surface of the container, and a mark formed on the top surface.
前記第1取得部は、前記検出部によって前記コンテナの位置姿勢の変化が検出されたことに応じて、前記初期情報を取得し直す、請求項1からのいずれか1項に記載の画像処理装置。 The image processing device according to claim 1 , wherein the first acquisition unit reacquires the initial information in response to a change in the position and orientation of the container being detected by the detection unit. 前記対象画像に基づいて、前記コンテナの位置姿勢を特定し、特定した位置姿勢に応じて前記初期情報を更新する更新部をさらに備える、請求項1からのいずれか1項に記載の画像処理装置。 The image processing device according to claim 1 , further comprising an update unit that identifies a position and orientation of the container based on the target image, and updates the initial information in accordance with the identified position and orientation. ロボット制御システムであって、
第1エリアから第2エリアに対象物をピックアンドプレースするエンドエフェクタを有するロボットと、
前記エンドエフェクタとの相対位置が一定となるように前記ロボットに搭載されるカメラと、
前記第1エリアまたは前記第2エリアにおいて前記対象物を収容するコンテナの初期位置姿勢を示す初期情報を取得する第1取得部と、
前記ピックアンドプレースの開始後に、前記初期位置姿勢を有する前記コンテナの少なくとも一部が視野に含まれる状態の前記カメラの撮像によって得られる対象画像を取得する第2取得部と、
前記対象画像と前記初期情報とに基づいて、前記コンテナの位置姿勢の変化を検出する検出部と、
前記カメラの画像を用いて前記第1エリアに存在する前記対象物の位置姿勢を計測する計測部と、
前記対象物の位置姿勢に基づいて、ホームポジションから前記対象物をピッキングし、前記対象物を前記第2エリアにプレースし、前記ホームポジションに戻るための前記エンドエフェクタの経路を設定する設定部と、を備え、
前記経路は、前記初期位置姿勢を有する前記コンテナの特徴部分が前記カメラの視野内に含まれるときの前記エンドエフェクタの位置に対応する通過点を含み、
前記対象画像は、前記エンドエフェクタが前記通過点を通過するタイミングにおける前記カメラの撮像によって得られる、を備えるロボット制御システム。
1. A robot control system, comprising:
a robot having an end effector that picks and places an object from a first area to a second area;
a camera mounted on the robot so that its relative position with respect to the end effector is constant;
a first acquisition unit that acquires initial information indicating an initial position and orientation of a container that accommodates the object in the first area or the second area;
a second acquisition unit that acquires, after the start of the pick-and-place operation, a target image obtained by capturing an image of the camera in a state in which at least a portion of the container having the initial position and orientation is included in a field of view;
a detection unit that detects a change in the position and orientation of the container based on the target image and the initial information;
a measurement unit that measures the position and orientation of the object present in the first area using an image from the camera;
a setting unit that sets a path for the end effector to pick up the object from a home position, place the object in the second area, and return to the home position based on the position and orientation of the object,
the path includes waypoints corresponding to positions of the end effector when a feature of the container having the initial position and orientation is within a field of view of the camera;
the target image is obtained by capturing an image with the camera at the timing when the end effector passes through the passing point .
カメラの画像に対する処理を行なう画像処理装置の制御方法であって、前記カメラは、第1エリアから第2エリアに対象物をピックアンドプレースするエンドエフェクタに対する相対位置が一定となるように、前記エンドエフェクタを有するロボットに搭載され、前記制御方法は、
前記第1エリアまたは前記第2エリアにおいて前記対象物を収容するコンテナの初期位置姿勢を示す初期情報を取得するステップと、
前記ピックアンドプレースの開始後に、前記初期位置姿勢を有する前記コンテナの少なくとも一部が視野に含まれる状態の前記カメラの撮像によって得られる対象画像を取得するステップと、
前記対象画像と前記初期情報とに基づいて、前記コンテナの位置姿勢の変化を検出するステップと、
前記カメラの画像を用いて前記第1エリアに存在する前記対象物の位置姿勢を計測するステップと、
前記対象物の位置姿勢に基づいて、ホームポジションから前記対象物をピッキングし、前記対象物を前記第2エリアにプレースし、前記ホームポジションに戻るための前記エンドエフェクタの経路を設定するステップと、を備え、
前記経路は、前記初期位置姿勢を有する前記コンテナの特徴部分が前記カメラの視野内に含まれるときの前記エンドエフェクタの位置に対応する通過点を含み、
前記対象画像は、前記エンドエフェクタが前記通過点を通過するタイミングにおける前記カメラの撮像によって得られる、制御方法。
A control method for an image processing device that processes an image captured by a camera, the camera being mounted on a robot having an end effector that picks and places an object from a first area to a second area so that the relative position of the camera to the end effector is constant, the control method comprising:
acquiring initial information indicating an initial position and orientation of a container that accommodates the object in the first area or the second area;
acquiring an object image obtained by capturing an image of the object with the camera after the start of the pick-and-place operation, in a state in which at least a portion of the container having the initial position and orientation is included in a field of view;
detecting a change in the position and orientation of the container based on the target image and the initial information;
measuring the position and orientation of the object present in the first area using an image from the camera;
and a step of picking up the object from a home position, placing the object in the second area, and setting a path for the end effector to return to the home position based on the position and orientation of the object;
the path includes waypoints corresponding to positions of the end effector when a feature of the container having the initial position and orientation is within a field of view of the camera;
A control method , wherein the target image is obtained by capturing an image with the camera at the timing when the end effector passes through the passing point .
JP2021200235A 2021-12-09 2021-12-09 Image processing device, robot control system and control method Active JP7750072B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021200235A JP7750072B2 (en) 2021-12-09 2021-12-09 Image processing device, robot control system and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021200235A JP7750072B2 (en) 2021-12-09 2021-12-09 Image processing device, robot control system and control method

Publications (2)

Publication Number Publication Date
JP2023085917A JP2023085917A (en) 2023-06-21
JP7750072B2 true JP7750072B2 (en) 2025-10-07

Family

ID=86775774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021200235A Active JP7750072B2 (en) 2021-12-09 2021-12-09 Image processing device, robot control system and control method

Country Status (1)

Country Link
JP (1) JP7750072B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2025041318A1 (en) * 2023-08-23 2025-02-27
JPWO2025041319A1 (en) * 2023-08-23 2025-02-27
WO2025079580A1 (en) * 2023-10-11 2025-04-17 京セラ株式会社 Processing device, robot control device, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014028415A (en) 2012-07-31 2014-02-13 Fanuc Ltd Device for unloading bulk loaded commodities with robot
JP2019188516A (en) 2018-04-24 2019-10-31 キヤノン株式会社 Information processor, information processing method, and program
JP2021115693A (en) 2020-01-23 2021-08-10 オムロン株式会社 Control device of robot system, control method of robot system, computer control program and robot system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014028415A (en) 2012-07-31 2014-02-13 Fanuc Ltd Device for unloading bulk loaded commodities with robot
JP2019188516A (en) 2018-04-24 2019-10-31 キヤノン株式会社 Information processor, information processing method, and program
JP2021115693A (en) 2020-01-23 2021-08-10 オムロン株式会社 Control device of robot system, control method of robot system, computer control program and robot system

Also Published As

Publication number Publication date
JP2023085917A (en) 2023-06-21

Similar Documents

Publication Publication Date Title
JP7750072B2 (en) Image processing device, robot control system and control method
JP6271953B2 (en) Image processing apparatus and image processing method
US20220180552A1 (en) Device, method, and program for detecting position and orientation of target object
US8095237B2 (en) Method and apparatus for single image 3D vision guided robotics
CN102763132B (en) Three-dimensional measurement apparatus and processing method
JP7331527B2 (en) Apparatus, method and program for determining robot motion
JP6507730B2 (en) Coordinate transformation parameter determination device, coordinate transformation parameter determination method, and computer program for coordinate transformation parameter determination
JP6427972B2 (en) Robot, robot system and control device
EP1413850B1 (en) Optical sensor for measuring position and orientation of an object in three dimensions
JP6092530B2 (en) Image processing apparatus and image processing method
JP6973444B2 (en) Control system, information processing device and control method
JP2014028415A (en) Device for unloading bulk loaded commodities with robot
JP7439410B2 (en) Image processing device, image processing method and program
JP7591938B2 (en) Control device
US20180250813A1 (en) Image Processing Device, Image Processing Method, And Computer Program
JP7535400B2 (en) Image Processing Device
US11126844B2 (en) Control apparatus, robot system, and method of detecting object
US20190287258A1 (en) Control Apparatus, Robot System, And Method Of Detecting Object
CN115213894B (en) Robot image display method, display system, and recording medium
JP2011065399A (en) Simulation device, simulation method, and simulation program
JP7533265B2 (en) Support system, image processing device, support method and program
JP7519222B2 (en) Image Processing Device
JP2021047516A (en) Information processing device, coordinate conversion system, coordinate conversion method, and coordinate conversion program
JP7757756B2 (en) Image processing device, robot control system and control method
CN119300961A (en) Control device, control system, robot system, control method and computer program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241010

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250710

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250908

R150 Certificate of patent or registration of utility model

Ref document number: 7750072

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150