(57)【特許請求の範囲】
【請求項１】
対象物を操作するロボットを制御するロボット制御装置であって、
前記対象物の位置及び姿勢を取得する取得手段と、
前記取得手段により取得された前記対象物の第１の位置及び姿勢と、操作後の前記対象物の目標状態である第２の位置及び姿勢と、前記対象物に発生する運動とに基づいて、前記ロボットが前記対象物を把持する把持位置及びリリースするリリース位置を含む操作位置を決定する決定手段と、
前記決定手段により決定された前記操作位置に基づいて、前記ロボットが前記対象物の姿勢を変更する行動計画を生成する生成手段と、を備え、
前記決定手段は、前記対象物が、前記把持位置から前記第２の位置に至る間に、前記リリース位置を決定する、
ことを特徴とするロボット制御装置。
【請求項２】
対象物を操作するロボットを制御するロボット制御装置であって、
前記対象物の位置及び姿勢を取得する取得手段と、
前記取得手段により取得された前記対象物の第１の位置及び姿勢と、操作後の前記対象物の目標状態である第２の位置及び姿勢と、前記対象物に発生する運動とに基づいて、前記ロボットが前記対象物を把持する把持位置及びリリースするリリース位置を含む操作位置を決定する決定手段と、
前記決定手段により決定された前記操作位置に基づいて、前記ロボットが前記対象物の姿勢を変更する行動計画を生成する生成手段と、を備え、
前記決定手段は、前記対象物が、リリース位置からの運動により前記第２の位置及び姿勢へ至るよう、前記操作位置を決定する、
ことを特徴とするロボット制御装置。
【請求項３】
前記決定手段は、前記第１の位置及び姿勢から、前記対象物の支持基底面を判定し、判定された前記支持基底面が、前記対象物がリリースされた後に前記第２の位置及び姿勢における前記対象物が載置される面へ接触する接触面となるよう、前記操作位置を決定する、ことを特徴とする請求項１または２に記載のロボット制御装置。
【請求項４】
前記決定手段は、前記対象物に作用する重力及び慣性力の少なくとも一方を算出することにより、前記操作位置を決定する、ことを特徴とする請求項１から３のいずれか１項に記載のロボット制御装置。
【請求項５】
前記ロボット及び前記対象物の動作の情報を保持する保持手段をさらに備え、
前記決定手段は、前記保持手段が保持する前記動作の情報を参照することにより、前記操作位置を決定する、ことを特徴とする請求項１から４のいずれか１項に記載のロボット制御装置。
【請求項６】
前記対象物に収容される内容物の量及び偏りを判定する判定手段をさらに備え、
前記決定手段は、さらに、前記判定手段により判定された前記内容物の前記量及び偏りに基づいて、前記操作位置を決定する、ことを特徴とする請求項１から５のいずれか１項に記載のロボット制御装置。
【請求項７】
前記対象物の質量と、前記ロボットが前記対象物を把持する部分に作用する力のモーメントを計測する計測手段をさらに備え、
前記決定手段は、さらに、前記計測手段により計測された前記質量及び前記力のモーメントに基づいて、前記操作位置を決定する、ことを特徴とする請求項１から６のいずれか１項に記載のロボット制御装置。
【請求項８】
対象物を操作するロボットを制御するロボット制御方法であって、
前記対象物の位置及び姿勢を取得するステップと、
前記取得された前記対象物の第１の位置及び姿勢と、操作後の前記対象物の目標状態である第２の位置及び姿勢と、前記対象物に発生する運動とに基づいて、前記ロボットが前記対象物を把持する把持位置及びリリースするリリース位置を含む操作位置を決定するステップと、
前記決定された前記操作位置に基づいて、前記ロボットが前記対象物の姿勢を変更する行動計画を生成するステップと、を含み、
前記決定するステップは、前記対象物が、前記把持位置から前記第２の位置に至る間に、前記リリース位置を決定する、
ことを特徴とするロボット制御方法。
【請求項９】
対象物を操作するロボットを制御するロボット制御方法であって、
前記対象物の位置及び姿勢を取得するステップと、
前記取得された前記対象物の第１の位置及び姿勢と、操作後の前記対象物の目標状態である第２の位置及び姿勢と、前記対象物に発生する運動とに基づいて、前記ロボットが前記対象物を把持する把持位置及びリリースするリリース位置を含む操作位置を決定するステップと、
前記決定された前記操作位置に基づいて、前記ロボットが前記対象物の姿勢を変更する行動計画を生成するステップと、を含み、
前記決定するステップは、前記対象物が、リリース位置からの運動により前記第２の位置及び姿勢へ至るよう、前記操作位置を決定する、
ことを特徴とするロボット制御方法。
【請求項１０】
コンピュータを、請求項１から７のいずれか１項に記載のロボット制御装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの行動を計画するロボット制御装置、ロボット制御方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、ロボットを利用して対象物の姿勢変更を行う場合、対象物の静的な状態を考慮して対象物（ワーク）の姿勢が、変更後の姿勢に変更されるように搬送する手法があった。すなわち、対象物の姿勢変更後の目標位置及び姿勢において、ロボットが対象物をリリースする手法である。
例えば特許文献１は、設定された作業計画に基づいて対象物を把持する場合に、次の動作の障害等にならないような把持手法（把持位置）を決定可能なロボット制御装置及びロボットシステム等を開示する。具体的には、特許文献１では、対象物の姿勢変更前後で共に成り立つ共通の把持パターンを求め、対象物の姿勢変更を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２０６２１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の技術では、姿勢変更の前後で対象物を把持する共通の把持パターンが存在しない場合は、最終的な目標姿勢に至るまでに複数回の姿勢変更動作を行う必要が生じる。このため、タクトタイム（tact time）が延びてしまうという課題があった。
そこで、本発明の目的は、ロボットが対象物を、より少ない動作回数で効率的に姿勢変更させることができるロボット制御装置、ロボット制御方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本願発明に係るロボット制御装置の一態様は、対象物を操作するロボットを制御するロボット制御装置であって、前記対象物の位置及び姿勢を取得する取得手段と、前記取得手段により取得された前記対象物の第１の位置及び姿勢と、操作後の前記対象物の目標状態である第２の位置及び姿勢と、前記対象物に発生する運動とに基づいて、前記ロボットが前記対象物を把持する把持位置及びリリースするリリース位置を含む操作位置を決定する決定手段と、前記決定手段により決定された前記操作位置に基づいて、前記ロボットが前記対象物の姿勢を変更する行動計画を生成する生成手段と、を備え、前記決定手段は、前記対象物が、前記把持位置から前記第２の位置に至る間に、前記リリース位置を決定する。
本願発明に係るロボット制御装置の他の一態様は、対象物を操作するロボットを制御するロボット制御装置であって、前記対象物の位置及び姿勢を取得する取得手段と、前記取得手段により取得された前記対象物の第１の位置及び姿勢と、操作後の前記対象物の目標状態である第２の位置及び姿勢と、前記対象物に発生する運動とに基づいて、前記ロボットが前記対象物を把持する把持位置及びリリースするリリース位置を含む操作位置を決定する決定手段と、前記決定手段により決定された前記操作位置に基づいて、前記ロボットが前記対象物の姿勢を変更する行動計画を生成する生成手段と、を備え、前記決定手段は、前記対象物が、リリース位置からの運動により前記第２の位置及び姿勢へ至るよう、前記操作位置を決定する。
【発明の効果】
【０００６】
本発明によれば、ロボットが対象物を、より少ない動作回数で効率的に姿勢変更させることができる。
【図面の簡単な説明】
【０００７】
【図１】実施形態１に係るロボットシステムを実現する装置構成を表した図である。
【図２】実施形態１に係るロボットシステムの機能要素の構成図である。
【図３】ロボットシステムの処理を示すフローチャートである。
【図４】ロボットシステムの位置・姿勢計測部の処理を示すフローチャートである。
【図５】ロボットシステムの操作位置決定部の処理を示すフローチャートである。
【図６】操作位置決定部の判断部の処理を示すフローチャートである。
【図７】ロボットシステムの対象物の初期状態を模式的に表した図である。
【図８】ロボットシステムの対象物の回転後の状態を模式的に表現した図である。
【図９】対象物の回転後のリリース時の状態を模式的に表現した図である。
【図１０】対象物のリリース後の対象物の傾いた状態を模式的に表現した図である。
【図１１】対象物の傾く過程とエンドエフェクタの関係を表現した模式図である。
【図１２】対象物のリリース後のエンドエフェクタの状態を表現した図である。
【図１３】実施形態２に係るロボットシステムの機能要素の構成図である。
【図１４】実施形態３に係るロボットシステムの機能要素の構成図である。
【図１５】実施形態３に係るロボットシステムの処理を示すフローチャートである。
【図１６】内容物計測部と操作位置決定部の処理の流れを示すフローチャートである。
【図１７】実施形態４に係るロボットシステムの装置構成図である。
【図１８】実施形態４に係るロボットシステムの機能要素構成図である。
【図１９】操作位置決定部の判断部の処理の流れを示すフローチャートである。
【図２０】対象物のリリース後の状態を模式的に表現した図である。
【図２１】対象物の初期状態から目標状態への遷移過程を模式的に表現した図である。
【図２２】実施形態で説明した各部のハードウエア構成の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
【０００９】
実施形態１
本実施形態においては、対象物に運動を発生させる要因を考慮することによって、把持した対象物を最終的な目標位置及び姿勢（以下、単に「目標姿勢」ともいう）の手前でリリースして、対象物を目標姿勢へ向かわせるようにしたものである。本実施形態においては、このような制御を実現するように、ロボットが対象物を把持する位置及びリリースする位置を決定する。
具体的には、本実施形態では、対象物の位置及び姿勢を計測して、この計測結果から対象物がどの部品でどのような位置及び姿勢かを判断する。さらに、対象物の支持基底面を求め、この支持基底面を用いて、ロボットによる操作で対象物を姿勢変更するための操作位置を決定する。
ここで、対象物とは、姿勢変更の対象物（ワーク）をいい、例えばトナーカートリッジのような容器である。
【００１０】
また、支持基底面とは、対象物が面の上に目標とする目標姿勢で置かれているとき、対象物の重心から対象物が置かれている面に垂線を下ろした際に垂線が交わる対象物の面をいう。本実施形態では、対象物を目標姿勢に変更する際に、静的な操作では一回で姿勢変更できない場合、動的な操作を考慮して目標姿勢の手前の、最適なリリース位置でリリースする。すなわち、動的な操作を考慮して目標姿勢の手前の最適なリリース位置でリリースするという動作命令をロボットに送り、ロボットにその動作命令に従って対象物を操作させる。
ここで、静的な操作とは、対象物の静的な状態を考慮した操作方法である。例えば、対象物をリリースする状態（位置及び姿勢）と目標状態（位置及び姿勢）が一致している場合、リリースしてから対象物の姿勢に変化は生じないため、これを静的な操作と考える。
【００１１】
他方、動的な操作とは、対象物の動的な状態まで考慮した操作方法である。例えば、対象物をリリースする状態と目標状態が一致していない場合でも、リリース後に対象物に運動が発生して、最終的に対象物の状態が目標状態と一致するような操作方法を、動的な操作であると考える。なお、本実施形態においては、対象物に運動を発生させる要因として、重力を考慮する。
図１は、本実施形態におけるロボットシステム１００を構成する機器構成を説明する図である。図１の例に示す機器構成は一例であり、本発明の適用範囲を限定するものではない。
ロボット１０１は、マニピュレータやロボットハンドのようなエンドエフェクタなどの機器によって構成される。ロボット１０１は、情報処理装置１０４（ロボット制御装置）
が決定した行動を実行し、例えば対象物１０６を操作する。
ここで、「行動」とは、対象物１０６を操作するためのロボット１０１の動作のことをいい、例えば、ロボット１０１により対象物１０６を搬送することや、把持すること等を含む。
【００１２】
撮像装置１０２は、対象物１０６及びその周辺環境等を撮像する装置であり、例えばカメラや光を検出するセンサ、フォトダイオードなどで構成される。このような構成によって、撮像装置１０２は、対象物１０６の画像情報を取得する。取得した画像情報は情報処理装置１０４によって処理される。
光源１０３は、例えばプロジェクタで構成され、可視光又は赤外線レーザー等を投影することができる。このような構成によって、光源１０３は、対象物１０６を均一光や所定のパターン光で照明することができる。なお、撮像装置１０２及び光源１０３に替えて、撮像装置１０２と光源１０３とで構成されるレーザーレンジファインダ装置を使ってもよい。
【００１３】
あるいは、光源１０３を使わずに、２つの撮像装置１０２を用いて、パッシブに計測を行い、対象物の位置及び姿勢を計測するための情報を得てもよい。また、光源１０３を使わずに、１つの撮像装置１０２を用いてもよく、対象物１０６の位置及び姿勢を計測するための情報が得られるものであればよい。
情報処理装置１０４は、コンピュータなどの計算機およびハードディスクなどの補助記憶装置によって構成される。情報処理装置１０４は、所定のインタフェース機器を介してロボット１０１、撮像装置１０２、光源１０３、搬送装置１０５と接続されており、これらの機器と随時通信することができ、これらの機器の動作を制御する。また、情報処理装置１０４は、対象物１０６の三次元形状、ロボット１０１の作業手順などの情報を記憶装置に保持する。
【００１４】
本実施形態において、情報処理装置１０４は、撮像装置１０２から入力された画像情報をもとに、情報処理装置１０４に保持されている各種情報を参照して、対象物１０６の位置及び姿勢を計測（認識）する。そして、情報処理装置１０４は、対象物１０６の計測（認識）された位置及び姿勢に基づき、対象物１０６の把持位置とリリース位置を決定し、ロボット１０１の行動を計画し、その結果をロボット１０１に対して出力する。
搬送装置１０５は、対象物１０６を撮像装置１０２の計測可能範囲内へ搬送する。搬送装置１０５はベルトコンベアなどの装置によって構成されてよく、情報処理装置１０４は、この搬送装置１０５を制御し、動作・停止等を行わせる。
【００１５】
対象物１０６は、ロボットの操作により姿勢変更の処理がなされる対象物である。本実施形態においては、対象物１０６はトナーカートリッジであり、把持して搬送し姿勢変更させることが想定されるものとして説明する。
図２は本実施形態１における対象物１０６の姿勢変更を実現するためのロボットシステム１００の機能要素の構成と機能要素間の関係を模式的に表現した図である。図２において、撮像装置１０２は、対象物１０６を撮像し画像情報を得る。撮像された画像情報は、画像取得部２０１により取得される。図２に示すように、情報処理装置１０４は、画像取得部２０１と、位置・姿勢計測部２０２（取得手段）と、操作位置決定部２０４（決定手段）と、行動計画部２０５（生成手段）とを備えるロボット制御装置である。
【００１６】
画像取得部２０１は、撮像装置１０２で撮像された画像情報を取得する。この撮像された画像情報は、位置・姿勢計測部２０２に出力されて使用される。なお、画像取得部２０１は、例えばキャプチャボードやＲＡＭ（メモリ）で構成されてよい。
位置・姿勢計測部２０２（取得手段）は、画像取得部２０１で取得した画像情報を入力として、対象物１０６の位置及び姿勢を計測（認識）する。具体的には、位置・姿勢計測部２０２は、取得された画像情報から、部品データベース２０３に蓄積される対象物１０６の部品種及び形状の情報を参照して対象物１０６の位置及び姿勢を決定（取得）する。そして、位置・姿勢計測部２０２は、この決定された位置及び姿勢を操作位置決定部２０４へ出力する。
【００１７】
位置・姿勢計測部２０２により参照される部品データベース２０３は、姿勢変更の対象となる対象物１０６の部品種及び形状の情報を保持している。保持されるデータの形態は、例えばＣＡＤデータやＣＧポリゴンなどのモデルデータであってよい。
操作位置決定部２０４（決定手段）は、位置・姿勢計測部２０２から出力される対象物１０６の位置及・姿勢情報を入力し、対象物１０６の操作位置として、少なくとも把持位置とリリース位置とを決定する。決定された操作位置（把持位置とリリース位置）は、行動計画部２０５へ出力される。
【００１８】
行動計画部２０５（生成手段）は、操作位置決定部２０４により決定された操作位置を入力として、ロボット１０１の行動を計画（生成）する。具体的には、行動計画部２０５は、操作データベース２０６に保持されている部品種と作業手順の情報を参照して、対象物１０６を操作するロボットの行動を計画する。行動計画部２０５は、計画されたロボット１０１の行動を、動作命令としてロボット１０１へ出力する。
操作データベース２０６は、行動計画部２０５が行動を計画する際に参照する部品種と作業手順の情報を保持する。行動計画部２０５は、適宜操作データベース２０６の情報を参照して、計画を作成する。ロボット１０１は、行動計画部２０５が出力する動作命令（行動）に従って動作する。
【００１９】
図３は、本実施形態におけるロボットシステム１００の処理の流れを示すフローチャートである。図３に示される処理動作は、情報処理装置１０４の備えるＣＰＵがプログラムを実行することによって達成される。以下、図３に従って処理の手順を説明する。
Ｓ１において、本実施形態におけるロボットシステム１００の初期化を行う。具体的には、ユーザーがロボットシステム１００を起動し、情報処理装置１０４にロボットシステム１００を構築するためのプログラムがロードされる。ロードされたプログラムは、情報処理装置１０４中のメモリ上に展開されて実行可能な状態となる。また、ロボット１０１、撮像装置１０２において、機器パラメータの読み込みや初期位置への復帰などが行われ、使用可能な状態となる。
【００２０】
Ｓ２において、情報処理装置１０４は、搬送装置１０５を駆動して、撮像装置１０２が計測可能な範囲内に対象物１０６を配置する。また、画像取得部２０１は、撮像装置１０２を用いて対象物１０６に関する画像情報を取得する。
Ｓ３において、位置・姿勢計測部２０２は、対象物１０６の位置及び姿勢の計測を行う。ここで、図４を参照して、図３のＳ３における位置・姿勢計測処理の詳細を説明する。
図４は、本実施形態１におけるロボットシステム１００を構成する情報処理装置１０４の位置・姿勢計測部２０２が実行する処理の流れを示すフローチャートである。図４に示される位置・姿勢計測部２０２の処理動作は、情報処理装置１０４のＣＰＵがプログラムを実行することによって実現される。
【００２１】
Ｓ３１において、位置・姿勢計測部２０２は、対象物１０６のパターンマッチングを行う。具体的には、位置・姿勢計測部２０２は、部品データベース２０３の情報を参照し、画像取得部２０１により取得された画像情報をもとにして、パターンマッチングにより対象物１０６の部品種を判断する。パターンマッチングの方法としては、例えば相関ベースマッチングが挙げられる。位置・姿勢計測部２０２は、部品データベース２０３が保持している複数種類の部品パターンと、入力された画像情報とを比較し、最も類似するパターンを推定することにより対象物１０６の部品種の決定を行う。ただし、パターンマッチングはこれに限定されず、対象物１０６の部品種を判別できれば他の処理でもよい。
【００２２】
Ｓ３２において、位置・姿勢計測部２０２は、Ｓ３１において判断された結果をもとにして、対象物１０６のモデルフィッティングを行う。具体的には、位置・姿勢計測部２０２は、例えば、均一照明を用いて撮像手段１０２が撮像した画像情報を用いて、対象物１０６のエッジと部品データベース２０３に保持されているＣＡＤデータを元にしたエッジモデルとのフィッティング処理を行う。位置・姿勢計測部２０２は、このようなフィッティング処理を行うことによって、対象物１０６の位置及び姿勢を計測することができる。あるいは、位置・姿勢計測部２０２は、均一照明に替えて、例えばマルチラインのパターン光を用いて対象物１０６の表面に投影されたパターンを検出し、三角測量の原理に基づき対象物１０６の表面の距離点群データを求めもよい。この場合、位置・姿勢計測部２０２は、求めた距離点群データと、部品データベース２０３中に保持されている点群モデルとのフィッティング処理を、ＩＣＰ（Iterative Closest Point）アルゴリズムを利用して行うことができる。
【００２３】
Ｓ３３において、位置・姿勢計測部２０２は、Ｓ３２で判断された結果をもとにして、対象物１０６の欠損・欠品判定処理を行う。例えば、Ｓ３２のモデルフィッティング処理において、部分的にマッチング度評価を行い、明らかにマッチしない場合、その部分に欠損・欠品があると判断することができる。Ｓ３３の処理が終了した後、Ｓ４へ移行する。
図３に戻り、Ｓ４において、操作位置決定部２０４は、Ｓ３の計測結果に基づいて、対象物１０６の操作位置（把持位置及びリリース位置を含む）の決定を行う。ここで、図５を参照して、図３のＳ４における操作位置決定処理の詳細を説明する。
図５は、本実施形態１におけるロボットシステム１００を構成する情報処理装置１０４の操作位置決定部２０４が実行する処理の流れを示すフローチャートである。図５に示される操作位置決定部２０４の処理動作は、情報処理装置１０４等のＣＰＵがプログラムを実行することによって実現される。
【００２４】
Ｓ４１において、操作位置決定部２０４は、Ｓ３で計測された対象物１０６の位置及び姿勢の結果を元に、対象物１０６の現在姿勢と目標姿勢とを比較し、姿勢を変える必要があるかどうかを判定する。この判定の結果、姿勢を変える必要がない場合は、Ｓ４７の処理へ移行する。他方、姿勢を変える必要があると判定した場合はＳ４２の処理へ移行する。
Ｓ４２において、操作位置決定部２０４は、静的な操作のみを考慮して対象物１０６の姿勢変更ができるか否かを判定する。具体的には、操作位置決定部２０４は、例えば、現在姿勢と目標姿勢とのそれぞれで、把持可能な位置を求め、それら把持可能な位置が合致するか否かを判定する。この判定の結果、合致すると判定された場合には、静的な操作のみを考慮して姿勢変更ができるとして、Ｓ４６の処理へ移行する。他方、合致しないと判定された場合、すなわち静的な操作のみでは姿勢変更ができず、動的に姿勢を変える必要があると判定した場合は、Ｓ４３の処理へ移行する。
【００２５】
Ｓ４３において、操作位置決定部２０４は、動的な操作を考慮すれば対象物１０６の姿勢変更ができるかを判定する。この判定は、物理シミュレーションを行ったり、ロボット１０１に実際に動作させた結果を蓄積するデータベースを参照したりすることによって行うことができる。この判定の結果、動的な操作を考慮しても、姿勢変更が困難な場合は、Ｓ４４に移行する。他方、姿勢変更が可能であると判定した場合は、Ｓ４５へ移行する。この判定の処理において、本実施形態では、物理シミュレーションを行って判定を行う場合を説明するが、本発明の適用範囲は、これに限定されず他の手法で判定の処理を行ってもよい。ここで、図６を参照して、図５のＳ４３における動的な操作を考慮した対象物１０６の姿勢変更の可否の判定処理の詳細を説明する。
【００２６】
図６は、Ｓ４３の処理内容を示すフローチャートである。図６に示される操作位置決定部２０４の処理動作は、情報処理装置１０４等のＣＰＵがプログラムを実行することによって実現される。
Ｓ４３１において、操作位置決定部２０４は、ロボット１０１のエンドエフェクタが対象物１０６を把持可能な把持位置を求める。操作位置決定部２０４は、位置・姿勢計測部２０２から入力される位置及び姿勢の情報を元に、例えば対象物１０６に突起などの凹凸がある場合はその部分を避けるようにする。このようにして、ロボット１０１のエンドエフェクタ（図７の１０１ａ）が把持可能な把持位置を求める。
Ｓ４３２において、操作位置決定部２０４は、対象物１０６の支持基底面を、目標姿勢での接触面へ変化させるための、ロボット１０１の操作位置を求める。ここで、接触面とは、対象物１０６が載置される面に接触する対象物１０６の面をいう。図７は、対象物１０６とエンドエフェクタ１０１ａとの関係を示す図であり、対象物１０６が載置される所定の面上に対象物１０６が置かれている様子を示す図である。図７において、対象物１０６の−Ｚ方向のｘ−ｙ平面が接触面に該当する。
【００２７】
初期姿勢が図７に示すような状態の対象物１０６を、＋Ｘ方向のｙ−ｚ平面が接触面になるように、対象物１０６を回転させた姿勢に変化させる場合を考える。すなわち、対象物１０６を、Ｙ軸回りに７１１の方向へ＋９０度回転させた姿勢に変化させるように、ロボット１０１のエンドエフェクタ１０１ａで把持して姿勢変更させる場合を考える。
図８は、図７の対象物１０６をＹ軸周りで回転させる場合に、Ｙ軸方向から、対象物１０６を観察した様子を示す図である。
この場合、図８に示すように、対象物１０６をＹ軸回りに８１２の方向へ回転させる必要がある。図８では、回転前（姿勢変更前）の対象物１０６が破線で表され、それを把持するエンドエフェクタ１０１ａも破線で表されている。ある程度回転が進んだ（θ）後（姿勢変更後）の対象物１０６が実線で示され、その対象物１０６を把持するエンドエフェクタ１０１ａも実線で示されている。
【００２８】
ここで、対象物１０６に運動を発生させる要因として重力の影響を考慮する場合、回転角θは、支持基底面を変化させるために図８で示すθｔｈを上回る位置まで回転させる必要がある。図８から理解されるように、回転量θが、θｔｈを上まわれば、支持基底面が変化するので、そこまで回転させた状態で対象物１０６をリリースすれば、対象物１０６を所定の最終的な目標姿勢（位置及び姿勢）に向かわせることができる。
図６に戻り、Ｓ４３３において、操作位置決定部２０４は、ロボット１０１による対象物１０６のリリース位置を求める。具体的には、ロボット１０１が対象物１０６を回転させることで姿勢変更し、その後にリリースをするが、このリリース位置を求める。
【００２９】
図９は、エンドエフェクタ１０１ａが対象物１０６を把持して回転させた後、エンドエフェクタ１０１ａが開く様子を示す図である。図８と同様に、図９においては、エンドエフェクタ１０１ａが開く前の位置が破線で示されており、開いた後のエンドエフェクタ１０１ａの位置が実線で示されている。同様に、図９においては、エンドエフェクタ１０１ａが開く前の対象物１０６が破線で示されており、エンドエフェクタ１０１ａが開いた後の対象物１０６が実線で示されている。
図９に示す姿勢において、対象物１０６を把持しているロボット１０１のエンドエフェクタ１０１ａが開くことで対象物１０６のリリースを行う。このリリースの際、対象物１０６の回転角度θとエンドエフェクタ１０１ａが開いた幅ａからリリース位置が求まる。図９に示すように、重力の影響によって、エンドエフェクタ１０１ａが開くにつれて、対象物１０６が所定量移動する。
Ｓ４３４において、操作位置決定部２０４は、リリース時における対象物１０６に運動を発生させる要因の影響によって、対象物１０６に生じる運動を求める。本実施形態における対象物１０６に運動を発生させる要因とは、対象物１０６に加わる重力である。重力による影響としては、まず図１０に示すように、リリース後の対象物１０６の傾きがある。
【００３０】
図１０は、図９に示すようにロボット１０１のエンドエフェクタ１０１ａが開くことで対象物１０６のリリースを行った後、重力によって対象物１０６が回転し傾く様子を示す図である。図１０において、リリース直後の対象物１０６は破線で示されており、回転しθ’分だけ傾いた対象物１０６が実線で示されている。具体的には、リリース時のエンドエフェクタ１０１ａの先端と、対象物１０６がエンドエフェクタ１０１ａに接触している面と、対象物１０６が載置されるべき面との距離関係によって、対象物１０６の初期姿勢からの傾きがθからθ−θ’と変化する。言い換えれば、図１０に示すように、リリース直後は対象物１０６の最下部の角と、対象物１０６の載置されるべき面との距離はｈであるが、このｈの分だけ、対象物１０６の最下部の角が落下する。他方、エンドエフェクタ１０１ａの先端と未だ接触している部分はほとんど高さが変化しない。
【００３１】
この結果、対象物１０６は、リリース直後の初期姿勢からの傾きがθであるが、回転し移動することによって傾きがθ−θ’へと変化する。そのため、このθ’分の傾きが生じた後でも、支持基底面が目標姿勢における接触面と一致している必要がある。一致していれば、その状態からエンドエフェクタ１０１ａを対象物１０６から離しても、対象物１０６の支持基底面が目標姿勢の接触面と一致するので、対象物１０６に目標姿勢をとらせることができる。
【００３２】
また、対象物１０６のθ’分の傾きは、エンドエフェクタ１０１ａの先端を回転の中心とした回転運動で生じるが、その際、エンドエフェクタ１０１ａが対象物１０６の回転の障害にならないようにする必要がある。
具体的には、図１１に示すように、エンドエフェクタ１０１ａの開く幅（開く量）が２ａであるとすると、対象物１０６は傾くときにｄ×ｃｏｓθ’の分だけ＋Ｚ側のエンドエフェクタ１０１ａに接近する。したがって、対象物１０６が接近しても、対象物１０６とエンドエフェクタ１０１ａの干渉を避けられるようにエンドエフェクタ１０１ａの開く幅２ａを設定する必要がある。
【００３３】
さらに、エンドエフェクタ１０１ａが対象物１０６をリリースした際、対象物１０６はリリースされた姿勢から目標姿勢へ変化するが、例えば図１２のようなリリース姿勢のときは、重力の影響で、今度はＹ軸回りに８１２の方向へ回転する。
このような回転の際にも、エンドエフェクタ１０１ａが、対象物１０６のリリース姿勢から目標姿勢へ変化する軌道上にないように制御を行う必要がある。この制御のためには、リリース時のエンドエフェクタ１０１ａの位置を最初から対象物１０６の軌道上に置かないように設計することが考えられる。あるいは対象物１０６のリリース姿勢から目標姿勢への変化の間に、エンドエフェクタ１０１ａを動作させて軌道上で干渉しないよう制御することが考えられる。
【００３４】
以上説明したように、リリース時における対象物１０６に運動を発生させる要因の影響による対象物１０６の運動を求める。
図６に戻り、Ｓ４３５において、操作位置決定部２０４は、Ｓ４３１〜Ｓ４３４で求めた条件を元に、これらの条件を全て満たす条件があるかを判別する。この判別において、全て満たす条件が存在しない場合はＳ４４へ移行する。他方、存在する場合はＳ４５へ移行する。
図５に戻り、Ｓ４４において、操作位置決定部２０４は、Ｓ４３において動的な操作を考慮しても姿勢変更が実現できないと判断された場合、ロボット１０１を一時停止させる。このようにすることによって、対象物１０６にロボット１０１に対して外力を印加することで現在の姿勢を変更することができる。また、操作する対象を変更したり、システムを新たに実行、再起動させたりすることが可能となる。
【００３５】
Ｓ４５において、操作位置決定部２０４は、Ｓ４３で存在すると判別された条件の組み合わせを用いて目標状態の手前の最適な位置で対象物をリリースするように、対象物１０６のリリース位置を決定する。
すなわち、操作位置決定部２０４は、対象物１０６が、把持位置から目標状態における目標位置に至る間のいずれかに、最適なリリース位置を決定する。このリリース位置は、目標位置よりも手前に決定されてよい。
【００３６】
本実施形態では、Ｓ４３４において、リリース時における対象物１０６に運動を発生させる要因の影響によって、対象物１０６に生じる運動を求めている。このため、操作位置決定部２０４は、対象物１０６が、リリース位置からの運動により目標位置及び姿勢へ至るよう、把持位置及びリリース位置を決定することになる。
このようにして、操作位置決定部２０４が最適なリリース位置を決定した後、決定された把持位置及びリリース位置を含む操作位置の情報に基づいて、ロボット１０１の行動計画が決定される（図３のＳ５）。
【００３７】
ここでＳ４５において、操作位置決定部２０４は、操作位置に複数の条件が存在する場合は任意の組み合わせを選定できる。しかし、一般的にはタクトタイム（tact time）最小化が求められる場合が多いので、対象物回転角θが最小となるような組み合わせを選定すればよい。タクトタイム以外の条件が重要である場合は、他の条件に基づき、組み合わせを選定してよい。このような組み合わせを選定され、決定された後、図３のＳ５へ移行する。
【００３８】
Ｓ４６において、操作位置決定部２０４は、Ｓ４２で判定された静的な操作のみ考慮して実現できる姿勢変更動作を行うための操作位置を決定する。この決定された操作位置に基づき、ロボットの行動計画が決定される。具体的には、リリース状態と目標姿勢が一致するように決定された操作位置を元に、ロボット１０１の行動計画が決定される。
Ｓ４７において、操作位置決定部２０４は、Ｓ４１で判定された姿勢変更の必要がないという決定に基づき行動計画を計画するための操作位置の決定を行う。具体的には、現在の姿勢を維持するように操作位置を決定し、引き続き、ロボット１０１の行動計画を決定処理へ移行するために、Ｓ５へ移行する。
【００３９】
図３に戻り、Ｓ５において、行動計画部２０５は、Ｓ４で決定された操作位置に基づき、これら操作位置を実現するためのロボット１０１の行動計画を決定する。行動計画部２０５は、行動計画の決定の際は、Ｓ４において決定された操作位置を元に、操作データベース２０６に蓄積されている部品種と作業手順の情報を参照して、行動計画を決定する。この行動計画で計画された動作は、Ｓ６におけるロボット動作で用いられる。
Ｓ６において、行動計画部２０５は、Ｓ５で決定したロボット１０１の行動計画に基づき、所定の動作命令をロボット１０１に出力する。この動作命令によって、ロボット１０１が、行動計画に従った動作を実行する。
Ｓ７において、位置・姿勢計測部２０２は、画像取得部２０１により取得された画像情報を元に、搬送装置１０５を通じて搬送されてくる次の対象物１０６が存在するか否かを検知する。
【００４０】
次の対象物１０６が存在する場合には、Ｓ２に戻り、次の対象物１０６に対する処理が続行される。次の対象物１０６が存在しない場合には、本実施形態１における計測その他の動作処理を終了する。
以上説明したように、本実施形態によれば、対象物１０６の位置及び姿勢を計測して、対象物１０６がどの部品でどのような位置及び姿勢かに基づき、ロボット１０１による対象物１０６の操作位置を決定する。
ここで、対象物１０６の姿勢を変える必要があり、かつ静的な操作のみを考慮したのでは姿勢変更が１回の動作で実現できない場合、対象物１０６に運動を発生させる要因を考慮して動的な操作を行う。その際、対象物１０６の姿勢変更を行う操作位置を決定するという動作命令をロボット１０１に送り、ロボット１０１はその動作命令に従って対象物１０６を把持する。このような処理を実行することによって、対象物１０６の姿勢変更を行う場合において、持ち替え動作や仮置き動作を行うことなく、対象物１０６を姿勢変更することができるロボット１０１の行動を計画することができる。また、本実施形態によれば、想定していない対象物１０６を操作する場合でも、対応することが可能である。
【００４１】
なお、本実施形態の図７では対象物１０６を直方体形状である例を説明したが、対象物１０６の面が平面ではなく凹凸があった場合でも本実施形態を適用することができる。例えば、目標姿勢における対象物１０６の接触面に凹凸があった場合、その凹部分を覆うように対象物１０６のバウンダリーボックス（Boundary Box）を仮定し、バウンダリーボックス上で擬似的に支持基底面を考え、姿勢変更を行えばよい。
このようにして、本実施形態によれば、対象物１０６の姿勢変更前後の操作位置（把持位置及びリリース位置を含む）を決定することで、ロボット１０１による対象物１０６の持ち替え動作や仮置き動作を減らしている。したがって、本実施形態１によれば、より少ない動作で対象物１０６の姿勢変更をすることができる。その結果、タクトタイムをより短縮することができる。また、単腕のロボット１０１で操作する例を説明したが、単腕であるため、より簡易なシステムで対象物１０６の姿勢変更を実現することができる。
【００４２】
実施形態２
本実施形態に係るロボットシステムは、対象物１０６を目標状態へ遷移させるためのバリエーションとして、データベースを用いて操作位置を決定してロボット１０１を動作させ、対象物１０６を目標姿勢へ変化させることができる。
実施形態１においては、物理シミュレーションを用いて対象物１０６の動作を計算によって求めた。それに対して、本実施形態においては、物理シミュレーションを行わずに動作データベースを参照することで操作位置を決定してロボット１０１を動作させ、対象物１０６を目標姿勢へ変化させることができる。
【００４３】
図１３は、本実施形態における対象物１０６の姿勢変更を実現するためのロボットシステム１３００の機能要素の構成と機能要素間の関係を模式的に表現した図である。図２と比較すれば、操作位置決定部２０４ａ（決定手段）の動作が、図２の操作位置決定部２０４と異なる。また、図３に示す構成においては、図２と異なり、動作データベース２０７（保持手段）が追加されている。
本実施形態に係る操作位置決定部２０４ａは、位置・姿勢計測部２０２からの位置及び姿勢情報を入力として、対象物１０６の操作位置である把持位置と、リリース位置と、を決定する。操作位置決定部２０４ａは、動作データベース２０７の対象物動作の情報を参照して、対象物１０６の操作位置である把持位置と、リリース位置と、を決定する。操作位置決定部２０４ａが決定した操作位置（把持位置及びリリース位置を含む）は、行動計画部２０５へ出力される。
【００４４】
動作データベース２０７は、操作位置決定部２０４ａが操作位置を決定する際に参照する対象物１０６の動作の情報を保持している。操作位置決定部２０４ａは、適宜動作データベース２０７の情報を参照して操作位置を決定する。
ここで、動作データベース２０７のデータベースの作成方法について説明する。上述した実施形態１においては、物理シミュレーションを行うことによって、操作位置を決定しているため、動作データベース２０７のような構成を必要としなかった。そこで、本実施形態では、まず、ヒューリスティックな手法を適用して対象物１０６を操作する手法について述べる。
【００４５】
具体的には、予め対象物１０６の動作を記録しておいたデータベースの情報を参照し、その結果からロボット１０１で対象物１０６を扱う際の対象物１０６の姿勢に最も近い姿勢を求め、その動作をロボット１０１で再現している。つまり、現在姿勢と目標姿勢のそれぞれに対して、ロボット１０１で扱う対象物１０６の状態と、データベースに蓄積されている情報を比較することで、データベースの姿勢をロボット１０１で再現する。このようなデータベースの情報は、予め人間が動作した結果を用いて構築してもよいし、ロボット１０１が実際に動作して行った結果を用いて構築してもよい。なお、人間と対象物１０６の動作をデータベース化する手法としては、人間の上肢と対象物１０６にマーカーを取り付けて、モーションキャプチャーシステムを用いて取得する手法が考えられる。しかし、人間と対象物１０６の動作を取得できれば他の方法でもよい。また、ロボット１０１と対象物１０６の動作をデータベース化する手法としては、ロボット１０１の軌道データから位置及び姿勢や関節角度の情報を取得し、カメラなどを用いて対象物１０６の動作を記録する等の技術も考えられる。しかし、ロボット１０１と対象物１０６の動作を取得できれば他の方法でもよい。
以上述べたように、本実施形態によれば、対象物１０６の物理シミュレーションを実施せずとも対象物１０６の姿勢変更を実現することができる。すなわち、本実施形態によれば、複雑な物理シミュレーションに替えて、動作データベース２０７を用いることによって対象物１０６を姿勢変更できるという効果を奏する。
【００４６】
実施形態３
本実施形態に係るロボットシステムは、対象物１０６が内容物を収容する場合、その内容物の量と偏りまで計測し、操作位置を決定することができる。
上述した実施形態１、２では対象物１０６の内容物については考慮していなかったが、内容物が含まれる容器を対象物１０６として取り扱うことはできた。
他方、本実施形態においては、対象物１０６に内容物を含む場合、内容物の量と偏りまで計測し、操作位置を決定することで、内容物を含み質量分布が偏っている対象物１０６の姿勢変更をより安定的に実行することができる。
本実施形態において、想定する対象物１０６は、中に何かを入れる中空構造の物体であり、例えばトナーカートリッジのような容器であるものとして説明する。また、内容物とは、対象物１０６の中に入っているべき物であり、例えばトナーカートリッジ内に入っているトナーのようなものでよい。
【００４７】
図１４は本実施形態における対象物１０６の姿勢変更を実現するためのロボットシステム１４００の機能要素の構成と機能要素間の関係を模式的に表現した図である。このロボットシステム１４００は、撮像装置１０２と、情報処理装置１０４ｂ（ロボット制御装置）と、ロボット１０１と、とから構成される。情報処理装置１０４ｂは、図２の情報処理装置１０４と比較して、下記の点が異なる。
図１４の情報処理装置１０４ｂの操作位置決定部２０４ｂ（決定手段）は、図２の操作位置決定部２０４の処置と異なる処理動作を実行する。また、図２と比較して、図４においては、内容物計測部２０８（判定手段）と、状態データベース２０９と、が追加されている。
【００４８】
操作位置決定部２０４ｂは、位置・姿勢計測部２０２からの位置及び姿勢情報と内容物計測部２０８からの内容物の量と偏りとの状態情報を入力として、対象物１０６の操作位置である把持位置と、リリース位置と、を決定する。操作位置決定部２０４ｂは、決定した操作位置（把持位置及びリリース位置）を、行動計画部２０５へ出力する。
内容物計測部２０８（判定手段）は、画像取得部２０１が取得した画像情報を入力として、対象物１０６の内容物の量と偏りとの状態を認識する（判定する）。内容物計測部２０８は、この認識の際には、状態データベース２０９の情報を参照して、対象物１０６の状態を元に対象物１０６のパラメータ情報を決定する。また、内容物計測部２０８は、決定したパラメータ情報を、操作位置決定部２０４ｂへ出力する。
【００４９】
状態データベース２０９は、姿勢変更の対象となる対象物１０６のパラメータ情報を保持している。パラメータ情報とは、例えば、対象物１０６の内容物の量と状態を対応付けたテーブルの形で保持されている情報である。内容物計測部２０８は、適宜、状態データベース２０９の情報を参照する。
図１５は、本実施形態におけるロボットシステム１４００を実現するための処理の流れを示すフローチャートである。図１５に示される処理動作は、情報処理装置１０４ｂの備えるＣＰＵがプログラムを実行することによって実現される。この図１５のフローチャートは、図３のフローチャートと比較すれば、内容物計測Ｓ８が追加されている点が異なる。
【００５０】
以下、図１５に従って、本実施形態における情報処理装置１０４ｂの処理の手順を説明するが、Ｓ８、Ｓ４以外は、図３のフローチャートで示した処理と同様であるので、その説明を省略する。
Ｓ８において、内容物計測部２０８は、内容物計測を実行する。図１６は、本実施形態におけるロボットシステム１４００を構成する内容物計測部２０８の処理の流れを示すフローチャートである。図１６は、図１５におけるＳ８と、Ｓ４と、を詳細に示したフローチャートである。図１６に示される内容物計測部２０８の処理動作は、情報処理装置１０４ｂの備えるＣＰＵがプログラムを実行することによって実現される。
【００５１】
図１６において、まず、Ｓ８に該当するＳ８１からＳ８２の処理の手順を説明する。
Ｓ８１において、内容物計測部２０８は、対象物１０６の内容物の有無の判定を行う。内容物計測部２０８は、この判定の際に、状態データベース２０９が保持している対象物１０６の内容物の量と状態とを対応付けたテーブルの情報を参照し、対象物１０６の中に内容物が含まれているかの確認を行う。この確認の結果、内容物計測部２０８が、対象物１０６の中に内容物がないと判定した場合は、判定後、対象物中身判定処理が終了され、Ｓ４の処理の中のステップＳ４０２の処理へ移行する。他方、内容物があると判定した場合は、Ｓ８２の処理へ移行する。
【００５２】
Ｓ８２において、内容物計測部２０８は、対象物１０６の内容物の量と分布の判定を行う。この判定では、内容物の量が空の状態と比較してどの程度どの部分に存在するかが判定される。内容物計測部２０８は、この判定の際に、状態データベース２０９が保持している対象物１０６の内容物の量と状態とを対応付けたテーブルの情報を参照し、対象物１０６の中に内容物がどの程度どの部分に含まれているかの確認を行う。内容物計測部２０８は、この判定の後、対象物中身判定処理を終了し、Ｓ４の処理の中のステップＳ４０１の処理へ移行する。
【００５３】
次に、図１６において、図１５のＳ４に該当する各処理について説明する。Ｓ４に該当する各処理は、操作位置決定部２０４ｂが実行する。
Ｓ４０１において、操作位置決定部２０４ｂは、Ｓ８２で判定された対象物１０６の内容物の量と分布に合わせてロボット１０１の操作位置を設定するように計画が行われる。もし、対象物１０６中に内容物の偏りがあれば、その偏り近傍を把持するように計画が行われ、より重心に近い位置をロボット１０１が把持できるように操作位置が計画において設定される。その後、ステップＳ４１へ移行し、図５と同様の処理が行われ、ロボット操作の計画が作成されるが、Ｓ４０１において設定された操作位置の計画がＳ４１以降の計画に影響を与える。
【００５４】
Ｓ４０２において、操作位置決定部２０４ｂは、ロボット１０１の操作位置を内容物の影響を考慮せずに計画するという処理を行う。その後、Ｓ４１へ移行する。図１６におけるＳ４１〜Ｓ４７の処理は、図５で説明した処理と同様であるので、その説明を省略する。
以上述べたように、本実施形態によれば、対象物１０６の内容物の量と偏りを判定し、より重心に近い位置をロボット１０１で把持するよう操作位置を決定することにより、対象物１０６をより安定的に姿勢変更を行うことができる。すなわち、本実施形態によれば、対象物１０６の内容物の量と偏りを考慮して操作位置を決定することができ、対象物１０６をより安定的に姿勢変更することができるという効果を奏する。
【００５５】
実施形態４
本施形態に係るロボットシステムは、姿勢変更前後の対象物１０６の質量と把持部分にかかる力のモーメントを計測することによって対象物１０６の姿勢変更を行うことができる。
上述した実施形態１、２、３では撮像装置１０２を用いて対象物１０６の情報を取得したが、本実施では力覚センサを用いて対象物１０６の情報を取得することで、より確実に対象物１０６の姿勢変更を実現することができる。
図１７は本実施形態におけるロボットシステム１７０１を構成する機器構成を説明する図である。図１と比較すれば、図１７のロボットシステム１７０１においては、力覚センサ１７０７（取得手段）がロボット１０１に追加されている。また、図１７のロボットシステム１７０１は、図１に示した情報処理装置１０４と異なる情報処理装置１０４ｃ（ロボット制御装置）を備えている。なお、図１７の機器構成は一例であり、本実施形態の技術的範囲を限定するものではない。
【００５６】
図１８は本実施形態に係るロボットシステム１７０１の機能要素の構成と機能要素間の関係を模式的に表現した図である。ロボットシステム１７０１は、対象物１０６の姿勢変更を実現するためのロボットシステムである。
図１８において、力覚センサ１７０７は、ロボット１０１のエンドエフェクタ１０１ａ部分に取り付けられており、ひずみゲージや圧電素子で構成されている。力覚センサ１７０７は、エンドエフェクタ１０１ａで把持した対象物１０６の質量とエンドエフェクタ１０１ａ部分にかかる力のモーメントを計測する６軸力覚センサ（Ｆｏｒｃｅ／Ｔｏｒｑｕｅセンサ）である。対象物１０６の質量と、エンドエフェクタ１０１ａ部分のモーメントが計測できれば、他の手段でもよいし、質量とモーメントとをそれぞれ別のセンサで計測してもよい。力覚センサ１７０７が取得した力覚情報（対象物１０６の質量と、エンドエフェクタ１０１ａ部分のモーメント）は情報処理装置１０４ｃが処理を行う。
【００５７】
図１８に示す情報処理装置１０４ｃは、図２に示した情報処理装置１０４と比べて、異なる構成を採用している。情報処理装置１０４ｃの操作位置決定部２０４ｃは、図２の操作位置決定部１０４とは異なる処理動作を実行する。また、情報処理装置１０４ｃは、図２の情報処理装置１０４と比べて、さらに力覚情報取得部３０１と、質量・力のモーメント計測部３０２（計測手段）と、が追加されている。
操作位置決定部２０４ｃ（決定手段）は、位置・姿勢計測部２０２からの対象物１０６の位置及び姿勢情報と、質量・力のモーメント計測部３０２からの質量・力のモーメント情報と、を入力として、対象物１０６の操作位置を決定する。ここで、操作位置とは対象物１０６の把持位置とリリース位置とである。決定された操作位置（把持位置及びリリース位置）は、行動計画部２０５へ出力される。
【００５８】
力覚情報取得部３０１は、力覚センサ１７０７で取得した力覚情報を取得する。取得した力覚情報は、質量・力のモーメント計測部３０２で使われる。力覚情報取得部３０１は、例えば所定のＣＰＵやＲＡＭ（メモリ）で構成される。力覚センサ１７０７の信号を受信することができる手段であればどのような構成でもよい。
質量・力のモーメント計測部３０２（計測手段）は、力覚情報取得部２１０で取得した力覚情報を入力として、対象物１０６の質量とロボット１０１のエンドエフェクタ１０１ａにかかる力のモーメントを認識（計測）する。認識した結果を操作位置決定部２０４ｃへ出力する。
【００５９】
図１９は、本実施形態におけるロボットシステム１７０１を構成する情報処理装置１０４ｃの、特に操作位置決定部２０４ｃの処理の流れを示すフローチャートである。特に、図６に示すフローチャートと同様に、動的な操作を考慮すれば対象物１０６の姿勢変更ができるか否かを判断する処理を表す。図１９に示すフローチャートは、図６に示すフローチャートと比較して、Ｓ４３４に替えて、Ｓ４３４ａが追加されているが、他の処理はほぼ同様であり、その説明を省略する。図１９に示される操作位置決定部２０４ｃの処理動作は、情報処理装置１０４ｃの備えるＣＰＵがプログラムを実行することによって実現される。
【００６０】
図６に示すＳ４３４において、操作位置決定部２０４は、リリース時における対象物に運動を発生させる要因の影響による、対象物１０６の運動を求めている。
Ｓ４３４ａにおいて、操作位置決定部２０４ｃは、対象物１０６の質量とロボット１０１のエンドエフェクタ１０１ａにかかる力のモーメントの情報に基づいて、対象物１０６の運動を求める。
つまり、上述した実施形態１において、操作位置決定部２０４は、図１０で説明したように、リリース後の対象物１０６の傾きについて、対象物１０６の重心を位置及び姿勢情報から体積の中心と仮定して計算を行っている。
【００６１】
これに対して、本実施形態のＳ４３４ａにおいて、操作位置決定部２０４ｃは、力覚センサ１７０７によって得られた力覚情報に基づき、直接的に重心位置を求めることにより傾きを計算する。
図２０は、対象物１０６の中心に重心がない場合の計算の様子を示す図である。上記実施形態１等においては、操作位置決定部２０４等は、力覚情報を用いずに、対象物１０６の中心が重心であると仮定しているので、図２０に示す破線矢印のように支持基底面を計算していた。これに対して、本実施形態においては、操作位置決定部２０４ｃは、力覚情報を用いることで対象物１０６の内容物の質量分布まで考慮して計算する。そのため、本実施形態に係る操作位置決定部２０４ｃは、対象物１０６の重心位置が変化し、図２０における実線矢印で示されるように支持基底面が変化することまで計算することが可能である。
【００６２】
以上説明したように、本実施形態によれば、対象物１０６の質量とロボット１０１のエンドエフェクタ１０１ａにかかる力のモーメントを計測することにより支持基底面を直接的に求めている。したがって、本実施形態に係る情報処理装置１０４ｃ及びロボットシステム１７０１は、対象物１０６に内容物がある場合でもより正確に対象物１０６の姿勢変更を実現することができる。すなわち、本実施形態によれば、力覚センサ１７０７を用いて対象物１０６の質量やエンドエフェクタ１０１ａにかかる力のモーメントを考慮することができた。したがって、より正確に対象物１０６を姿勢変更できるという効果を奏する。
【００６３】
実施形態５
本施形態に係るロボットシステムは、対象物１０６に慣性力を働かせることで姿勢変更を行うことを可能とする。
上述した実施形態１、２、３、４では、対象物１０６に、対象物に運動を発生させる要因として重力を考慮する場合の姿勢変更について述べた。これに対して、本実施形態では、対象物１０６に運動を発生させる要因の別の例として慣性力を考慮する場合について説明する。このように、本実施形態によれば、慣性力を考慮することによって、持ち替え動作や仮置き動作を実行することなく、ロボット１０１による対象物１０６の姿勢変更を、より幅広く実現することができる。
【００６４】
以下、本実施形態では慣性力を考慮する場合の姿勢変更の例を説明する。その動作主体としては、図１に示すロボットシステム１００、特に情報処理装置１０４を前提としているが、図１７に示すロボットシステム１７０１でも同様の姿勢変更を行わせることができる。
図２１は、本実施形態における慣性力の考慮を行う場合の姿勢変更の概念を説明する図である。
図２１（ａ）は本実施形態における対象物１０６の初期状態を示す図である。対象物１０６が図２１（ａ）のように置かれている状態から、対象物１０６の−Ｘ方向の面を接触面とするように姿勢変更を行うことを考える。
図２１（ｂ）は対象物１０６に対してロボット１０１で操作を行い対象物１０６が傾き始めた状態を示した図である。ロボット１０１は図２１（ｂ）の矢印で示す位置・方向で対象物１０６に対して外力を印加する。この結果、対象物１０６はその力を受けて傾く。なお、図２１（ｂ）においては、傾く前の対象物２１０６の位置が破線で示されている。このときロボット１０１を制御する情報処理装置１０４、特に操作位置決定部２０４は、図５に示した処理を行っている。特に、図２１（ｂ）においては、操作位置決定部２０４は、Ｓ４５に示した操作を実行しており、目標状態の手前でリリースする操作位置を決定している。
【００６５】
図２１（ｃ）は、ロボット１０１が所定の位置でリリースを行った後、慣性力によって、対象物１０６が回転を続け、最終的に−Ｘ方向の面が接触面となり、対象物１０６が姿勢変更を完了した状態を示す図である。なお、図２１（ｃ）においては、リリースを行った直後の対象物２１０６ｂが破線で示されている。
以上述べたように、本実施形態によれば、対象物１０６に対してロボット１０１で操作を加えることにより、対象物１０６に運動を発生させる要因として慣性力を考慮することでできる例を説明した。このように、本実施形態によれば、慣性力を考慮して、対象物１０６の姿勢変更を実現することができる。すなわち、本実施形態によれば、対象物１０６に運動を発生させる要因として、重力以外の、特に慣性力を考慮して対象物１０６の姿勢変更をすることができるという効果を奏する。
なお、本実施形態では、慣性力を考慮する例を説明したが、重力と慣性力の双方を考慮するように構成してもよい。また、慣性力と重力とのいずれか一方を考慮するようにユーザーが選択できるように構成してもよい。
【００６６】
＜他の構成例＞
図２２は、上記各実施形態の各部を構成することのできるコンピュータ４２０の構成の例を示す。例えば、図１の例に示す情報処理装置１０４を、コンピュータ４２０で構成してもよい。また、情報処理装置１０４の各部を、それぞれコンピュータ（例えばコンピュータ４２０）で構成することができる。図１３、図１４の例に示す情報処理装置１０４ａ、１０４ｂについても、同様にコンピュータ４２０で構成することができる。
ＣＰＵ４２１は、ＲＯＭ４２２や、ＲＡＭ４２３、外部メモリ４２４等に格納されたプログラムを実行することによって、上記各実施形態の各部を実現する。ＲＯＭ４２２は上記ＣＰＵが実行するプログラムや各種データを保持することができる。ＲＡＭ４２３は、撮像装置１０２が撮像した画像データや、対象物１０６の位置や姿勢を保持することができる。
【００６７】
また、外部メモリ４２４は、ハードディスク、光学式ディスクや半導体記憶装置等で構成してよく、部品データベース２０３や、操作データベース２０６等を構成することができる。また、入力部４２５は、キャプチャボード等で構成してよく、画像取得部２０１を構成することができる。
表示部４２６は、各種ディスプレイで構成することができる。そして、操作者に対して、情報処理装置１０４等のロボットの制御の結果や、各種処理の結果等を表示することができる。通信Ｉ／Ｆ４２７は、外部と通信を行うインタフェースであり、インターネット等を通じてロボット１０１等を操作することなどを実現することができる。また、コンピュータ４２０の上記説明した各部はバス４２８によって相互に接続されている。
【００６８】
＜変形例＞
以上説明した実施形態１〜５においては、対象物１０６に運動を発生させる要因として、重力や慣性力の例を説明した。しかし、外的な状態として対象物に影響を与えるものであればどのような要因でもロボット制御に取り入れることができる。
また、本実施形態において、対象物に内容物が含まれている例を説明したが、対象物１０６の中に入っているべき物（内容物）であればどのようなものであってもよい。例えば、一例として本施形態で説明したトナーが挙げられる。つまり、トナーのような粉体であってもよいし、そのほか、固体や液体、粒体等であってもよい。
【００６９】
また、上記各実施形態は、以下の処理を実行することによっても実現される。即ち、上述した各実施形態の１以上の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給することによって実現してよい。その場合、当該システム或いは装置のコンピュータ（またはＣＰＵやＭＰＵまたは１つ以上のプロセッサ等）がプログラムを読み出して処理を実行する。また、そのプログラムをコンピュータ読み取り可能な記録媒体に記録して提供してもよい。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７０】
１００・・・ロボットシステム、１０１・・・ロボット、１０２・・・撮像装置、１０３・・・光源、１０４・・・情報処理装置、１０５・・・搬送装置、１０６・・・対象物、１０７・・・力覚センサ、２０１・・・画像取得部、２０２・・・位置・姿勢計測部、２０３・・・部品データベース、２０４・・・操作位置決定部、２０５・・・行動計画部、２０６・・・操作データベース、２０７・・・動作データベース、２０８・・・内容物計測部、２０９・・・状態データベース、３０１・・・力覚情報取得部、３０２・・・質量・力のモーメント計測部
【図１】
0006643020.tif 000002
【図２】
0006643020.tif 000003
【図３】
0006643020.tif 000004
【図４】
0006643020.tif 000005
【図５】
0006643020.tif 000006
【図６】
0006643020.tif 000007
【図７】
0006643020.tif 000008
【図８】
0006643020.tif 000009
【図９】
0006643020.tif 000010
【図１０】
0006643020.tif 000011
【図１１】
0006643020.tif 000012
【図１２】
0006643020.tif 000013
【図１３】
0006643020.tif 000014
【図１４】
0006643020.tif 000015
【図１５】
0006643020.tif 000016
【図１６】
0006643020.tif 000017
【図１７】
0006643020.tif 000018
【図１８】
0006643020.tif 000019
【図１９】
0006643020.tif 000020
【図２０】
0006643020.tif 000021
【図２１】
0006643020.tif 000022
【図２２】
0006643020.tif 000023