JP7467041B2 - 情報処理装置、情報処理方法及びシステム - Google Patents

情報処理装置、情報処理方法及びシステム Download PDF

Info

Publication number
JP7467041B2
JP7467041B2 JP2019131057A JP2019131057A JP7467041B2 JP 7467041 B2 JP7467041 B2 JP 7467041B2 JP 2019131057 A JP2019131057 A JP 2019131057A JP 2019131057 A JP2019131057 A JP 2019131057A JP 7467041 B2 JP7467041 B2 JP 7467041B2
Authority
JP
Japan
Prior art keywords
area
image
target
target object
user
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
JP2019131057A
Other languages
English (en)
Other versions
JP2020055096A (ja
JP2020055096A5 (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of JP2020055096A publication Critical patent/JP2020055096A/ja
Publication of JP2020055096A5 publication Critical patent/JP2020055096A5/ja
Application granted granted Critical
Publication of JP7467041B2 publication Critical patent/JP7467041B2/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/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/183Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source
    • H04N7/185Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source from a mobile camera, e.g. for remote control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/695Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
    • 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/39106Conveyor, pick up article, object from conveyor, bring to test unit, place it
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40532Ann for vision processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)
  • Image Analysis (AREA)

Description

本発明は、物体を配置するロボットの制御技術に関する。
自動化された工場において、部品の梱包作業等を人間の代わりにロボットが行う技術がある。従来、部品をパレットに整列させて載置する作業を繰り返しできるように、ロボットを制御する方法として、プログラミングやユーザーによる遠隔操作といった手段が用いられていた。特許文献1では、各トレイとそれに載置される各部品の種類との対応関係をロボットに教示することによって、トレイや部品の位置が変わっても部品を把持可能なロボットについて開示されている。
特開2012-30320号公報
しかしながら、特許文献1では、各トレイとそれに載置される各部品の種類との対応関係を予めユーザーが行う必要があるため、その載置を行うロボットの設定に時間がかかるという問題があった。本発明は上記課題に鑑みてなされたものであり、ロボットに物体を配置する作業を効率的に教示する情報処理装置を提供する。
上記の目的を達成する本発明に係る情報処理装置は、物体を供給領域から目標領域へ運搬するロボットを制御する情報処理装置であって、前記供給領域にある第1の物体が前記目標領域に運搬される前の前記目標領域の状態を撮影した第1の画像と、前記供給領域にある前記第1の物体が前記目標領域に運搬された前記目標領域の状態を撮影した第2の画像とを取得する取得手段と、前記第1の画像を撮影した後、ユーザーに前記第1の物体を前記供給領域から前記目標領域に運搬させる動作を行うよう指示する指示手段と、前記第1の画像と前記第2の画像との差から推定された、ユーザーによって前記第1の物体が配置された第1の領域に前記第1の物体が配置される前の前記第1の領域の画像特徴に基づいて、前記目標領域内において、前記供給領域にある物体を配置することが可能な前記第1の領域とは位置が異なる第2の領域を推定する推定手段と、前記第1の物体とは異なる第2の物体を、前記供給領域から前記第2の領域へ前記ロボットに運搬させる制御手段とを有する。
本発明によれば、ロボットに物体を配置する作業を効率的に教示できる。
情報処理システムの構成例を示す図。 情報処理装置のハードウェア構成例を示す図。 情報処理システムの機能構成例を示すブロック図。 情報処理システムが実行する処理を説明するフローチャート。 ユーザーへの指示方法の一例を説明する図。 プロジェクションによるユーザーへの指示方法の一例を説明する図。 仮想現実による表示を説明する図。 対象物体の決定する方法の一例を説明する図。 配置する領域の候補を推定する方法を説明する図。 対象物体と配置領域の相対的位置関係を説明する図。 対象物体と配置する領域の相対的位置関係を説明する図。 情報処理システムの座標系の一例を示す図。 情報処理システムの座標系の一例を示す図。 情報処理システムの機能構成例を示すブロック図。 情報処理システムが実行する処理を説明するためのフローチャート。 情報処理システムが実行する処理を説明するためのフローチャート。 情報処理装置が実行する処理を説明するためのフローチャート。 配置領域の学習データの一例を示す図。 GUIの一例を説明する図。 GUIの一例を説明する図。 GUIの一例を説明する図。 GUIの一例を説明する図。
以下、添付の図面を参照して、本発明の好適な実施形態を説明する。
<第1の実施形態>
従来の工場では、部品を並び替える作業や入れ替える作業は人手で行っていた。しかしながら、近年では、部品の梱包や入れ替えをロボットが代わりに行う技術がある。この技術によって、工場の現場における生産性向上や労働者の負担軽減が期待される。一方で、部品の向きを認識し、正しい位置または姿勢で配置する作業をロボットに教える必要がある。プログラミングや遠隔操作といった方法は、専門的な知識が必要な為、工場現場でのロボットの設定は困難であった。また、ユーザーが例えばある物体を移動させるタスクを例示しても、ロボットが残りの物体をユーザーが例示したように移動させることは困難であった。そこで、本実施形態では、ユーザーが示した見本となる動作をロボットの視点から撮像した画像または動画を使って、ロボットが物体を供給領域から目標領域に運搬し、目標領域に含まれる配置領域の候補に配置する制御値を生成する情報処理装置を説明する。ここで説明するタスクは、ばら積みされた物体群をトレイ等の目標領域に整列させて運搬及び配置する作業である。また、物体を運搬及び配置する動作と移動は同義であるものとして説明する。ユーザーはこのタスクを1度実際に実行するだけでよいため、ユーザーは専門的な知識がなくてもロボットのセットアップを行える。その結果、ロボットに物体を移動させる作業を効率的に教示できる。
第1の実施形態では、まず、対象物体を目標領域へ移動させる前に、撮像装置によって初期状態である目標領域を撮影した画像を得る。次いで、ユーザーへ対象物体を目標領域へ運搬することを指示する。再び、撮像装置によって対象物体が目標領域に含まれる任意の配置領域に配置された状態であるシーン領域を撮像した画像を得る。そして、対象物体の移動前後の画像に基づいて、供給領域に残っている対象物体を目標領域に含まれる各配置領域に配置する制御値を生成する。生成された制御値に従ってロボットが対象物体を目標領域に含まれる配置領域まで運搬する。供給領域にあるすべての対象物体がなくなる、もしくは目的領域に配置領域の候補がなくなるまでロボットは繰り返しタスクを実行する。
本実施形態において、ロボットとは、アクチュエータを備え、対象物体を把持、運搬、配置する機械装置のことである。対象物体とは、ロボットが行うタスクにおいて移動及び配置の動作対象となる物体である。対象物体とは、具体的にはデジタルカメラの部品のような工業部品である。移動とは、対象物体をベルトコンベアで供給された位置から把持し、配置位置へ運搬し配置することである。
図1は、本実施形態における情報処理装置20を備える情報処理システム100の構成例を示す図である。図1は機器構成の一例であり、本発明の適用範囲を限定するものではない。
情報処理システム100は、ロボット10と、情報処理装置20とを備える。また、情報処理システム100は、撮像装置2と、光源6と、指示装置5とをさらに備える。
ロボット10は、対象物体41と配置領域42を認識するための動作、および、情報処理装置20が提示した制御値に基づき、対象物体41を運搬及び配置する動作を実行する。ロボット10は、例えば工場の生産ライン等で稼働する多関節ロボットである。ロボット10は、ロボットアーム等のマニピュレータ1や、ロボットハンド等の把持装置3、マニピュレータ1と把持装置3を制御するコントローラ4を備える。また、ロボット10は、マニピュレータ1の各関節の角度を変更することで把持装置3の位置姿勢を変更可能な位置姿勢変更機構を備える。位置姿勢変更機構は、電動モータによって駆動される。または、この機構は、油圧や空気圧等の流体圧で作動するアクチュエータによって駆動される。この機構は、情報処理装置20から出力される動作指示情報に従って駆動される。また、ロボット10は、多関節ロボットに限定されるものではない。ロボット10は、数値制御(Numerical Control:NC)可能な可動式の機械であってもよい。
マニピュレータ1は、対象物体を任意の位置姿勢から撮像するために、撮像装置を移動可能に構成されている。マニピュレータ1の制御は、コントローラ4からの指示または情報処理装置20で決定された制御値によって行われる。マニピュレータ1は、例えば、6軸ロボットにより構成することができ、ロボットのエンドエフェクタ付近に装着された撮像装置2を移動させることができる。
把持装置3は、ロボット10による対象物体の種類に応じて、物体を把持するためのツールである。例えば、モータ駆動可能なチャック機構を有し対象物体を把持可能なハンドや、空気圧で対象物体を吸着する吸着パッドを用いたハンドである。ここで説明する把持装置3は、吸着パッドを用いたハンドで、対象物体の重心を吸引することで物体を把持する。なお、把持装置3は、マニピュレータ1に対して着脱可能に取り付けられており、対象物体の種類に応じて交換可能である。また、把持装置3は、必ずしも必要ではなく、マニピュレータ1により対象物体を移動できるのであればなくてもよい。例えば、対象物体を押し出す作業の場合、ロボット10は1軸シリンダにより構成され、把持装置3を含まなくてもよい。
コントローラ4は、例えばロボットが移動する際の目標位置を入力されたとき、その目標位置と現在地の間をどのような軌跡で移動にするかを決定する。具体的には、マニピュレータ1に付随するロボットコントローラである。または、プログラマブルロジックコントローラ(PLC)でもよいし、これら以外でもマニピュレータ1と把持装置3を制御できる装置であればよい。コントローラ4は、図1に示すように、ロボット10の近くに設置される。或いは、マニピュレータ1と一体化していてもよいし、他の領域に設置されていてもよい。コントローラ4はマニピュレータ1、把持装置3の制御を行う。撮影時の場合、撮像装置2が対象物体41または配置領域42を撮影するため、マニピュレータ1が目標位置姿勢になるよう制御する。そして、撮像装置2が移動したら、コントローラ4は情報処理装置20に撮像命令を送り、情報処理装置20は撮像装置2に撮像トリガーを送る。もしくは情報処理装置を経由せずに、コントローラ4が直接、撮像装置に撮影命令を送る。なお、撮影に合わせて光源6も適宜制御する。タスク実行時の場合、コントローラ4は情報処理装置20から取得した制御値に基づいて、把持装置3が対象物体41を把持するため、マニピュレータ1が目標位置姿勢になるよう制御する。そして、把持装置3が対象物体41を把持できる位置姿勢へ移動すると、コントローラ4は、把持装置3に把持トリガーを送る。
対象物体41は、ロボット10によって運搬される物体である。具体的には、デジタルカメラの部品のような工業用部品や、梱包された完成品等である。対象物体41は、ベルトコンベア等で次々と供給され、1単位ずつ運搬される。ここで1単位とは、1回のトレイに配置できる対象物体の組合せを指す。対象物体41はトレイに入っていてもよいし、入っていなくてもよい。また、対象物体41は、ベルトコンベアで供給されず、AGV(Automatic Guided Vehicle)など別の方法により供給されてもよい。
配置領域42a、42b、42c、42dは、対象物体41を目標領域に移動させる先の配置領域の候補である。ロボットは対象物体41を整列させて配置するため、対象物体毎に配置領域が異なる。具体的には、1つ目の対象物体41を配置領域42aに移動すると、配置領域42aは対象物体41により埋まる。そのため、2つ目の対象物体41の配置領域42は、1つ目の対象物体41の配置領域42aとは異なる位置、すなわち42b、42c、42dのいずれかとなる。配置領域42は、作業によって異なり、例えば、ピックアンドプレースの作業であれば、対象物体をプレースする位置である。なお、ピックアンドプレースとはロボットアームの先端に吸着パッド等の吸着部を取り付け、物体を吸着することによって運搬する作業を指す。対象物体がネジで作業がネジ締めならば、配置領域はネジで締められる位置である。対象物体がコネクタで作業がコネクタ挿入ならば、配置領域はコネクタを挿入される位置となる。
撮像装置2は、カメラや、光を検出するセンサ、フォトダイオードなどで構成される視覚センサであり、対象物体41および目標領域42を撮像して、画像を取得する。画像とは、例えば2次元カラー画像や、距離画像である。撮像装置2は、取得した画像を情報処理装置20に出力する。撮像装置2は、光源6によって光が投射された対象物体41および目標領域42の画像を撮像する。なお、撮像装置2は、光源6によって光が投射されていない状態で、対象物体41および他の対象物体41の画像を撮像することもできる。距離画像の撮像方法は、光源6から投光した赤外線パターンを撮像装置2で読み取り、三角測量の原理で距離情報を得るLight Coding方式を用いる。もしくは、投光した赤外線パルスが反射して戻ってくるまでの時間から距離情報を得るTime of Flight(ToF)方式を用いてもよい。或いは、三角測量の原理によりステレオカメラを使った視差情報から距離情報を得る方式を用いてもよいし、その他の方式を用いてもよい。撮像装置2および光源6は、図1に示すように、ロボット10に搭載する。または、撮像対象空間の上方に固定配置したり、他の作業機械に搭載したりしてもよい。また、撮像装置2は複数配置してもよい。固定された撮像装置を用いる場合は、供給領域と目標領域を一度に撮像できる画角であるとよい。複数の撮像装置を用いる場合は、撮像装置毎に撮影する領域に合わせて設置場所を決定するとよい。なお、本実施形態において、撮像装置の位置と姿勢および画角は既知であるとする。
指示装置5は、情報処理システム100からユーザーへ対象物体41を、目標領域における任意の配置領域の候補へ移動させることを指示する。例えばスピーカーにより構成させ、指示部202から指定された自然言語を発することでユーザーに指示を行う。または、ディスプレイにより構成され、GUI(Graphical User Interface)を表示することでユーザーに指示を行う。または、プロジェクタにより構成され、対象物体41または目標領域42に指示部202から指定された画像をプロジェクションすることでユーザーに指示を行う。または、HMD(Head Mounted Display)やAR(Augmented Reality)グラスにより構成される。MR(Mixed Reality)、AR、VR(Virtual Reality)により現実空間あるいは仮想空間の目標領域42に重畳表示することでユーザーに指示を行う。
光源6は、例えばプロジェクタによって構成され、可視光を出射したり、レーザ光源から赤外光を出射したりすることで、対象物体41および目標領域42に対して均一照明光やパターン光を投射する。
情報処理装置20は、ロボットによって物体を供給領域から目標領域に運搬する制御値を生成する装置である。情報処理装置20は、例えばパーソナルコンピュータ(PC)により構成されている。図2は、情報処理装置20のハードウェア構成の一例である。情報処理装置20は、CPU21と、ROM22と、RAM23と、外部メモリ24と、入力部25と、表示部26と、通信I/F27と、システムバス28とを備える。CPU21は、情報処理装置20における動作を統括的に制御するものであり、システムバス28を介して、各構成部(21~27)を制御する。ROM22は、CPU21が処理を実行するために必要なプログラムを記憶する不揮発性メモリである。なお、当該プログラムは、外部メモリ24や着脱可能な記憶媒体(不図示)に記憶されていてもよい。RAM23は、CPU21の主メモリ、ワークエリアとして機能する。すなわち、CPU21は、処理の実行に際してROM22から必要なプログラムをRAM23にロードし、当該プログラムを実行することで各種の機能動作を実現する。外部メモリ24は、例えば、CPU21がプログラムを用いた処理を行う際に必要な各種データや各種情報を記憶している。また、外部メモリ24には、例えば、CPU21がプログラムを用いた処理を行うことにより得られた各種データや各種情報が記憶される。入力部25は、例えばキーボードやマウスのポインティングデバイスにより構成され、ユーザーが入力部25を介して当該情報処理装置20に指示を与えることができるようになっている。表示部26は、液晶ディスプレイ(LCD)等のモニタで構成される。通信I/F27は、外部機器と通信するためのインターフェースである。システムバス28は、CPU21、ROM22、RAM23、外部メモリ24、入力部25、表示部26及び通信I/F27を通信可能に接続する。このように、情報処理装置20は、通信I/F27を介して、外部機器であるロボット10、撮像装置2、光源6、指示装置5、確認装置7とそれぞれ通信可能に接続されており、これらの外部機器の動作を制御する。
図3は、情報処理システム100および情報処理装置20の機能構成例を示すブロック図である。ロボット10は、コントローラ4、把持装置3、マニピュレータ1を備える。情報処理装置20は、記憶部200、取得部201、指示部202、推定部203、生成部204を備える。
記憶部200は、ロボット10が教示されたタスクを実行するのに必要な情報を記憶する。具体的には、目標領域または供給領域を撮像する際の撮像装置2の位置姿勢といったデータである。撮像装置2の画角についても記憶する。また、把持装置6のハンドの領域や大きさについてのデータを記憶する。具体的には、把持装置が吸着パッドである場合、そのパッドの直径についての情報を記憶する。把持装置がハンドである場合、ハンドの大きさについての情報を記憶する。また、対象物体の把持位置についての情報も記憶する。例えば、吸着パッドの場合は、対象物体の中心を把持位置とするといった情報である。この情報は、対象物体の種類ごとに設定する必要はない。
取得部201は、撮像装置2が目標領域または供給領域を含むシーンを撮像した画像または動画である視覚情報を取得する。まず、初期の状態である目標領域を撮像した第1の視覚情報を取得する。次に、ユーザーによって対象物体を1単位分(第1の物体)だけ移動させた後の状態の目標領域を撮像した第2の視覚情報を取得する。この第1の視覚情報と第2の視覚情報とに基づいて、画像の特徴点の差分をとることによって、対象物体が配置された領域を示すテクスチャ情報を推定できる。このテクスチャ情報を用いて、目標領域42で対象物体を規則的に並べるタスクを行うことができる。また、取得部201は、対象物体が1つ以上置かれている供給領域を含むシーンを撮像した画像または動画である視覚情報(第3の視覚情報)を取得する。この第3の視覚情報から、把持可能である対象物体を認識し、物体毎に把持する位置を決定することができる。取得部201は、取得した視覚情報を、指示部202および提示部203に出力する。取得部201は、例えばキャプチャボードやメモリ(RAM)によって構成される。また、目標領域を撮影する際の撮像装置2の位置と姿勢(第1の位置)と、対象物体41が雑然とばら積みされている供給領域を含むシーンを撮像する際の撮像装置の位置と姿勢(第2の位置)を取得する。本実施形態では、第1の位置と第2の位置は予め記憶部200が把持しているものとする。
指示部202は、所定の動作を行うようユーザーに指示する。所定の動作とは、供給領域にばら積みされた対象物体のうち1単位分(第1の物体)を、目標領域の領域42a、42b、43c、44dのいずれかに移動させる動作である。具体的な処理では、指示部202は、取得部201から目標領域42を撮像した画像を取得した後、ユーザーに対象物体41を状態へ移動させることをユーザーに指示するため、指示装置5に指示トリガーを送る。指示部202は、指示装置5に応じて指示内容を決定する。例えば、指示装置5がスピーカーの場合は、スピーカーにより発する音声ガイドの内容を決定する。指示装置5がプロジェクタの場合は、プロジェクションする画像を決定する。指示装置5がHMDやARグラスの場合は、重畳表示する内容を決定する。
推定部203は、取得部201から取得した第1の視覚情報と第2の視覚情報との差分に基づいて、対象物体が配置された第1の領域を推定する(第1の推定)。また、推定部203は、第1の領域に基づいて、目標領域に含まれる領域で、第1の領域と異なる複数の第2の領域を推定する(第2の推定)。さらに、推定部203は、第1の視覚情報と第2の視覚情報との差分画像に含まれる画像特徴と第3の視覚情報とをテンプレートマッチングすることによって、対象物体を把持する位置を推定する(第3の推定)。第1の推定については、第1の視覚情報と第2の視覚情報の変化した領域、すなわちユーザーによって対象物体が配置された領域の特徴を利用して、把持装置によって運搬する対象物体の領域を推定する。ここでは、対象物体の3次元領域を推定する。具体的には、第1の視覚情報と第2の視覚情報から画像の特徴点の差分をとることで2次元のテクスチャ情報を取得する。また、距離の計測結果を用いて、物体の高さ情報を得る。物体を把持、リリースする際に実物の高さ情報を用いて把持装置の位置姿勢を推定する。
第2の推定では、第1の視覚情報と第2の視覚情報から得た差分画像の特徴と、目標領域の幾何的特徴とに基づいて、目標領域内において、対象物体を配置する領域を推定する。詳しい処理については後述する。
第3の推定では、供給領域を撮像した第3の視覚情報に対して、対象物体の領域の特徴をテンプレートマッチングすることによって、対象物体を抽出する。さらに対象物体の領域における重心を、対象物体を把持する位置の候補として推定する。ここで、把持位置は把持装置の種類と対象物体の領域に対応させて推定する。例えば、把持装置が吸着パッドである場合、対象物体の重心を把持位置とする。把持装置がハンドである場合は、対象物体の端を掴む把持位置とする。これらの対応データは予め情報処理装置に与えておく。なお、目標位置姿勢は撮影した画像における画像座標系で求めるが、他の座標系に変換して求めてもよい。
生成部204は、第1の視覚情報と第2の視覚情報とに基づいて推定された対象物体の領域から推定される配置領域の候補と、供給領域にある対象物体の把持位置とに基づいて、対象物体毎にロボットが運搬する制御値を生成する。つまり、生成部204は対象物体41を配置する際の位置姿勢を元にマニピュレータ1を動かすための制御値を生成する。生成された制御値はコントローラ4に入力される。コントローラ4はその制御値に基づいてロボット10を制御する。もしくは、情報処理装置において図示しない制御部によってロボット10を制御してもよい。詳しい処理は後述する。
以下、図17を用いて情報処理装置20が実行する処理について簡単に説明する。詳細な処理は情報処理システムにおけるフローチャートにて説明する。以下の説明では、各工程(ステップ)について先頭にSを付けて表記することで、工程(ステップ)の表記を省略する。S1701では、記憶部200が、情報処理装置20に設定された各パラメータを初期化する。S1702では、取得部201が、初期状態である目標領域を撮像した第1の視覚情報を取得する。S1703では、指示部202が、所定の動作をユーザーに実行するように指示する。S1704では、取得部201が、ユーザーによって所定の動作が実行された後に目標領域を撮像した第2の視覚情報を取得する。S1705では、推定部203が、第1の視覚情報と第2の視覚情報とに基づいて対象物体の領域を推定する(第1の推定)。S1706では、推定部203が、物体の領域と目標領域を撮像した第2の視覚情報とに基づいて、次の対象物体を配置する位置を推定する(第2の推定)。S1707では、取得部201が、対象物体がばら積みされて置いてある供給領域を撮像した第3の視覚情報を取得する。S1708では、推定部203が、把持装置によって運搬する対象物体41を把持する位置を推定する(第3の推定)。S1709では、生成部204が、把持位置と配置領域とに基づいて対象物体を運搬する制御値を生成する。S1710では、生成部204が、供給領域に対象物体もしくは目標領域に配置領域が残っているか否かを判定し、残っている場合はS1704に戻って同様のタスクを続ける。残っていない場合は処理を終了する。
ここから、情報処理システム100が実行する処理について詳細に説明する。図4は、情報処理システム100が実行する処理手順を示すフローチャートである。図4に示される処理は、図2に示す情報処理装置20のCPU21が、ROM22もしくは外部メモリ24に格納されたプログラムを読み出して実行することにより実現される。ただし、図4の処理の一部または全部が、専用のハードウェアにより実現されてもよい。図4の処理は、例えばオペレータが情報処理システム100を起動したときに開始される。ただし、開始のタイミングは、情報処理システム100の起動時に限定されるものではない。
まずS1において、CPU21は、システムの初期化処理を行う。すなわち、CPU21は、ROM22もしくは外部メモリ24に格納されたプログラムをロードし、RAM23上に展開して実行可能な状態とする。また、情報処理装置20に接続された各機器のパラメータの読み込みや初期位置への復帰を行い、使用可能な状態にする。具体的には、取得部201が記憶部200から撮像装置2の初期の位置姿勢、画角を取得する。また、把持装置の把持部分の大きさと領域のデータを読み込む。把持装置のデータとは、把持部分が吸着パッドである場合は、パッドの直径といったデータである。なお、図17におけるS1701と同様の処理を行う。
次にS2では、取得部201が、目標領域を撮影する撮像装置2の位置姿勢を取得する。撮像装置2は、マニピュレータ1が移動することによって、第1の位置から目標領域を撮像する。あるいは、コントローラ4が第1の位置を取得する。決定される位置姿勢は、目標領域42を撮像することができれば、どのような方法で決定してもよい。
S3では、コントローラ4が、撮像装置2が撮影を行う第1の位置に移動するようにマニピュレータ1を制御する。具体的には、S2で取得された位置姿勢になるようにマニピュレータ1を動かす制御値を決定する。例えば、S2で生成された位置姿勢に対してマニピュレータ1を移動させるために、まず目標領域を撮像する時の位置となる位置姿勢情報を順運動学によってマニピュレータ1の関節角度情報に変換する。次にマニピュレータ1の各関節のアクチュエータを動作させるための指令値を計算し、ロボットコントローラへ入力する。そして、その入力に基づき、マニピュレータ1が動作する。なお、撮像装置2とマニピュレータ1との位置関係は予めキャリブレーション済みであるとする。
S4では、コントローラ4が、情報処理装置20に撮像命令を送り、情報処理装置20は撮像装置2に撮像トリガーを送る。撮像トリガーに基づき、撮像装置2は、初期状態である目標領域42を含むシーンの撮像を行う。ここで得られる画像を第1の視覚情報と呼ぶ。ここにおける説明では、目標領域42にはまだ対象物体が1つも配置されていない状態(初期状態)であるものとして説明する。なお、1つ以上の対象物体が目標領域42に配置されていてもよい。
S5では、取得部201が、初期状態である目標領域42を写した第1の視覚情報を取得し、指示部202に送る。ここで初期状態とは、ユーザーによるタスク教示が行われる前の状態のことを指す。なお、図17におけるS1702も同様の処理を行う。
S6では、指示部202が、ユーザーに対象物体の1単位分を供給領域から目標領域に移動させる所定の動作を所定の手段によって指示する。指示部202が、対象物体41を目標領域に運搬する前の状態で撮像した第1の視覚情報を取得部201より取得し、ユーザーに対象物体41を目標領域へ移動させることを指示装置5によりユーザーに指示する。一例として、対象物体41をベルトコンベアで供給された領域からトレイ内に配置するタスクを行う場合について説明する。ここではユーザーが移動させる対象物体の単位は1つとして説明するが、複数を1単位として扱ってもよい。ユーザーへの指示を行う手段は、例えば音声、GUI、プロジェクション、MR、AR、VRなどである。音声の場合、スピーカーがユーザーに対象物体41を目標領域へ運搬させるようにアナウンスを発する。なお、図17におけるS1703も同様の処理を行う。
図5のようなGUIの場合、ディスプレイにユーザーが対象物体41を目標領域へ移動させることを示す。ディスプレイ5に、供給領域から対象物体を目標領域に移動させるよう矢印で表現したイラストを表示する。または、「物体を供給領域から目標領域に移動させてください」といった文字情報を表示する。ユーザーにとっては画面で確認できるのでわかりやすい。図6のようにプロジェクションの場合、目標領域42に対してプロジェクタで対象物体41の画像を投影したり、文字情報を投影したりする。ユーザーにとっては実物を見ながら作業できるといったメリットがある。図7のようにMR、AR、VRの場合、現実空間あるいは仮想空間の目標領域42に対してHMDやARグラスで対象物体41の画像を強調するよう重畳表示したり、文字情報を表示したりする。
S7では、撮像装置2が、ユーザーによって対象物体の1単位分が配置された目標領域42を含むシーンを撮像する。S4では、まだ対象物体41が1つも目標領域に配置されていない状態であったが、S7ではユーザーにより対象物体が1単位分だけ目標領域へ配置されている状態である。なお、S7はユーザーが対象物体41の移動を完了した後に撮影する。または、ユーザーが対象物体41の移動を開始してから撮影し続けてもよい。ユーザーに対象物体41の移動指示を出してから撮影し続けてもよい。これら以外のタイミングから撮影し続けてもよい。なお、移動完了は、ユーザーがトリガー(「OK」のように言葉を発する・所定のボタンを押す)を指示装置5に入力するといった操作で判断する。または、システム側で判断(人や物体の動きを画像認識し追従、時間で区切る)するといったことができる。このような移動完了をシステムに入力することによって、安全に作業ができる。
S8では、取得部201が、ユーザーによる所定の動作を行った後の目標領域42の状態を撮像した第2の視覚情報を取得する。例えば、図8(a)は初期状態であり、図8(b)はユーザーによって対象物体が配置された状態である。第2の視覚情報が撮像するシーンには、ユーザーによって対象物体の1単位分が配置された配置領域42aが含まれる。第2の視覚情報は、推定部203に送られる。なお、図17におけるS1704も同様の処理を行う。
S9では、推定部203が、S5で取得された第1の視覚情報と、S8で取得された第2の視覚情報に基づいて、対象物体が配置された領域(第1の領域)を推定する(第1の推定)。ここで、第1の領域は、ここでは物体を俯瞰した際に認識できる物体の形状と一致する。物体の領域を推定する方法は、例えば対象物体41を目標領域42に含まれる任意の配置領域に配置する前後の画像、すなわち第1の視覚情報と第2の視覚情報とから背景差分を取得する。図8のように、対象物体41が目標領域42に配置されたとき、撮像装置2により目標領域42の上から撮影を行った場合、対象物体41の目標領域42への運搬前後で図9の画像82のような差分画像を取得する。このとき、運搬後の画像81(第2の視覚情報)と運搬前の画像80(第1の視覚情報)の差分を取り、対象物体41を求める。画像80は、第1の視覚情報であって、対象物体が配置される前の目標領域を撮像した画像である。画像81は、第2の視覚情報であって、ユーザーによって対象物体の1単位分が配置された目標領域を撮像した画像である。今回は対象物体を左上に配置しているが、左上、右下、右上の領域のいずれかに対象物体を配置していればよい。画像82は対象物体41の移動前後の目標領域42の画像の差分により求めた対象物体41である。具体的には、対象物体41について、カラー画像よりテクスチャ情報を、距離情報より上面の領域と高さ情報を求めることができる。これらの情報により、対象物体41の領域を推定する。対象物体41の領域を画像から推定することによって、対象物体の領域データがなくてもユーザーは簡単にセットアップができる。なお、図17におけるS1705も同様の処理を行う。
S10では、推定部203が、S8で取得された第2の視覚情報と、S9で推定された対象物体の領域の特徴とに基づいて、第1の領域とは異なる領域で物体を配置することが可能な複数の第2の領域を推定する(第2の推定)。本実施形態で説明するロボットは、対象物体を目標領域に整列して並べるタスクを実行する。このタスクではユーザーによって配置された1つめの対象物体と同じ位置に対象物体を置くことはできない。すなわち、1つめの対象物体とは異なる位置に次の物体を配置する必要がある。図10は、画像から配置位置の候補を推定する処理を説明する図である。画像83は、第2の視覚情報であって、画像において90の斜線部分は対象物体が配置された領域である。斜線部分90は、図9における画像82すなわち第1の視覚情報および第2の視覚情報から差分をとった画像を用いて推定される。次に、第1の視覚情報において、斜線部分90に対応する領域における画像特徴を抽出する。抽出された画像特徴を第1の視覚情報においてテンプレートマッチングする。この処理によって抽出された画像特徴が一致する領域の中心位置を配置領域の候補として採用する。画像84は、推定結果を示す画像である。配置領域の候補は、領域91に示す部分領域の中心点となる。求めた部分領域を対象物体が配置される領域として推定する。なお、ここでは目標領域から抽出された領域の中心を配置領域として推定する。また、画像特徴を使ったテンプレートマッチング以外にも、デプスカメラによって奥行情報を得られる場合は、物体が配置された領域と対応する領域の奥行情報と合致する領域を推定する。または、ディープラーニングによって配置領域の候補を推定しても良い。ディープラーニングで配置領域を推定する方法は、例えば、画像を入力として、配置領域を出力とするように学習する。図18は、学習用の入力画像と、ラベル付けした画像である。図18の83において、42a~dが配置領域であるとする。事前に学習を行う場合、ユーザーは、図18の84の42a~dの斜線部分のように、配置領域に対して対象物体が配置可能であることを示すラベルを付ける。こうすることで、画像が入力された際、画像のうちのどの領域が配置領域であるかを学習する。なお、必ずしもユーザーによる事前学習は必要ではなく、まずは前記のようにテンプレートマッチングを使った方法によってシステムを運用しながら入力画像と配置領域の結果のデータを収集し、十分にデータが集まったら学習を行ってもいい。領域を推定する方法としては、例えばCNN(Convolutional Neural Network)を学習モデルとして用いる。また、学習用に収集したデータはそのまま使わず、拡大・縮小やガンマ補正、並進・回転移動などのデータ拡張を加えてもよい。なお、図17におけるS1706も同様の処理を行う。
S11では、取得部201が、対象物体41がばら積みされている供給領域を含むシーンを撮像する際の撮像装置の位置姿勢を取得する。取得された第2の位置は、コントローラ4へ送る。撮像装置の位置(および姿勢)は、S5あるいはS8で取得した視覚情報から、S9で決定した結果に基づき決定してもよいし、対象物体41を撮影することができればどのような方法で決定してもよい。さらに、推定部203が、S9で推定された対象物体の領域と、S10で推定された目標領域における対象物体を配置する領域に基づいて、ロボット10によって運搬される対象物体41を配置する位置を選択する。図11を用いてS15の処理を説明する。図11(a)は、ユーザーが移動させた対象物体41の目標領域42の目標領域座標系Σl1と、対象物体41の対象物体座標系Σo1を示す。ここでは、目標領域42の左上を目標領域座標系の原点、対象物体41の重心を対象物体座標系の原点とする。ただし、原点は任意の領域に設定してもよい。ここで、S10において次に対象物体を配置する領域43が求まっているので、まだ対象物体41が配置されていない領域の中から1箇所を次の設置領域43として選択する。選択方法は、事前にユーザーが1つ1つ順番を設定する。または、左上から右下に順番に選択するようなルールを設定しておく。あるいは、ランダムに選択する。これら以外の方法で選択してもよい。領域43を選択したら、Σl1を設定した場合と同様に、領域43における原点を設定する(図11(b)のΣl2)。ここで、対象物体41は目標領域42に対して相対的に同じ位置姿勢で配置されるものとする。すると、Σl1からΣo1への並進・回転移動と同様の移動をΣl2に対して考えることで、次にロボット10により運搬される対象物体41の目標領域座標系Σl2に対する相対的位置姿勢が求まる(図11(c)のΣo2)。以上より、対象物体41を配置する際の位置姿勢を求める。求めた結果はコントローラ4へ送る。なお、図17におけるS1707も同様の処理を行う。
S12では、コントローラ4が、供給領域にばら積みされた対象物体41を含むシーンを撮像するため、撮像装置2をS11で決定された位置姿勢になるようマニピュレータ1の制御を行う。S13では、撮像装置2は、供給領域にばら積みされている対象物体41を撮像する。ここで撮像された画像を第3の視覚情報と呼ぶ。第3の視覚情報を用いて、残っている対象物体についての位置や姿勢の情報を得る。S14では、取得部201が、撮像装置2によって撮像された対象物体41の第3の視覚情報を取得する。第3の視覚情報は、推定部203に送られる。
S15では、推定部203が、把持装置によって運搬する対象物体41(第2の物体)を把持する位置を推定する(第3の推定)。推定部203は、第1の視覚情報と第2の視覚情報との差分画像に含まれる画像特徴と第3の視覚情報とをテンプレートマッチングすることによって、対象物体を把持する位置を推定する。例えば、把持装置が吸引式の吸着パッドを有する構成である場合、対象物体の重心を吸着することで対象物体を把持できる。把持する際の位置姿勢の決定方法は、事前に対象物体41ごとに位置姿勢を設定しておいてもよい。また、ユーザーが音声やGUI、MR、AR、VRなどを利用して指定する。吸着の場合は吸着できそうな平面領域を求める。把持の場合は把持できそうな平行面を求める。または、ディープラーニングによって吸着・把持位置を推定してもよい。例えば、対象物体と、把持装置の情報を入力として、把持・吸着位置を求める。具体的には、まず、S9により求めた対象物体、事前に設定された把持装置の情報に基づき、対象物体のどの位置をどのように吸着・把持するかのラベルを付けることで学習データを生成する。ラベルを付ける方法は、事前にユーザーが人手作業で行ってもよいし、システムを運用しながら自動で行ってもよい。システムを運用しながら自動で行う方法としては、対象物体を吸着・把持するごとに、対象物体のどの部分を吸着・把持したかと、成否結果を学習データとして収集することによって、正しい吸着・把持位置のラベル付けを行い、学習データを生成する。そして、生成した学習データを用いて学習を行うことで、吸着・把持位置を推定する。推定する方法として、例えばCNNを学習モデルとして用いる。把持位置の推定に画像を用いた学習を適用することによって、より効率的にタスクを設定できる。ただし、これら以外の方法で推定してもよい。
S16では、生成部204が、対象物体の1単位分を配置可能な第2の領域のいずれかに、供給領域にある対象物体を抽出した物体を運搬するマニピュレータ1の制御値を生成する。具体的には、S15で推定された把持位置およびS10で推定された対象物体41を配置する位置姿勢に基づいて、残りの物体を運搬する制御値を生成する。すでに対象物体が配置されている領域には運搬しないように制御値を生成する。
ここで、S16で生成される制御値について、マニピュレータ1を制御するにはS10で推定した配置領域とS15で推定した把持位置をロボット座標系に変換する必要がある。図12および図13は、座標系の関係を示す図である。撮像装置2の座標系Σc、マニピュレータ1の座標系Σr、マニピュレータ1の先端座標系Σt、把持装置3の座標系Σf、対象物体41を把持するときの座標系Σo、対象物体41を配置するときの座標系Σo’、移動領域の座標系Σlを統一して扱う。図12に示すように、作業空間内で基準となる座標系として、ワールド座標系Σwを設定する。まず、ワールド座標系Σwからマニピュレータ座標系Σrまでの変位を(RX,RY,RZ)とする。また、マニピュレータ1の姿勢を表す3×3の回転行列をRMとする。マニピュレータ座標系Σrからマニピュレータ先端座標系Σtまでの変位は(TX,TY,TZ)とする。また、マニピュレータ先端の姿勢を表す3×3の回転行列はTMとする。さらに、マニピュレータ先端座標系Σtから把持装置3の座標系Σfまでの変位は(FX,FY,FZ)とする。また、把持装置3の先端の姿勢を表す3×3の回転行列はFMとする。なお、把持装置3の先端とは、把持装置3が対象物体41に接触する部分である。マニピュレータ先端座標系Σtから撮像装置座標系Σcまでの変位は(CX,CY,CZ)とする。また、撮像装置2の姿勢を表す3×3の回転行列はCMとする。さらに、撮像装置座標系Σcから対象物体41の対象物体座標系Σoまでの変位は(OX,OY,OZ)とする。また、対象物体41の姿勢を表す3×3の回転行列はOMとする。ここで、ワールド座標系Σwから見た対象物体41の変位を(WX,WY,WZ)、姿勢を表す3×3の回転行列をWMとする。ここで、マニピュレータ1の先端に取り付けられた把持装置3が対象物体41に接触しているとき、マニピュレータ座標系Σrからマニピュレータ先端座標系Σtまでの変位を(TX1,TY1,TZ1)とする。マニピュレータ先端の姿勢を表す3×3の回転行列をTM1とすると、以下の数式(1)が成り立つ。
Figure 0007467041000001
また、撮像装置2により対象物体41が撮像されたとき、マニピュレータ座標系Σrからマニピュレータ先端座標系Σtまでの変位を(TX2,TY2,TZ2)とする。マニピュレータ先端の姿勢を表す3×3の回転行列をTM2とすると、以下の数式(2)が成り立つ。
Figure 0007467041000002
上記数式(1)(2)はワールド座標系Σwにおける対象物体41の位置姿勢を表しているので、数式(3)が成り立つ。
Figure 0007467041000003
数式(3)より、把持時のマニピュレータ1の位置姿勢が求まる。撮像時のマニピュレータ1の位置姿勢、マニピュレータ先端座標系Σtと撮像装置座標系Σcの位置姿勢の関係、撮像装置座標系Σcと対象物体41の位置姿勢の関係、マニピュレータ先端座標系Σtと把持装置3の位置姿勢の関係より求まる。よって、撮像装置2が対象物体41を撮影した画像から、マニピュレータ1が対象物体41を把持したときのマニピュレータ1の位置姿勢を求めることができる。ここで、各変位、回転行列の求め方の一例を述べる。(RX,RY,RZ)、RMは、マニピュレータ1の設置時に、設定したワールド座標系Σwとの位置関係から求められる。(TX,TY,TZ)、TMは、マニピュレータ1の関節角度情報から順運動学によって求められる。(FX,FY,FZ)、FMは、把持装置3の寸法から求められる。(CX,CY,CZ)、CMは、撮像装置2の寸法から求められる。もしくは、撮像装置2とマニピュレータ1の相対的な位置姿勢関係からキャリブレーションにより求めてもよい。例えば、マニピュレータ1が異なる複数の位置姿勢を取ったそれぞれの状態において、撮像装置2により、既知の2次元マーカーを撮像することによって求まるマニピュレータ1との相対的位置関係を使って求めてもよい。(OX,OY,OZ)、OMは、撮像装置2により対象物体41を撮像することにより求まる。なお、ここではワールド座標系Σwとマニピュレータ1の座標系Σrを分けて考えたが、それらを一致させて考えてもよい。
また、ここでは対象物体41を把持するときの座標系の関係について述べたが、配置するときも同様に考える。S10にて配置領域が決定し、S15にてΣl、Σo’の関係が求まるため、Σoとした部分をΣlからΣo’への変換を考慮して置き換えることで、対象物体41を配置するときの座標系も同様に導出できるため、マニピュレータ1の制御を行うことができる。S17では、コントローラ4が、S16で生成された制御値に従って、対象物体41を供給領域から目標領域に含まれる何れかの配置領域まで運搬するための把持装置3とマニピュレータ1を制御する。まず、把持のための把持装置3の制御を行う。S17で求まった把持位置姿勢に基づきマニピュレータ1は把持位置姿勢に移動し、把持装置3は対象物体41の把持を行う。次いで、対象物体41を運搬・配置する動作のためのマニピュレータ1の制御を行う。ロボットアームがなるべく余計な動きをしないように、運搬の経由点は事前に設定しておくとよい。そして、S16で決定された制御値に基づき、マニピュレータ1は対象物体41の配置する領域に移動し、対象物体41を目標領域42に配置する。
S18では、生成部204は、次に運搬可能な対象物体41または、対象物体を配置可能な目標領域42の第2の領域があるか否かの判定をする。そして、CPU21は、対象物体41または目標領域42が存在しない場合には、制御値を生成することを停止し、処理を終了すると判断して図4に示す処理を終了する。対象物体41と目標領域42が存在する場合には、処理を継続すると判断してS10に戻る。判定方法は、例えば、S14で取得した対象物体41の画像に基づき対象物体41の有無を、S8で取得した画像とS18の把持・運搬・配置回数に基づき目標領域42の有無を決定し、判定してもよい。または、事前に処理回数を設定しておき、その回数に達したかで判定する。または、対象物体41の供給領域にセンサを配置しておき、そのセンサ情報から判定する。センサ情報とは、例えば供給領域に重量センサを配置しておき、供給領域の重さを計測することで秤量によって対象物体41の残りの個数を計測してもよい。あるいは、撮像装置2によって対象物体41の供給領域を撮影し、得られた画像情報によって判定する。これら以外の方法で判定してもよい。
なお、ただし、情報処理システム100は必ずしもこのフローチャートで説明するすべてのステップを行わなくてもよい。例えば、撮像装置2が固定されているカメラである場合、撮影位置を決定する必要はないため、S2またはS11の処理はスキップできる。また、本実施形態では、ロボット10が待機しているタスク教示時(設定モード)と、ロボット10が動作しているときのタスク実行時(動作モード)が1つのフローチャート内に両方存在する例について述べた。これは、ロボット10が、近年、広まりつつある安全柵が不要な協働ロボットである場合、ロボット10が動作中に人が作業範囲内に入り動作を指示することが想定できるためである。しかし、必ずしも1つのフローチャートで実現する必要はなく、設定モードと動作モードを明確に分離し、異なるフローチャートで実行してもよい。
なお、視覚情報が動画である場合は、動作の見本となるデータを推定する必要がある。その際、動画像からデータを推定する方法のひとつは、ユーザーの手を認識する方法がある。具体的には、ユーザーの手が写りはじめた時点を第1の視覚情報とし、ユーザーの手が消えた時点を第2の視覚情報として抽出する。なお、第1の視覚情報と第2の視覚情報の間の動画像を用いて、運搬方法をロボットに学習させてもよい。もう一つの方法としては、タスク教示動作の開始と終了をユーザーによってUIから入力する方法がある。例えば、ボタンやGUIを用いて、開始と終了の指示を入力する。もしくは、音声認識のツールを使って開始と終了をユーザーが声掛けする。
また、第1の視覚情報と第2の視覚情報は他の方法で取得してもよい。例えば、前もって目標領域に対象物体が1つ置かれている状態をつくり、その対象物体を取り除くという動作をユーザーが行う。この場合、初期の対象物体が1つ置かれている状態を第2の視覚情報、タスク教示動作後に空の目標領域を撮像したものを第1の視覚情報として設定することで、目標領域に対象物体を並べる作業を教示できる。また、対象物体を1単位ではなく、複数個で1つのパターンを形成して、そのパターンに従って対象物体を並べるタスクを教示することも可能である。
推定部203は、学習モデルを用いた推定を行っても良い。例えば、第1の視覚情報と第2の視覚情報を入力とし、物体の配置領域の候補を出力する学習モデルを使っても良い。
S9において、対象物体の3次元領域を求める処理について説明したが、3次元領域のうち高さ情報を予め与え、記憶部200に記憶しておいてもよい。高さ情報は、主に供給領域における物体を把持しにいくときと、目標領域の配置領域に置きにいくときに用いる情報である。対象物体の高さ情報が既知である場合は、S9における推定部203は距離情報から高さ情報の推定は行わない。
S10における対象物体の配置領域は所定のルールに従って特定されてもよい。例えば、対象物体の向きを目標領域の天地と揃えて配置することが望ましい。また、対象物体が表裏の向きがある場合、表裏を揃えるように配置領域を決めてよい。また、対象物体に文字が印字されている場合は、その文字が同じ方向に読めるように配置領域を決めるようにする。また、マニピュレータにとっての配置方法が好ましい方が失敗せずに運搬タスクを行える可能性が増える。このような処理によって、工場における部品の梱包といった状況でも、専門家の手を借りずにユーザーの動作によって簡単に設定できる。
S15における対象物体の把持位置は所定のルールに従って特定されてもよい。例えば、対象物体の向きを把持領域の天地と揃えて配置することが望ましい。また、対象物体が表裏の向きがある場合、表裏を揃えるように把持位置を決めてよい。また、対象物体に文字が印字されている場合は、その文字が読めるように把持位置を決めるようにする。また、マニピュレータにとっての配置方法が好ましい方が失敗せずに運搬タスクを行える可能性が増える。このような処理によって、工場における部品の梱包といった状況でも、専門家の手を借りずにユーザーの動作によって簡単に設定できる。
以上のように、ロボットに対象物体を並べて配置するタスクを効率的に教示できる。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。
第2の実施形態では、ロボット10が対象物体41を運搬する前に、ロボットを実際に動かすことなく、ロボット10の動作のシミュレーションをユーザーに示す。ユーザーの事前確認を取ってから動く。ロボット10が供給領域から目標領域まで対象物体を運搬する過程についてもフィードバックを行う。これは例えば、ユーザーが所望した通りにロボットがタスク動作を実行できるか確認したい場合に有効である。また、対象物体が特に高価なものであるといった理由で、失敗をなるべく減らしたい場合に有効な実施形態である。本実施形態において、ランタイム動作とは、ロボット10が自動で実行する動作のことである。具体的には、ユーザーが対象物体41の1単位分を動かす動作を終え、ロボット10が自動で作業を実行する動作のことである。これに対して、タスク教示とは、ユーザーがロボットに教示したいタスクを実行することを指す。
第2の実施形態では、上述した第1実施形態と同様に、まず、対象物体を目標領域へ移動させる前に撮像装置によって目標領域を写した画像または動画を得る。次いで、ユーザーに対象物体を配置領域へ移動させることを指示する。次に、撮像装置によって対象物体が目標領域へ移動した後に目標領域を撮像した画像を得る。そして、対象物体の移動前後の画像に基づいて、次の対象物体を目標領域へ移動させる制御値を生成する。ここで、上述した第1実施形態とは異なり、ランタイム動作の1回目は、ロボットが動作する前に、ロボット10が対象物体41を運搬する前に、制御値に基づいて実行されるロボット10の動作のシミュレーションをユーザーに示す。そして、ユーザーからシミュレーションで行ったロボットの動作が適切か否かの判定を得る。適切でないという判定を得た場合は、対象物体41をさらにもう1単位分だけ目標領域へ移動させることをユーザーへ指示する。ロボットによるランタイム動作が適切であるという判定を得た場合は、ロボット10を通常よりも遅く動作させて作業を実行する。こうすることで、ロボット10が動作する前に、ロボット10の動作と対象物体41の移動後の配置領域を事前確認できる。その結果、作業のやり直しが減り、作業の効率化を図る。
図14は、本実施形態における情報処理システム110の機能構成例を示すブロック図である。図14に示す情報処理システム110は、図3に示す情報処理システム100および情報処理装置20に対して、確認装置7と、判定部205と、が追加されている点と、指示部212と、推定部213と、の処理が異なる。以下、第1の実施形態と差異がある部分について説明する。
確認装置7は、ロボット10が対象物体41を目標領域へ運搬する制御値に基づいたシミュレーションをユーザーへ示し、ユーザーからロボットの動作、すなわち制御値が適切か否かの判定結果を受ける。例えば、ロボット10の近くに取り付けられている。もしくは、指示装置5と一体化していてもよいし、指示装置5と撮像装置2を利用することで確認装置7としてもよい。この確認装置7は、例えばマイクにより構成され、指示装置5により示された対象物体41を目標領域へ移動させるためのロボット10のシミュレーション動作をユーザーが確認した後、ユーザーが発する音声を聞き取ることにより、判定結果を受ける。または、指示装置5と1体化してロボット10の近くに取り付けられたディスプレイや持ち運びできるタブレット端末により構成される。この場合、GUIにより示された対象物体41を目標領域へ移動させるためのロボット10の操作をユーザーが確認した後、タッチパネルによりGUIで判定結果を受ける。または、カメラにより構成され、プロジェクタ、HMD、ARグラスなどにより示された対象物体41を目標状態へ移動させるためのロボット10のシミュレーション動作をユーザーが確認した後、ユーザーのジェスチャ操作により判定結果を受ける。または、これら以外の方法でも、ユーザーの判定結果を受けられる方法であれば他の方法でもよい。
指示部212は、取得部201から取得した画像に基づいて、ユーザーへ所定の動作をするよう指示を行う。具体的には、指示部212は、供給領域41か目標領域42の画像を取得したら、ユーザーに対象物体41を目標領域へ移動させることをユーザーに指示するため、指示装置5に指示トリガーを送る。また、推定部213において、ロボット10のシミュレーションが適切でないとユーザーによって判定された場合は、推定部213からの指令に基づき、指示装置5に指示トリガーを送る。
推定部213は、取得部201から取得した視覚情報に基づいて、把持装置によって運搬する対象物体の領域を推定する。また、視覚情報と、推定された対象物体の領域とに基づいて、目標領域に物体が置かれた領域の画像特徴を用いて対象物体を配置する位置を推定する。例えば、決定した対象物体41を目標領域に含まれるいずれかの配置領域へ移動させるためのロボット10の動作をユーザーへ示すため、推定部213はコントローラ4に制御値を送る。コントローラ4はマニピュレータ1を制御する前に、判定部205にシミュレーションを実行するための動作情報を送る。なお、動作情報の候補が複数ある場合、ロボット10が実際に動作するときは、対象物体41を目標領域へ移動させられる確率が最も高い動作情報を実行するが、判定部205へは候補の動作情報を複数送ってもよい。その場合はタスクの成功確率が高い動作情報を優先することによって、判定部205では確率が高い順にユーザーが動作情報を確認できるようにする。
また、取得部211は、コントローラ4が判定部205にシミュレーションを実行するための動作情報を送った後、判定部205から動作が適切か否かのユーザーからの判定結果を取得する。動作情報とは、ロボット10が対象物体41を目標領域へ移動させるための制御を実行する動作に関する情報であり、マニピュレータ1および把持装置3の移動する軌跡や速度といった物理的な変化に関する情報を含む。適切でないという判定を得た場合は、対象物体41をさらにもう1つ目標領域へ移動させることをユーザーへ指示するため、指示部212に指令を送る。適切であるという判定を得た場合は、ロボット10を通常よりも遅く動作させて作業を実行するよう制御する。
判定部205は、ロボット10の動作情報に基づいて所定の動作のシミュレーションを実行した場合、ユーザーから制御値に基づいて実行されるシミュレーションが適切か否かの判定結果を受ける。ユーザーへ示すシミュレーションの内容は、ロボット10が対象物体41を操作するときにどのような軌跡をとるかといった移動完了までの動作の途中経過の情報や、どのような位置姿勢で対象物体41を配置するかといった移動完了状態の情報である。事前判定部204は、コントローラ4からロボット10のシミュレーションを実行するための情報を受け取ったら、ユーザーへ示し、判定結果を得るために確認装置7へ確認トリガーを送る。ただし、動作情報をユーザーへ示す際に指示装置5を利用する場合は指示装置5に確認トリガーを送る。ユーザーから判定結果を受け取ったら、推定部213に判定結果を送る。
本実施形態における情報処理システム110が実行する処理を示すフローチャートを図15として示す。第1の実施形態に示した図4と処理内容が異なる部分があるため、それぞれについて説明する。
S6では、指示部212が、ユーザーに対して所定の動作を行うよう指示を行うため指示装置5に指示トリガーを送る。指示部212が、ユーザーへ示したロボット10のシミュレーションが適切でないという判定結果に基づき指令を取得部211から取得したら、指示部212は、さらに対象物体41を目標領域へ移動させることを指示装置5によりユーザーに指示する。このとき、ユーザーはなるべく精度良く物体を配置する。図19は、ディスプレイにユーザーへの指示を表示する場合のGUIの例である。
S20では、判定部205が、ランタイム動作(ロボットによる物体運搬タスク)の1回目かどうかの判定をする。1回目でない場合は、S17のマニピュレータ・把持制御を行う。1回目である場合は、S21に進み、S16までに決定したロボット10の動作をシミュレーションとしてユーザーに示し、判定結果を得る処理を行う。
S21では、指示部202が、ロボット10が対象物体41を配置領域へ移動させるシミュレーションをユーザーへ示し、ユーザーから対象物体41の移動が適切か否かの判定結果を受け付ける。S16までに決定したロボット10の制御をユーザーに確認するために行う。ここで、ロボット10が対象物体41を目標状態へ移動させるためのシミュレーションをユーザーへ示す方法としては、S6の指示方法のように、音声、GUI、プロジェクション、MR、AR、VRなどを利用する。例えば、音声でロボット10が対象物体41のどの部分を把持し、どのように運搬し、どこに配置するかといった情報をユーザーに示す。GUIの場合は、ディスプレイにロボット10の動作シミュレーションを表示してユーザーに示す。図20は、ディスプレイにシミュレーション結果を示し、ユーザーへの判定を得る場合のGUIの例である。ユーザーは、シミュレーション結果が正しければOKを、間違っていればNGボタンを押下する。プロジェクションの場合は、目標領域42に対して対象物体41をプロジェクションマッピングの要領で表示してユーザーに示す。MR、AR、VRの場合は現実空間あるいは仮想空間において、ロボット10が対象物体41を運搬及び配置する様子の動作シミュレーションを重畳表示することによってユーザーに示す。
S22では、判定部205が、S21でユーザーから受け付けた事前確認結果に基づき、ロボット10の制御値が適切かどうかを判定する。適切であるという判定を得た場合は、S23に移行する。適切でないという判定を得た場合はS6に移行する。
S23では、コントローラ4が、対象物体41を移動するためのマニピュレータ1の制御を行う。その際、1回目のランタイム動作のため、ユーザーが事前確認で適切であると判定した動作が本当に適切かどうかを実機でも確認できるように、ロボット10が通常よりも遅い速度で動作するように制御する。
以上のように、本実施形態では、ロボット10が決定した動作をロボット10が動作する前に制御値に基づいたシミュレーションをユーザーへ示し、ロボット10による対象物体を目標領域へ移動させる動作が適切かどうかの判定を得る。適切でないという判定を得た場合は、対象物体41をさらにもう1つ目標領域へ移動させることをユーザーへ指示する。教示データを増やすことによって推定精度をさせることが期待できる。また、適切であるという判定を得た場合は、ロボット10を通常よりも遅く動作させて作業を実行する。
第2の実施形態によれば、ロボット10が動作する前に、ロボット10の動作と対象物体41の移動後の状態を事前確認できるため、作業のやり直しが減る。その結果、作業の効率化が図れる。
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。第3の実施形態では、上述した第1の実施形態に対して、さらに、ロボット10が対象物体41を移動した後に、対象物体41が所望の目標領域に配置されたか否かをユーザーによって事後確認できるよう構成したものである。ユーザーが教示したタスクをロボットが実行できないケースについて、原因は複数考えられる。ひとつは、ユーザーの教示が好ましくなかった場合である。具体的には、ユーザーが対象物体を配置した位置がずれている、間違っていた場合である。この場合、ユーザーが動作を教示する際に対象物体を正確な位置に再配置することで改善する。また、推定部203における推定処理が上手くいかない場合も考えられる。例えば、対象物体のテンプレートを作る際に、光の反射が影響し、物体の領域データがうまく得られないケースである。この場合は、複数回教示動作を試行することによって改善する可能性がある。このような原因を克服するために、本実施形態ではロボットが実際に行った動作を改善するようにタスクの教示をユーザーが行う。こうすることで、ロボット10が誤った動作を行ってもその場で容易に修正できるため、作業の効率化が図れる。
具体的には、ランタイム動作の1回目の場合は、ユーザーによって対象物体41が目標領域に配置されたか否かを事後確認できる。適切であるという結果を得た場合は、そのまま処理を継続する。適切ではないという結果を得た場合は、目標領域へ適切に移動させることができなかった対象物体を適切な状態へ移動させることをユーザーへ指示する。移動結果に基づき、ロボット10は対象物体41の目標領域への移動方法を修正する。
図14は、本実施形態における情報処理システム110の機能構成例を示すブロック図である。図14に示す情報処理システム110は、図3に示す情報処理システム100に対して、確認装置7と、判定部205と、が追加されている点と、取得部211と指示部212の処理が異なる。ただし、確認装置7は第2の実施形態で述べたものと同じである。
取得部211が、タスク教示時の場合、対象物体41の目標状態への移動結果が適切かどうかをユーザーによって判定されたフィードバックを取得する。フィードバックは、ユーザーが実際の状態を確認した結果をコントローラ等に入力することで行う。ロボット10が動作を実行し終えたら、取得部201から事後確認の判定結果を取得する。動作が適切であるという判定を得た場合は、そのまま処理を継続する。適切ではないと判定された場合は、対象物体41を適切な状態へ移動させるようユーザーへ指示するため、指示部212に指令を送る。
判定部205は、対象物体が適切に運搬されたか否かについてのユーザーのフィードバックに基づいて、生成された制御値が適切か否かを判定する。ユーザーへの確認は、ランタイムの1回目か、前回のランタイム動作で失敗した場合に行う。判定は、対象物体がどこに配置されたかを確認することで行う。例えば、ピックアンドプレースで対象物体41を所定の位置に配置するタスクの場合、対象物体41が所定の位置に置かれていればユーザーは移動が適切であると判定する。しかし、対象物体41が所定の位置からずれていたり、対象物体41ではない別の物体を運搬していたりした場合は、ユーザーは移動が適切ではないと判定する。判定結果は推定部213に送る。
指示部212は、推定部213からの指示トリガーに基づき、対象物体41を適切な目標領域へ移動させるように指示装置5に指示トリガーを送る。
本実施形態における情報処理システム110が実行する処理を示すフローチャートを図16に示す。第1の実施形態に示した図3と処理内容が異なる部分があるため、それぞれについて説明する。
S20では、判定部205が、ランタイム動作の1回目かどうかの判定をする。1回目でない場合は、S24の判定処理を行う。1回目である場合は、S25に移行し、ユーザーへシミュレーションの確認を行う。ただし、ランタイム動作の複数回目もチェックしたい場合は、ここでの回数を2回目、3回目と別の回数で設定しておいてもよく、必ずしもランタイム動作の1回目だけS25に移行する設定にしなくてもよい。
S24では、判定部205が、前回のランタイム動作が成功したかどうかの判定を行う。成功している場合はS19の処理を行う。失敗している場合はS25に移行し、ユーザーへ操作結果の確認を行う。これは、ランタイム動作の1回目では対象物体41を目標領域へ移動できたが、2回目で失敗してしまったという場合でも確認を行えるようにするためである。また、フローチャートには前回のランタイム動作の成否に基づき次の処理を決定するよう記載しているが、失敗回数を考慮してもよい。例えば、同じ対象物体41を運搬するにあたり、連続で2回失敗した場合は作業を中断し、ロボット10を停止し、オペレータを呼ぶといった処理を行ってもよい。これは、この後の処理でユーザーへ再度、対象物体41を適切な状態へ移動させるよう指示を行う。複数回の指示でも適切な動作を決定できない場合は動作決定が困難な状況だったり、システムの故障により適切な動作をできなかったりする可能性があるためである。
S25では、取得部211が、ロボットによる対象物体41の目標領域に移動させる動作が適切かどうかをユーザーによって判定されたフィードバックを取得する。フィードバックは、ユーザーが実際の状態を確認した結果をコントローラ等に入力することで行う。具体的には、物体を運搬するタスクである場合、物体を所望の場所に配置できたかどうかを確認する。図21は、ディスプレイでユーザーへの確認を行う場合のGUIの画面の例である。ユーザーへの確認のタイミングの指示は、コントローラ4がロボット10の制御を終えたら制御完了トリガーを指示部212へ送り、指示部212が指示装置5からの入力を利用することで行ってもよいし、他の方法でもよい。ユーザーが指示装置5から指示を受けて判定結果を入力したら、確認装置7が判定結果を受けて、判定結果情報を判定部205が受け取り、判定結果を推定部213へ送る。
S26では、判定部205が、ロボットによる対象物体41の目標領域に移動させる動作が適切であったかどうかの判定をする。判定部205がS25でユーザーから入力されたフィードバックを取得し、そのフィードバックに基づき次の処理を決定する。判定結果が適切である場合は、S19の処理へ移行する。適切でない場合は、S27の処理へ移行し、ロボット10の動作を修正する処理を行う。
S27では、指示部212が、対象物体41の適切な状態への移動をユーザーに指示する。推定部213が対象物体41の目標領域への運搬が適切ではなかったという判定結果を取得したら、ロボット10の適切な動作を決定するため、不足している情報を補う必要がある。例えば、改めて正しい移動状態を認識するため、再度ユーザーへ対象物体41の目標状態への移動方法を再現してもらう。なお、ユーザーが行う動作は、S6において実施したタスク教示と同じ動作でなくてもよい。例えば、対象物体を把持する位置を修正する必要があれば、ユーザーは対象物体を把持する位置を教示する。これは情報処理装置20が把持位置として対象物体の重心を設定することをデフォルトのルールで与えている場合に有効である。図22は、ディスプレイでユーザーに把持位置を教示してもらう場合のGUIの画面の例である。把持する箇所をマウスでクリックしてもらったり、タッチパネルでタップしてもらったりすることで把持位置を教示してもらう。ロボットがタスクを失敗した原因がわかっている場合には、このようなフィードバックを与えることでタスク動作の失敗を減らすことが期待できる。指示部213は、ユーザーへ指示を行うため、指示装置5に指示トリガーを送る。その後、S7へ移行し、処理を継続する。
以上のように、本実施形態では、生成された制御値に基づいて実行したロボット10の動作をその場でユーザーが判定し、誤っている場合はその場で修正する。ロボット10が誤った動作を行ってもその場で容易に修正できるため、作業の効率化が図れる。
<その他の実施形態>
第1から第3の実施形態において、ユーザーが対象物体41を移動させるとき、必ずしも初期状態から目標状態へ移動させなくてもいい。目標状態から初期状態へ移動させてもいい。例えば、ピックアンドプレースを行う場合、必ずしもピックする供給位置からプレースする配置領域へ移動させなくても良い。配置領域にある対象物体41を供給位置へ移動させてもいい。ただし、その場合は移動前に目標領域に含まれる配置領域に物体が配置されてある状態になっていること、移動後が初期状態であることを情報処理装置20に入力する。また、必ずしも初期状態から移動させなくても良い。初期状態が別の方法で分かるのであれば、途中の状態から移動させても良い。初期状態が別の方法で分かる例としては、対象物体41の供給状態が常に一定で、情報処理システム20もそのことを認識した上で処理を行う場合である。
第1から第3の実施形態において、取得する視覚情報は静止画でも動画でもよい。また、動画の場合、撮影開始と終了のタイミングは手動で設定するか、自動で設定する。手動で設定する場合は、開始、終了のタイミングでユーザーからトリガーを入力したり、予め決めた時間に基づき設定したりしてもよい。自動で設定する場合は、画像中の物体の動きをトラッキングすることによって、動き始めたら開始、止まったら終了としたり、ユーザーの手を認識して画像中に手がある間は撮影したりといった方法をとってもよい。
1 マニピュレータ
2 撮像装置
3 把持装置
4 コントローラ
5 指示装置
6 光源
10 ロボット
20 情報処理装置
41 対象物体
42 目標領域
100 情報処理システム

Claims (17)

  1. 物体を供給領域から目標領域へ運搬するロボットを制御する情報処理装置であって、
    前記供給領域にある第1の物体が前記目標領域に運搬される前の前記目標領域の状態を撮影した第1の画像と、前記供給領域にある前記第1の物体が前記目標領域に運搬された前記目標領域の状態を撮影した第2の画像とを取得する取得手段と、
    前記第1の画像を撮影した後、ユーザーに前記第1の物体を前記供給領域から前記目標領域に運搬させる動作を行うよう指示する指示手段と、
    前記目標領域内において、ユーザーによって前記第1の物体が配置された第1の領域に前記第1の物体が配置される前の前記第1の領域の画像特徴を前記第1の画像と前記第2の画像との差に基づいて推定し、前記目標領域内において、前記供給領域にある物体を配置することが可能な前記第1の領域とは位置が異なる第2の領域を前記第1の領域の画像特徴に基づいて推定する推定手段と、
    前記第1の物体とは異なる第2の物体を、前記供給領域から前記第2の領域へ前記ロボットに運搬させる制御手段とを有することを特徴とする情報処理装置。
  2. 前記制御手段は、前記第2の物体を、前記第1の物体が置かれていない前記第2の領域まで運搬させることを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御手段は、前記供給領域に前記第2の物体が残っていない場合は前記ロボットを停止させることを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記制御手段は、前記目標領域に物体を配置することが可能な前記第2の領域が残っていない場合は前記ロボットを停止させることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記目標領域は、前記第1の領域と同様の形状の部分領域が規則的に配置された領域であることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記制御手段は、前記第2の物体を前記第1の物体の向きと揃えて配置するように運搬させることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記制御手段は、前記第2の物体の表裏の向きを揃えて配置するように制御することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 前記推定手段は、前記第1の画像と前記第2の画像との差分に基づいて前記第1の物体が配置された前記第1の領域を推定することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 前記指示手段は、前記供給領域に前記第2の物体が残っていない場合に、ユーザーに前記動作が終了したことを指示することを特徴とする請求項1に記載の情報処理装置。
  10. 前記指示手段は、前記目標領域に物体を配置することが可能な前記第2の領域が残っていない場合はユーザーに前記動作が終了したことを指示することを特徴とする請求項1に記載の情報処理装置。
  11. 前記取得手段は、前記第2の物体が雑然と配置された前記供給領域を撮影した第3の画像をさらに取得し、
    前記推定手段は、前記第3の画像と、前記第1の領域の画像特徴とをテンプレートマッチングすることで前記供給領域における前記第2の物体の把持位置の候補を推定することを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
  12. 前記推定手段によって推定された前記第2の領域を所定の方法で提示する提示手段と、
    前記第2の領域に前記第2の物体を運搬させることが適切か否かの判定をユーザーから受け付ける受け付け手段と、をさらに有し、
    前記取得手段は、前記受け付け手段で適切でないと判定を受け付けた場合、前記第1の物体を前記目標領域における第4の領域に前記ユーザーによって置き直された状態で撮影した第4の画像を取得し、
    前記推定手段は、前記第1の画像と前記第4の画像との差に基づいて、前記第4の領域を前記第2の領域として推定することを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
  13. 前記提示手段は、表示装置に前記第1の画像における前記第2の領域に対応する領域を強調して表示させることを特徴とする請求項12に記載の情報処理装置。
  14. 前記提示手段は、投影装置によって前記第2の領域に所定の画像を投影させることを特徴とする請求項12に記載の情報処理装置。
  15. コンピュータを、請求項1乃至14のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
  16. 物体を供給領域から目標領域へ運搬するロボットの制御値を生成する情報処理方法であって、
    前記供給領域にある第1の物体が前記目標領域に運搬される前の前記目標領域の状態を撮影した第1の画像と、前記供給領域にある前記第1の物体が前記目標領域に運搬された前記目標領域の状態を撮影した第2の画像とを取得する取得工程と、
    前記第1の画像を撮影した後、ユーザーに前記第1の物体を前記供給領域から前記目標領域に運搬させる動作を行うよう指示する指示工程と、
    前記第1の画像と前記第2の画像との差から推定された、ユーザーによって前記第1の物体が配置された第1の領域に前記第1の物体が配置される前の前記第1の領域の画像特徴に基づいて、前記目標領域内において、前記供給領域にある物体を配置することが可能な前記第1の領域とは位置が異なる少なくとも1つの第2の領域を推定する推定工程と、
    前記第1の物体とは異なる第2の物体を、前記供給領域から前記第2の領域へ前記ロボットが運搬する前記制御値を生成する生成工程とを有することを特徴とする情報処理方法。
  17. 物体を供給領域から目標領域に運搬するロボットの制御値を生成する情報処理システムであって、
    前記供給領域にある第1の物体が前記目標領域に運搬される前の前記目標領域の状態を撮影した第1の画像と、前記供給領域にある前記第1の物体が前記目標領域に運搬された前記目標領域の状態を撮影した第2の画像とを撮影する撮影装置と、
    前記第1の画像を撮影した後、ユーザーに前記第1の物体を前記供給領域から前記目標領域に運搬させる動作を行うよう指示する指示手段と、
    前記撮影装置から前記第1の画像と前記第2の画像とを取得する取得手段と、
    前記第1の画像と前記第2の画像との差から推定された、ユーザーによって前記第1の物体が配置された第1の領域に前記第1の物体が配置される前の前記第1の領域の画像特徴に基づいて、前記目標領域内において、前記供給領域にある物体を配置することが可能な前記第1の領域とは位置が異なる第2の領域を推定する推定手段と、
    前記第1の物体とは異なる第2の物体を、前記供給領域から前記第2の領域へ前記ロボットが運搬する前記制御値を生成する生成手段とを有する情報処理装置と、
    前記制御値に基づいて前記物体を運搬する前記ロボットとを有することを特徴とする情報処理システム。
JP2019131057A 2018-09-27 2019-07-16 情報処理装置、情報処理方法及びシステム Active JP7467041B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018182089 2018-09-27
JP2018182089 2018-09-27

Publications (3)

Publication Number Publication Date
JP2020055096A JP2020055096A (ja) 2020-04-09
JP2020055096A5 JP2020055096A5 (ja) 2022-07-26
JP7467041B2 true JP7467041B2 (ja) 2024-04-15

Family

ID=69781234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019131057A Active JP7467041B2 (ja) 2018-09-27 2019-07-16 情報処理装置、情報処理方法及びシステム

Country Status (4)

Country Link
US (1) US11541545B2 (ja)
JP (1) JP7467041B2 (ja)
CN (1) CN110958425B (ja)
DE (1) DE102019125126B4 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6810087B2 (ja) * 2018-03-29 2021-01-06 ファナック株式会社 機械学習装置、機械学習装置を用いたロボット制御装置及びロボットビジョンシステム、並びに機械学習方法
JP6885909B2 (ja) * 2018-10-12 2021-06-16 ファナック株式会社 ロボット制御装置
US11185978B2 (en) * 2019-01-08 2021-11-30 Honda Motor Co., Ltd. Depth perception modeling for grasping objects
JP2020166371A (ja) * 2019-03-28 2020-10-08 セイコーエプソン株式会社 情報処理方法、情報処理装置、物体検出装置およびロボットシステム
EP4114622A1 (en) * 2020-03-06 2023-01-11 Embodied Intelligence Inc. Imaging process for detecting failure modes
CN111856988A (zh) * 2020-06-05 2020-10-30 哈工大机器人(中山)无人装备与人工智能研究院 一种采血装置的运动控制方法和装置
CN116234447A (zh) * 2020-07-27 2023-06-06 克里奥瓦克公司 针对基于真空的接合工具的对准
KR102350638B1 (ko) * 2020-08-26 2022-01-17 주식회사 이엠에스 인공지능형 로봇 시스템
CN112082480A (zh) * 2020-09-08 2020-12-15 浙江清华柔性电子技术研究院 芯片的空间取向的测量方法、系统、电子装置和存储介质
US11633862B2 (en) 2020-11-25 2023-04-25 Metal Industries Research & Development Centre Automatic control method of mechanical arm and automatic control system
US20220241978A1 (en) * 2021-02-01 2022-08-04 The Boeing Company Robotic manufacturing systems and methods
DE102021104001B3 (de) 2021-02-19 2022-04-28 Gerhard Schubert Gesellschaft mit beschränkter Haftung Verfahren zum automatischen Ergreifen, insbesondere Umsetzen, von Gegenständen
CN114770559B (zh) * 2022-05-27 2022-12-13 中迪机器人(盐城)有限公司 一种机器人的取物控制系统及方法
GB2621371A (en) * 2022-08-10 2024-02-14 Dyson Technology Ltd A method and system for exploring a real-world environment
CN115890679B (zh) * 2022-12-02 2024-02-13 西南交通大学 基于视觉的轨道车辆转向架枕簧缺口定位与夹持方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002200588A (ja) 2000-12-28 2002-07-16 Denso Corp ロボットによる把持可能部品の把持位置検出方法及びその装置
JP2010006590A (ja) 2008-06-30 2010-01-14 Fanuc Ltd 物品整列システム及びロボットハンド
JP2010089238A (ja) 2008-10-10 2010-04-22 Honda Motor Co Ltd ワーク取り出し方法
JP2015123560A (ja) 2013-12-27 2015-07-06 セイコーエプソン株式会社 ロボットシステム、ロボット制御装置、及びロボット制御方法
JP2016060004A (ja) 2014-09-18 2016-04-25 株式会社安川電機 ロボットシステム、ロボット装置およびワークピッキング方法
JP2016091053A (ja) 2014-10-29 2016-05-23 キヤノン株式会社 情報処理装置および容器形状の推定方法、ワークピッキングシステム、プログラム
JP2018122945A (ja) 2017-01-30 2018-08-09 株式会社東芝 可変型物品保持装置、移載装置、ロボットハンドリングシステム、および移載装置の制御方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3517529B2 (ja) * 1996-08-21 2004-04-12 株式会社東芝 画像入力型ロボットシステム
EP1675709A2 (de) 2003-10-20 2006-07-05 Isra Vision Systems AG VERFAHREN ZUR EINRICHTUNG EINER BEWEGUNG EINES HANDHABUNGSGERÄTS UND BILDVERARBEITUNG
US7266422B1 (en) * 2004-04-09 2007-09-04 Fanuc Robotics America, Inc. Automated palletizing cases having mixed sizes and shapes
DE102006003859B3 (de) * 2006-01-27 2007-03-01 Robert Bosch Gmbh Verfahren zum Ablegen von Stückgütern in Behälter
DE102009011294B4 (de) * 2009-03-02 2020-12-24 Kuka Roboter Gmbh Palletieren von Paketen mittels eines Manipulators
JP4621789B2 (ja) * 2009-06-02 2011-01-26 ファナック株式会社 物品搬送ロボットシステム
JP2012030320A (ja) * 2010-07-30 2012-02-16 Dainippon Screen Mfg Co Ltd 作業システム、作業ロボット制御装置および作業プログラム
US9227323B1 (en) 2013-03-15 2016-01-05 Google Inc. Methods and systems for recognizing machine-readable information on three-dimensional objects
JP6715565B2 (ja) 2014-09-18 2020-07-01 株式会社安川電機 ロボットシステムおよびワークピッキング方法
JP6576050B2 (ja) 2015-02-27 2019-09-18 キヤノン株式会社 物体移動方法及びシステム
JP6711591B2 (ja) 2015-11-06 2020-06-17 キヤノン株式会社 ロボット制御装置およびロボット制御方法
CN105364927B (zh) 2015-12-15 2018-05-22 天津立德尔智能装备科技有限公司 用于机器人搬运视觉系统中的机器人搬运的快速定位方法
US9751693B1 (en) * 2016-02-01 2017-09-05 Amazon Technologies, Inc. Automated shipment set item consolidation
JP2017189856A (ja) * 2016-04-15 2017-10-19 オムロン株式会社 アクチュエータ制御システム、アクチュエータ制御方法、情報処理プログラム、および記録媒体
TWM531349U (zh) 2016-05-04 2016-11-01 Factory Automation Technology 具有視覺量測之加工裝置
JP6370842B2 (ja) * 2016-06-29 2018-08-08 ファナック株式会社 仮置き部を備えた物品搬送装置
WO2018185861A1 (ja) * 2017-04-04 2018-10-11 株式会社Mujin 制御装置、ピッキングシステム、物流システム、プログラム、及び、制御方法
JP2018203480A (ja) * 2017-06-07 2018-12-27 株式会社東芝 仕分装置および仕分システム
JP2019059004A (ja) * 2017-09-28 2019-04-18 セイコーエプソン株式会社 ロボットシステム
CN107932517A (zh) 2017-11-15 2018-04-20 盐城盈信通科技有限公司 一种芯片机自动化作业系统
DE112018007727B4 (de) * 2018-06-14 2022-10-06 Yamaha Hatsudoki Kabushiki Kaisha Robotersystem
JP6856590B2 (ja) * 2018-08-31 2021-04-07 ファナック株式会社 センシングシステム、作業システム、拡張現実画像の表示方法、およびプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002200588A (ja) 2000-12-28 2002-07-16 Denso Corp ロボットによる把持可能部品の把持位置検出方法及びその装置
JP2010006590A (ja) 2008-06-30 2010-01-14 Fanuc Ltd 物品整列システム及びロボットハンド
JP2010089238A (ja) 2008-10-10 2010-04-22 Honda Motor Co Ltd ワーク取り出し方法
JP2015123560A (ja) 2013-12-27 2015-07-06 セイコーエプソン株式会社 ロボットシステム、ロボット制御装置、及びロボット制御方法
JP2016060004A (ja) 2014-09-18 2016-04-25 株式会社安川電機 ロボットシステム、ロボット装置およびワークピッキング方法
JP2016091053A (ja) 2014-10-29 2016-05-23 キヤノン株式会社 情報処理装置および容器形状の推定方法、ワークピッキングシステム、プログラム
JP2018122945A (ja) 2017-01-30 2018-08-09 株式会社東芝 可変型物品保持装置、移載装置、ロボットハンドリングシステム、および移載装置の制御方法

Also Published As

Publication number Publication date
DE102019125126A1 (de) 2020-04-02
US11541545B2 (en) 2023-01-03
DE102019125126B4 (de) 2020-12-17
JP2020055096A (ja) 2020-04-09
CN110958425A (zh) 2020-04-03
CN110958425B (zh) 2021-07-23
US20200101613A1 (en) 2020-04-02

Similar Documents

Publication Publication Date Title
JP7467041B2 (ja) 情報処理装置、情報処理方法及びシステム
JP6983524B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP5977544B2 (ja) 情報処理装置、情報処理方法
JP7191569B2 (ja) 把持装置
JP2021030407A (ja) 情報処理装置、情報処理方法及びプログラム
JP2019188580A (ja) 情報処理装置、制御方法、ロボットシステム、コンピュータプログラム、及び記憶媒体
JP2012030320A (ja) 作業システム、作業ロボット制御装置および作業プログラム
JP2019188516A (ja) 情報処理装置、情報処理方法、及びプログラム
JP6902369B2 (ja) 提示装置、提示方法およびプログラム、ならびに作業システム
CN114080590A (zh) 使用先进扫描技术的机器人料箱拾取系统和方法
JP2015182212A (ja) ロボットシステム、ロボット、制御装置、及び制御方法
JP2021115693A (ja) ロボットシステムの制御装置、ロボットシステムの制御方法、コンピュータ制御プログラム、及びロボットシステム
TWI807990B (zh) 機器人示教系統
CN114670189B (zh) 存储介质、以及生成机器人的控制程序的方法及系统
US20240051134A1 (en) Controller, robot system and learning device
JP6499272B2 (ja) ティーチング装置及び制御情報の生成方法
CN111899629B (zh) 柔性机器人教学系统和方法
JP2020142323A (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
WO2021149429A1 (ja) ロボットシステムの制御装置、ロボットシステムの制御方法、コンピュータ制御プログラム、及びロボットシステム
JP6832408B1 (ja) 生産システム
JP2022060003A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
WO2019064752A1 (ja) ロボット教示システム、ロボット教示方法、制御装置、及びコンピュータプログラム
US20240066694A1 (en) Robot control system, robot control method, and robot control program
WO2023105637A1 (ja) 産業機械の動作を検証するための装置、及び方法
WO2019064751A1 (ja) ロボット教示システム、ロボット教示方法、制御装置、及びコンピュータプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220715

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231121

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20231213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240403

R150 Certificate of patent or registration of utility model

Ref document number: 7467041

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150