(57)【要約】【課題】  ロボットが定型的に行う作業シーケンスを蓄積した作業データベースを構築できるようにする。【解決手段】  作業シーケンスのデータベースから作業シーケンスを取得し（ステップ２０１）、前記作業シーケンスを上層から展開し（ステップ２０２）、対象物体固有の動作指令か否かを判別し（ステップ２０３）、対象物体固有の動作指令でなければ作業を実行し（ステップ２０６）、対象物体固有の動作指令であれば、対象物体ごとのデータベースから動作指令を取得し（ステップ２０４）、作業データを編集し（ステップ２０５）、作業を実行する（ステップ２０６）という手順で処理する。【選択図】図２
2008114353.tif 000002
【特許請求の範囲】
【請求項１】
制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとを利用して、
ロボットに所定の作業を行わせるロボットの制御方法において、
前記第１のデータベースから作業シーケンスを取得する第１のステップと、
前記取得した作業シーケンスを、一連の作業をまとめた作業シーケンスである第１レベルのプログラムからロボットを動作させる個々の指令である第２レベルのプログラムに展開するステップと、
前記第２レベルのプログラムに記述された命令が対象物体固有の動作指令か否かを判別し、
対象物体固有の動作指令であれば、前記第２のデータベースから動作指令を取得するステップと、を含むことを特徴とするロボットの制御方法。
【請求項２】
前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとから少なくとも構成され、
前記第１のステップに代えて、
作業の属性に依存する固有作業の属性を前記動作指令の名前として設定する第２のステップを実行し、前記第３のデータベースを検索し、固有作業のデータベース中に該当する作業がなければ、前記第４のデータベースを検索するステップとしたことを特徴とする請求項１記載のロボットの制御方法。
【請求項３】
前記第２のステップに代えて、
前記固有作業の属性に対応した階層を前記動作指令の名前として設定するステップとしたことを特徴とする請求項２記載のロボットの制御方法。
【請求項４】
前記階層は、オペレーティング・システムが管理するディレクトリであることを特徴とする請求項３記載のロボットの制御方法。
【請求項５】
制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとアプリケーション特有の作業内容を登録した第６のデータベースとを利用して、
前記ロボットに所定の作業を行わせるロボットの制御方法において、
前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとアプリケーション特有の作業シーケンスが登録された第５のデータベースとから少なくとも構成され、
前記第５データベースから前記アプリケーション特有作業のシーケンスを取得するステップと、
前記取得した作業シーケンスを第１レベルのプログラムから第２レベルのプログラムに展開するステップと、
前記第２レベルのプログラムに記述された命令が前記アプリケーション特有作業固有の指令であれば、前記第６のデータベースから指令を取得するステップと、を含むことを特徴とするロボットの制御方法。
【請求項６】
制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとを利用して、
ロボットに所定の作業を行わせるロボットの制御装置において、
前記第１のデータベースから作業シーケンスを取得する第１の手段と、
前記取得した作業シーケンスを、一連の作業をまとめた作業シーケンスである第１レベルのプログラムからロボットを動作させる個々の指令である第２レベルのプログラムに展開する手段と、
前記第２レベルのプログラムに記述された命令が対象物体固有の動作指令か否かを判別し、
対象物体固有の動作指令であれば、前記第２のデータベースから動作指令を取得する手段と、を備えたことを特徴とするロボットの制御装置。
【請求項７】
前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとから少なくとも構成され、
前記第１の手段に代えて、
作業の属性に依存する固有作業の属性を前記動作指令の名前として設定する第２の手段を実行し、前記第３のデータベースを検索し、固有作業のデータベース中に該当する作業がなければ、前記第４のデータベースを検索する手段としたことを特徴とする請求項６記載のロボットの制御装置。
【請求項８】
前記第２の手段に代えて、
前記固有作業の属性に対応した階層を前記動作指令の名前として設定する手段としたことを特徴とする請求項７記載のロボットの制御装置。
【請求項９】
前記階層は、オペレーティング・システムが管理するディレクトリであることを特徴とする請求項８記載のロボットの制御装置。
【請求項１０】
制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとアプリケーション特有の作業内容を登録した第６のデータベースとを利用して、
ロボットに所定の作業を行わせるロボットの制御方法において、
前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとアプリケーション特有の作業シーケンスが登録された第５のデータベースとから少なくとも構成され、
前記第５データベースから前記アプリケーション特有作業のシーケンスを取得する手段と、
前記取得した作業シーケンスを第１レベルのプログラムから第２レベルのプログラムに展開する手段と、
前記第２レベルのプログラムに記述された命令が前記アプリケーション特有作業固有の指令であれば、前記第６のデータベースから指令を取得する手段と、を含むことを特徴とするロボットの制御装置。
【請求項１１】
制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとを利用して、
ロボットに所定の作業を行わせるロボットの制御プログラムであって、
前記第１のデータベースから作業シーケンスを取得する第１のステップと、
前記取得した作業シーケンスを、一連の作業をまとめた作業シーケンスである第１レベルのプログラムからロボットを動作させる個々の指令である第２レベルのプログラムに展開するステップと、
前記第２レベルのプログラムに記述された命令が対象物体固有の動作指令か否かを判別し、
対象物体固有の動作指令であれば、前記第２のデータベースから動作指令を取得するステップと、をコンピュータに実行させるためのロボットの制御プログラム。
【請求項１２】
前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとから少なくとも構成され、
前記第１のステップに代えて、
作業の属性に依存する固有作業の属性を前記動作指令の名前として設定する第２のステップを実行し、前記第３のデータベースを検索し、固有作業のデータベース中に該当する作業がなければ、前記第４のデータベースを検索するステップとしたことを特徴とする請求項１１記載のロボットの制御プログラム。
【請求項１３】
前記第２のステップに代えて、
前記固有作業の属性に対応した階層を前記動作指令の名前として設定するステップとしたことを特徴とする請求項１２記載のロボットの制御プログラム。
【請求項１４】
前記階層は、オペレーティング・システムが管理するディレクトリであることを特徴とする請求項１３記載のロボットの制御プログラム。
【請求項１５】
制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとアプリケーション特有の作業内容を登録した第６のデータベースとを利用して、
前記ロボットに所定の作業を行わせるロボットの制御方法において、
前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとアプリケーション特有の作業シーケンスが登録された第５のデータベースとから少なくとも構成され、
前記第５データベースから前記アプリケーション特有作業のシーケンスを取得するステップと、
前記取得した作業シーケンスを第１レベルのプログラムから第２レベルのプログラムに展開するステップと、
前記第２レベルのプログラムに記述された命令が前記アプリケーション特有作業固有の指令であれば、前記第６のデータベースから指令を取得するステップと、をコンピュータに実行させるためのロボットの制御プログラム。
【請求項１６】
請求項１１乃至１５いずれかに記載のロボットの制御プログラムを記憶したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラミングにより動作を教示するロボットの制御方法、制御装置、制御プログラムおよび記録媒体に関する。  
【背景技術】
【０００２】
従来のロボットは、パーソナルコンピュータなどのディスプレイ画面上に、プログラミングに必要な情報を階層的に分解して表示させるものもある（例えば、特許文献１参照）。    
また、ロボットの各部位を動作させる際に、部位毎に見出しコードと動作角度を示す角度コードを発生させ、両方を記憶させる。静止ポーズに名前を登録することにより、再現時に名前を表示させる。（例えば、特許文献２参照）。
図９は、機器数Ｍ＝２（例えば２台のロボット）、階層構造の階層数Ｎ＝４の条件で組立作業を行うロボットシステムを例にとり、作業計画のレベルから機器に適合したプログラム言語で表現された命令文群の作成のレベルに至る階層構造を概念的に示した図である。
図１０において、８０１は頭、８０２は首、８０３は胴体である。胴体は上部と下部とで別れており、８０４はそのつなぎ目である。８０６は腕、８０７は手である。８０８は脚のうち腿、８０９は脛、８１０は足首から先である。関節の位置は人間とほぼ同じである。また、関節部分の動きについても人間に準じている。
図１１において、ステップＳ１５０１では、先頭のコードを取り出す。ステップＳ１５２では、このコードに対応した名前があるか否か判別する。ステップＳ１５０３では、名前があれば名前を表示器に表示させる。ステップＳ１５０４では、部位と部位の角度を基に、動作を実行させる。ステップＳ１５０５で最後のコードの実行したか否かを判別し、最後のコードでなければ以上の動作を繰り返す。
このように、従来の制御装置では、ロボットの作業を作業毎に階層化して定義する手順がとられていた。また、ロボットの静止ポーズ名に対応したコードを取り出す手順がとられていた。
【特許文献１】特開平８−２４９０２６号公報（第１０−１７頁、図１）
【特許文献２】特開２００３−３３４７７９号公報（第５−８頁、図１５）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の制御方法では、ロボットの作業を作業毎に階層化して定義するという手順をとっているので、類型的な作業の再利用ができないという問題があった。また、ロボットの静止ポーズ名に対応したコードを取り出すような場合は、ポーズの属性（行動、対象、場所）に対応させてコードを取り出せないという問題もあった。
本発明はこのような問題点に鑑みてなされたものであり、ロボットの作業を階層化するとともに、作業の属性にしたがい作業手順を決定することができる方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、次のようにしたのである。
請求項１に記載の発明は、制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとを利用して、ロボットに所定の作業を行わせるロボットの制御方法において、前記第１のデータベースから作業シーケンスを取得する第１のステップと、前記取得した作業シーケンスを、一連の作業をまとめた作業シーケンスである第１レベルのプログラムからロボットを動作させる個々の指令である第２レベルのプログラムに展開するステップと、前記第２レベルのプログラムに記述された命令が対象物体固有の動作指令か否かを判別し、対象物体固有の動作指令であれば、前記第２のデータベースから動作指令を取得するステップと、を含むことを特徴とするものである。
請求項２に記載の発明は、前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとから少なくとも構成され、前記第１のステップに代えて、作業の属性に依存する固有作業の属性を前記動作指令の名前として設定する第２のステップを実行し、前記第３のデータベースを検索し、固有作業のデータベース中に該当する作業がなければ、前記第４のデータベースを検索するステップとしたことを特徴とするものである。
請求項３に記載の発明は、前記第２のステップに代えて、前記固有作業の属性に対応した階層を前記動作指令の名前として設定するステップとしたことを特徴とするものである。
請求項４に記載の発明は、前記階層は、オペレーティング・システムが管理するディレクトリであることを特徴とするものである。
請求項５に記載の発明は、制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとアプリケーション特有の作業内容を登録した第６のデータベースとを利用して、前記ロボットに所定の作業を行わせるロボットの制御方法において、前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとアプリケーション特有の作業シーケンスが登録された第５のデータベースとから少なくとも構成され、前記第５データベースから前記アプリケーション特有作業のシーケンスを取得するステップと、前記取得した作業シーケンスを第１レベルのプログラムから第２レベルのプログラムに展開するステップと、前記第２レベルのプログラムに記述された命令が前記アプリケーション特有作業固有の指令であれば、前記第６のデータベースから指令を取得するステップと、を含むことを特徴とするものである。
請求項６に記載の発明は、制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとを利用して、ロボットに所定の作業を行わせるロボットの制御装置において、前記第１のデータベースから作業シーケンスを取得する第１の手段と、前記取得した作業シーケンスを、一連の作業をまとめた作業シーケンスである第１レベルのプログラムからロボットを動作させる個々の指令である第２レベルのプログラムに展開する手段と、前記第２レベルのプログラムに記述された命令が対象物体固有の動作指令か否かを判別し、対象物体固有の動作指令であれば、前記第２のデータベースから動作指令を取得する手段と、を備えたことを特徴とするものである。
請求項７に記載の発明は、前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとから少なくとも構成され、前記第１の手段に代えて、作業の属性に依存する固有作業の属性を前記動作指令の名前として設定する第２の手段を実行し、前記第３のデータベースを検索し、固有作業のデータベース中に該当する作業がなければ、前記第４のデータベースを検索する手段としたことを特徴とするものである。
請求項８に記載の発明は、前記第２の手段に代えて、前記固有作業の属性に対応した階層を前記動作指令の名前として設定する手段としたことを特徴とするものである。
請求項９に記載の発明は、前記階層は、オペレーティング・システムが管理するディレクトリであることを特徴とするものである。
請求項１０に記載の発明は、制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとアプリケーション特有の作業内容を登録した第６のデータベースとを利用して、ロボットに所定の作業を行わせるロボットの制御方法において、前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとアプリケーション特有の作業シーケンスが登録された第５のデータベースとから少なくとも構成され、前記第５データベースから前記アプリケーション特有作業のシーケンスを取得する手段と、前記取得した作業シーケンスを第１レベルのプログラムから第２レベルのプログラムに展開する手段と、前記第２レベルのプログラムに記述された命令が前記アプリケーション特有作業固有の指令であれば、前記第６のデータベースから指令を取得する手段と、を含むことを特徴とするものである。
請求項１１に記載の発明は、制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとを利用して、
ロボットに所定の作業を行わせるロボットの制御プログラムであって、
前記第１のデータベースから作業シーケンスを取得する第１のステップと、
前記取得した作業シーケンスを、一連の作業をまとめた作業シーケンスである第１レベルのプログラムからロボットを動作させる個々の指令である第２レベルのプログラムに展開するステップと、
前記第２レベルのプログラムに記述された命令が対象物体固有の動作指令か否かを判別し、
対象物体固有の動作指令であれば、前記第２のデータベースから動作指令を取得するステップと、をコンピュータに実行させるためのものである。
請求項１２に記載の発明は、前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとから少なくとも構成され、
前記第１のステップに代えて、
作業の属性に依存する固有作業の属性を前記動作指令の名前として設定する第２のステップを実行し、前記第３のデータベースを検索し、固有作業のデータベース中に該当する作業がなければ、前記第４のデータベースを検索するステップとしたことを特徴とするものである。
請求項１３に記載の発明は、前記第２のステップに代えて、
前記固有作業の属性に対応した階層を前記動作指令の名前として設定するステップとしたことを特徴とするものである。
請求項１４に記載の発明は、前記階層は、オペレーティング・システムが管理するディレクトリであることを特徴とするものであるである。
請求項１５に記載の発明は、制御装置に設けられた記憶装置に記憶されている、作業シーケンスが登録された第１のデータベースと対象物体に固有の動作を登録した第２のデータベースとアプリケーション特有の作業内容を登録した第６のデータベースとを利用して、前記ロボットに所定の作業を行わせるロボットの制御方法において、前記第１のデータベースは、作業の属性に依存する固有作業が登録された第３のデータベースと作業の属性に依存しない共通作業が登録された第４のデータベースとアプリケーション特有の作業シーケンスが登録された第５のデータベースとから少なくとも構成され、前記第５データベースから前記アプリケーション特有作業のシーケンスを取得するステップと、前記取得した作業シーケンスを第１レベルのプログラムから第２レベルのプログラムに展開するステップと、前記第２レベルのプログラムに記述された命令が前記アプリケーション特有作業固有の指令であれば、前記第６のデータベースから指令を取得するステップと、をコンピュータに実行させるためのものである。
請求項１６に記載の発明は、請求項１１乃至１５いずれかに記載のロボットの制御プログラムを記憶したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【０００５】
請求項１、６、１１、１６に記載の発明によると、作業シーケンスのデータベースから状況に応じて必要な作業をユーザが組合せ、対象物体ごとのデータベースを設定すると、実行時に一連の作業手順と動作を生成できるため、同様の作業への再構成が容易になり、教示作業が簡素化できる。
また、請求項２、７、１２、１６に記載の発明によると、作業シーケンス検索時に作業の属性に依存するか否かを判定する手順をとるので、作業の属性に依存しない共通作業のデータベースを利用することができ、作業シーケンスの再利用性を向上し、教示作業が簡素化できる。
また、請求項３、４、８、９、１３、１４、１６に記載の発明によると、固有作業の属性に対応した階層を設定するため、
同じ属性の作業を再利用する際に、属性にしたがい固有作業のデータベース上の階層をたどって作業シーケンスを選ぶことができ、作業シーケンスの再利用性を向上し、教示作業が簡素化できる。
また、請求項５、１０、１５、１６に記載の発明によると、アプリケーション特有の作業シーケンスを部品化する手順をとるので、アプリケーション特有の作業シーケンスについても、作業シーケンスのデータベースから状況に応じて必要な作業をユーザが設定し、対象物体ごとのデータベースを設定すると、実行時に一連の作業手順と動作を生成できるため、アプリケーション上の同様の作業への再構成が容易になり、教示作業が簡素化できる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００７】
図１は、本発明の方法を適用するロボット装置に用いられるデータベースの構成を示す図である。
図において、１０１は作業シーケンスのデータベース（第１のデータベース）である。図は、一例として、対象物体を持ち上げる作業の作業シーケンスについて展開する様子を示している。作業シーケンスのデータベースには、「対象物体前移動」、「対象物体に寄付き」、「対象物体を把持」、「対象物体を持ち上げ」等の動作単位となる作業、すなわち、作業シーケンス１０２が登録されている。作業シーケンスのデータベース１０１は、作業の属性（例えば、「行動」「対象」「場所」等であるが、詳細は後述する。）分の作業シーケンス群がＯＳ（オペレーティング・システム）上でファイルとして蓄積され、ＯＳ上でウィンドウによりユーザに提示される。また、作業シーケンス１０２はＯＳ上でアイコンによりユーザに提示される。
１０３は対象物体ごとのデータベース（第２データベース）であり、このデータベースも作業の属性分の種類がある。対象物体ごとのデータベース１０３は、ＯＳ上で表計算ソフトなどにより行・列が区分され各セル内に動作指令１０４を持つ。対象物体ごとのデータベース１０３の記述例は後述する。
なお、ロボットとこれを制御する制御装置は図示していない。また、上記各データベースは、制御装置に設けられた記憶装置に記憶されているものである。
【０００８】
図２はロボット装置において作業を実行する処理手順を示すフローチャートである。図1と図２を用いて本発明の方法を順を追って説明する。
はじめに、ステップ２０１で作業シーケンスのデータベース１０１から必要な作業シーケンス群１０２を取得する。どの作業シーケンスを取得するか予め第１レベルのプログラムとして記述しておく。
次にステップ２０２で、いわゆるサブルーチンを呼び出す方法により前記作業シーケンスを一連の作業群をまとめた作業シーケンスである第１レベルのプログラムからロボットを動作させる個々の指令である第２レベルのプログラムに展開する。第２レベルのプログラムには、ロボットの動作指令が記述されている。
ステップ２０３で対象物体固有の動作指令か否かを識別子を用いて判別する。図１の例ではこの識別子は”#!insert!”である。この識別子で行が始まる場合に対象物固有の動作指令であるとしている。
対象物体固有の動作指令でなければステップ２０６で作業を実行する。対象物体固有の動作指令であれば、ステップ２０４で対象物体ごとのデータベース１０３から動作指令１０４を取得する。
ここで、対象物体ごとのデータベース１０３の例を表１に示す。
【表１】
2008114353.tif 000003
【０００９】
ステップ２０４で、対象物体ごとのデータベース１０３から動作指令１０４を取得する方法は以下のとおりである。表１に示すように、対象物体ごとのデータベースには、動作パラメータの行と、その下の行に識別子につづくラベル名と、動作パラメータに対応する動作指令１０４が記述されている。ユーザは必要に応じてラベル名や動作パラメータを追加できる。予め動作パラメータを”right”などと設定しておき、動作パラメータ”right”と、識別子につづくラベル”go_back”により、動作指令１０４である”vcl MOVL -350 -215 0 200 35”を取得する。各動作パラメータは、オブジェクト指向言語（例えば、Ｃ＋＋）により、構造体または関数を含むクラスとして定義されていることが好ましい。ステップ２０５で作業データを編集する。具体的にはこのラベル”#!insert!go_back”の行を動作指令１０４である” vcl MOVL -350 -215 0 200 35”に置換する。作業データの編集後、ステップ２０６で作業を実行する。
【００１０】
このように、作業シーケンスのデータベースから状況に応じて必要な作業をユーザが組合せ、対象物体ごとのデータベースを設定すると、実行時に一連の作業手順と動作を生成できるため、同様の作業への再構成が容易になり、教示作業が簡素化できるのである。
【実施例２】
【００１１】
図３は第２実施例のデータベースの構成を示す図である。図１と同一のものは同符号を用いている。図において３０１は作業の属性に依存する固有作業のデータベース（第３のデータベース）、３０２は作業の属性に依存しない共通作業のデータベース（第４のデータベース）である。「作業の属性に依存する固有作業」とは、例えば対象物体前移動のような作業であり、作業の属性に依存しない共通作業とは、例えば、物体認識のような作業である。それぞれＯＳ上にディレクトリとして存在する。「作業の属性」には例えば「行動」「対象」「場所」などが挙げられる。「行動」の種類には例えば「取得」「設置」が挙げられる。「対象」の種類には例えば「ブロック」「トレイ」が挙げられる。「場所」の種類には「棚」「テーブル」が挙げられる。もちろん作業の属性の種類や属性の内容は、挙げた例以外でもよく、限定されるものではない。固有作業のデータベース３０１には、「棚」の上の「ブロック」「取得」に固有な「対象物体前移動」などの作業シーケンスが”get_block_shelf”などの名前のディレクトリに格納されている。共通作業のデータベース３０２には、「対象物体に寄り付き」「物体を認識」などの作業シーケンスが格納されている。
【００１２】
図４は第２実施例の処理手順を示すフローチャートである。図２と同一のステップは同符号を用いている。実施例１の作業シーケンスのデータベースから前記作業シーケンスを取得する処理２０１の代わりに以下の処理を加える。ステップ４０１で作業の属性に依存する固有作業の属性を設定する。たとえば作業が“「棚」の上の「ブロック」「取得」”であれば”get_block_shelf”のように設定する。ステップ４０２で作業の属性に依存する固有作業のデータベースであるディレクトリ“get_block_shelf”を検索し、固有作業のデータベース中に該当する作業がなければ、作業の属性に依存しない共通作業のデータベースを検索する。作業を検索した後は、実施例１と同じ流れであるため説明を省略する。
【００１３】
このように、作業シーケンス検索時に作業の属性に依存するか否かを判定する手順をとるので、作業の属性に依存しない共通作業のデータベースを利用することができ、作業シーケンスの再利用性を向上し、教示作業が簡素化できる。
【実施例３】
【００１４】
図５は第３実施例のデータベースの構成を示す図である。図において５０１は固有作業の属性に対応した階層を示す。この階層はＯＳ上で実際にディレクトリとして存在する。例えば最上層を「行動」の層として「取得」「設置」のディレクトリを設定する。各「行動」ディレクトリの下に中間層として「対象」のディレクトリである「ブロック」「トレイ」を設定する。さらに「対象」ディレクトリの下に最下層として「場所」のディレクトリである「棚」「テーブル」を設定する。これらのディレクトリ構造は、ファイラーと呼ばれるファイル処理ソフトにより、ユーザに対し視覚的に提示される。そして最下層のディレクトリには、各属性に固有な作業シーケンスがアイコンの形で格納されている。ユーザは、目的の作業の属性に基づいてディレクトリをたどり、作業シーケンスのアイコンをプログラミングのための領域にドラッグすることにより、作業を組み立てることができる。
【００１５】
図６は第３実施例の処理手順を示すフローチャートである。第２の実施例における作業の属性に依存する固有作業の属性を設定する処理４０１の代わりに、前記固有作業の属性に対応した階層を設定する処理６０１を加える。
【００１６】
このように、固有作業の属性に対応した階層を設定する手順をとるので、同じ属性の作業を再利用する際に、属性にしたがい固有作業のデータベース上の階層をたどって作業シーケンスを選ぶことができるため、作業シーケンスの再利用性を向上し、教示作業が簡素化できる。
【実施例４】
【００１７】
図７は第４実施例のデータベースの構成を示す図である。図において７０１はアプリケーション特有作業シーケンスのデータベース（第５のデータベース）である。これまでの実施例では、アプリケーションに依存しない汎用的なデータベースを想定し、アプリケーションを超えた作業の再利用性を目指すものであった。本実施例では、あるアプリケーション内での作業の再利用を考える。アプリケーションの例として、ロボットが客から注文を受けて飲食物を取得し、配膳する作業を取り上げる。もちろん他のアプリケーションに対しても同じ考え方で個々に拡張できる。アプリケーション特有作業とは、図７の例では動作以外にアプリケーション特有の発話などを含む作業が挙げられる。逆にこれまでの固有作業のデータベース３０１などに発話などを含んでいてもよく、前述したように、対象物体ごとのデータベース１０３のパラメータ行に発話に関するパラメータを設定すればよい。７０２はアプリケーション特有作業のシーケンス、７０３はアプリケーション特有作業内容のデータベース（第６のデータベース）、７０４は指令である。
【００１８】
図８は第４実施例の処理手順を示すフローチャートである。はじめにステップ８０１で、作業シーケンスのデータベース１０１におけるアプリケーション特有作業シーケンスのデータベース７０１からアプリケーション特有作業のシーケンス７０２を取得する。次にステップ８０２で、作業シーケンス７０２を上層から展開する。ステップ８０３の分岐処理で、アプリケーション特有作業で固有の指令であれば、ステップ８０４に進む。ステップ８０４で、アプリケーション特有作業内容のデータベースから指令を取得し、ステップ８０５で作業データを編集し、ステップ８０６で作業を実行するという手順で処理する。ステップ８０５における作業データの編集方法は概ね実施例１と同じである。図では、楕円で囲んだ発話部分に関し「お会計は“<price>”円です。」となっている。文章中の“<price>”は、注文内容に応じて置換される。図示していないが、他にも注文確認「ご注文は<object>ですね？」などにも適用できる。
【００１９】
このように、アプリケーション特有の作業シーケンスを部品化する手順をとるので、アプリケーション特有の作業シーケンスについても、作業シーケンスのデータベースから状況に応じて必要な作業をユーザが設定し、対象物体ごとのデータベースを設定すると、実行時に一連の作業手順と動作を生成できるため、アプリケーション上の同様の作業への再構成が容易になり、教示作業が簡素化できる。
なお、上記制御方法は、ロボットの制御プログラムとして提供されるものである。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の方法を適用するロボット装置に用いられるデータベースの構成を示す図
【図２】本発明の第１の方法の処理手順を示すフローチャート
【図３】本発明の第２の方法を適用するロボット装置に用いられるデータベースの構成を示す図
【図４】本発明の第２の方法の処理手順を示すフローチャート
【図５】本発明の第３の方法を適用するロボット装置に用いられるデータベースの構成を示す図
【図６】本発明の第３の方法の処理手順を示すフローチャート
【図７】本発明の第４の方法を適用するロボット装置に用いられるデータベースの構成を示す図
【図８】本発明の第４の方法の処理手順を示すフローチャート
【図９】従来の方法のプログラミング情報を示す図
【図１０】従来の方法を適用したロボット装置の構成を示す正面図
【図１１】従来の方法の処理手順を示すフローチャート
【符号の説明】
【００２１】
１０１  作業シーケンスのデータベース（第１のデータベース）
１０２  作業シーケンス
１０３  対象物体ごとのデータベース（第２データベース）
１０４  動作指令
３０１  固有作業のデータベース（第３のデータベース）
３０２  共通作業のデータベース（第４のデータベース）
５０１  固有作業の属性に対応した階層
７０１  アプリケーション特有作業シーケンスのデータベース（第５のデータベース）
７０２  アプリケーション特有作業のシーケンス
７０３  アプリケーション特有作業内容のデータベース（第６のデータベース）
７０４  指令
【図１】
2008114353.tif 000004
【図２】
2008114353.tif 000005
【図３】
2008114353.tif 000006
【図４】
2008114353.tif 000007
【図５】
2008114353.tif 000008
【図６】
2008114353.tif 000009
【図７】
2008114353.tif 000010
【図８】
2008114353.tif 000011
【図９】
2008114353.tif 000012
【図１０】
2008114353.tif 000013
【図１１】
2008114353.tif 000014