(57)【特許請求の範囲】
【請求項１】
コンピュータを、
操作対象物を操作することを示す操作命令を前記コンピュータが受信した際に、操作対象物が新規に操作する物体であるか否かを判定する判定部と、
前記操作対象物が新規に操作する物体であると判定された場合に、センサによって取得された情報に基づく操作環境および前記操作対象物に関する情報と、予め学習された行動データと、を用いて、前記操作命令に応じたロボット本体による前記操作対象物の操作をシミュレーションするシミュレーション部と、
前記シミュレーションを行った結果に基づき、前記操作命令に応じて前記操作対象物を操作するよう前記ロボット本体を実空間で制御する実操作制御部と、として機能させる、ロボット制御プログラム。
【請求項２】
前記コンピュータを、前記シミュレーション部による前記シミュレーションの結果を学習して新たな行動データとして登録する学習部として機能させる、請求項１に記載のロボット制御プログラム。
【請求項３】
前記学習部は、前記ロボット本体の実空間における操作の結果を学習して新たな行動データとして登録する、請求項２に記載のロボット制御プログラム。
【請求項４】
前記実操作制御部は、前記行動データを変えながら前記シミュレーションを複数回行った結果に基づき、前記命令に応じて前記操作対象物を操作するよう前記ロボット本体を制御する、請求項１に記載のロボット制御プログラム。
【請求項５】
前記実操作制御部は、前記シミュレーションの結果と、前記実操作制御部の制御によるロボット本体の状態と、が相違するか否かを所定の基準に応じて判断し、相違すると判断された場合には、前記ロボット本体による前記操作対象物の操作を停止させる、請求項１に記載のロボット制御プログラム。
【請求項６】
前記操作対象物の操作は、前記操作対象物を安定的に置くことである、請求項１乃至５のいずれかに記載のロボット制御プログラム。
【請求項７】
前記操作対象物の操作は、前記操作命令によって示される目的地まで前記操作対象物を運搬することである、請求項１乃至５のいずれかに記載のロボット制御プログラム。
【請求項８】
前記シミュレーションの結果、前記目的地までの移動に成功した結果が複数ある場合、前記実操作制御部は、前記目的地までの移動時間が最も短くなるシミュレーションで用いられた前記行動データに基づいて、前記ロボット本体を移動させる、請求項７に記載のロボット制御プログラム。
【請求項９】
前記シミュレーションの結果、前記目的地までの移動に成功した結果がない場合、前記シミュレーション部は、前記操作命令に応じた移動ができないと判断する、請求項７または８に記載のロボット制御プログラム。
【請求項１０】
前記実操作制御部は、前記ロボット本体の移動中に、前記ロボット本体の移動が前記シミュレーションの結果と相違するか否かを所定の基準に応じて判断し、相違すると判断された場合には、前記ロボットの移動を停止させる、請求項７乃至９のいずれかに記載のロボット制御プログラム。
【請求項１１】
前記操作環境に関する情報は、前記目的地までの床面の情報を含み、
前記操作対象物に関する情報は、前記操作対象物の重量を含む、請求項７乃至１０のいずれかに記載のロボット制御プログラム。
【請求項１２】
判定部が、操作対象物を操作することを示す操作命令が受信された際に、操作対象物が新規に操作する物体であるか否かを判定し、
シミュレーション部が、前記操作対象物が新規に操作する物体であると判定された場合に、センサによって取得された情報に基づく操作環境および前記操作対象物に関する情報と、予め学習された行動データと、を用いて、前記操作命令に応じたロボット本体による前記操作対象物の操作をシミュレーションし、
実操作制御部が、前記シミュレーションを行った結果に基づき、前記操作命令に応じて前記操作対象物を操作するよう前記ロボット本体を実空間で制御する、ロボット制御方法。
【請求項１３】
センサと、
ロボット本体と、
操作対象物を操作することを示す操作命令が受信された際に、操作対象物が新規に操作する物体であるか否かを判定する判定部と、
前記操作対象物が新規に操作する物体であると判定された場合に、前記センサによって取得された情報に基づく操作環境および操作対象物に関する情報と、予め学習された行動データと、を用いて、前記操作命令に応じた前記ロボット本体による前記操作対象物の操作をシミュレーションするシミュレーション部と、
前記シミュレーションを行った結果に基づき、前記操作命令に応じて前記操作対象物を操作するよう前記ロボット本体を実空間で移動する実操作制御部と、を備える物体操作システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、新規物体を操作するロボットの制御プログラムおよび制御方法、ならびに、新規物体操作する物体操作システムに関する。
【背景技術】
【０００２】
一般に、特定の物体の操作に関するシミュレーションを予めオフラインで行って物理動作を予測し、その物体を操作することが行われている。例えば、工場等において、ロボットを用いて物を運搬することが広く行われている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２１３５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、新規な物体に対して、このようなロボットが安定的に物体を操作できるとは限らない。また、近年は人工知能の発展が目覚ましいが、あらゆる物体に対して事前に学習を行っておくのは現実的ではない。
【０００５】
本発明の課題は、新規な物体を安定的に操作できるロボットの制御プログラムおよび制御方法、ならびに、物体操作システムを提供することである。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、コンピュータを、操作対象物を操作することを示す操作命令を前記コンピュータが受信した際に、操作対象物が新規に操作する物体であるか否かを判定する判定部と、前記操作対象物が新規に操作する物体であると判定された場合に、センサによって取得された情報に基づく操作環境および前記操作対象物に関する情報と、予め学習された行動データと、を用いて、前記操作命令に応じたロボット本体による前記操作対象物の操作をシミュレーションするシミュレーション部と、前記シミュレーションを行った結果に基づき、前記操作命令に応じて前記操作対象物を操作するよう前記ロボット本体を実空間で制御する実操作制御部と、として機能させる、ロボット制御プログラムが提供される。
【０００７】
前記コンピュータを、前記シミュレーション部による前記シミュレーションの結果を学習して新たな行動データとして登録する学習部として機能させてもよい。
【０００８】
前記学習部は、前記ロボット本体の実空間における操作の結果を学習して新たな行動データとして登録してもよい。
【０００９】
前記実操作制御部は、前記行動データを変えながら前記シミュレーションを複数回行った結果に基づき、前記命令に応じて前記操作対象物を操作するよう前記ロボット本体を制御してもよい。
【００１０】
前記実操作制御部は、前記シミュレーションの結果と、前記実操作制御部の制御によるロボット本体の状態と、が相違するか否かを所定の基準に応じて判断し、相違すると判断された場合には、前記ロボット本体による前記操作対象物の操作を停止させてもよい。
【００１１】
前記操作対象物の操作は、前記操作対象物を安定的に置くことであってもよい。
【００１２】
前記操作対象物の操作は、前記操作命令によって示される目的地まで前記操作対象物を運搬することであってもよい。
【００１３】
前記シミュレーションの結果、前記目的地までの移動に成功した結果が複数ある場合、前記実操作制御部は、前記目的地までの移動時間が最も短くなるシミュレーションで用いられた前記行動データに基づいて、前記ロボット本体を移動させてもよい。
【００１４】
前記シミュレーションの結果、前記目的地までの移動に成功した結果がない場合、前記シミュレーション部は、前記操作命令に応じた移動ができないと判断してもよい。
【００１５】
前記実操作制御部は、前記ロボット本体の移動中に、前記ロボット本体の移動が前記シミュレーションの結果と相違するか否かを所定の基準に応じて判断し、相違すると判断された場合には、前記ロボットの移動を停止させてもよい。
【００１６】
前記操作環境に関する情報は、前記目的地までの床面の情報を含み、前記操作対象物に関する情報は、前記操作対象物の重量を含んでもよい。
【００１７】
本発明の別の態様によれば、操作対象物を操作することを示す操作命令が受信された際に、操作対象物が新規に操作する物体であるか否かを判定し、シミュレーション部が、前記操作対象物が新規に操作する物体であると判定された場合に、センサによって取得された情報に基づく操作環境および前記操作対象物に関する情報と、予め学習された行動データと、を用いて、前記操作命令に応じたロボット本体による前記操作対象物の操作をシミュレーションし、実操作制御部が、前記シミュレーションを行った結果に基づき、前記操作命令に応じて前記操作対象物を操作するよう前記ロボット本体を実空間で制御する、ロボット制御方法が提供される。
【００１８】
本発明の別の態様によれば、センサと、ロボット本体と、操作対象物を操作することを示す操作命令が受信された際に、操作対象物が新規に操作する物体であるか否かを判定する判定部と、前記操作対象物が新規に操作する物体であると判定された場合に、前記センサによって取得された情報に基づく操作環境および操作対象物に関する情報と、予め学習された行動データと、を用いて、前記操作命令に応じた前記ロボット本体による前記操作対象物の操作をシミュレーションするシミュレーション部と、前記シミュレーションを行った結果に基づき、前記操作命令に応じて前記操作対象物を操作するよう前記ロボット本体を実空間で移動する実操作制御部と、を備える物体操作システムが提供される。
【発明の効果】
【００１９】
環境や操作対象物が変化する場合であっても安全な移動を実現できる。
【図面の簡単な説明】
【００２０】
【図１】本発明による意思決定プロセスを説明するフローチャート。
【図２Ａ】一実施形態に係る物体操作システムの概略ブロック図。
【図２Ｂ】より詳細な物体操作システムのブロック図。
【図３】シミュレーションを実行する仮想空間における物体操作システムの概略ブロック図。
【図４】制御コンピュータ３の処理動作の一例を示すフローチャート。
【発明を実施するための形態】
【００２１】
以下、本発明に係る実施形態について、図面を参照しながら具体的に説明する。
【００２２】
図１は、本発明による意思決定プロセスを説明するフローチャートである。何らかの行動を決定すべき状況になった時点で（ステップＳ２１のＹＥＳ）、十分な情報があるか否かを確認する（ステップＳ２２）。十分な情報がある場合、物理シミュレータによる行動選択を行う（ステップＳ２５）。一方、十分な情報がない場合（ステップＳ２２のＮＯ）、実世界の情報を取得する（ステップＳ２３）。実世界の情報とは、操作対象となる物体（以下「操作対象物」という）についての情報や、操作環境についての情報である。そして、取得した情報を物理シミュレータに挿入し（ステップＳ２４）、物理シミュレータによる行動選択を行う（ステップＳ２５）。
【００２３】
本発明は、行動を決定すべき時点において十分な情報がない場合、言い換えると、予めオフラインで取得されている情報では足りない場合に、その場でリアルタイムに情報を取得する点に特徴がある。
【００２４】
本実施形態に係る物体操作システムは、主たる例として、新規な物体（すなわち、これまでに操作したことがない物体）を操作するロボットに関する。操作とは、例えば、１または複数の物体を目的地まで安定的に運搬することである。具体例として、水が入ったコップを水がこぼれないよう目的地まで運搬することや、トレイに乗ったコップをコップが倒れないよう目的地まで運搬することが挙げられる。あるいは、操作とは、例えば、物を安定的に置くことである。具体例として、任意形状の物体を倒すことなく安定状態で机上に置くことが挙げられる。
【００２５】
図２Ａは、一実施形態に係る物体操作システムの概略ブロック図である。物体操作システムは、ロボット本体１と、センサ２と、制御コンピュータ３とを備えている。これらが一体となってロボットを構成してもよいし、ロボット本体１とは別に制御コンピュータ３が設けられてロボット本体１が遠隔操作されてもよい。
【００２６】
ロボット本体１は、制御コンピュータ３からの制御に応じて、物体を操作する機能、具体例として物体を保持したり、保持した物体を置いたり、移動したりする機能を有する。
【００２７】
センサ２は、実世界の情報として、操作環境や操作対象物に関する情報を取得し（以下、センサ２が取得した情報を「センサ取得情報」という）、制御コンピュータ３に送信する。センサ２は、ロボット本体１に取り付けられるのが望ましいが、ロボット本体１がある環境に固定されていてもよい。
【００２８】
制御コンピュータ３は、認識部４２、抽出部５２、学習部５３、シミュレーション部６０および実操作制御部７０を実現するためのソフトウェア（プログラム）を有し、また、処理に用いられる物体識別データベース４１および学習済み行動データベース５１を有している。これらの詳細は図２を用いて詳述する。
【００２９】
制御コンピュータ３は、ロボット本体１が操作対象物を操作する際、十分な情報がない（図１のステップＳ２２のＮＯ）場合にその場でセンサ取得情報を受信してシミュレーションを行うことによって、ロボット本体１を制御する。具体的には、制御コンピュータ３は、操作命令およびセンサ取得情報を用いてロボット本体１による操作対象物の操作を仮想空間でシミュレーションし、シミュレーション結果に基づいてロボット本体１による操作対象物の操作を制御する。さらに、シミュレーション結果および実際のロボット本体１による操作の両方を学習し、その後のシミュレーションやロボット本体１の移動制御に活用する。
【００３０】
以下、より具体的に説明する。
図２Ｂは、より詳細な物体操作システムのブロック図である。図示のように、制御コンピュータ３は、判定部３０、物体認識部４０、物理的世界モデル学習部５０、シミュレーション部６０および実操作制御部７０を有する。
【００３１】
判定部３０は、外部から操作命令（操作対象物を操作することを示す命令）が入力された際、後述する物体識別データベース４１を参照するなどにより、操作対象物が新規に操作する物体であるか否かを判定する。そして、操作対象物が新規である場合、十分な情報がない（図１のステップＳ２２のＮＯ）と判断する。
【００３２】
物体認識部４０は、物体識別データベース４１と、認識部４２とを有する。また、物体認識部４０には、外部から操作命令が入力されるとともに、センサ２からセンサ取得情報が入力される。
【００３３】
物体識別データベース４１には、機械学習や深層学習（例えば、You only Look Once (YOLO)やSingle Shot MultiBox Detector (SSD)）等によって予め学習された物体識別データが登録されている。
【００３４】
認識部４２は、機械学習や深層学習を使い、センサ取得情報および物体識別データベース４１から、シミュレーションに必要となる操作環境に関する情報および操作対象物に関する情報を認識する。操作環境に関する情報および操作対象物の情報は、物理的世界モデル学習部５０およびシミュレーション部６０に送信される。
【００３５】
物理的世界モデル学習部５０は、学習済み行動データベース５１と、抽出部５２と、学習部５３とを有する。
【００３６】
学習済み行動データベース５１には、予め学習された行動データが登録されている。行動データとは、ロボット本体１を移動させるのに必要なデータであり、加速度、定速度、減速度等のパラメータを含み得る。
【００３７】
抽出部５２は、認識部４２からの操作環境および操作対象物に関する情報に基づいて、学習済み行動データベース５１に登録された行動データのうち、操作に成功する可能性が高い行動データを複数抽出する。抽出された行動データはシミュレーション部６０に送信される。
【００３８】
学習部５３は、後述するシミュレーションの結果を学習し、新たな行動データを学習済み行動データベース５１に登録する。また、学習部５３は、後述するロボット本体１の実空間における操作の結果を学習し、新たな行動データを学習済み行動データベース５１に登録する。新たに登録された行動データは、その後に抽出部５２によって抽出されてシミュレーションに用いられ得る。
【００３９】
シミュレーション部６０は、操作対象物が新規に操作する物体であると判定された場合に、センサ取得情報に基づき、操作命令に応じたロボット本体１による操作をシミュレーションするものであり、シミュレーション環境設定部６１と、シミュレーションパラメータ設定部６２と、シミュレーション実行部６３と、シミュレーション観察部６４と、ループ判断部６５とを有する。
【００４０】
シミュレーション環境設定部６１は、認識部４２からの操作環境および操作対象物に関する情報に基づいて、シミュレーションを実行する仮想空間にロボット本体１、ならびに、操作環境および操作対象物についての情報を設定する。
【００４１】
シミュレーションパラメータ設定部６２は、抽出部５２からの行動データに基づいて、仮想空間でロボット本体１を制御するためのパラメータを設定する。
【００４２】
シミュレーション実行部６３は、シミュレーションパラメータ設定部６２によって設定されたパラメータに基づき、シミュレーション環境設定部６１によってロボット本体１等が配置された仮想空間におけるロボット本体１による操作を物理演算し、ロボット本体１の状態をシミュレーションする。
【００４３】
シミュレーション観察部６４は仮想空間におけるロボット本体１の状態を観察する。具体的には、シミュレーション観察部６４は、安定的に操作対象物を操作できたか否かを観察し、できた場合は成功、できなかった場合は失敗と判定する。観察の結果はループ判断部６５に送信される。
【００４４】
ループ判断部６５は観察されたシミュレーション結果を学習部５３に送信する。これにより、学習部５３は、どのような操作対象物を、どのような操作環境で操作できるか否かを学習できる。学習の結果が行動データとして新たに学習済み行動データベース５１に登録される。また、ループ判断部６５は、シミュレーションの実行回数をカウントし、行動データを変えながらシミュレーションの実行および観察を所定回繰り返す。
【００４５】
所定回繰り返したが、成功と判定されたシミュレーション結果がない場合、ループ判断部６５は操作命令に応じた操作ができないと判断し、命令を終了する。成功と判定されたシミュレーション結果がある場合、ループ判断部６５は当該シミュレーションに用いられた行動データとシミュレーション結果を実操作制御部７０に送信する。なお、シミュレーション結果のうち２以上が成功と判定された場合、ループ判断部６５は１つを選択すればよい。
【００４６】
実操作制御部７０は、シミュレーション結果に基づいて、操作命令に応じてロボット本体１に操作対象物を操作させる。実操作制御部７０は、制御パラメータ設定部７１と、実操作観察部７２とを有する。また、実操作制御部７０には、シミュレーション部６０から行動データおよびシミュレーション結果が入力され、センサ２からセンサ取得情報が入力される。
【００４７】
制御パラメータ設定部７１は、シミュレーション部６０からの行動データに基づき、ロボット本体１が操作対象物を操作するために必要な制御パラメータを設定する。この制御パラメータに応じてロボット本体１は操作対象物を操作する。操作の様子はセンサ２によって検知される。
【００４８】
実操作観察部７２は、センサ取得情報を用いて、実空間におけるロボット本体１の状態を観察する。そして、実操作観察部７２は、シミュレーション部６０によって観察されたシミュレーション結果と、センサ取得情報に基づく実空間におけるロボット本体１の状態とを対比し、両者が大きく相違するか否かを所定に基準に応じて判断する。具体例として、特定の時刻におけるロボット本体１の位置が、シミュレーションと実空間とで所定距離以上ずれる場合に、実操作観察部７２は両者が相違すると判断する。この場合、実操作観察部７２はロボット本体１による操作対象物の操作を停止させ、命令を終了する。両者が相違することなくロボット本体１が操作を完了した場合も、実操作観察部７２は命令を終了する。
【００４９】
ロボット本体１の操作対象物体を操作している途中で停止された場合であっても、操作を完了した場合であっても、実操作観察部７２は実空間における操作の結果を学習部５３に送信する。これにより、学習部５３は、どのような操作環境において、どのような操作対象物の操作に成功するか否かを学習できる。学習の結果が行動データとして新たに学習済み行動データベース５１に登録される。
【００５０】
図３は、シミュレーションを実行する仮想空間における物体操作システムの概略ブロック図である。このシミュレーションは、図１に示す実空間における物体操作システムを模したものであり、仮想ロボット本体１Ｖと、仮想センサ２Ｖと、仮想制御コンピュータ３Ｖとを備えている。これらは、図１のロボット本体１、センサ２および制御コンピュータ３とそれぞれ対応するが、シミュレーション機能は不要である。また、仮想センサ２Ｖの出力が、仮想空間における仮想ロボット本体１Ｖによる操作の状態を観察したもの、すなわち、図２のシミュレーション観察部６４の出力に相当する。
【００５１】
以下、操作の一例として、操作対象物を所定の目的地まで運搬することを説明する。この場合、ロボット本体１は移動機能を有する。具体的には、ロボット本体１は、２輪のタイヤで移動してもよいし、２足あるいは４足などの多足歩行で移動してもよい。より具体的には、ロボット本体１はタイヤや足を駆動するモーター（不図示）を有し、制御コンピュータ３からの制御に応じてロボット本体１は移動する。また、ロボット本体１は運搬対象物を保持する機能を有する。
【００５２】
また、センサ２は、ロボット本体１の現在地から目的地までの実空間（の少なくとも一部）を撮影するカメラ、床面の凹凸を計測するＬｉＤＡＲ（レーザーレンジファインダ）、操作対象物の重量を計測する重量センサを含み得る。その他、センサ２は、深度センサ、トラッキングカメラ、加速度センサ、ジャイロセンサ等を含んでいてもよい。
【００５３】
なお、運搬を行うには、ロボットが操作対象物を持ち上げ、これを保持した状態で移動し、目的地において下ろすこととなるが、以下では保持した状態で移動する点を中心に説明する。
【００５４】
図４は、制御コンピュータ３の処理動作の一例を示すフローチャートである。所定の目的地までの移動を示す操作命令の受信（ステップＳ１）によって制御コンピュータ３は動作を開始し、センサ取得情報が制御コンピュータ３に入力される。なお、目的地は物体操作システムが有するカメラで撮影可能な範囲内に設定されるものとする（最終的な目的地がカメラの撮影範囲内にない場合、ロボットの移動を管理する上位のシステムによって、カメラの撮影範囲において移動経路を分割すればよい）。そして、目的地までの移動経路に障害物はないが、床面は必ずしも平坦ではなく凹凸がある（例えば、部屋と部屋の境目の段差や、経年劣化によるもの）ものとする。
【００５５】
操作命令が受信されると、判定部３０は、操作対象物が新規に操作する物体であるか否か、すなわち、情報が十分であるか否かを判定する（ステップＳ２）。情報が十分である場合（ステップＳ２のＹＥＳ）、ステップＳ４に進む。
【００５６】
十分な情報がない場合（ステップＳ２のＮＯ）、認識部４２は、センサ２からセンサ取得情報を取得する。そして、認識部４２は、センサ取得情報に基づき、物体識別データベース４１から、シミュレーションに必要となる操作環境および操作対象物に関する情報を認識する（ステップＳ３）。操作環境に関する情報とは、床面の凹凸の位置、床面の材質（摩擦係数パラメータ）、傾斜角等である。また、操作対象物に関する情報とは、その重量、形状、重心等である。これにより、シミュレーション環境設定部６１は、シミュレーションを実行する仮想空間にロボット本体１、運搬対象物、目的地までの床面を配置する。
【００５７】
また、抽出部５２は、認識された情報に基づき、目的地までの移動に成功する可能性が高い複数の行動データを学習済み行動データベース５１から抽出する（ステップＳ４）。これにより、シミュレーションパラメータ設定部６２は抽出部５２からの行動データに基づいて、仮想空間でロボット本体１を移動させるためのパラメータを設定する。
【００５８】
そして、シミュレーション部６０は操作環境および操作対象物に関する情報ならびに行動データを用いてシミュレーションを実行する（ステップＳ５）。
【００５９】
具体的には、シミュレーション実行部６３は、シミュレーションパラメータ設定部６２によって設定されたパラメータに基づき、シミュレーション環境設定部６１によってロボット本体１等が配置された仮想空間におけるロボット本体１の移動を物理演算し、ロボット本体１の状態をシミュレーションする。
【００６０】
そして、シミュレーション観察部６４は、仮想空間における目的地まで運搬対象物を安定的に運搬できたか否か（運搬対象物が落下しないかどうか、ロボット本体１が転倒しないかどうか等）を観察し、できた場合は成功、できなかった場合は失敗と判定する。また、シミュレーション観察部６４は、成功である場合、目的地までの移動時間を観察する。観察の結果はループ判断部６５に送信される。
【００６１】
例えば、水が入ったグラスが載ったトレイが運搬対象物である場合、シミュレーション観察部６４は、グラスがトレイ上で倒れないか、グラス内の水がこぼれないか等を観察して、無事に運搬できたか否かを判定する。
【００６２】
シミュレーションにおいて、ロボット本体１の状態が観察され、学習部５３による学習が行われて学習済み行動データベース５１が更新される（ステップＳ６）。シミュレーション部６０は以上のシミュレーションを行動データを変えながら所定回繰り返す（ステップＳ７）。
【００６３】
所定回の繰り返しが完了したが（ステップＳ７のＹＥＳ）、シミュレーション結果が全て失敗であった場合（ステップＳ８のＮＯ）、シミュレーション部６０は操作命令に応じた目的地までの移動ができないと判断して命令を終了する。
【００６４】
所定回の繰り返しが完了し（ステップＳ７のＹＥＳ）、シミュレーション結果の１または複数が成功であった場合（ステップＳ８のＹＥＳ）、シミュレーション部６０は目的地までの移動時間が最短となったシミュレーションで用いられた行動データを選択する（ステップＳ９）。そして、この行動データに基づいて実操作制御部７０はロボット本体１を実空間で移動させる（ステップＳ１０）。ロボット本体１の移動状態はセンサ２によって取得される。
【００６５】
ロボット本体１の移動開始から目的地到達までの間、実操作制御部７０は、センサ取得情報から得られる実空間におけるロボット本体１の状態と、シミュレーション結果とが相違するか否かを、所定の判断基準を用いて判断する（ステップＳ１１）。なお、この判断は所定時間間隔で行ってもよいし、ロボット本体１が所定距離移動する度に行ってもよい。
【００６６】
相違すると判断された場合（ステップＳ１１のＹＥＳ）、実操作制御部７０はロボット本体１の移動を停止する（ステップＳ１２）。相違しない場合（ステップＳ１１のＮＯ）、ロボット本体１が目的地に到達するまでロボット本体１を移動させる（ステップＳ１３）。
【００６７】
そして、学習部５３は、実空間におけるロボット本体１の移動の結果を学習し、学習済み行動データベース５１を更新する（ステップＳ１４）。以上により、操作命令に対する対応が終了する。
【００６８】
このように、本実施形態では、新規な物体を操作する場合には、その時点において、センサ２で取得された操作環境および操作対象物の情報を用いてシミュレーションを行って行動選択を行う。そのため、これまで操作したことがない新規物体の操作が可能となる。
【００６９】
操作の一例として、操作対象物を運搬する際、センサ２で取得された目的地までの操作環境および操作対象物の情報と、学習済みの行動データを用いてミュレーションを複数回行った上でロボット本体１を移動させる。そのため、操作環境や操作対象物が変化した場合でも、操作対象物を保持したロボット本体１を目的地まで安全に移動させることができる。また、シミュレーション結果および実際の移動の結果を学習して行動データを更新するため、その後のロボット本体１の移動がより安全に行えるようになる。
【００７０】
また、シミュレーションを複数回行うことで、実空間でロボット本体１を移動させるための最適な行動データが得られるのに加え、今回の操作対象物および操作環境に適した行動データを学習することができる。
【００７１】
上述した実施形態は、本発明が属する技術分野における通常の知識を有する者が本発明を実施できることを目的として記載されたものである。上記実施形態の種々の変形例は、当業者であれば当然になしうることであり、本発明の技術的思想は他の実施形態にも適用しうることである。したがって、本発明は、記載された実施形態に限定されることはなく、特許請求の範囲によって定義される技術的思想に従った最も広い範囲とすべきである。
【符号の説明】
【００７２】
１  ロボット本体
２  センサ
３  制御コンピュータ
３０  判定部
４０  物体認識部
４１  物体識別データベース
４２  認識部
５０  物理的世界モデル学習部
５１  学習済み行動データベース
５２  抽出部
５３  学習部
６０  シミュレーション部
６１  シミュレーション環境設定部
６２  シミュレーションパラメータ設定部
６３  シミュレーション実行部
６４  シミュレーション観察部
６５  ループ判断部
７０  実操作制御部
７１  制御パラメータ設定部
７２  実操作観察部
１Ｖ  ロボット本体
２Ｖ  センサ
３Ｖ  制御コンピュータ
７０Ｖ  仮想動制御部
【要約】
【課題】新規な物体を安定的に操作できるロボットの制御プログラムおよび制御方法、ならびに、物体操作システムを提供する。
【解決手段】コンピュータを、操作対象物を操作することを示す操作命令を前記コンピュータが受信した際に、操作対象物が新規に操作する物体であるか否かを判定する判定部と、前記操作対象物が新規に操作する物体であると判定された場合に、センサによって取得された情報に基づく操作環境および前記操作対象物に関する情報と、予め学習された行動データと、を用いて、前記操作命令に応じたロボット本体による前記操作対象物の操作をシミュレーションするシミュレーション部と、前記シミュレーションを行った結果に基づき、前記操作命令に応じて前記操作対象物を操作するよう前記ロボット本体を実空間で制御する実操作制御部と、として機能させる、ロボット制御プログラムが提供される。
【選択図】図２Ｂ【図１】
0006921448.tif 000002
【図２Ａ】
0006921448.tif 000003
【図２Ｂ】
0006921448.tif 000004
【図３】
0006921448.tif 000005
【図４】
0006921448.tif 000006