JP2021122868A - Robot, control method, information processor, and program - Google Patents
Robot, control method, information processor, and program Download PDFInfo
- Publication number
- JP2021122868A JP2021122868A JP2020015837A JP2020015837A JP2021122868A JP 2021122868 A JP2021122868 A JP 2021122868A JP 2020015837 A JP2020015837 A JP 2020015837A JP 2020015837 A JP2020015837 A JP 2020015837A JP 2021122868 A JP2021122868 A JP 2021122868A
- Authority
- JP
- Japan
- Prior art keywords
- target
- past
- current
- target position
- calculated based
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明の実施形態は、ロボット、制御方法、情報処理装置およびプログラムに関する。 Embodiments of the present invention relate to robots, control methods, information processing devices and programs.
従来、先端にエンドエフェクタが設けられたアームを備えるロボットが知られている。このようなロボットは、アームを変形させることによりエンドエフェクタを対象物体に近づける。そして、このようなロボットは、エンドエフェクタが対象物体に近接した状態において、エンドエフェクタを動作させて対象物体を機械的に操作する。このようなロボットは、例えば、ビジュアルサーボによりアームを制御することにより、エンドエフェクタを対象物体へと近づける。すなわち、このようなロボットは、カメラにより撮像された画像に基づきエンドエフェクタと対象物体との位置関係を検出しながら、エンドエフェクタを対象物体へと近づける。 Conventionally, a robot having an arm provided with an end effector at the tip is known. Such a robot brings the end effector closer to the target object by deforming the arm. Then, such a robot operates the end effector to mechanically operate the target object in a state where the end effector is close to the target object. Such a robot brings the end effector closer to the target object, for example, by controlling the arm by a visual servo. That is, such a robot brings the end effector closer to the target object while detecting the positional relationship between the end effector and the target object based on the image captured by the camera.
家庭用等の小型のロボットは、カメラおよびアームが小型の筐体に設けられる。このため、対象物体とカメラとアームとの位置関係によっては、対象物体がアームにより隠されてしまい、カメラが、対象物体を撮像することができない場合がある。このような場合、例えば、ロボットは、ビジュアルサーボが切れてしまい、エンドエフェクタを精度良く対象物体に近づけることができなかった。 For small robots for home use, the camera and arm are provided in a small housing. Therefore, depending on the positional relationship between the target object, the camera, and the arm, the target object may be hidden by the arm, and the camera may not be able to image the target object. In such a case, for example, the robot could not bring the end effector closer to the target object with high accuracy because the visual servo was cut off.
本発明の実施形態が解決しようとする課題は、第1部位を精度良く制御することにある。 An object to be solved by the embodiment of the present invention is to control the first portion with high accuracy.
実施形態に係るロボットは、移動可能な第1部位と、前記第1部位を制御するプロセッサと、を備える。前記プロセッサは、前記第1部位の所定部分が移動可能な範囲の少なくとも一部を示す現在データに基づいて前記所定部分の移動目標となる現在目標位置を算出することができない場合、前記所定部分の移動目標となる予測目標位置へと前記所定部分を移動させるように、前記第1部位を制御する。前記予測目標位置は、過去に取得した過去データに基づき算出した前記所定部分における移動目標となる過去目標位置と、前記過去データに基づき算出した基準物体の位置である過去基準位置と、前記現在データと、に基づいて算出される。 The robot according to the embodiment includes a movable first portion and a processor that controls the first portion. When the processor cannot calculate the current target position as the movement target of the predetermined portion based on the current data indicating at least a part of the movable range of the predetermined portion of the first portion, the predetermined portion of the predetermined portion. The first portion is controlled so as to move the predetermined portion to the predicted target position which is the movement target. The predicted target position includes a past target position that is a movement target in the predetermined portion calculated based on past data acquired in the past, a past reference position that is a position of a reference object calculated based on the past data, and the current data. And, it is calculated based on.
以下、図面を参照しながら実施形態について詳細に説明する。 Hereinafter, embodiments will be described in detail with reference to the drawings.
図1は、実施形態に係るロボット10の外観を示す図である。本実施形態のロボット10は、本体部22と、アーム24(第1部位の一例)と、カメラ26とを少なくとも備える。
FIG. 1 is a diagram showing the appearance of the
本体部22は、ロボット10の本体となる筐体である。本体部22は、例えば移動自在である。本体部22は、例えば、底部に床の上を自在に移動するための車輪等の移動機構を備える。
The
アーム24は、本実施形態の第1部位であり、本体部22に設けられる。アーム24は、1または複数の腕部(リンク)と、1または複数の関節部(可動部)とを有する。1または複数の関節部のそれぞれは、腕部と本体部22とを、または、腕部と腕部とを、例えば回転可能またはスライド可能に接続する。1または複数の関節部のそれぞれは、モータを含み、腕部と本体部22との位置関係または腕部と腕部との位置関係を変化させる。アーム24は、1または複数の関節部が動作することにより任意の形状に変化する。なお、第1部位は、アームの他にロボット10の一部を指す。また、本開示において、アームは第1部位と適宜読みかえることができる。
The
アーム24は、所定部分にエンドエフェクタ28を含む。例えば、アーム24は、本体部22とは反対側の端部である先端に、エンドエフェクタ28を含む。
The
エンドエフェクタ28は、対象物体に対して機械的な所定の操作を行う。対象物体は、例えば、独立した1つの物体である。なお、対象物体は、エンドエフェクタ28による機械的な操作の対象となることができれば、物体の表面の一部分であってもよいし、物体におけるエッジ部分または突起部分等であってもよい。
The
例えば、エンドエフェクタ28は、把持機構である。把持機構は、対象物体をつかむことができる。エンドエフェクタ28として把持機構を含むアーム24は、対象物体をつかんで、移動させることができる。また、エンドエフェクタ28は、対象物体に対して所定の機械的な操作をすることができれば、どのような機構であってもよい。例えば、エンドエフェクタ28は、対象物体に穴を開けるためのドリルであっても、対象物体を磨くためのブラシであってもよい。
For example, the
カメラ26は、本実施形態におけるデータ取得部であり、本体部22に設けられる。カメラ26は、ロボット10の周囲を撮像(取得)する。カメラ26は、アーム24が変形してエンドエフェクタ28が移動した場合であっても、エンドエフェクタ28を撮像可能な位置に設けられる。例えば、カメラ26は、本体部22におけるアーム24の取付位置とは異なる位置に設けられる。例えば、カメラ26は、本体部22におけるアーム24が設けられた位置より上方に設けられる。
The
なお、カメラ26は、二次元画像を撮像する装置であっても、ステレオ画像を撮像する装置であってもよい。また、カメラ26は、デプスカメラであってもよいし、赤外線カメラであってもよい。また、データ取得部は、このような画像を撮像してデータを取得するカメラに限られず、装置周辺の物体等の位置のデータを取得可能であればよい。つまり、現在データまたは過去データは、装置周辺の物体等の位置のデータを示すものであればよい。例えば、データ取得部は現在対象物までの距離の計測データを取得可能なLiDAR等であってもよい。本開示において、カメラはデータ取得部と適宜読みかえることができ、画像はデータと適宜読みかえることができる。
The
このような構成のロボット10は、床等の上を自在に移動することができる。さらに、ロボット10は、アーム24を変形させてエンドエフェクタ28を対象物体の近傍に移動させることができる。そして、ロボット10は、エンドエフェクタ28を対象物体の近傍に移動させた状態において、エンドエフェクタ28を動作させることにより対象物体に対して所定の操作をすることができる。
The
図2は、本実施形態のロボット10の構成を示す図である。本体部22は、内部に情報処理装置30を備える。情報処理装置30は、コンピュータプログラムを実行して、アーム24、カメラ26およびエンドエフェクタ28の動作を制御する。なお、情報処理装置30の一部は、本体部22の外部に設けられてもよい。この場合、情報処理装置30は、本体部22の内部の一部と、本体部22の外部の一部とが無線通信により接続され、連携して情報処理を実行する。
FIG. 2 is a diagram showing a configuration of the
本実施形態の情報処理装置30は、エンドエフェクタ28により対象物体に対して所定の操作をする場合、ビジュアルサーボによりアーム24を制御して、エンドエフェクタ28を対象物体へと近づける。すなわち、情報処理装置30は、カメラ26により撮像された画像を解析して、エンドエフェクタ28と対象物体との相対的な位置関係を検出する。続いて、情報処理装置30は、エンドエフェクタ28が対象物体に対して所定の操作が可能な位置(目標位置)に移動するように、アーム24を変形させる。そして、情報処理装置30は、エンドエフェクタ28が目標位置へと到達するまで、このような処理をリアルタイムで繰り返し実行する。
When the
図3は、ビジュアルサーボによりアーム24を制御するための情報処理装置30の機能構成を示す図である。情報処理装置30は、取得部42と、物体検出部44と、アーム特定部48と、目標特定部50と、基準物体特定部52と、記憶部56と、アーム制御部58とを備える。
FIG. 3 is a diagram showing a functional configuration of an
取得部42は、所定時間毎に、カメラ26により撮像された画像(現在データの一例)を取得する。
The acquisition unit 42 acquires an image (an example of current data) captured by the
本実施形態の物体検出部44は、所定時間毎に、取得部42が取得した画像に含まれる1または複数の物体を検出する。さらに、物体検出部44は、検出した1または複数の物体のそれぞれのクラスも検出してもよい。クラスは、例えば、物体の種別である。
The
本実施形態のアーム特定部48は、物体検出部44により検出された1または複数の物体のうちのアーム24における所定部分を特定する。例えば、アーム特定部48は、アーム24の先端に設けられたエンドエフェクタ28を特定する。そして、アーム特定部48は、特定されたアーム24における所定部分(エンドエフェクタ28)の空間的な位置を算出(特定)する。例えば、アーム特定部48は、3次元の直交座標で表されたエンドエフェクタ28の位置を算出する。
The
本実施形態の目標特定部50は、取得部42が取得した画像に基づき、アーム24における所定部分の移動目標となる空間的な位置である現在目標位置を算出する。例えば、目標特定部50は、3次元の直交座標で表された現在目標位置を算出する。
The
本実施形態においては、目標特定部50は、物体検出部44により検出された1または複数の物体のうちのエンドエフェクタ28の操作対象となる対象物体を特定する。続いて、目標特定部50は、対象物体の空間的な位置を算出する。例えば、目標特定部50は、3次元の直交座標で表された対象物体の位置を算出する。
In the present embodiment, the
そして、目標特定部50は、対象物体の位置に基づいて、エンドエフェクタ28が対象物体に対して所定の操作可能な位置を、現在目標位置として算出する。例えば、目標特定部50は、対象物体に対して所定方向に所定距離離間した位置を、現在目標位置として算出する。例えば、エンドエフェクタ28が把持機構である場合、目標特定部50は、エンドエフェクタ28が対象物体を把持可能な位置を、現在目標位置として算出する。
Then, the
基準物体特定部52は、物体検出部44により検出された1または複数の物体のうちの何れかの物体を基準物体として特定する。そして、基準物体特定部52は、特定された基準物体の空間的な位置を、現在基準位置として算出する。例えば、基準物体特定部52は、3次元の直交座標で表された現在基準位置を算出する。
The reference object identification unit 52 identifies any one or a plurality of objects detected by the
基準物体特定部52は、例えば、物体検出部44により検出された1または複数の物体のうちの対象物体以外の何れかの物体を基準物体として特定する。基準物体は、独立した1つの物体であってもよいし、1つの物体における一部分であってもよい。例えば、基準物体は、物体の表面に描かれた模様であってもよいし、物体におけるエッジ部分または突起部分等であってもよい。
The reference object identification unit 52 identifies, for example, any object other than the target object among one or a plurality of objects detected by the
例えば、基準物体特定部52は、物体検出部44により検出された1または複数の物体のうちの対象物体に対して相対的に固定された物体を、基準物体として特定する。また、例えば、基準物体特定部52は、物体検出部44により検出された1または複数の物体のうちの対象物体からの距離が所定の範囲にある物体を、基準物体として特定する。より具体的には、例えば、基準物体特定部52は、対象物体から予め設定された第1閾値より遠く、予め設定された第2閾値より近い距離の物体を、基準物体として特定する。この場合、第1閾値は、第2閾値よりも短い。
For example, the reference object identification unit 52 identifies an object that is fixed relative to the target object among one or a plurality of objects detected by the
本実施形態の記憶部56は、目標特定部50により算出された現在目標位置を、過去画像(過去データの一例または第1画像)に基づき算出したアーム24の所定部分(本実施形態においてはエンドエフェクタ28)の移動目標となる過去目標位置として記憶する。さらに、記憶部56は、基準物体特定部52により算出した現在基準位置を、過去画像に基づき算出した基準物体における位置である過去基準位置として記憶する。記憶部56は、同一の過去画像に基づき算出した過去目標位置と過去基準位置とをペアにして記憶する。
The
なお、目標特定部50は、カメラ26により撮像された画像に基づき現在目標位置を算出することができない場合がある。例えば、対象物体がアーム24により隠されてしまい画像に対象物体が含まれない場合、目標特定部50は、現在目標位置を算出することができない。また、目標特定部50は、対象物体が画像に含まれていても、現在目標位置の精度が所定精度より低い場合および他の条件によって現在目標位置の算出が困難な場合も、現在目標位置を算出することができないと判定してもよい。この場合、記憶部56は、過去目標位置および過去基準位置を記憶しないことができる。また、記憶部56は、新たな画像に基づき算出した過去目標位置および過去基準位置を記憶した場合には、それ以前の画像に基づき算出した過去目標位置および過去基準位置を消去してもよい。
The
本実施形態のアーム制御部58は、アーム特定部48から、アーム24における所定部分(エンドエフェクタ28)の空間的な位置を取得する。また、アーム制御部58は、目標特定部50から、画像に基づき現在目標位置を算出することができた否かを示す情報を取得する。
The
アーム制御部58は、目標特定部50が画像に基づき現在目標位置を算出することができた場合、目標特定部50から、現在目標位置を取得する。アーム制御部58は、目標特定部50が画像に基づき現在目標位置を算出することができた場合、アーム24の所定部分(エンドエフェクタ28)を、現在目標位置へと近づけるようにアーム24を制御する。例えば、アーム制御部58は、エンドエフェクタ28の位置と、現在目標位置との差を小さくするように、アーム24を変形させる。
When the
アーム制御部58は、目標特定部50が画像に基づき現在目標位置を算出することができなかった場合、記憶部56から過去目標位置および過去基準位置を読み出す。また、アーム制御部58は、目標特定部50が画像に基づき現在目標位置を算出することができなかった場合、基準物体特定部52から現在基準位置を取得する。
When the
続いて、アーム制御部58は、過去目標位置と過去基準位置との位置差を算出する。例えば、アーム制御部58は、過去目標位置から過去基準位置を減じることにより位置差を算出する。続いて、アーム制御部58は、過去目標位置と、過去基準位置と、現在基準位置とに基づき、所定部分の移動目標となる予測目標位置を算出する。例えば、アーム制御部58は、過去目標位置と過去基準位置との位置差と、現在基準位置とに基づき、所定部分の移動目標となる予測目標位置を算出する。より具体的には、例えば、アーム制御部58は、基準物体特定部52により算出された現在基準位置に、位置差を加算することにより、予測目標位置を算出する。そして、アーム制御部58は、アーム24の所定部分(エンドエフェクタ28)を、予測目標位置へと近づけるように、または到達させるようにアーム24を制御する。例えば、アーム制御部58は、エンドエフェクタ28の位置と予測目標位置との差を小さくするように、アーム24を変形させる。
Subsequently, the
物体検出部44、アーム特定部48、目標特定部50、基準物体特定部52およびアーム制御部58は、エンドエフェクタ28が目標位置へと到達するまで、取得部42が画像を取得する毎に、上述の処理を実行する。これにより、情報処理装置30は、アーム24をビジュアルサーボにより制御して、アーム24における所定部分を目標位置へと精度良く近づけることができる。例えば、情報処理装置30は、エンドエフェクタ28により対象物体に対して所定の操作をする指示を受けた場合に、アーム24をビジュアルサーボにより制御して、対象物体に対して操作可能な位置へとエンドエフェクタ28を精度良く移動させることができる。
The
図4は、現在目標位置を算出することができる画像の一例を示す図である。図4の例において、スプーン72は、対象物体である。図4の例では、ロボット10は、エンドエフェクタ28によりスプーン72を把持しようとしている。この場合、カメラ26は、エンドエフェクタ28およびスプーン72を画角内に含めるように、画像を撮像する。
FIG. 4 is a diagram showing an example of an image in which the current target position can be calculated. In the example of FIG. 4, the
画像にスプーン72が含まれている場合、情報処理装置30は、画像に基づき現在目標位置(エンドエフェクタ28がスプーン72を把持可能な位置)を算出することができる。従って、図4の例において、情報処理装置30は、エンドエフェクタ28の位置と、画像に基づき算出した現在目標位置との差が小さくなるように、アーム24を変形させることができる。
When the
さらに、情報処理装置30は、画像に含まれるスプーン72以外の物体を、基準物体として特定する。図4の例において、情報処理装置30は、フォーク74を基準物体として特定している。そして、情報処理装置30は、現在目標位置およびフォーク74の位置を、過去目標位置および過去基準位置として記憶する。そして、情報処理装置30は、図4に示す画像に基づき算出した現在目標位置を過去目標位置として記憶するとともに、図4に示す画像に基づき算出したフォーク74の位置を過去基準位置として記憶する。
Further, the
図5は、現在目標位置を算出することができない画像の一例を示す図である。エンドエフェクタ28を移動させている途中で、例えば、アーム24がカメラ26と対象物体(図5の例ではスプーン72)との間に入り、対象物体の全部または一部がカメラ26から隠れる場合がある。この場合、情報処理装置30は、画像に基づき対象物体を特定することができない。この結果、情報処理装置30は、画像に基づき現在目標位置(図5の例ではスプーン72を把持可能な位置)を算出することができない。
FIG. 5 is a diagram showing an example of an image in which the target position cannot be calculated at present. While moving the
画像に基づき現在目標位置を算出することができない場合、情報処理装置30は、記憶していた過去目標位置および過去基準位置を読み出す。例えば、情報処理装置30は、最後に現在目標位置および現在基準位置を算出することができた最後の過去画像に基づく過去目標位置および過去基準位置を読み出す。また、情報処理装置30は、最後の過去画像より前の所定時刻前において現在目標位置および現在基準位置を算出することができた過去画像に基づく過去目標位置および過去基準位置を読み出してもよい。
When the current target position cannot be calculated based on the image, the
続いて、情報処理装置30は、読み出した過去目標位置と過去基準位置との位置差を算出する。続いて、アーム制御部58は、過去目標位置と、過去基準位置と、画像に含まれる基準物体(図5の例ではフォーク74)の位置である現在基準位置とに基づき、予測目標位置を算出する。例えば、アーム制御部58は、算出した位置差と、画像に含まれる基準物体(図5の例ではフォーク74)の位置である現在基準位置とに基づき、予測目標位置を算出する。そして、情報処理装置30は、エンドエフェクタ28の位置を、予測目標位置に近づけるように、アーム24を変形させる。
Subsequently, the
なお、情報処理装置30は、対象物体に対して相対的に位置が固定された物体を、基準物体として特定する。これにより、情報処理装置30は、対象物体が移動していた場合であっても、エンドエフェクタ28を目標位置に精度良く移動させることができる。例えば、情報処理装置30は、対象物体がベルトコンベアまたは台車等に載置されている場合であっても、対象物体とともに移動している物体を基準物体として特定することにより、エンドエフェクタ28を目標位置に精度良く移動させることができる。
The
また、情報処理装置30は、検出した複数の物体のうちの対象物体との位置差が予め定められた範囲内の物体を基準物体として特定してもよい。これにより、情報処理装置30は、エンドエフェクタ28が対象物体に対して近づいた場合において、基準物体をカメラ26の画角内に収め、基準物体を画像に含めることができる。また、情報処理装置30は、エンドエフェクタ28が対象物体に対して近づいた場合において、基準物体をアーム24により隠されないようにして、基準物体を画像に含めることができる。
Further, the
図6は、情報処理装置30の処理の流れを示すフローチャートである。エンドエフェクタ28によって対象物体に対して所定の操作を行う指示が与えられた場合、情報処理装置30は、図6に示すフローに従ってアーム24を制御する。
FIG. 6 is a flowchart showing a processing flow of the
情報処理装置30は、所定時間毎、S12からS21までの処理を繰り返す(S11とS22との間のループ処理)。ループ内においては、まず、S12において、情報処理装置30は、カメラ26により撮像された画像を取得する。
The
続いて、S13において、情報処理装置30は、S12で取得した画像に含まれる1または複数の物体を検出する。
Subsequently, in S13, the
続いて、S14において、情報処理装置30は、S13で検出した1または複数の物体のうちのアーム24における所定部分を特定する。本実施形態においては、情報処理装置30は、所定部分としてエンドエフェクタ28を特定する。続いて、S15において、情報処理装置30は、S14で特定したアーム24における所定部分(エンドエフェクタ28)の空間的な位置を算出する。
Subsequently, in S14, the
続いて、S16において、情報処理装置30は、S13で検出した1または複数の物体のうちの対象物体を特定する。
Subsequently, in S16, the
続いて、S17において、情報処理装置30は、S12で取得した画像に基づきアーム24における所定部分(エンドエフェクタ28)の移動目標となる現在目標位置を算出する。本実施形態においては、情報処理装置30は、S16で特定した対象物体に対してエンドエフェクタ28が所定の操作を可能な位置を、現在目標位置として算出する。より具体的には、情報処理装置30は、S16で特定した対象物体の空間的な位置を算出し、算出した対象物体の位置から所定方向に所定距離離間した位置を現在目標位置として算出する。例えば、エンドエフェクタ28が把持機構である場合、情報処理装置30は、S16で特定した対象物体をエンドエフェクタ28が把持可能な位置を、現在目標位置として算出する。
Subsequently, in S17, the
なお、情報処理装置30は、カメラ26から見て、アーム24により対象物体が隠れてしまった場合、S16で対象物体を特定することができない。この場合、情報処理装置30は、現在目標位置を算出することができない。従って、この場合、情報処理装置30は、S17の処理をスキップする。
Note that the
続いて、S18において、情報処理装置30は、S13で検出した1または複数の物体のうちの何れかの物体を基準物体として特定する。続いて、S19において、情報処理装置30は、S18で特定した基準物体の空間的な位置を、現在基準位置として算出する。
Subsequently, in S18, the
続いて、S20において、情報処理装置30は、S17で算出した現在目標位置を、過去画像(第1画像)に基づき算出したアーム24の所定部分(エンドエフェクタ28)の移動目標となる過去目標位置として記憶部56に記憶させる。さらに、情報処理装置30は、S19で算出した現在基準位置を、過去基準位置として記憶部56に記憶させる。なお、情報処理装置30は、同一の過去画像に基づき算出した過去目標位置および過去基準位置をペアにして記憶部56に記憶させる。
Subsequently, in S20, the
なお、情報処理装置30は、S16で現在目標位置を算出することができない場合がある。この場合、情報処理装置30は、S20の処理をスキップする。
The
続いて、S21において、情報処理装置30は、アーム24における所定部分が目標位置に近づくようにアーム24を制御する。本実施形態においては、情報処理装置30は、対象物体を操作可能な目標位置にエンドエフェクタ28が近づくように、アーム24を変形させる。例えば、エンドエフェクタ28が把持機構である場合、情報処理装置30は、エンドエフェクタ28が対象物体を把持可能な位置に近づくように、アーム24を変形する。なお、S21の処理については、図7を参照してさらに説明する。
Subsequently, in S21, the
情報処理装置30は、エンドエフェクタ28が目標位置に到達するまで、S12からS21までの処理を所定時間毎に繰り返す(S11とS22との間のループ処理)。情報処理装置30は、エンドエフェクタ28が目標位置に到達した場合、ループ処理を抜けて本フローを終了する。
The
図7は、アーム24の制御処理の流れを示すフローチャートである。情報処理装置30は、図6に示したS21のアーム24の制御処理において、図7に示す処理を実行する。
FIG. 7 is a flowchart showing the flow of control processing of the
まず、S31において、情報処理装置30は、現在目標位置を算出することができた否かを判断する。情報処理装置30は、現在目標位置を算出することができた場合(S31のYes)、処理をS32に進める。情報処理装置30は、現在目標位置を算出することができなかった場合(S31のNo)、処理をS33に進める。
First, in S31, the
S32において、情報処理装置30は、アーム24における所定部分(エンドエフェクタ28)を、S17で算出した現在目標位置へと近づけるようにアーム24を制御する。より具体的には、情報処理装置30は、S15で算出したエンドエフェクタ28の位置と、S17で算出した現在目標位置との差を小さくするように、アーム24を変形させる。
In S32, the
そして、情報処理装置30は、S32の処理を終えると、本フローを抜けて、図6の処理に戻る。
Then, when the
S33において、情報処理装置30は、記憶部56から過去目標位置および過去基準位置のペアを読み出す。続いて、S34において、情報処理装置30は、読み出した過去目標位置と読み出した過去基準位置との位置差を算出する。例えば、情報処理装置30は、過去目標位置から過去基準位置を減じた位置差を算出する。
In S33, the
続いて、S35において、情報処理装置30は、過去目標位置と、過去基準位置と、S19で算出した現在基準位置とに基づき、所定部分の移動目標となる予測目標位置を算出する。例えば、情報処理装置30は、S34で算出した位置差と、S19で算出した現在基準位置とに基づき、所定部分の移動目標となる予測目標位置を算出する。例えば、情報処理装置30は、S19で算出した現在基準位置に、S34で算出した位置差を加算することにより、予測目標位置を算出する。
Subsequently, in S35, the
続いて、S36において、情報処理装置30は、アーム24における所定部分(エンドエフェクタ28)を、S35で算出した予測目標位置へと近づけるようにアーム24を制御する。より具体的には、情報処理装置30は、S15で算出したエンドエフェクタ28の位置と、S35で算出した予測目標位置との差を小さくするように、アーム24を変形させる。
Subsequently, in S36, the
そして、情報処理装置30は、S36の処理を終えると、本フローを抜けて、図6の処理に戻る。
Then, when the
本実施形態に係るロボット10は、カメラ26により撮像された画像に基づき、アーム24における所定部分の移動目標となる現在目標位置を算出することができない場合、過去画像に基づき算出した過去目標位置および過去基準位置に基づいて、アーム24における所定部分を移動させることができる。これにより、本実施形態に係るロボット10によれば、現在目標位置を算出することができない場合であっても、アーム24における所定部分を精度良く移動させることができる。
When the
例えば、ロボット10は、カメラ26により撮像された画像に基づきエンドエフェクタ28の操作対象となる対象物体を特定することができないため現在目標位置を算出することができない場合、過去画像に基づき特定した過去目標位置および過去基準位置に基づいて、エンドエフェクタ28を移動させることができる。これにより、ロボット10は、カメラ26により撮像された画像に基づき対象物体が特定できない場合であっても、対象物体に対して操作可能な位置にエンドエフェクタ28を精度良く移動させることができる。
For example, when the
図8は、第1変形例に係る情報処理装置30の処理の流れを示すフローチャートである。エンドエフェクタ28によって対象物体に対して所定の操作を行う指示が与えられた場合、情報処理装置30は、さらに、エンドエフェクタ28を所定の操作可能な姿勢に移動させてもよい。
FIG. 8 is a flowchart showing a processing flow of the
この場合、情報処理装置30は、図8に示す流れで処理を実行する。なお、第1変形例において、情報処理装置30は、図6で説明した処理とほぼ同一の処理については、同一のステップ番号を付けて説明を省略し、相違点について説明する。
In this case, the
S15において、情報処理装置30は、アーム24における所定部分(エンドエフェクタ28)の空間的な位置を算出するとともに、S14で特定したアーム24における所定部分(エンドエフェクタ28)の姿勢を算出する。
In S15, the
S17において、情報処理装置30は、現在目標位置を算出するとともに、S12で取得した画像に基づきアーム24における所定部分(エンドエフェクタ28)の姿勢目標となる現在目標姿勢を算出する。本変形例においては、情報処理装置30は、S16で特定した対象物体に対してエンドエフェクタ28が所定の操作を可能な姿勢を、現在目標姿勢として算出する。より具体的には、情報処理装置30は、S16で特定した対象物体の空間的な姿勢を算出し、算出した対象物体の姿勢に対して予め定められた角度の姿勢を、現在目標姿勢として算出する。例えば、エンドエフェクタ28が把持機構である場合、情報処理装置30は、S16で特定した対象物体をエンドエフェクタ28が把持可能な姿勢を、現在目標姿勢置として算出する。
In S17, the
S18において、情報処理装置30は、S13で検出した1または複数の物体のうちの何れかの物体を基準物体として特定する。なお、本変形例において、情報処理装置30は、姿勢を算出することが可能な物体を基準物体として特定する。例えば、模様のない球のような物体は姿勢を検出することが困難であるため、本変形例において、情報処理装置30は、このような姿勢を検出することが困難な物体を除いて基準物体を特定する。
In S18, the
S19において、情報処理装置30は、現在基準位置を算出するとともに、S18で特定した基準物体の空間的な姿勢を現在基準姿勢として算出する。
In S19, the
S20において、情報処理装置30は、S17で算出した現在目標位置を過去目標位置として記憶部56に記憶させる。さらに、情報処理装置30は、S19で算出した現在基準位置を過去基準位置として記憶部56に記憶させる。これとともに、情報処理装置30は、S17で算出した現在目標姿勢を、過去画像に基づき算出したアーム24の所定部分(エンドエフェクタ28)の姿勢目標となる過去目標姿勢として記憶部56に記憶させる。さらに、情報処理装置30は、S19で算出した現在基準姿勢を、過去画像に基づき算出した基準物体における姿勢である過去基準姿勢として記憶部56に記憶させる。なお、情報処理装置30は、同一の過去画像に基づき算出した、過去目標位置、過去基準位置、過去目標姿勢および過去基準姿勢をセットにして記憶部56に記憶させる。
In S20, the
S21において、情報処理装置30は、アーム24における所定部分(エンドエフェクタ28)が目標位置に近づくようにアーム24を制御するとともに、アーム24における所定部分(エンドエフェクタ28)が目標姿勢に近づくようにアーム24を制御する。本変形例においては、情報処理装置30は、対象物体を操作可能な目標位置および目標姿勢にエンドエフェクタ28が近づくように、アーム24を変形させる。例えば、エンドエフェクタ28が把持機構である場合、情報処理装置30は、エンドエフェクタ28が対象物体を把持可能な位置および姿勢に近づくように、アーム24を変形する。なお、本変形例におけるS21の処理については、図9を参照してさらに説明する。
In S21, the
情報処理装置30は、エンドエフェクタ28が目標位置および目標姿勢に到達するまで、S12からS21までの処理を所定時間毎に繰り返す(S11とS22との間のループ処理)。情報処理装置30は、エンドエフェクタ28が目標位置および目標姿勢に到達した場合、ループ処理を抜けて本フローを終了する。
The
図9は、第1変形例に係るアーム24の制御処理の流れを示すフローチャートである。情報処理装置30は、図8に示したS21のアーム24の制御処理において、図9に示す処理を実行する。
FIG. 9 is a flowchart showing a flow of control processing of the
まず、S41において、情報処理装置30は、現在目標位置および現在目標姿勢を算出することができた否かを判断する。情報処理装置30は、現在目標位置および現在目標姿勢を算出することができた場合(S41のYes)、処理をS42に進める。情報処理装置30は、現在目標位置または現在目標姿勢を算出することができなかった場合(S41のNo)、処理をS43に進める。
First, in S41, the
S42において、情報処理装置30は、アーム24の所定部分(エンドエフェクタ28)を、S17で算出した現在目標位置および現在目標姿勢へと近づけるようにアーム24を制御する。より具体的には、情報処理装置30は、S15で算出したエンドエフェクタ28の位置とS17で算出した現在目標位置との差を小さくするとともに、S15で算出したエンドエフェクタ28の姿勢とS17で算出した現在目標姿勢との差を小さくように、アーム24を変形させる。
In S42, the
そして、情報処理装置30は、S42の処理を終えると、本フローを抜けて、図8の処理に戻る。
Then, when the
S43において、情報処理装置30は、記憶部56から過去目標位置、過去基準位置、過去目標姿勢および過去基準姿勢のセットを読み出す。
In S43, the
続いて、S44において、情報処理装置30は、読み出した過去目標位置と読み出した過去基準位置との位置差を算出する。例えば、情報処理装置30は、過去目標位置から過去基準位置を減じた位置差を算出する。
Subsequently, in S44, the
続いて、S45において、情報処理装置30は、読み出した過去目標姿勢と読み出した過去基準姿勢との姿勢差を算出する。例えば、情報処理装置30は、過去目標姿勢から過去基準姿勢を減じた姿勢差を算出する。
Subsequently, in S45, the
続いて、S46において、情報処理装置30は、S44で算出した位置差と、S19で算出した現在基準位置とに基づき、所定部分(エンドエフェクタ28)の移動目標となる予測目標位置を算出する。例えば、情報処理装置30は、S19で算出した現在基準位置に、S44で算出した位置差を加算することにより、予測目標位置を算出する。
Subsequently, in S46, the
続いて、S47において、情報処理装置30は、S45で算出した姿勢差と、S19で算出した現在基準姿勢とに基づき、所定部分(エンドエフェクタ28)の姿勢目標となる予測目標姿勢を算出する。例えば、情報処理装置30は、S19で算出した現在基準姿勢に、S45で算出した姿勢差を加算することにより、予測目標姿勢を算出する。
Subsequently, in S47, the
S48において、情報処理装置30は、アーム24の所定部分(エンドエフェクタ28)を、S46で算出した予測目標位置およびS47で算出した予測目標姿勢へと近づけるようにアーム24を制御する。より具体的には、情報処理装置30は、S15で算出したエンドエフェクタ28の位置とS46で算出した予測目標位置との差を小さくするとともに、S15で算出したエンドエフェクタ28の姿勢とS47で算出した予測目標姿勢との差を小さくように、アーム24を変形させる。
In S48, the
そして、情報処理装置30は、S48の処理を終えると、本フローを抜けて、図8の処理に戻る。
Then, when the
第1変形例に係るロボット10は、カメラ26により撮像された画像に基づき、現在目標位置および現在目標姿勢を算出することができない場合、過去画像に基づき算出した過去目標位置、過去基準位置、過去目標姿勢および過去基準姿勢に基づき、エンドエフェクタ28を移動させることができる。これにより、第1変形例に係るロボット10は、カメラ26により撮像された画像に基づき対象物体が特定できない場合であっても、対象物体に対して操作可能な位置および姿勢にエンドエフェクタ28を精度良く移動させることができる。
When the
図10は、第2変形例において、カメラ26により撮像された画像の一例を示す図である。第2変形例に係る情報処理装置30は、複数の基準物体を特定する。
FIG. 10 is a diagram showing an example of an image captured by the
本変形例において、基準物体特定部52は、物体検出部44により検出された複数の物体のうち、何れかの複数の基準物体を特定する。例えば、基準物体特定部52は、物体検出部44により検出された複数の物体のうちの対象物体に対して相対的に固定された2以上の物体を、複数の基準物体として特定する。また、例えば、基準物体特定部52は、物体検出部44により検出された複数の物体のうちの対象物体からの距離が所定の範囲にある2以上の物体を、複数の基準物体として特定する。
In this modification, the reference object identification unit 52 identifies any plurality of reference objects among the plurality of objects detected by the
例えば、図10の例においては、物体検出部44は、フォーク74およびナイフ76を2個の基準物体として特定している。そして、基準物体特定部52は、特定された複数の基準物体のそれぞれについて、現在基準位置を算出する。さらに、基準物体特定部52は、特定された複数の基準物体のそれぞれについて、現在基準姿勢を算出してもよい。
For example, in the example of FIG. 10, the
本変形例において、記憶部56は、基準物体特定部52により算出された複数の現在基準位置を、複数の過去基準位置として記憶する。さらに、記憶部56は、基準物体特定部52により算出された複数の現在基準姿勢を、複数の過去基準姿勢として記憶してもよい。
In this modification, the
本変形例において、アーム制御部58は、目標特定部50が画像に基づき現在目標位置を算出することができなかった場合、記憶部56から過去目標位置、および、複数の基準物体のそれぞれについての過去基準位置を読み出す。さらに、アーム制御部58は、記憶部56から、複数の基準物体のそれぞれについての過去基準姿勢も読み出してもよい。
In this modified example, when the
続いて、アーム制御部58は、複数の基準物体のそれぞれについて、過去目標位置と過去基準位置との位置差を算出する。さらに、アーム制御部58は、複数の基準物体のそれぞれについて、過去目標姿勢と過去基準姿勢との姿勢差を算出してもよい。
Subsequently, the
続いて、アーム制御部58は、複数の基準物体のそれぞれについての位置差と、基準物体特定部52により算出された現在基準位置とに基づき、予測目標位置を算出する。例えば、アーム制御部58は、複数の基準物体のそれぞれについて、過去目標位置と過去基準位置との位置差を算出し、算出した位置差に現在基準位置を加算することにより、個別予測目標位置を算出する。続いて、アーム制御部58は、複数の基準物体のそれぞれについて算出した個別予測目標位置を平均化して予測目標位置を算出する。そして、アーム制御部58は、アーム24の所定部分を、予測目標位置へと近づけるようにアーム24を制御する。
Subsequently, the
さらに、アーム制御部58は、複数の基準物体のそれぞれについての姿勢差と、基準物体特定部52により算出された現在基準姿勢とに基づき、予測目標姿勢を算出してもよい。例えば、アーム制御部58は、複数の基準物体のそれぞれについて、過去目標姿勢と過去基準姿勢との姿勢差を算出し、算出した姿勢差に現在基準姿勢を加算することにより、個別予測目標姿勢を算出する。続いて、アーム制御部58は、複数の基準物体のそれぞれについて算出した個別予測目標姿勢を平均化して予測目標姿勢を算出する。そして、アーム制御部58は、アーム24の所定部分を、予測目標姿勢へと近づけるようにアーム24を制御する。
Further, the
このように、第2変形例に係るロボット10は、複数の基準物体を特定する。これにより、第2変形例に係るロボット10は、カメラ26により撮像された画像に基づき対象物体が特定できない場合であっても、複数の基準物体の位置および姿勢に基づいてエンドエフェクタ28を精度良く移動させることができる。
In this way, the
前述した実施形態におけるロボット10は、複数のアーム24を備えていてもよい。また、その場合、現在目標位置をカメラ26から隠すアーム24と、動作させるアーム24が異なるものであってもよい。また、現在目標位置をカメラ26から隠すオブジェクトは、アーム24に限られない。また、現在画像および過去画像は、1枚の画像に限られず、複数の画像であってもよい。また、画像に限られず、点群情報等であってもよい。
The
図11は、前述した実施形態における情報処理装置30のハードウェア構成の一例を示すブロック図である。
FIG. 11 is a block diagram showing an example of the hardware configuration of the
前述した実施形態における情報処理装置30に備えられる機能の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)、又はGPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における情報処理装置30に備えられる機能の少なくとも一部の機能を実現するソフトウェアを、フレキシブルディスク、CD−ROM(Compact Disc-Read Only Memory)、又はUSB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアがASIC(Application Specific Integrated Circuit)、又はFPGA(Field Programmable Gate Array)等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
A part or all of the functions provided in the
ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。 The type of storage medium that stores the software is not limited. The storage medium is not limited to a removable one such as a magnetic disk or an optical disk, and may be a fixed storage medium such as a hard disk or a memory. Further, the storage medium may be provided inside the computer or may be provided outside the computer.
図11に示すように、情報処理装置30は、一例として、プロセッサ91と、主記憶装置92(メモリ)と、補助記憶装置93(メモリ)と、ネットワークインタフェース94と、デバイスインタフェース95と、を備え、これらがバス96を介して接続されたコンピュータ90として実現されてもよい。
As shown in FIG. 11, the
図11のコンピュータ90は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図11では、1台のコンピュータ90が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース94等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における情報処理装置30は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果をロボット10内の情報処理装置30に送信するような構成であってもよい。
The
前述した実施形態における情報処理装置30により実行される各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ90と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、前述した実施形態における情報処理装置30は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
The various operations executed by the
プロセッサ91は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA、又はASIC等)であってもよい。また、プロセッサ91は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ91は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ91は、量子コンピューティングに基づく演算機能を含むものであってもよい。
The
プロセッサ91は、コンピュータ90の内部構成の情報処理装置30等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ91は、コンピュータ90のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ90を構成する各構成要素を制御してもよい。
The
前述した実施形態における情報処理装置30は、1又は複数のプロセッサ91により実現されてもよい。ここで、プロセッサ91は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
The
主記憶装置92は、プロセッサ91が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置92に記憶された情報がプロセッサ91により読み出される。補助記憶装置93は、主記憶装置92以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。前述した実施形態における情報処理装置30において各種データを保存するための記憶装置は、主記憶装置92又は補助記憶装置93により実現されてもよく、プロセッサ91に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における記憶部56は、主記憶装置92又は補助記憶装置93により実現されてもよい。
The
記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサが接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。前述した実施形態における情報処理装置30が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ)とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
A plurality of processors may be connected (combined) or a single processor may be connected to one storage device (memory). A plurality of storage devices (memory) may be connected (combined) to one processor. When the
ネットワークインタフェース94は、無線又は有線により、通信ネットワークに接続するためのインタフェースである。ネットワークインタフェース94は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース94により、通信ネットワークを介して接続された第1外部装置と情報のやり取りが行われてもよい。なお、通信ネットワークは、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等の何れか、又は、それらの組み合わせであってよく、コンピュータ90と第1外部装置との間で情報のやり取りが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
The
デバイスインタフェース95は、第2外部装置と直接接続するUSB等のインタフェースである。第2外部装置は、例えば、アーム24およびカメラ26等である。
The
本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c、又はa-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。 In the present specification (including claims), the expression (including similar expressions) of "at least one (one) of a, b and c" or "at least one (one) of a, b or c" is used. When used, it includes any of a, b, c, ab, ac, bc, or abc. It may also include multiple instances of any element, such as a-a, a-b-b, a-a-b-b-c-c, and the like. It also includes adding elements other than the listed elements (a, b and c), such as having d, such as a-b-c-d.
本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。 In the present specification (including claims), when expressions such as "with data as input / based on / according to / according to" (including similar expressions) are used, unless otherwise specified. This includes the case where various data itself is used as an input, and the case where various data is processed in some way (for example, noise-added data, normalized data, intermediate representation of various data, etc.) is used as input. In addition, when it is stated that some result can be obtained "based on / according to / according to the data", it includes the case where the result can be obtained based only on the data, and other data other than the data. It may also include cases where the result is obtained under the influence of factors, conditions, and / or conditions. In addition, when it is stated that "data is output", unless otherwise specified, various data itself is used as output, or various data is processed in some way (for example, noise is added, normal). It also includes the case where the output is output (intermediate representation of various data, etc.).
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。 In the present specification (including claims), when the terms "connected" and "coupled" are used, direct connection / coupling and indirect connection / coupling are used. , Electrically connected / combined, communicatively connected / combined, operatively connected / combined, physically connected / combined, etc. Intended as a term. The term should be interpreted as appropriate according to the context in which the term is used, but any connection / combination form that is not intentionally or naturally excluded is not included in the term. It should be interpreted in a limited way.
本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造が動作Bを実際に実行するように構築(implemented)されていればよい。 When the expression "A configured to B" is used in the present specification (including claims), the physical structure of the element A can perform the operation B. Including that the element A has a configuration and the permanent or temporary setting (setting / configuration) of the element A is set (configured / set) to actually execute the operation B. good. For example, when the element A is a general-purpose processor, the processor has a hardware configuration capable of executing the operation B, and the operation B is set by setting a permanent or temporary program (instruction). It suffices if it is configured to actually execute. Further, when the element A is a dedicated processor, a dedicated arithmetic circuit, or the like, the circuit structure of the processor actually executes the operation B regardless of whether or not the control instruction and data are actually attached. It only needs to be implemented.
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び有する「(having)等)」が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。 In the present specification (including claims), when a term meaning inclusion or possession (for example, "comprising / including" and "having", etc.) is used, the object of the term is used. It is intended as an open-ended term, including the case of containing or owning an object other than the indicated object. If the object of these terms that mean inclusion or possession is an expression that does not specify a quantity or suggests a singular (an expression with a or an as an article), the expression is interpreted as not being limited to a specific number. It should be.
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。 In the present specification (including claims), expressions such as "one or more" or "at least one" are used in some places, and the quantity is specified in other places. Even if expressions that do not or suggest the singular (expressions with a or an as an article) are used, the latter expression is not intended to mean "one". In general, expressions that do not specify a quantity or suggest a singular (expressions with a or an as an article) should be interpreted as not necessarily limited to a particular number.
本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。 In the present specification, when it is stated that a specific effect (advantage / result) can be obtained for a specific configuration having an embodiment, unless there is a specific reason, another one or more having the configuration. It should be understood that the effect can also be obtained in the examples of. However, it should be understood that the presence or absence of the effect generally depends on various factors, conditions, and / or states, etc., and that the effect cannot always be obtained by the configuration. The effect is merely obtained by the configuration described in the examples when various factors, conditions, and / or conditions are satisfied, and in the invention relating to the claim that defines the configuration or a similar configuration. , The effect is not always obtained.
本明細書(請求項を含む)において、「最大化(maximize)」等の用語が用いられる場合は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること、及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化(minimize)」等の用語が用いられる場合は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること、及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化(optimize)」等の用語が用いられる場合は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。 In the present specification (including claims), when terms such as "maximize" are used, the global maximum value is obtained, the approximate value of the global maximum value is obtained, and the local maximum value is obtained. Should be interpreted as appropriate according to the context in which the term is used, including finding an approximation of the local maximum. It also includes probabilistically or heuristically finding approximate values of these maximum values. Similarly, when terms such as "minimize" are used, find the global minimum, find the approximation of the global minimum, find the local minimum, and find the local minimum. It should be interpreted as appropriate according to the context in which the term was used, including finding an approximation of the value. It also includes probabilistically or heuristically finding approximate values of these minimum values. Similarly, when terms such as "optimize" are used, finding a global optimal value, finding an approximation of a global optimal value, finding a local optimal value, and local optimization It should be interpreted as appropriate according to the context in which the term was used, including finding an approximation of the value. It also includes probabilistically or heuristically finding approximate values of these optimal values.
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は電子回路を含む装置等を含んでよい。 In the present specification (including claims), when a plurality of hardware performs a predetermined process, the respective hardware may cooperate to perform the predetermined process, or some hardware may perform the predetermined process. You may do all of the above. Further, some hardware may perform a part of a predetermined process, and another hardware may perform the rest of the predetermined process. In the present specification (including claims), when expressions such as "one or more hardware performs the first process and the one or more hardware performs the second process" are used. , The hardware that performs the first process and the hardware that performs the second process may be the same or different. That is, the hardware that performs the first process and the hardware that performs the second process may be included in the one or more hardware. The hardware may include an electronic circuit, a device including the electronic circuit, or the like.
本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置(メモリ)のうち個々の記憶装置(メモリ)は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。 In the present specification (including claims), when a plurality of storage devices (memory) store data, each storage device (memory) among the plurality of storage devices (memory) stores only a part of the data. It may be stored or the entire data may be stored.
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、数値又は数式を説明に用いている場合は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。 Although the embodiments of the present disclosure have been described in detail above, the present disclosure is not limited to the individual embodiments described above. Various additions, changes, replacements, partial deletions, etc. are possible without departing from the conceptual idea and purpose of the present invention derived from the contents defined in the claims and their equivalents. For example, in all the above-described embodiments, when numerical values or mathematical formulas are used for explanation, they are shown as examples, and the present invention is not limited thereto. Further, the order of each operation in the embodiment is shown as an example, and is not limited to these.
10 ロボット
22 本体部
24 アーム
26 カメラ
28 エンドエフェクタ
30 情報処理装置
42 取得部
44 物体検出部
48 アーム特定部
50 目標特定部
52 基準物体特定部
56 記憶部
58 アーム制御部
72 スプーン
74 フォーク
76 ナイフ
10
Claims (18)
前記第1部位を制御する少なくとも一つのプロセッサと、
を備え、
前記プロセッサは、前記第1部位の所定部分が移動可能な範囲の少なくとも一部を示す現在データに基づいて前記所定部分の移動目標となる現在目標位置を算出することができない場合、前記所定部分の移動目標となる予測目標位置へと前記所定部分を移動させるように前記第1部位を制御し、
前記予測目標位置は、過去に取得した過去データに基づき算出した前記所定部分における移動目標となる過去目標位置と、前記過去データに基づき算出した基準物体の位置である過去基準位置と、前記現在データと、に基づいて算出される
ロボット。 The first movable part and
With at least one processor controlling the first part,
With
When the processor cannot calculate the current target position as the movement target of the predetermined portion based on the current data indicating at least a part of the movable range of the predetermined portion of the first portion, the predetermined portion of the predetermined portion. The first part is controlled so as to move the predetermined portion to the predicted target position which is the movement target.
The predicted target position includes a past target position that is a movement target in the predetermined portion calculated based on past data acquired in the past, a past reference position that is a position of a reference object calculated based on the past data, and the current data. And the robot calculated based on.
前記現在データを取得し、
前記現在データに基づき、前記現在目標位置を算出し、
前記現在データに含まれる複数の物体のうちの何れかを前記基準物体として特定し、
前記基準物体の位置である現在基準位置を算出し、
前記予測目標位置は、前記現在基準位置に基づいて算出される
請求項1に記載のロボット。 The processor
Acquire the current data and
Based on the current data, the current target position is calculated.
One of the plurality of objects included in the current data is specified as the reference object, and the object is specified.
Calculate the current reference position, which is the position of the reference object,
The robot according to claim 1, wherein the predicted target position is calculated based on the current reference position.
請求項2に記載のロボット。 The robot according to claim 2, wherein when the current target position can be calculated based on the current data, the first part is controlled so as to move the predetermined portion to the current target position.
前記プロセッサは、前記データ取得部により取得された前記現在データを取得する
請求項2または3に記載のロボット。 A data acquisition unit capable of acquiring the predetermined portion in the first portion is further provided.
The robot according to claim 2 or 3, wherein the processor acquires the current data acquired by the data acquisition unit.
請求項4に記載のロボット。 The robot according to claim 4, wherein the first portion is an arm.
前記アームは、前記本体部に設けられ、
前記データ取得部は、前記本体部における前記アームとは異なる位置に設けられる
請求項5に記載のロボット。 Equipped with a main body
The arm is provided on the main body portion.
The robot according to claim 5, wherein the data acquisition unit is provided at a position different from the arm in the main body unit.
前記プロセッサは、前記エンドエフェクタが操作対象となる対象物体に対して所定の操作可能な位置を、前記現在目標位置として算出する
請求項5または6に記載のロボット。 The predetermined portion is an end effector provided at the tip of the arm for performing a predetermined operation on an object.
The robot according to claim 5 or 6, wherein the processor calculates a predetermined operable position with respect to a target object to be operated by the end effector as the current target position.
前記プロセッサは、前記エンドエフェクタが対象物体を把持可能な位置を、前記現在目標位置として算出する
請求項7に記載のロボット。 The end effector is a gripping mechanism and
The robot according to claim 7, wherein the processor calculates a position where the end effector can grip the target object as the current target position.
請求項2から8の何れか1項に記載のロボット。 According to any one of claims 2 to 8, the processor executes the acquisition of the current data, the calculation of the current target position, the calculation of the current reference position, and the control of the predetermined portion at predetermined time intervals. The robot described.
請求項2から9の何れか1項に記載のロボット。 The robot according to any one of claims 2 to 9, wherein the processor specifies, among the plurality of objects, an object that is fixed relative to the target object to be operated as the reference object. ..
請求項2から10の何れか1項に記載のロボット。 The processor is any one of claims 2 to 10 that specifies, among the plurality of objects, an object in which the positional difference between the past target position and the past reference position is within a predetermined range as the reference object. The robot described in the section.
前記現在データに基づき前記現在目標位置を算出することができなかった場合、前記プロセッサは、前記現在基準位置と、前記複数の基準物体のそれぞれについての前記過去目標位置と前記過去基準位置との位置差とに基づき、前記予測目標位置を算出する
請求項2から11の何れか1項に記載のロボット。 The processor identifies a plurality of reference objects among the plurality of objects, and the processor identifies a plurality of reference objects.
When the current target position cannot be calculated based on the current data, the processor uses the current reference position and the positions of the past target position and the past reference position for each of the plurality of reference objects. The robot according to any one of claims 2 to 11, which calculates the predicted target position based on the difference.
前記複数の基準物体のそれぞれについて、前記現在基準位置と前記位置差とに基づき、前記所定部分の移動目標となる個別予測目標位置を算出し、
前記複数の基準物体のそれぞれについて算出した前記個別予測目標位置を平均化して前記予測目標位置を算出する
請求項12に記載のロボット。 The processor
For each of the plurality of reference objects, an individual predicted target position to be a movement target of the predetermined portion is calculated based on the current reference position and the position difference.
The robot according to claim 12, wherein the predicted target position is calculated by averaging the individual predicted target positions calculated for each of the plurality of reference objects.
前記現在データに基づき、前記現在目標位置、および、前記所定部分の姿勢目標となる現在目標姿勢を算出し、
前記現在基準位置、および、前記基準物体の姿勢である現在基準姿勢を算出し、
前記現在データに基づき前記現在目標位置または前記現在目標姿勢を算出することができなかった場合、
前記予測目標位置を算出し、
前記過去データに基づき算出した前記所定部分における姿勢目標となる過去目標姿勢と、前記過去データに基づき算出した前記基準物体の姿勢である過去基準姿勢との姿勢差に基づき、前記所定部分の姿勢目標となる予測目標姿勢を算出し、
前記所定部分を前記予測目標位置へと移動させるように制御するとともに、前記所定部分を前記現在目標姿勢となるように制御する
請求項2から13の何れか1項に記載のロボット。 The processor
Based on the current data, the current target position and the current target posture, which is the posture target of the predetermined portion, are calculated.
The current reference position and the current reference posture, which is the posture of the reference object, are calculated.
When the current target position or the current target posture cannot be calculated based on the current data.
Calculate the predicted target position and
The posture target of the predetermined portion is based on the posture difference between the past target posture which is the posture target in the predetermined portion calculated based on the past data and the past reference posture which is the posture of the reference object calculated based on the past data. Calculate the predicted target posture to be
The robot according to any one of claims 2 to 13, which controls the predetermined portion to move to the predicted target position and controls the predetermined portion so as to have the current target posture.
撮像された画像中に当該対象物が特定されなかった場合に、当該画像のほかに、過去に撮像された画像であって当該対象物が特定できる画像も少なくとも使って、前記第1部位を制御する制御装置を備える
ロボット。 In a robot that identifies an object from the captured image and controls the first part of the object.
When the object is not specified in the captured image, the first part is controlled by using at least an image captured in the past that can identify the object in addition to the image. A robot equipped with a control device.
前記第1部位の所定部分が移動可能な範囲の少なくとも一部を示す現在データに基づいて前記所定部分の移動目標となる現在目標位置を算出することができない場合、前記所定部分の移動目標となる予測目標位置へと前記所定部分を移動させるように前記第1部位を制御し、
前記予測目標位置は、過去に取得した過去データに基づき算出した前記所定部分における移動目標となる過去目標位置と、前記過去データに基づき算出した基準物体の位置である過去基準位置と、前記現在データと、に基づいて算出される
制御方法。 It is a control method of a robot having a movable first part.
When the current target position that is the movement target of the predetermined part cannot be calculated based on the current data indicating at least a part of the movable range of the predetermined part of the first part, the movement target of the predetermined part is obtained. The first part is controlled so as to move the predetermined part to the predicted target position.
The predicted target position includes a past target position that is a movement target in the predetermined portion calculated based on past data acquired in the past, a past reference position that is a position of a reference object calculated based on the past data, and the current data. And the control method calculated based on.
前記第1部位の所定部分が移動可能な範囲の少なくとも一部を示す現在データに基づいて前記所定部分の移動目標となる現在目標位置を算出することができない場合、前記所定部分の移動目標となる予測目標位置へと前記所定部分を移動させるように、前記第1部位を制御し、
前記予測目標位置は、過去に取得した過去データに基づき算出した前記所定部分における移動目標となる過去目標位置と、前記過去データに基づき算出した基準物体の位置である過去基準位置と、前記現在データと、に基づいて算出される
情報処理装置。 An information processing device that controls a robot equipped with a movable first part.
When the current target position that is the movement target of the predetermined part cannot be calculated based on the current data indicating at least a part of the movable range of the predetermined part of the first part, the movement target of the predetermined part is obtained. The first part is controlled so as to move the predetermined part to the predicted target position.
The predicted target position includes a past target position that is a movement target in the predetermined portion calculated based on past data acquired in the past, a past reference position that is a position of a reference object calculated based on the past data, and the current data. An information processing device calculated based on.
前記プロセッサに、
前記第1部位の所定部分が移動可能な範囲の少なくとも一部を示す現在データに基づいて前記所定部分の移動目標となる現在目標位置を算出することができない場合、前記所定部分の移動目標となる予測目標位置へと前記所定部分を移動させるように前記第1部位を制御させ、
前記予測目標位置は、過去に取得した過去データに基づき算出した前記所定部分における移動目標となる過去目標位置と、前記過去データに基づき算出した基準物体の位置である過去基準位置と、前記現在データと、に基づいて算出される
プログラム。 A program executed by a processor that controls a movable first part.
To the processor
When the current target position that is the movement target of the predetermined part cannot be calculated based on the current data indicating at least a part of the movable range of the predetermined part of the first part, the movement target of the predetermined part is obtained. The first part is controlled so as to move the predetermined part to the predicted target position.
The predicted target position includes a past target position that is a movement target in the predetermined portion calculated based on past data acquired in the past, a past reference position that is a position of a reference object calculated based on the past data, and the current data. And a program calculated based on.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020015837A JP2021122868A (en) | 2020-01-31 | 2020-01-31 | Robot, control method, information processor, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020015837A JP2021122868A (en) | 2020-01-31 | 2020-01-31 | Robot, control method, information processor, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021122868A true JP2021122868A (en) | 2021-08-30 |
Family
ID=77458962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020015837A Pending JP2021122868A (en) | 2020-01-31 | 2020-01-31 | Robot, control method, information processor, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021122868A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7325666B1 (en) | 2022-04-14 | 2023-08-14 | 三菱電機株式会社 | Robot controller and picking system |
-
2020
- 2020-01-31 JP JP2020015837A patent/JP2021122868A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7325666B1 (en) | 2022-04-14 | 2023-08-14 | 三菱電機株式会社 | Robot controller and picking system |
WO2023199478A1 (en) * | 2022-04-14 | 2023-10-19 | 三菱電機株式会社 | Robot control device and picking system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10839261B2 (en) | Information processing apparatus, information processing method, and storage medium | |
US11400598B2 (en) | Information processing apparatus, method, and robot system | |
CN108283021B (en) | Robot and method for positioning a robot | |
US11288883B2 (en) | Autonomous task performance based on visual embeddings | |
US9844881B2 (en) | Robotic device including machine vision | |
KR101964332B1 (en) | Method of hand-eye calibration, computer program for executing the method, and robot system. | |
JP6902208B2 (en) | Gripping method, gripping system and program | |
CN113696186A (en) | Mechanical arm autonomous moving and grabbing method based on visual-touch fusion under complex illumination condition | |
JP7111114B2 (en) | Information processing device, information processing method, and information processing system | |
JP4665857B2 (en) | Mobile body capable of guiding arm and method for guiding arm | |
US10207409B2 (en) | Image processing method, image processing device, and robot system | |
US20230347509A1 (en) | Robot control apparatus, robot control method, and program | |
US20180215044A1 (en) | Image processing device, robot control device, and robot | |
JP2020163502A (en) | Object detection method, object detection device, and robot system | |
JP2021122868A (en) | Robot, control method, information processor, and program | |
JP6880457B2 (en) | Gripping method, gripping system and program | |
WO2021117479A1 (en) | Information processing device, method, and program | |
JP6958517B2 (en) | Manipulators and mobile robots | |
JP2010236893A (en) | Method for detecting relative movement between a plurality of objects | |
CN116635194A (en) | Interference determination device, robot control system, and interference determination method | |
CN112743537A (en) | Annotating device | |
JP2020174536A (en) | Harvesting device, control method thereof, and program | |
WO2022186354A1 (en) | Information processing device and autonomous mobile robot | |
CN113316505B (en) | Image analysis system | |
KR20230032852A (en) | Robot and controlling method of robot |