JP7064586B2 - カメラ位置姿勢校正装置、カメラ位置姿勢校正方法並びにロボット - Google Patents

カメラ位置姿勢校正装置、カメラ位置姿勢校正方法並びにロボット Download PDF

Info

Publication number
JP7064586B2
JP7064586B2 JP2020523873A JP2020523873A JP7064586B2 JP 7064586 B2 JP7064586 B2 JP 7064586B2 JP 2020523873 A JP2020523873 A JP 2020523873A JP 2020523873 A JP2020523873 A JP 2020523873A JP 7064586 B2 JP7064586 B2 JP 7064586B2
Authority
JP
Japan
Prior art keywords
calibration
task
robot
orientation
motion
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
JP2020523873A
Other languages
English (en)
Other versions
JPWO2019234814A1 (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2019234814A1 publication Critical patent/JPWO2019234814A1/ja
Application granted granted Critical
Publication of JP7064586B2 publication Critical patent/JP7064586B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/02Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
    • B25J9/04Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type by rotating at least one arm, excluding the head movement itself, e.g. cylindrical coordinate type or polar coordinate type
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39016Simultaneous calibration of manipulator and camera
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39024Calibration of manipulator

Landscapes

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

Description

本発明は、例えばロボットに搭載されて使用されるカメラにおけるカメラ位置姿勢校正装置、カメラ位置姿勢校正方法並びにロボットに関する。
カメラを搭載したロボットを用いたシステムにおいては、カメラとロボットの相対位置姿勢の校正が必要である。
係るカメラ位置姿勢校正手法について、特許文献1には「本発明に係るロボットアームの視覚センサ補正方法は、ロボットアームの先端に取り付けられた視覚センサによってワークの位置を認識することにより前記ロボットアームの先端での前記視覚センサの取り付け状態値を補正するロボットアームの視覚センサ補正方法において、前記ロボットアームの移動による前記ロボットアームの先端の移動量を基準座標で特定する移動量特定処理ステップと、前記移動の前後それぞれで前記視覚センサにより取得したワークの画像に対して画像処理を施すことにより移動前後での処理画像を求める画像処理ステップと、前記移動前後の処理画像に対して前記視覚センサの取り付け状態値の推定値としての仮パラメータを適用して前記移動前後での処理画像を基準座標に座標変換することにより前記移動前後に対するワークの位置変化量を前記仮パラメータに対応させて求める位置変化量抽出処理ステップと、前記移動量と前記位置変化量との差を状態差として算出する状態差算出処理ステップと、前記仮パラメータを変更して位置変化量抽出処理ステップを複数回繰り返すことにより複数の前記状態差を求め、複数の前記状態差の中で最小の状態差に対応する前記仮パラメータを視覚センサの取り付け状態値として抽出する状態値抽出処理ステップとを備えることを特徴とする。」という記載がある。
特開2007-61979号公報
特許文献1に記載されている発明では、ロボットに搭載されたカメラにより撮影されたロボットの周辺環境の画像を用いることで、マーカの設置などの人手の作業を必要とせずにカメラとロボットの相対位置姿勢を校正することができる。
しかし、校正に用いる画像はロボットに校正専用の動作を実行させることで取得しており、校正専用の動作を実施している間はロボットに設定されているタスクが中断される。また、校正専用の動作の実行に時間が必要である。この従来手法によれば、タスク動作の実行に先立って、校正動作を行う2段階動作を時系列的に順次実行することになる。
以上のことから本発明においては、ロボットに設定されているタスクを中断することなく、カメラとロボットの相対位置姿勢を校正することができるカメラ位置姿勢校正装置、カメラ位置姿勢校正方法並びにロボットを提供することを目的とする。
以上のことから本発明においては、「ロボットに搭載されたカメラにより撮影された画像とロボットの位置姿勢から、ロボットに設定されたタスクを実行するための動作を計画するタスク動作計画部と、画像とロボットの位置姿勢から、カメラとロボットの相対位置姿勢の校正に必要な動作を計画する校正動作計画部と、タスク動作計画部によって計画されたタスク動作計画と校正動作計画部によって計画された校正動作計画を統合することで動作を計画する統合動作計画部とを備え、ロボットを操作することを特徴とするカメラ位置姿勢校正装置」としたものである。
また本発明は、「カメラ位置姿勢校正装置により操作されるロボット」としたものである。
また本発明は、「ロボットに搭載されたカメラにより撮影された画像とロボットの位置姿勢から、ロボットに設定されたタスクを実行するための動作を計画したタスク動作計画と、画像とロボットの位置姿勢から、カメラとロボットの相対位置姿勢の校正に必要な動作を計画した校正動作計画と、タスク動作計画と校正動作計画を統合した統合動作計画と、タスクの状況および目標を得、タスクの状況および目標に基づいて、タスク動作計画に対する校正動作計画の優先度を算出し、優先度に基づいて、動作計画を選択し、選択した動作計画によりロボットを操作することを特徴とするカメラ位置姿勢校正方法」としたものである。
本発明によれば、ロボットに設定されているタスクを中断することなく、カメラとロボットの相対位置姿勢を校正することができるカメラ位置姿勢校正装置を実現することが可能である。
カメラ位置姿勢校正装置100のブロック構成例を示す図。 ロボットとロボット制御装置で構成されるロボットシステムの構成例を示す図。 本発明のカメラ位置姿勢校正装置を適用可能な典型的なロボットの一例としてピッキングロボットを示す図。 取得済み動作データベースDB1に記憶された取得済み動作データD1の一例を示す図。 校正動作データベースDB2に記憶された校正動作データデータD2の一例を示す図。 校正動作計画表TB1の一例を示す図。 校正動作計画部102において実行される処理を示すフローチャート。 校正動作計画表TB1の初期状態の一例を示す図。 タスク状況目標表TB2の一例を示す図。 校正優先度算出部104において実行される処理を示すフローチャート。 統合動作計画部103において実行される処理を示すフローチャート。 処理ステップS710において実行される処理を示すフローチャート。 自動運転車230を駐車スペースに駐車する状況を示す図。 自動運転車230におけるタスク状況目標表TB2の一例を示す図。 校正優先度算出部104において実行される処理を示すフローチャート。
以下、本発明の実施例について図面を参照して説明する。
以下、図1~図12を参照して、本発明の実施例1に係るカメラ位置姿勢校正装置を説明する。
最初に、本発明のカメラ位置姿勢校正装置を適用可能な典型的なロボットの一例について図3を用いて説明する。図3では、ロボット200としてピッキングロボットを例に説明する。
ピッキングロボット200は、作業台220にバラ積みされたワーク221を1つずつ取り出し、所定の場所に並べるロボットである。ピッキングロボット200は、複数の関節212やリンク214、並びにエンドエフェクタ215から構成されており、さらにカメラ装置としてカメラ201をカメラ取り付け治具213によりロボット200の適宜位置に搭載している。またロボット200の各関節212には、各関節212の角度を計測するセンサである位置姿勢センサ202が適宜備えられている。
ピッキングロボット200は、カメラ201により作業台220上のワーク221を認識し、関節212の角度を制御することで、ワーク221を持ち上げることが可能な場所にエンドエフェクタ215を移動させる。エンドエフェクタ215はたとえば吸着パッドやロボットハンドであり、ワーク221を吸着や把持することで持ち上げる。なお、ピッキングロボット200の関節212やリンク214の数といった構成は任意である。また、カメラ201として画像に加えて距離も取得可能なRGB-Dカメラを用いても良い。
ピッキングロボット200は、エンドエフェクタ215をワーク221に近接させるに際し、その位置姿勢を確認する必要があり、各関節212の角度を計測するセンサである位置姿勢センサ202を用いて、たとえばワーク221を持ち上げる際に重要となるエンドエフェクタ215の位置姿勢を確認する。なお各関節212の角度を計測することで、ピッキングロボット200の幾何モデルに基づき、公知の手法により順運動学を解くことでエンドエフェクタ215の位置姿勢を得ることができる。
ロボット200において、カメラ201による認識結果を用いて、タスク(図3のピッキングロボット200の例では、ワーク221を取り出して所定の場所に並べること)を実行することが可能な場所にロボット200を移動させるためには、カメラ201とロボット200の相対位置姿勢が必要となる。これは例えば図3においてカメラ201の設置点Nと、ロボット200側として例えばエンドエフェクタ215の先端位置Mの間の相対位置姿勢である。
しかし、カメラ201とロボット200の相対位置姿勢は、ロボット200の動作時の振動や、動作時にカメラ201およびロボット200が周辺環境に存在する物体などに衝突することにより変化し、初期に設定された値に対して誤差が生じることがある。カメラ201とロボット200の相対位置姿勢の誤差は、ロボット200の位置姿勢の誤差となるため、誤差が大きい場合には、タスクの失敗につながる。
このため、ロボット200の制御装置は、カメラ201とロボット200の相対位置姿勢を校正する機能であるカメラ位置姿勢校正装置を備えている。カメラ位置姿勢校正装置は、カメラ201とロボット200の相対位置姿勢の誤差が、タスクに失敗するほど大きくなる前に、タスクの実行に必要な動作計画とカメラ位置姿勢の校正に必要な動作計画を統合した動作を計画することで、タスクを中断することなくカメラの位置姿勢を校正可能なロボット200の動作を計画する。
図2は、ロボット200とロボット制御装置10で構成されるロボットシステムの構成例を示す図である。
図2のロボットシステムの内、ロボット200は少なくともカメラ201と位置姿勢センサ202を備えており、夫々画像情報とロボット位置姿勢情報をロボット制御装置10に与える。
図2のロボットシステムの内、ロボット制御装置10はカメラ位置姿勢校正装置100、タスク情報・目標取得部310、カメラ位置姿勢推定部300を含んで構成されている。
図2のロボットシステムについて、以下に詳細に説明する。まず、ロボット200はカメラ201と位置姿勢センサ202を搭載している。カメラ201はロボット200の周辺環境の画像を撮影する。位置姿勢センサ202はロボット200の位置姿勢を出力する。
なお、位置姿勢センサ202は、直接ロボット200の位置姿勢を計測するセンサでも良いし、ロボット200の状態を計測するセンサでも良い。ロボット200の状態を計測するセンサを用いる場合には、ロボット200は、ロボット200の状態からロボット200の位置姿勢を推定し、出力する。
次に図2のロボット制御装置10内のカメラ位置姿勢推定部300は、ロボット200の動作中に、ロボット200に搭載されたカメラ201によって撮影された画像と、ロボット200に搭載された位置姿勢センサ202によって取得されたロボット200の位置姿勢と、からカメラ201とロボット200の相対位置姿勢を推定する。
画像とロボット200の位置姿勢から、カメラ201とロボット200の相対位置姿勢を推定する問題は、Hand-Eyeキャリブレーションと呼ばれる。本発明の実施例1に係るカメラ位置姿勢推定部300は、公知のHand-Eyeキャリブレーション手法を用いるのがよい。ただし、本発明においては、J.Heller、M.Havlena,A.Sugimoto,T.Pajdla,Structure-from-motion based hand-eye calibration using L∞ minimization, IEEE Conf.on Computer Vision and Pattern Recognition,pp.3497-3503(2011)のように、マーカを用いない手法が好適である。ロボット200はカメラ位置姿勢推定部300によって推定されたカメラ位置姿勢を用いてタスクを実行する。
タスク状況・目標取得部310はロボット200に設定されたタスクの状況および目標を取得する。ここでタスクとは、詳細を後述するように、図3のピッキングロボット200の例では、ワーク221を取り出して所定の場所に並べることであり、タスクの状況とは、たとえば、ワーク221の種類や形状、並べ終えたワーク221の数などである。またタスクの目標とは、たとえば、並べるワーク221の数や、ワーク221を並べ終える時間などである。
カメラ位置姿勢校正装置100は、ロボット200に搭載されたカメラ201によって撮影された画像と、ロボット200に搭載された位置姿勢センサ202によって取得されたロボットの位置姿勢と、タスク状況・目標取得部310によって取得されたタスク状況・目標と、からロボット200の動作を計画する。ロボット200はカメラ位置姿勢校正装置100によって計画された動作を実行する。このためロボットは、関節などを駆動する図示せぬアクチュエータを備えている。
これによりカメラ位置姿勢校正装置100は、カメラ201とロボット200の相対位置姿勢の誤差が、タスクに失敗するほど大きくなる前に、タスクの実行に必要な動作計画とカメラ位置姿勢の校正に必要な動作計画を統合した動作を計画することで、タスクを中断することなくカメラの位置姿勢を校正可能なロボット200の動作を計画する。
図1は、カメラ位置姿勢校正装置100のブロック構成例を示す図である。カメラ位置姿勢校正装置100は、タスク動作計画部101と、校正動作計画部102と、統合動作計画部103と、校正優先度算出部104と、を備える。
タスク動作計画部101は、画像とロボットの位置姿勢のデータから、ロボットに設定されたタスクを実行するための動作であるタスク動作計画L1を作成する。校正動作計画部102は、画像とロボットの位置姿勢から、カメラ位置姿勢の校正に必要な動作である校正動作計画L2を作成する。統合動作計画部103は、タスク動作計画部101によって計画されたタスク動作計画L1と校正動作計画部102によって計画された校正動作計画L2を、タスクの状況および目標に基づいて統合することで動作計画Lを作成する。統合動作計画部103は校正優先度算出部104を備える。校正優先度算出部104は、タスク動作計画L1に対する校正動作計画L2の優先度を算出する。
図1に示すカメラ位置姿勢校正装置100の各部機能について、さらに詳細に説明する。
タスク動作計画部101は、画像とロボット200の位置姿勢のデータから、ロボット200に設定されたタスクを実行するためのタスク動作計画L1を作成する。ピッキングロボット200において、タスク動作計画部101は、カメラ201によって撮影されたワーク221の画像と、ピッキングロボット200の位置姿勢のデータから、ワーク221を持ち上げて所定の場所に並べるための動作であるタスク動作計画L1を作成する。たとえば、タスク動作計画部101は、公知のパターンマッチング手法や機械学習手法により、画像からワーク221の位置姿勢を推定することで、ワーク221を持ち上げることが可能なピッキングロボット200の位置姿勢を算出する。複数のワーク221が認識された場合には、それぞれのワーク221に対応した、ワーク221を持ち上げることが可能なピッキングロボット200の位置姿勢を算出する。
なおタスク動作計画部101が計画した位置姿勢のタスク動作計画の時の動作軌跡の一例を、図3においてはL1として示している。なお図3には複数のワーク221のうちワーク221Aに対するタスク動作計画をL1として示しており、他のワークに対するタスク動作計画も別途求められる。
校正動作計画部102は、画像とロボット200の位置姿勢から、カメラ位置姿勢の校正に必要な動作(校正動作計画L2)を計画する。なおカメラ位置姿勢の校正に必要な動作について図3で例示すると、カメラ位置姿勢の校正にはX点における画像とロボットの位置姿勢の情報が必要であり、現在位置からX点に向かわせて、新たにX点における画像とロボットの位置姿勢の情報を取得するための計画が校正動作計画L2である。校正動作計画処理の詳細は、図4から図7を用いて後述する。
統合動作計画部103は、タスク動作計画部101によって計画されたタスク動作計画L1と校正動作計画部102によって計画された校正動作計画L2を、タスクの状況および目標に基づいて統合することで動作(動作計画L)を計画する。統合動作計画処理の詳細は図10、図11を用いて後述する。
なお、ロボット200とカメラ位置姿勢校正装置100の接続は、USBやイーサネット(登録商標)といった有線接続でも良いし、無線ネットワークを介した無線接続でも良い。また、カメラ位置姿勢校正装置100はロボット200内に設けられても良いし、ロボット200と接続されたPCやサーバ内に設けられても良い。
次に図4~図7を用いて、校正動作計画部102における処理の内容について具体的に説明する。
校正動作計画部102は、画像とロボット200の位置姿勢から、カメラ位置姿勢の校正に必要な動作である校正動作計画L2を計画する。校正動作計画部102は、取得済み動作データD1を記憶する取得済み動作データベースDB1と、校正動作データD2を記憶する校正動作データベースDB2を備えている。また、校正動作計画部102は校正に必要な動作(校正動作計画L2)を校正動作計画表TB1として出力する。
最初に、取得済み動作データベースDB1を形成することについて説明する。取得済み動作データベースDB1は、ロボット稼働中の適宜の時点において、様々な位置姿勢で画像を取得し、記憶内容を補充される。
図4は取得済み動作データベースDB1に記憶された取得済み動作データD1の一例を示す図である。取得済み動作データベースDB1の各行に示す取得済み動作データD1は、カメラ201が撮影した画像データD11と画像撮影時のロボット200の位置姿勢データD12がペアとして記憶されたものである。ペアの情報には、個別に識別符号IDが付与されている。なおロボット200の位置姿勢は、3パラメータの位置と3パラメータの姿勢により、合計6パラメータで表現される。以降では、取得済み動作データベースDB1の各行の識別子をiとする。
なお図4の例では、i=1(ID=1)の画像取得時における、位置と姿勢による合計6パラメータで表現される位置姿勢p1は(0、0、0、0、0、0)であり、i=2(ID=2)の画像取得時における位置姿勢p2は(-5、5、10、0、0、0)であり、i=i(ID=i)の画像取得時における位置姿勢piは(-10、10、30、10、0、0)である。この取得済み動作データD1によれば、各画像を取得したときの位置姿勢データがペアとして順次蓄積、記憶されている。
図4の取得済み動作データD1は、カメラ201とロボット200の相対位置姿勢に変更がない場合には、過去と同じ場所で画像を取得したときの位置姿勢のデータは、過去取得の位置姿勢のデータと同じ値を示すはずであるが、カメラ201とロボット200の相対位置姿勢に変化が生じた場合には、この関係が失われることになる。つまり過去と同じ場所から画像取得していても、位置姿勢が相違することになる。
このため、取得済み動作データベースDB1に記憶された取得済み動作データD1は、カメラ201とロボット200の相対位置姿勢に変化が生じたと考えられる場合に、全ての画像と位置姿勢を消去し、初期化され、再度ロボット200の様々な位置姿勢で画像を取得し、形成されることになる。たとえば、タスクに失敗した場合や、カメラ201およびロボット200が周辺環境の物体などに接触した場合には、カメラ201とロボット200の相対位置姿勢に変化が生じたと判定する。
ピッキングロボット200において、タスクの失敗は、ワーク221の持ち上げ失敗にあたり、たとえば、エンドエフェクタ215として吸着パッドを用いる場合には、吸着パッド内の圧力によって持ち上げ成否を判定する。また、カメラ201およびロボット200の周辺環境の物体などへの接触は、たとえば、画像を用いた周辺環境の認識結果において、ロボット200のタスクにより変化すると想定される変化以外が生じた場合に、接触が発生したと判定する。
図5は校正動作データベースDB2に記憶された校正動作データD2の一例を示す図である。校正動作データベースDB2の各行に記憶された校正動作データD2は、以前に実施した1回の校正において用いたロボット200の複数の位置姿勢データD21と、校正結果による各作業対象W(図3のワーク221)に対するタスクの成否データD22で構成されている。
各作業対象Wに対するタスクの成否において、「○」は成功を、「×」は失敗を、「-」は該当の作業対象Wに対するタスクを試みていないことを示す。ピッキングロボット200において作業対象Wはワーク221であり、タスクの成否はワーク221の持ち上げ成否である。以降では、校正動作データベースDB2の各行の識別子をj、各行に含まれる位置姿勢の識別子をp、作業対象Wの識別子をwとする。なお、校正動作データベースDB2の作成・更新方法については後述する。
図5の表記について具体的に説明すると、ID=1に示される位置姿勢p1(0、0、0、0、0、0)、位置姿勢p2(10、0、0、0、0、0)、位置姿勢pj(10、10、10、10、10、45)の一連の位置姿勢情報群D21は、1組のパターンを形成しており、この位置姿勢のパターンを使用して図2のカメラ位置姿勢推定部300が位置姿勢を推定し、カメラの校正を行い、タスクを実行した場合に作業対象Wa、Wb、Wjに対するタスクが全て成功したことをここでは表している。
同様にID=2のパターンでは、ここに記述された一連の位置姿勢情報群D21のデータを使用して図2のカメラ位置姿勢推定部300が位置姿勢を推定し、カメラの校正を行い、タスクを実行したところ、作業対象Waに対するタスクに成功したが、作業対象Wbに対するタスクは失敗した、作業対象Wjに対するタスクはまだ実行していない、ことを表している。
ID=jのパターンでは、ここに記述された一連の位置姿勢情報群D21のデータを使用して図2のカメラ位置姿勢推定部300が位置姿勢を推定し、カメラの校正を行い、タスクを実行したところ、作業対象Wjに対するタスクに成功したが、作業対象Wbに対するタスクは失敗した、作業対象Waに対するタスクはまだ実行していない、ことを表している。
なお図5に表記された位置姿勢のデータpには、図4の取得済み動作データベースDB1に格納された取得済み動作データD1と、画像とロボット200の位置姿勢のペア情報としては未だ取得されず図4の取得済み動作データD1に格納されていないデータとがある。この場合に、取得すべき画像と位置姿勢データのペア情報を決定、計画したものが校正動作計画表TB1に記述されており、画像と位置姿勢データのペア情報を取得するための動作(図3のX点への移動)を示しているのが、校正動作計画L2である。
次に、校正動作データベースDB2を形成することについて説明する。校正動作データベースDB2は、推定したカメラ201とロボット200の相対位置姿勢およびタスク動作計画部101による動作計画を用いてタスクを実施し、タスクに成功したか否かを判定し、いずれかの作業対象に対するタスクに成功した場合には、校正に用いた位置姿勢とタスクの成否を校正動作データベースDB2に加えることで形成される。
なおここで、実際にタスクを実施し、タスクの成否を判定するには、時間が必要である。そこで、校正動作データベースDB2の作成時間を短縮するために、たとえば、最初は、取得済み動作データベースDB1に記憶した十分な数の画像と位置姿勢のペア(取得済み動作データD1)を用いて校正を実施し、上述の方法で校正動作データベースDB2に登録するのがよい。具体的には例えば、作業環境の6自由度空間を等間隔のグリッドで分割し、各グリッドに対応する位置姿勢でデータを取得する。次に、さきほど校正に用いた画像と位置姿勢のペア(取得済み動作データD1)から、ランダムにいくつかのペアを抽出し、抽出したペアのみを用いて校正を実施する。全てのペアを用いた場合の校正結果と、抽出したペアのみを用いた校正結果を、後述する校正動作計画部102の処理ステップS540と同様の方法で比較し、2つが一致している場合には、校正動作データベースDB2に抽出したペアに含まれる位置姿勢と、全てのペアを用いた場合のワークの持ち上げ結果を加える。これにより、実際のタスクの試行回数を減らしながら、校正動作データベースDB2に含まれる動作の種類を増やすことができる。
校正動作データベースDB2は、カメラ位置姿勢推定部300による校正が実施されると更新される。具体的には、カメラ位置姿勢推定部300が校正に用いた取得済み動作データベースDB1に含まれる位置姿勢と、カメラ位置姿勢推定部300によって推定されたカメラ位置姿勢を用いたタスクの成否を校正動作データベースDB2の1行として加える。
図6は校正動作計画表TB1の一例を示す図である。校正動作計画表TB1の各行は校正動作データベースDB2の各行に対応しており、校正動作データベースDB2の各行に含まれる複数の位置姿勢の内、取得済み動作データベースDB1に存在しない位置姿勢と、各作業対象に対するタスクの成否が含まれている。
なお、各作業対象に対するタスクの成否は、校正動作データベースDB2と校正動作計画表TB1で同一である。なお校正動作計画表TB1の位置姿勢において「-」は位置姿勢が含まれないことを表す。すなわち、図6の例では、校正動作計画表TB1の2行目には1つの位置姿勢しか含まれない。
図7は、校正動作計画部102において実行される処理を示すフローチャートである。
校正動作計画部102における最初の処理ステップS500では、校正動作計画表TB1を初期化する。具体的には、位置姿勢pの情報はひとつも含まず空欄とし、各作業対象Wに対するタスクの成否は、校正動作データベースDB2と同じとなるように、校正動作計画表TB1を作成する。この時に作成された校正動作計画表TB1は、図8に示す内容のものである。
処理ステップS510aでは、校正動作データベースDB2の各行jに対するループ処理を開始する。ループ処理は、処理ステップS510aと処理ステップS510bの間で条件を変更して繰り返し実行される。
処理ステップS520aでは、校正動作データベースDB2のj行に含まれる各位置姿勢pに対するループ処理を開始する。ループ処理は、処理ステップS520aと処理ステップS520bの間で条件を変更して繰り返し実行される。
処理ステップS510a、処理ステップS520aにおける繰り返し処理により、図5の校正動作データベースDB2の各位置姿勢pの情報を順次呼び出すことになる。例えば、位置姿勢p1、ID=1の位置姿勢情報(0、0、0、0、0、0)、位置姿勢p2、ID=1の位置姿勢情報(10、0、0、0、0、0)、位置姿勢pj、ID=1の位置姿勢情報(10、10、10、10、10、45)、位置姿勢p1、ID=2の位置姿勢情報(0、0、0、10、0、-5)、位置姿勢p2、ID=2の位置姿勢情報(-10、-5、5、0、10、10)、位置姿勢pj、ID=2の位置姿勢情報(0、5、0、20、-20、5)の順番での呼び出しを行う。
処理ステップS530aでは、取得済み動作データベースDB1の各行iに対するループ処理を開始する。ループ処理は、処理ステップS530aと処理ステップS530bの間で条件を変更して繰り返し実行される。これにより図4の取得済み動作データベースDB1のペア情報(画像情報D11と位置姿勢情報D12)が順次呼び出される。
処理ステップS540では、校正動作データベースDB2のj行に含まれる位置姿勢pと取得済み動作データベースDB1のi行に含まれる位置姿勢を比較する。位置姿勢が一致していない場合はループ処理を続け、位置姿勢が一致している場合は、取得済み動作データベースDB1の各行iに対するループ処理をぬけ、次の校正動作データベースDB2のj行に含まれる各位置姿勢pに対するループ処理に進む。
上記の例では最初に、図5の位置姿勢p1、ID=1の位置姿勢情報(0、0、0、0、0、0)について、図4の位置姿勢p、ID=1の位置姿勢情報(0、0、0、0、0、0)と比較し、次に位置姿勢p、ID=2の位置姿勢情報(-5、5、10、0、0、0)と比較するといった処理を全ての組み合わせについて順次実行する。
位置姿勢の一致判定は、たとえば、2つの位置の差が事前に設定した閾値以内、かつ、2つの姿勢の差が事前に設定した閾値以内の場合に、2つの位置姿勢が一致していると判定する。
処理ステップS550では、校正動作計画表TB1のj行に位置姿勢pを追加する。このようにして最終的に作成されたものが図6の校正動作計画表TB1である。この事例では、図5のID=1の位置姿勢p1(0、0、0、0、0、0)について図4の取得済みデータベースDB1を検索し、一致するデータが存在したので、校正動作計画表TB1のID=1の行には記述せず、同様に位置姿勢p2(10、0、0、0、0、0)、位置姿勢pj(10、10、10、10、10、45)について、図4の取得済みデータベースDB1を検索し、一致するデータが存在しないので、校正動作計画表TB1のID=1の行に記述した。
同様に位置姿勢p1、ID=2の位置姿勢p1(0、0、0、10、0、-5)、位置姿勢p2(-10、-5、5、0、10、10)について図4の取得済みデータベースDB1を検索し、一致するデータが存在したので、校正動作計画表TB1のID=2の行には記述せず、取得済みデータベースDB1に存在しない位置姿勢pj(0、5、0、20、-20、5)を校正動作計画表TB1のID=1の行に記述した。
図6の校正動作計画表TB1に抽出された位置姿勢情報pは、いずれも図4の取得済み動作データベースDB1には存在しない情報である。このため、これら不存在の位置姿勢データについて、画像と位置姿勢のペアである取得済み動作データD1を新たに入手して取得済み動作データベースDB1に補充、記憶する。そのうえで、図5の入手済み位置姿勢情報pを含むパターンについて、図2のカメラ位置姿勢推定部300において推定を行い、校正データを用いてタスク実行することにより、タスク成功の確率を向上させることができる。
なお、校正動作データベースDB2に記憶される校正動作データD2は、カメラ位置姿勢校正装置100を最初に使用する際に作成し、その後、カメラ位置姿勢を校正するたびに更新する。
次に、統合動作計画部103における処理の内容について説明する。統合動作計画部103は、タスク動作計画部101によって計画されたタスク動作計画L1と校正動作計画部102によって計画された校正動作計画L2を、タスクの状況および目標から優先度算出部104によって算出された校正優先度に基づいて統合することで動作計画Lを作成するものである。
なお、統合動作計画部103における処理の内容を理解するうえでは、優先度算出部104によって算出される校正優先度の算出手法を理解しておくのがよいので、以下においてはまず優先度算出部104についての説明を行う。
図9、図10、図11を用いて、校正優先度算出部104における処理の内容について説明する。校正優先度算出部104は、タスクの状況および目標に基づいて、タスク動作計画L1に対する校正動作計画L2の優先度を算出する。
タスクの状況および目標は、タスク状況目標取得部310が与えるタスク状況目標表TB2で管理される。図9は、タスク状況目標表TB2の一例を示す図である。タスク状況目標表TB2の各行はロボット200が処理するタスクの状況および目標であり、ロボット200が処理する順番に並んでいる。たとえば、タスクの目標は作業対象の管理番号D31、終了目標時間D32であり、タスクの状況は達成度D33、終了予定時間D34、タスク失敗回数D35である。
図9のタスク状況目標表TB2の事例によれば、ID=1のタスクについて、10:00までに終了すべきところ、9:55に終了予定であり、現在時点において50%ほどの処理が完了しており、かつ過去に1度の失敗をしていることがわかる。なお、ID=1以外のタスクは全て今後実施予定のものである。
タスク状況目標表TB2は、タスク状況・目標取得部310により更新される。たとえば、ピッキングロボット200においては、タスクの目標である作業対象の管理番号D31、終了目標時間D32は、オペレータや生産管理システムにより入力される。
タスクの状況である達成度D33や失敗回数D35は、ピッキングロボット200によるピッキング動作の結果に基づいて更新する。終了予定時間D34は、たとえば、過去の動作時間と達成度から計算する。達成度D33はワークの総数および残数などから計算する。また、終了予定時間D34は、タスク動作計画部101が出力したタスク動作計画L1から、動作に必要な時間を算出してもよい。
校正優先度算出部104は、たとえば、出力動作種類と校正使用可能時間を、タスク動作計画L1に対する校正動作計画L2の優先度として算出する。ここで出力動作種類は、統合動作計画部103が出力する動作計画の種類であり、校正動作計画L1もしくは統合動作計画Lである。なお統合動作計画Lは、タスク動作計画L1と校正動作計画L2を実行するための計画である。校正使用可能時間は、校正動作にかけることが可能な時間である。
図10は校正優先度算出部104において実行される処理を示すフローチャートである。校正優先度算出部104の最初の処理ステップS600では、ロボット200に現在設定されているタスクに対する余裕時間である作業余裕時間を算出する。具体的には、現在のタスクに対応するタスク状況目標表TB2の終了目標時間D32から終了予定時間D35を引いた結果を作業余裕時間とする。図9のID=1の場合、タスク状況目標表TB2の終了目標時間D32(10:00)から終了予定時間D35(9:55)を引いた結果である5分を作業余裕時間とする。ただし、終了目標時間D32から終了予定時間D35を引いた結果が0より小さい場合には、作業余裕時間は0とする。
処理ステップS610では、ロボット200に現在設定されているタスクに対する失敗回数D35が、事前に設定された閾値以上の場合は処理ステップS620に、そうでない場合は処理ステップS630に進む。
処理ステップS620では、出力動作種類を校正動作計画L1に設定し、校正使用可能時間を作業余裕時間に設定する。これにより、校正作業を実施せずにタスクを継続することはできないと判断し、作業余裕時間を用いて校正動作を実施するように設定する。先の例では、5分間で校正動作を実施するように設定する。
処理ステップS630では、作業余裕時間が0より大きい場合は処理ステップS640に、そうでない場合は処理ステップS650に進む。
処理ステップS640では、出力動作種類を統合動作計画Lに設定し、校正使用可能時間を作業余裕時間に設定する。これにより、タスクを継続しながら、作業余裕時間を用いて統合動作を実施するように設定する。先の例では、10:00までにタスクが完了するように、校正動作とタスク動作による統合動作を実施するように設定する。
処理ステップS650では、校正作業を実施することなくタスクを継続した場合に、タスクに失敗する動作にかかると推定される時間である推定失敗時間を算出する。たとえば、現在ロボット200に設定されているタスクに対する達成度、失敗回数から、今後タスクに失敗する回数を算出する。最後に、過去の実績から算出した1動作にかかる時間の平均、もしくは、タスクに失敗した際の動作時間の平均、と失敗回数から、推定失敗時間を算出する。
処理ステップS660では、出力動作種類を統合動作計画Lに設定し、校正使用可能時間を推定失敗時間に設定する。これにより、作業余裕時間が0の場合においても、校正作業を実施することなくタスクを継続した場合にタスク失敗によって失う時間よりも短い時間で実行可能な統合動作を実施するように設定する。
図11は、統合動作計画部103において実行される処理を示すフローチャートである。統合動作計画部103の最初の処理ステップS700では、優先度算出部104によって算出された出力動作計画が統合動作計画Lの場合には処理ステップS710に進み、それ以外の場合には処理ステップS730に進む。
処理ステップS710では、校正動作計画表TB1に含まれる校正動作計画毎に、統合動作計画Lと、統合動作計画Lによってタスク動作計画L1よりも余分に必要となる時間である校正動作時間を算出する。処理の詳細は後述する。
処理ステップS720では、校正動作計画表TB1と、校正動作計画表TB1に含まれる各校正動作に対応する統合動作および校正動作時間から、統合動作計画部103が出力する統合動作を選択する。
たとえば、まず、校正使用可能時間よりも短い校正動作時間の統合動作を選択候補とする。次に校正動作計画表TB1とタスク状況目標表TB2を参照し、選択候補のうち、最も先のタスクで対象となる作業対象Wに対してタスクを成功可能な統合動作を出力する。なお、最も先のタスクまで成功可能な選択候補が複数あった場合には、校正動作時間が最も短い統合動作を出力する。また、選択候補が1つも存在しない場合には、統合動作ではなく、タスク動作計画部101が出力したタスク動作を出力する。
処理ステップS730は校正動作計画表TB1に含まれる校正動作計画毎に、校正動作に必要となる校正動作時間を算出する。処理の詳細は後述する。
処理ステップS740は、校正動作計画表TB1と、校正動作計画表TB1に含まれる各校正動作に対応する校正動作時間から、統合動作計画部103が出力する校正動作を選択する。
たとえば、まず、校正使用可能時間よりも短い校正動作時間の校正動作を選択候補とする。次に校正動作計画表TB1とタスク状況目標表TB2を参照し、選択候補のうち、最も先のタスクで対象となる作業対象に対してタスクを成功可能な校正動作を出力する。なお、最も先のタスクまで成功可能な選択候補が複数あった場合には、校正動作時間が最も短い校正動作を出力する。また、選択候補が1つも存在しない場合には、現在のタスクを成功可能な校正動作のうち、校正動作時間が最も短い校正動作を出力する。
図12は処理ステップS710において実行される処理を示すフローチャートである。
処理ステップS711では、S711aとS711bの間で校正動作計画表TB1の各行kに対するループ処理を実行する。
処理ステップS712では、S712aとS712bの間で校正動作計画表TB1のk行に含まれる各位置姿勢pのタスク動作計画への割当パターンに対するループ処理を開始する。
校正動作計画表TB1のk行には複数の位置姿勢pが含まれている。また、タスク動作計画部101は複数のタスク動作計画を出力している。すなわち、複数の位置姿勢pを、複数のタスク動作計画と統合する際には、位置姿勢pとタスク動作計画の組み合わせが複数パターン存在する。また、ひとつのタスク動作計画に対して、複数の位置姿勢pを統合する場合には、位置姿勢pを統合する順番にも複数のパターンが存在する。処理ステップS712は、これら全てのパターンに対するループ処理を開始する。
処理ステップS713では、校正動作計画表TB1に含まれる位置姿勢pとタスク動作計画を統合した統合動作を計画する。具体的には、処理対象のパターンにおいて、校正動作計画表TB1に含まれる位置姿勢pが割り当てられたタスク動作計画毎に、公知の動作計画手法により、ロボット200の基準位置姿勢からスタートし、校正動作計画表TB1に含まれる位置姿勢pを経由し、タスク動作計画部101によって動作計画として出力されたタスクを実行可能な位置姿勢に到達する動作を計画する。
たとえば動作計画手法としては、J.J.Kuffner,and S.M.LaValle,RRT-connect:An efficient approach to single-query path planning,Int.Conf. on Robotics and Automation、 pp.995-1001(2000)を用いることができる。
処理ステップS714では、校正動作にかかる時間を算出する。具体的には、校正動作計画表TB1に含まれる位置姿勢pが割り当てられたタスク動作計画毎に、処理ステップS713で計画された統合動作をロボット200が実施した際に必要な時間を、ロボット200の仕様に基づいて算出する。
また、校正動作を経由しない場合のロボット200の動作時間、すなわち、ロボット200の基準位置をスタートし、タスクを実行可能な場所に到達する動作を計画し、動作にかかる時間を算出する。
次に、統合動作をロボット200が実施した際に必要な時間と、校正動作を経由しない場合のロボット200の動作時間の差を、校正動作にかかる時間とする。最後に、校正動作計画表TB1に含まれる位置姿勢pが割り当てられたタスク動作計画毎に計算した校正動作にかかる時間を合計することで、処理対象のパターンに対する校正動作時間とする。
処理ステップS715は、処理ステップS712で開始された、校正動作計画表TB1のk行に含まれる各位置姿勢pのタスク動作計画への割当パターンに対するループ処理で算出された全ての校正動作時間から、最も短い校正動作時間と、対応する統合動作を選択する。
図11に戻り、処理ステップS730の処理を説明する。処理ステップS730は処理ステップS710と同様の処理により、校正動作計画と校正動作時間を算出する。ただし、処理ステップS710とは異なり、校正動作計画とタスク動作計画の統合は実施せず、校正動作のみからなる校正動作計画と校正動作時間を算出する。
具体的には、校正動作計画表TB1の行毎に、行に含まれる複数の位置姿勢の順番の全てのパターンに対して、ロボット200の基準位置から位置姿勢に達する動作計画を、公知の動作計画手法により計画し、校正動作計画とする。また、ロボット200の仕様から校正動作計画を実施するために必要な時間を校正動作時間とする。最後に、校正動作計画表TB1の行毎に、最も短い校正動作時間と対応する校正動作を選択する。
上述した本発明の実施例1によれば、次の作用効果が得られる。
(1)カメラ位置姿勢校正装置100は、タスク動作計画部101と、校正動作計画部102と、統合動作計画部103と、を備える。タスク動作計画部101は、画像とロボット200の位置姿勢のデータから、ロボット200に設定されたタスクを実行するための動作を計画する。校正動作計画部102は、画像とロボット200の位置姿勢から、カメラ位置姿勢の校正に必要な動作を計画する。統合動作計画部103は、タスク動作計画部101によって計画されたタスク動作計画と校正動作計画部102によって計画された校正動作計画を統合することで動作を計画する(図1)。そのため、タスク動作計画と校正動作計画が統合され、ロボット200に設定されているタスクを中断することなく、カメラ201とロボット200の相対位置姿勢を校正することができる。また、カメラ201とロボット200の相対位置姿勢の校正に必要となる時間を短くすることができる。
(2)校正動作計画部102は、取得済みの画像とロボット200の位置姿勢を含む取得済み動作データベースDB1と、校正に用いたロボット200の位置姿勢および校正結果によるタスクの成否を含む校正動作データベースDB2に基づいて校正に必要な動作を計画し、校正動作計画表TB1として出力する(図4~図8)。そのため、取得済み動作が考慮されることにより、カメラ201とロボット200の相対位置姿勢を校正に必要となる時間を短くすることができる。
(3)統合動作計画部103は、校正優先度算出部104を備える。校正優先度算出部104は、タスクの状況および目標を含むタスク動作目標表TB2に基づいて、タスク動作計画に対する校正動作計画の優先度を算出する。統合動作計画部103は、校正優先度算出部104によって算出された校正動作計画の優先度に基づいて、タスク動作計画部101によって計画されたタスク動作計画と校正動作計画部102によって計画された校正動作計画を統合することで動作を計画する(図9~図12)。そのため、タスクの状況および目標を考慮しながら、カメラ201とロボット200の相対位置姿勢を校正することで、ロボット200は与えられたタスクを目標どおりに実施することができる。
(4)校正優先度算出部104は、タスクの終了目標時間と終了予定時間から、タスクに対する余裕時間である作業余裕時間を算出し、作業余裕時間に基づいて、校正動作にかけることが可能な時間である校正使用可能時間を、校正動作計画の優先度として算出する(図9、図10)。そのため、作業余裕時間を考慮しながら、カメラ201とロボット200の相対位置姿勢を校正することで、ロボット200は与えられたタスクを目標どおりに実施することができる。
(5)校正優先度算出部104は、ロボット200に設定されているタスクに対する失敗回数に基づいて、統合動作計画部103が出力する動作計画の種類である出力動作種類と校正使用可能時間を、校正動作計画の優先度として算出する(図9、図10)。そのため、タスクに対する失敗回数を考慮し、失敗が多い場合には校正動作を実施し、カメラ201とロボット200の相対位置姿勢を校正することで、ロボット200は与えられたタスクを目標どおりに実施することができる。
(6)校正優先度算出部104は、ロボット200に設定されているタスクに対する達成度、失敗回数から校正作業を実施することなくタスクを継続した場合に、タスクに失敗する動作にかかると推定される時間である推定失敗時間を算出し、推定失敗時間に基づいて、校正動作にかけることが可能な時間である校正使用可能時間を、校正動作計画の優先度として算出する(図9、図10)。そのため、推定失敗時間を考慮し、推定失敗時間よりも短い時間でカメラ位置姿勢を校正できる場合には、カメラ位置姿勢を校正することで、校正を実施しない場合よりも短い時間でタスクを完了することができる。
(7)統合動作計画部103は、タスク動作計画部101によって計画された各タスク動作計画と、校正動作計画部102によって計画された各校正動作計画を、複数の組み合わせパターンで統合し、統合することでタスク動作計画に対して追加された動作時間である校正動作時間が最も短い統合動作を、各校正動作計画に対する統合動作として選択する(図11、図12)。そのため、カメラ201とロボット200の相対位置姿勢の校正に必要となる時間を短くすることができる。
(8)統合動作計画部103は、校正動作データベースTB1に含まれる校正結果によるタスクの成否と、タスク状況目標表TB2に含まれるロボット200にタスクとして与えられる作業対象の予定とに基づいて、統合動作を選択する(図9、図11)。そのため、作業対象の予定が考慮されることにより、長期的にみて短い時間でタスクを完了することができる。
なお、本発明の実施例1を実現するに当たり、さらに以下の変形実施例とすることができる。
まず、校正動作データベースDB2はカメラ位置姿勢校正装置100を最初に使用する際に、様々なロボット200の位置姿勢で画像を取得し、取得した画像とロボット200の位置姿勢を用いた校正結果によるタスクを実施することで作成した。しかし、校正動作データベースDB2の作成方法はこれに限定されない。
また統合動作計画部は、タスク動作計画部によって計画された各タスク動作計画と、校正動作計画部によって計画された各校正動作計画を、複数の組み合わせパターンで統合し、統合することでタスク動作計画に対して追加された動作時間である校正動作時間が最も短い統合動作を、各校正動作計画に対する統合動作として選択するものであってもよい。
また統合動作計画部は、校正動作データベースと、複数の予定されているタスクの目標とを用いて統合動作を選択するものであってもよい。
さらに校正動作データベースをシミュレーションにより作成するものであってもよい。
校正動作データベースDB2は、ロボット200を動作させることなく、シミュレーションにより作成しても良い。たとえば、ロボット200の構成、配置や、作業対象の形状などからシミュレーション環境を作成し、仮想的に画像とロボット200の位置姿勢のペアを複数取得し、実データを用いる場合と同様の方法で校正動作データベースDB2を作成しても良い。また、シミュレーションと実環境を一致させるために、実際の作業環境の画像を取得し、画像を用いた三次元復元手法や物体認識手法によって、実環境を模擬したシミュレーション環境を作成し、校正動作データベースDB2の作成に用いても良い。
上述した変形例1によれば、次の作用効果が得られる。すなわち、カメラ位置姿勢校正装置100は、シミュレーションにより、校正動作データベースDB2を作成する。そのため、校正動作データベースDB2の作成にかかる時間が短くなることにより、カメラ位置姿勢校正装置を早期に使用開始することができる。
以下、図13~図15を参照して、本発明の実施例2に係るカメラ位置姿勢校正装置について説明する。なお以下の説明では、実施例1と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、実施例1と同じである。本実施例では、ロボット200が自動運転車の場合を対象とする。
実施例2におけるカメラ位置姿勢校正装置の構成は、基本的に図1と同じであり、優先度算出部104の処理が異なる点でのみ相違する。
実施例2では、ロボット200は自動運転車である。図13は自動運転車230を駐車スペースに駐車する状況を示す図である。自動運転車230は、駐車場内において駐車スペースである目標位置姿勢241へ自動的に走行する。自動運転車230はカメラ231を搭載しており、カメラ231により周辺環境を認識し、自動運転車230を制御することで、自動運転車230を目標位置姿勢241へ移動させる。
図13に示す例では、自動運転車230は、他の車両242が駐車していない駐車スペースを認識することで目標位置姿勢241とし、自動で走行することで自動駐車を実現する。なお、自動運転車230の構成は任意である。たとえば、自動運転車230は複数のカメラ231を搭載しても良いし、LiDARやレーダーなど他のセンサを搭載しても良い。また、自動運転車230は、通信装置により監視センタと通信しても良い。
自動運転車230において、図2のロボットにおける位置姿勢センサ202は、たとえば、タイヤとステアリングの回転量を計測するセンサである。自動運転車230の位置姿勢としては、車両の制御に重要となる後輪車軸中心の位置姿勢を用いる。タイヤとステアリングの回転量を計測することで、自動運転車230の幾何モデルに基づき、公知の手法であるホイールオドメトリにより自動運転車230の位置姿勢を得ることができる。
自動運転車230において、設定されたタスクは目標位置姿勢241まで走行することである。タスクの状況は、たとえば、目標位置姿勢241の種類や形状、目標位置姿勢241までの距離などである。タスクの目標は、たとえば、目標位置姿勢241に到達する時間などである。
自動運転車230において、図1のタスク動作計画部101は、カメラ231によって撮影された周辺環境の画像と、自動運転車230の位置姿勢のデータから、自動運転車230を目標位置姿勢241まで移動させるための動作を計画する。たとえば、タスク動作計画部101は、公知のパターンマッチング手法や機械学習手法により、駐車スペースの位置姿勢を推定することで、駐車可能な位置姿勢を算出し、目標位置姿勢241とする。
複数の駐車スペースが認識された場合には、それぞれの駐車スペースに対応した、駐車可能な位置姿勢を目標位置姿勢241とする。なお、目標位置姿勢241は駐車スペースに限らず、ユーザが求める任意の位置姿勢でも良い。また、カメラ231に加えて他のセンサや地図情報を用いて目標位置姿勢241を算出しても良い。
次にロボットが自動運転車230である場合の校正優先度算出部104の動作、処理内容について、図14、図15を用いて説明する。
図14は、自動運転車230におけるタスク状況目標表TB2の一例を示す図である。図9に示した実施例1のタスク状況目標表TB2の項目に搭乗者の人数D30が追加されている。
自動運転車230におけるタスク状況目標表TB2において、作業対象D31は目標位置姿勢241である。また、タスクの失敗D35は、目標位置姿勢241への走行の失敗にあたり、たとえば、ドライバが周辺環境の物体への接触の危険性を察知し、ブレーキを踏んだ場合には失敗と判断する。また、超音波センサなどにより、周辺環境の物体への接触の危険性を検知した場合にも失敗と判断する。
図14のタスク状況目標表TB2は、タスク状況・目標取得部310により更新される。たとえば、自動運転車230においては、タスクの目標である作業対象の管理番号、終了目標時間D32は、ユーザにより入力される、もしくは、自動運転システムによって設定される。タスクの状況である達成度D33や失敗回数D35は、自動運転車230による走行結果に基づいて更新する。終了予定時間D34は、たとえば、過去の動作時間と達成度から計算する。達成度D33は目標位置姿勢241までの距離および走行距離から計算する。また、終了予定時間D34は、タスク動作計画部101が出力した動作計画から、動作に必要な時間を算出してもよい。
図15は、校正優先度算出部104において実行される処理を示すフローチャートである。実施例2においては、図1に示す実施例1の校正優先度算出部104において実行される図10のフローチャートに、処理ステップS970および処理ステップS980が追加されている。
処理ステップS970では、搭乗者が0の場合には処理ステップS980に進み、それ以外の場合は処理ステップS650に進む。
処理ステップS980では、出力動作種類を統合動作計画L、校正使用可能時間を事前に設定した値に設定する。搭乗者が0の場合には、校正使用可能時間を事前に設定した値に設定することで、終了目標時間にタスクを終えることよりも、校正作業を優先する。
実施例2によれば、次の作用効果が得られる。すなわち、校正優先度算出部104は、自動運転車230の搭乗者の数に基づいて校正動作にかけることが可能な時間である校正使用可能時間を、校正動作計画の優先度として算出する。そのため、搭乗者の数が0のときに校正を実施することにより、搭乗者がいる場合における校正動作時間を短くすることで、校正を実施することによる搭乗者への負担を小さくすることができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
100:カメラ位置姿勢校正装置、101:タスク動作計画部、102:校正動作計画部、103:統合動作計画部、104:校正優先度算出部、200:ロボット(ピッキングロボット)、201:カメラ、202:位置姿勢センサ、220:作業台、230:自動運転車、300:カメラ位置姿勢推定部、310:タスク状況・目標取得部、DB1:取得済み動作データベース、DB2:校正動作データベース、TB1:校正動作計画表、TB2:タスク状況目標表

Claims (14)

  1. ロボットに搭載されたカメラにより撮影された画像と前記ロボットの位置姿勢から、前記ロボットに設定されたタスクを実行するための動作を計画するタスク動作計画部と、
    前記画像と前記ロボットの位置姿勢から、前記カメラと前記ロボットの相対位置姿勢の校正に必要な動作を計画する校正動作計画部と、
    前記タスク動作計画部によって計画されたタスク動作計画と前記校正動作計画部によって計画された校正動作計画を統合することで動作を計画する統合動作計画部と、
    を備え、
    前記校正動作計画部は、複数組の取得済みの前記画像と前記ロボットの位置姿勢を含む取得済み動作データと、複数組の前記ロボットの位置姿勢と前記ロボットの位置姿勢を用いた校正結果による前記タスクの成否を含む校正動作データと、を用いて前記カメラと前記ロボットの相対位置姿勢の校正に必要な動作を計画することを特徴とするカメラ位置姿勢校正装置。
  2. 請求項1に記載のカメラ位置姿勢校正装置であって、
    前記タスクの状況および目標を与えるタスク状況・目標取得部と、前記タスク状況・目標取得部からの前記タスクの状況および目標に基づいて、前記タスク動作計画に対する前記校正動作計画の優先度を算出する校正優先度算出部を備え、
    前記統合動作計画部は、前記校正優先度算出部によって算出された前記優先度に基づいて、前記タスク動作計画と前記校正動作計画を統合することで動作を計画することを特徴とするカメラ位置姿勢校正装置。
  3. 請求項2に記載のカメラ位置姿勢校正装置であって、
    前記校正優先度算出部は、前記タスクの終了目標時間と終了予定時間から算出した作業余裕時間を用いて、校正動作にかけることが可能な時間である校正使用可能時間を、前記優先度として算出することを特徴とするカメラ位置姿勢校正装置。
  4. 請求項2または請求項3に記載のカメラ位置姿勢校正装置であって、
    前記校正優先度算出部は、前記タスクに対する失敗回数を用いて、前記統合動作計画部が出力する動作計画の種類である出力動作種類と校正動作にかけることが可能な時間である校正使用可能時間を、前記優先度として算出することを特徴とするカメラ位置姿勢校正装置。
  5. 請求項2ないし請求項4のいずれか一項に記載のカメラ位置姿勢校正装置であって、
    前記校正優先度算出部は、前記タスクに対する達成度および失敗回数から校正作業を実施することなく前記タスクを継続した場合に、前記タスクに失敗する動作にかかると推定される時間である推定失敗時間を算出し、前記推定失敗時間を用いて校正動作にかけることが可能な時間である校正使用可能時間を、前記優先度として算出することを特徴とするカメラ位置姿勢校正装置。
  6. 請求項2ないし請求項5のいずれか一項に記載のカメラ位置姿勢校正装置であって、
    前記校正優先度算出部は、前記ロボットの搭乗者の数に基づいて校正動作にかけることが可能な時間である校正使用可能時間を、前記優先度として算出することを特徴とするカメラ位置姿勢校正装置。
  7. 請求項1ないし請求項6のいずれか一項に記載のカメラ位置姿勢校正装置であって、
    前記統合動作計画部は、前記タスク動作計画部によって計画された各タスク動作計画と、前記校正動作計画部によって計画された各校正動作計画を、複数の組み合わせパターンで統合し、統合することで前記タスク動作計画に対して追加された動作時間である校正動作時間が最も短い統合動作を、各校正動作計画に対する統合動作として選択することを特徴とするカメラ位置姿勢校正装置。
  8. 請求項1ないし請求項7のいずれか一項に記載のカメラ位置姿勢校正装置であって、
    前記統合動作計画部は、前記校正動作計画と、複数の予定されている前記タスクの目標とを用いて統合動作を選択することを特徴とするカメラ位置姿勢校正装置。
  9. 請求項1ないし請求項8のいずれか一項に記載のカメラ位置姿勢校正装置であって、
    前記校正動作計画をシミュレーションにより作成することを特徴とするカメラ位置姿勢校正装置。
  10. 請求項1ないし請求項8のいずれか一項に記載のカメラ位置姿勢校正装置により操作されるロボット。
  11. ロボットに搭載されたカメラにより撮影された画像と前記ロボットの位置姿勢から、前記ロボットに設定されたタスクを実行するための動作を計画したタスク動作計画と、前記画像と前記ロボットの位置姿勢から、前記カメラと前記ロボットの相対位置姿勢の校正に必要な動作を計画した校正動作計画と、前記タスク動作計画と前記校正動作計画を統合した統合動作計画と、前記タスクの状況および目標を得、
    前記タスクの状況および目標に基づいて、前記タスク動作計画に対する前記校正動作計画の優先度を算出し、前記優先度に基づいて、動作計画を選択し、選択した動作計画により前記ロボットを操作することを特徴とするカメラ位置姿勢校正方法。
  12. 請求項11に記載のカメラ位置姿勢校正方法であって、
    前記タスクに失敗した場合に、前記校正動作計画を優先し、前記タスクの終了目標時間と終了予定時間から算出した作業余裕時間を用いて、校正動作を実施することを特徴とするカメラ位置姿勢校正方法。
  13. 請求項11に記載のカメラ位置姿勢校正方法であって、
    前記タスクの終了目標時間と終了予定時間から算出した作業余裕時間があるとき、前記統合動作計画を優先し、タスクを継続実施することを特徴とするカメラ位置姿勢校正方法。
  14. 請求項11に記載のカメラ位置姿勢校正方法であって、
    前記タスクの終了目標時間と終了予定時間から算出した作業余裕時間がないとき、前記タスクを継続した場合に、前記タスクに失敗する動作にかかると推定される時間である推定失敗時間を算出し、推定失敗時間よりも短い時間で実行可能な前記統合動作計画を実施することを特徴とするカメラ位置姿勢校正方法。
JP2020523873A 2018-06-05 2018-06-05 カメラ位置姿勢校正装置、カメラ位置姿勢校正方法並びにロボット Active JP7064586B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/021497 WO2019234814A1 (ja) 2018-06-05 2018-06-05 カメラ位置姿勢校正装置、カメラ位置姿勢校正方法並びにロボット

Publications (2)

Publication Number Publication Date
JPWO2019234814A1 JPWO2019234814A1 (ja) 2021-02-12
JP7064586B2 true JP7064586B2 (ja) 2022-05-10

Family

ID=68770913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020523873A Active JP7064586B2 (ja) 2018-06-05 2018-06-05 カメラ位置姿勢校正装置、カメラ位置姿勢校正方法並びにロボット

Country Status (3)

Country Link
US (1) US11865730B2 (ja)
JP (1) JP7064586B2 (ja)
WO (1) WO2019234814A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7337495B2 (ja) * 2018-11-26 2023-09-04 キヤノン株式会社 画像処理装置およびその制御方法、プログラム
JP2020196059A (ja) * 2019-05-31 2020-12-10 セイコーエプソン株式会社 ロボット
US11726188B2 (en) 2020-04-22 2023-08-15 Gm Cruise Holdings Llc Eliminating sensor self-hit data

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297238A (en) 1991-08-30 1994-03-22 Cimetrix Incorporated Robot end-effector terminal control frame (TCF) calibration method and device
JP2012240174A (ja) 2011-05-23 2012-12-10 Mitsubishi Electric Corp キャリブレーション装置及びキャリブレーション方法
JP2015150636A (ja) 2014-02-13 2015-08-24 ファナック株式会社 ビジュアルフィードバックを利用したロボットシステム
US20160089791A1 (en) 2013-03-15 2016-03-31 Industrial Perception, Inc. Continuous Updating of Plan for Robotic Object Manipulation Based on Received Sensor Data
US20170136626A1 (en) 2015-11-16 2017-05-18 Abb Technology Ag Facilitating robot positioning
US20170312918A1 (en) 2016-04-27 2017-11-02 Quanta Storage Inc. Programming Method of a Robot Arm
WO2018043525A1 (ja) 2016-09-02 2018-03-08 倉敷紡績株式会社 ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
JP6301045B1 (ja) 2017-03-09 2018-03-28 三菱電機株式会社 ロボット制御装置およびキャリブレーション方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4831549A (en) 1987-07-28 1989-05-16 Brigham Young University Device and method for correction of robot inaccuracy
JPH06134691A (ja) * 1992-10-23 1994-05-17 Hitachi Ltd 位置検出方法およびこれを用いたフレキシブル生産システム
JPH06270020A (ja) * 1993-03-24 1994-09-27 Nissan Motor Co Ltd 位置測定装置
JP2007061979A (ja) 2005-09-01 2007-03-15 Sharp Corp ロボットアームの視覚センサ補正方法およびコンピュータプログラム
JP6415190B2 (ja) * 2014-09-03 2018-10-31 キヤノン株式会社 ロボット装置、ロボット制御プログラム、記録媒体、およびロボット装置の制御方法
EP3458919B1 (en) * 2016-05-19 2022-08-24 Deep Learning Robotics Ltd. Robot assisted object learning vision system
JP6396516B2 (ja) * 2017-01-12 2018-09-26 ファナック株式会社 視覚センサのキャリブレーション装置、方法及びプログラム
US20200016757A1 (en) 2017-03-09 2020-01-16 Mitsubishi Electric Corporation Robot control apparatus and calibration method
CA3030734C (en) * 2017-06-16 2023-01-10 Robotiq Inc. Robotic arm camera system and method

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297238A (en) 1991-08-30 1994-03-22 Cimetrix Incorporated Robot end-effector terminal control frame (TCF) calibration method and device
JP2012240174A (ja) 2011-05-23 2012-12-10 Mitsubishi Electric Corp キャリブレーション装置及びキャリブレーション方法
US20160089791A1 (en) 2013-03-15 2016-03-31 Industrial Perception, Inc. Continuous Updating of Plan for Robotic Object Manipulation Based on Received Sensor Data
JP2015150636A (ja) 2014-02-13 2015-08-24 ファナック株式会社 ビジュアルフィードバックを利用したロボットシステム
US20170136626A1 (en) 2015-11-16 2017-05-18 Abb Technology Ag Facilitating robot positioning
US20170312918A1 (en) 2016-04-27 2017-11-02 Quanta Storage Inc. Programming Method of a Robot Arm
WO2018043525A1 (ja) 2016-09-02 2018-03-08 倉敷紡績株式会社 ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
JP6301045B1 (ja) 2017-03-09 2018-03-28 三菱電機株式会社 ロボット制御装置およびキャリブレーション方法

Also Published As

Publication number Publication date
JPWO2019234814A1 (ja) 2021-02-12
US11865730B2 (en) 2024-01-09
US20210229290A1 (en) 2021-07-29
WO2019234814A1 (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
JP7064586B2 (ja) カメラ位置姿勢校正装置、カメラ位置姿勢校正方法並びにロボット
JP7338034B2 (ja) リモートクライアントデバイスからの入力に基づく効率的なロボットの制御
US8941817B2 (en) Method for pointing a plurality of predetermined locations inside a structure and corresponding pointing system
JP7221183B2 (ja) 機械学習方法、フォークリフト制御方法、及び機械学習装置
JP7386652B2 (ja) ロボット制御ための方法及び装置
CN114516060A (zh) 用于控制机器人装置的设备和方法
US11673271B2 (en) Trajectory generation apparatus, multi-link system, and trajectory generation method
CN113412178A (zh) 机器人控制装置、机器人系统以及机器人控制方法
US20210154849A1 (en) Controller for distributed devices
CN117295589B (zh) 在训练和细化机器人控制策略中使用模仿学习的系统和方法
Hudson et al. Model-based autonomous system for performing dexterous, human-level manipulation tasks
CN113070876A (zh) 一种基于3d视觉的机械手点胶路径引导纠偏方法
EP4400274A1 (en) Command value generating device, method, and program
JP7473005B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及び、プログラム
US20210197391A1 (en) Robot control device, robot control method, and robot control non-transitory computer readable medium
US20230286143A1 (en) Robot control in working space
CN111263685B (zh) 机器人方法和系统
CN115213893A (zh) 用于在工作空间内定位传感器的方法和系统
JP7323057B2 (ja) 制御装置、制御方法、および、制御プログラム
CN116300972B (zh) 一种机器人作业规划方法、系统及其应用
US20240351205A1 (en) Command value generating device, method, and program
US20240051117A1 (en) Determination of picking order of workpieces
US20220388167A1 (en) Method, computer program product and robot controller for configuring a robot-object system environment, and robot
CN115870976B (zh) 一种机械臂的采样轨迹规划方法和装置、电子设备
WO2023100282A1 (ja) データ生成システム、モデル生成システム、推定システム、学習済みモデルの製造方法、ロボット制御システム、データ生成方法、およびデータ生成プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211122

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: 20220419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220422

R150 Certificate of patent or registration of utility model

Ref document number: 7064586

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150