(57)【要約】【課題】ロボット動作編集システムにおいて、ロボット実機による検証を省略して効率向上を図ること。【解決手段】ロボット動作編集システムは、モーション入力部、データ形式変換部、モーション編集部、ロボット用データ生成部を備える。ロボット用データ生成部は、モーション編集部で制作された動作データに対する関節構造変換処理部と、関節構造変換処理部から出力されるデータを平滑化処理する平滑化処理部と、平滑化処理部から出力されるデータを用いてロボットの駆動回路の挙動を検証する駆動回路検証部とを備え、ロボットを動作させるための動作データの連続性を保つように処理する機能と、ロボットの駆動回路における駆動電流が許容範囲内に収まるようにデータを変換する機能とを有する。【選択図】図２
2007125645.tif 000002
【特許請求の範囲】
【請求項１】
外部から人間の動作あるいは人間の動作に類似した動作データを取り込むモーション入力部と、
前記モーション入力部で取り込んだ動作データの形式を変換するデータ形式変換部と、
前記データ形式変換部で形式を変換された動作データを編集して新しい動作データを制作するモーション編集部と、
前記モーション編集部で制作された動作データに基づいてロボット用データを生成してロボットに所定の形式の動作データを出力するロボット用データ生成部とを備える、コンピュータによるロボット動作編集システムであって、
前記ロボット用データ生成部は、
前記モーション編集部で制作された動作データに対する関節構造変換処理部と、前記関節構造変換処理部から出力されるデータを平滑化処理する平滑化処理部と、前記平滑化処理部から出力されるデータを用いてロボットの駆動回路の挙動を検証する駆動回路検証部と、を備え、
ロボットを動作させるための動作データの連続性を保つように処理する機能と、ロボットの駆動回路における駆動電流が許容範囲内に収まるようにデータを変換する機能とを有すること、
を特徴とするロボット動作編集システム。
【請求項２】
請求項１記載のロボット動作編集システムにおいて、
前記ロボット用データ生成部から出力される動作データは、所定時間ごとの、ロボットのアーム部関節およびヘッド部関節における関節角度、角速度および角加速度と、移動上における座標、方位、速度、加速度および躍度の目標値と、を時系列に記述したものであること、
を特徴とするロボット動作編集システム。
【請求項３】
請求項２記載のロボット動作編集システムにおいて、
前記アーム部関節の関節角度、角速度および角加速度は、前記平滑化処理部において角速度および角加速度を平滑化処理して関節角度の目標値を補正したものであること、
を特徴とするロボット動作編集システム。
【請求項４】
請求項２記載のロボット動作編集システムにおいて、
前記移動上の座標、方位、速度、加速度および躍度の目標値は、指定時刻と前記指定時刻におけるロボットの座標を記述したファイルを基に補間処理によりデータ生成されること、
を特徴とするロボット動作編集システム。
【請求項５】
請求項１から４の何れか記載のロボット動作編集システムにおいて、
前記ロボット用データ生成部で処理された動作データをロボットの関節の回転角度を時系列に記述した形式でロボットに出力すること、
を特徴とするロボット動作編集システム。
【請求項６】
請求項５記載のロボット動作編集システムにおいて、
前記ロボットの関節の回転角度を時系列に記述した形式で出力した動作データを前記モーション編集部で確認すること、
を特徴とするロボット動作編集システム。
【請求項７】
請求項１記載のロボット動作編集システムにおいて、
前記モーション入力部はモーションキャプチャにより人間の動作を取り込むこと、
を特徴とするロボット動作編集システム。
【請求項８】
請求項１記載のロボット動作編集システムにおいて、
前記モーション入力部は人型のデバイスにフレームごとのポーズを形作って連続する動作データを生成すること、
を特徴とするロボット動作編集システム。
【請求項９】
請求項７記載のロボット動作編集システムにおいて、
前記データ形式変換部は前記モーションキャプチャのデータをマーカの３次元座標配列を記述したデータに変換すること、
を特徴とするロボット動作編集システム。
【請求項１０】
請求項８記載のロボット動作編集システムにおいて、
前記データ形式変換部は人型のデバイスで取り込んだ一連のポーズデータを関節角度の時系列データに変換すること、
を特徴とするロボット動作編集システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット動作編集システムに係り、特に、外部から取り込んだ動作データをロボットに適用できる形式に編集、処理、出力するロボット動作編集システムに好適なものである。
【背景技術】
【０００２】
最近になって、ロボットの開発が急速に進み、幅広い分野での応用が期待されている。特に、「ヒューマノイドタイプ」という名称で分類されるロボットは、人間との共生を目的として、日常生活のさまざまな場面で、人間の行動を支援するための開発が精力的に進められている。
【０００３】
人間との共生においては、人とロボットとの間のコミュニケーションが重要な要素となる。ここで、コミュニケーションとは、音声認識、音声合成などの技術による言語のコミュニケーションだけでなく、ボディーランゲージなどによる、非言語コミュニケーションを含む。このような高度なコミュニケーションを実現するためには、腕や頭などのボディパーツの動作によるニュアンスの表現が要求される。また、腕や頭の繊細な動きを、ロボットに円滑に実行させるためには、各パーツを駆動するアクチュエータを制御モジュールに対する、関節角度、角速度および角加速度の指令値（目標値）が連続であり、かつ、アクチュエータの駆動電流の許容範囲内に収まる必要がある。従来の一般的なロボットの単純な動作では、上述した高度な非言語コミュニケーションをとることが困難であった。
【０００４】
そこで、脚式移動ロボットのための動作編集装置として、特開２００３−２６６３４７号公報（特許文献１）に開示された技術が提案されている。この特許文献１には、コンピュータ画面上にロボットのＣＧモデルを表示して、滑らかな動作を編集する装置が開示されている。この動作編集装置では、運動学に基づくシミュレーションにより、関節角度、角速度、角加速度の連続性の確保が実現されている。
【０００５】
また、ロボット装置のためのモーション編集装置として、特開２００４−１４４８４９２号公報（特許文献２）に開示された技術が提案されている。この特許文献２には、コンピュータ上で編集したロボットの動作を、ロボット本体を動かして確認して、編集システムにフィードバックする技術が開示されている。
【０００６】
【特許文献１】特開２００３−２６６３４７号公報
【特許文献２】特開２００４−１４８４９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１の動作編集装置では、アクチュエータ駆動回路系の電流の許容範囲を考慮した動作編集は実現されていない。また、特許文献２のモーション編集装置では、編集するたびに、ロボット本体に動作のデータを入力して確認しなければならず、ロボット動作の編集や修正作業が不便であった。
【０００８】
したがって、ロボットの動作データの効率的な開発には、運動学に基づくシミュレーションとともに、アクチュエータ駆動系のモデルによる回路シミュレータを実装した編集システムの開発が必要となる。特に、入力したモーションをリアルタイムで処理して、ロボットに実行させるような場合には、上述した運動学のシミュレーションと駆動回路シミュレーションの連携が必要であるが、これまで、このようなことに配慮がなされていなかった。
【０００９】
本発明の目的は、ロボット実機による検証を省略して効率向上を図ることができるロボット動作編集システムを提供することにある。
【課題を解決するための手段】
【００１０】
前述の目的を達成するために、本発明は、外部から人間の動作あるいは人間の動作に類似した動作データを取り込むモーション入力部と、前記モーション入力部で取り込んだ動作データの形式を変換するデータ形式変換部と、前記データ形式変換部で形式を変換された動作データを編集して新しい動作データを制作するモーション編集部と、前記モーション編集部で制作された動作データに基づいてロボット用データを生成してロボットに所定の形式の動作データを出力するロボット用データ生成部とを備える、コンピュータによるロボット動作編集システムであって、前記ロボット用データ生成部は、前記モーション編集部で制作された動作データに対する関節構造変換処理部と、前記関節構造変換処理部から出力されるデータを平滑化処理する平滑化処理部と、前記平滑化処理部から出力されるデータを用いてロボットの駆動回路の挙動を検証する駆動回路検証部と、を備え、ロボットを動作させるための動作データの連続性を保つように処理する機能と、ロボットの駆動回路における駆動電流が許容範囲内に収まるようにデータを変換する機能とを有する構成にしたことにある。
【００１１】
係る本発明のより好ましい具体的な構成例は次の通りである。
（１）前記ロボット用データ生成部から出力される動作データは、所定時間ごとの、ロボットのアーム部関節およびヘッド部関節における関節角度、角速度および角加速度と、移動上における座標、方位、速度、加速度および躍度の目標値と、を時系列に記述したものであること。
（２）前記アーム部関節の関節角度、角速度および角加速度は、前記平滑化処理部において角速度および角加速度を平滑化処理して関節角度の目標値を補正したものであること。
（３）前記移動上の座標、方位、速度、加速度および躍度の目標値は、指定時刻と前記指定時刻におけるロボットの座標を記述したファイルを基に補間処理によりデータ生成されること。
（４）前記ロボット用データ生成部で処理された動作データをロボットの関節の回転角度を時系列に記述した形式でロボットに出力すること。
（５）前記ロボットの関節の回転角度を時系列に記述した形式で出力した動作データを前記モーション編集部で確認すること。
（６）前記モーション入力部はモーションキャプチャにより人間の動作を取り込むこと。
（７）前記モーション入力部は人型のデバイスにフレームごとのポーズを形作って連続する動作データを生成すること。
（８）前記データ形式変換部は前記モーションキャプチャのデータをマーカの３次元座標配列を記述したデータに変換すること。
（９）前記データ形式変換部は人型のデバイスで取り込んだ一連のポーズデータを関節角度の時系列データに変換すること。
【発明の効果】
【００１２】
本発明のロボット動作編集システムによれば、コンピュータ上で動作編集、シミュレーションおよび動作データ生成までを自動的に行ってロボット実機による検証を省略することができ、これによって効率向上を図ることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施形態のロボット動作編集システムについて図１から図９を用いて説明する。
【００１４】
まず、本実施形態のロボット動作編集システム１の全体に関して図１を参照しながら説明する。図１は本実施形態に係るロボット動作編集システム１の構成図である。
【００１５】
ロボット動作編集システム１は、外部から人間の動作あるいは人間の動作に類似した動作データを取り込むモーション入力部１３と、モーション入力部１３で取り込んだ動作データの形式を変換するデータ形式変換部１４と、データ形式変換部１４で形式を変換された動作データを編集して新しい動作データを制作するモーション編集部１１と、モーション編集部１１で制作された動作データに基づいてロボット用データを生成してロボットに所定の形式の動作データを出力するロボット用データ生成部１２とを備え、コンピュータにより構成されている。ロボット用データ生成部１２には、アームデータ生成部１２１、移動データ生成部１２２およびヘッドデータ生成部１２３が備えられている。
【００１６】
モーション入力部１３は人型のデバイスにフレームごとのポーズを形作って連続する動作データを生成するようになっている。データ形式変換部１４はモーションキャプチャのデータをマーカの３次元座標配列を記述したデータに変換するようになっている。このデータ形式変換部１４は人型のデバイスで取り込んだ一連のポーズデータを関節角度の時系列データに変換するようになっている。
【００１７】
また、ロボット用データ生成部１２３は、図１に示していないが、モーション編集部１１で制作された動作データに対する関節構造変換処理部と、この関節構造変換処理部から出力されるデータを平滑化処理する平滑化処理部と、この平滑化処理部から出力されるデータを用いてロボットの駆動回路の挙動を検証する駆動回路検証部と、を備えて構成されている。
【００１８】
さらに、ロボット用データ生成部１２３は、ロボットを動作させるための動作データの連続性を保つように処理する機能と、ロボットの駆動回路における駆動電流が許容範囲内に収まるようにデータを変換する機能とを有している。
【００１９】
ロボット用データ生成部１２から出力される動作データは、所定時間ごとの、ロボットのアーム部関節およびヘッド部関節における関節角度、角速度および角加速度と、移動上における座標、方位、速度、加速度および躍度の目標値と、を時系列に記述したものである。アーム部関節の関節角度、角速度および角加速度は、平滑化処理部において角速度および角加速度を平滑化処理して関節角度の目標値を補正したものである。移動上の座標、方位、速度、加速度および躍度の目標値は、指定時刻と前記指定時刻におけるロボットの座標を記述したファイルを基に補間処理によりデータ生成される。ロボット用データ生成部１２で処理された動作データとしてロボットの関節の回転角度を時系列に記述した形式でロボットに出力するようになっており、このロボットの関節の回転角度を時系列に記述した形式で出力した動作データをモーション編集部１１で確認するようになっている。
【００２０】
ロボット動作編集システム１では、まず、コンピュータの中で処理できるように、人間の動作などのデータをモーション入力部１３により取り込む。モーション入力部１３に取り込まれた動作データは、データ形式変換部１４により動作データの書式（形式）が変換された後、モーション編集部１１により一連の動作のつなぎやポーズの修正などの編集作業が施される。モーション編集部１１で編集された動作データは、ロボット用データ生成部１２によりロボット２に動作を実行させるための新たな動作データに生成される。この新たな動作データは、ロボット用データ生成部１２内に備えられたアームデータ生成部１２１、移動データ生成部１２２およびヘッドデータ生成部１２３により、ロボット２のパーツ毎に分解されて運動学シミュレーションで補正される。上述の手順により生成されたロボット用動作データは、ロボット２に入力される。ロボット２は、このデータに基づいて、動作を実行する。
【００２１】
上述した構成によって、ロボットが高度な非言語コミュニケーションをとることを可能としつつ、ロボット動作の編集からシミュレーションおよび動作確認までの全ての作業をコンピュータ上で可能にするとともにロボット動作の作業効率を向上することができる。
【００２２】
次に、本実施形態におけるロボット動作編集システム１の動作データの具体的処理に関して図２を参照しながら説明する。図２は本実施形態に係るロボット動作編集システム１の動作データ処理フローを示す図である。
【００２３】
図１のモーション入力部１３に該当する部分は、図２におけるモーションキャプチャ１３ａおよびモーション入力デバイス１３ｂである。モーションキャプチャ１３ａは、人間の動作をカメラで撮影して、コンピュータ内で処理できるデータに変換するシステムである。モーション入力デバイス１３ｂは、例えば、人形などに取らせたポーズを逐次取り込んで、一連の動作をコンピュータ上で生成する装置である。これらのデータは、データ形式変換部１４において、それぞれ、Ｃ３Ｄ形式のマーカ座標データ１４ａおよびＢＶＨ形式の関節角度データ１４ｂに変換された後、アニメーションエディタ１１に入力される。
【００２４】
アニメーションエディタ１１は、図１におけるモーション編集部１１に該当する。アニメーションエディタ１１では、ＣＧモデルにマーカ座標データ１４ａまたは関節角度データ１４ｂを割り付けて、コンピュータの画面上で、ロボット動作の編集作業や補正作業をする。ＣＧモデルは、ＣＧ制作ソフト１５において、あらかじめ編集される。制作されたＣＧモデルは、ＣＧデータ１１ｂとして出力され、アニメーションエディタ１１に読み込まれる。
【００２５】
上述した手順により編集されたＣＧモデルの動作データは、関節角度データ１１ａとして出力される。この関節角度データ１１ａは、例えば、ＢＶＨ形式の車輪位置、スイング角、関節角度などを含む。
【００２６】
出力された関節角度データ１１ａをロボットが実行できるように変換するため、図１に示すロボット用データ生成部１２において、関節角度データ１１ａを処理する。
【００２７】
アニメーションエディタ１１から出力された関節角度データ１１ａには、アームの関節に関する角速度および角加速度の指令値が含まれていない。そこで、アームシミュレータ１２１において、関節角度データ１１ａからアームの関節に関する角速度および角加速度のデータを生成する。
【００２８】
また、移動に関する動作データについては、速度指示データファイル１２ｂのデータに基づいて、移動に関する動作データの速度および加速度のデータを生成する。即ち、速度指示データファイル１２ｂにより、あらかじめ、速度、加速度、座標などの目標値を指定しておき、これらのデータと関節角度データ１１ａとのタイミングを読み出し速度調整・補間処理１２ａで調整し、速度指示データファイル１２ｂからのデータに基づいて、速度生成処理１２ｅで移動シミュレータ１２２のための速度目標値、加速度目標値を設定したり、位置変換処理１２ｄで移動系のために原点座標を変換したりする。
【００２９】
さらに、アームの動作については、ＣＧモデルの関節構造からロボットの関節構造への変換処理１２ｃを施す。アームの動作では、アームの自重を考慮する必要があるため、重力補償処理１２ｆでデータを処理する。その後、アームシミュレータ１２１において、ロボットが関節角度データ１１ａに基づく動作を実行するときの、アームの関節角度、速度指令値、加速度指令値を求めて、ロボット用動作データ１２ｋに出力する。ヘッドシミュレータ１２３についても、同様にしてヘッド動作の関節角度、角速度、角加速度の指令値を求めて、ロボット用動作データ１２ｋに出力する。
【００３０】
同様にして、移動シミュレータ１２２においても、座標、速度、加速度の目標値を元に、ロボットの移動をシミュレーションして、それぞれのパラメータの指令値を求める。これらのパラメータも同様に、ロボット用動作データ１２ｋに出力される。
【００３１】
アームシミュレータ１２１および移動シミュレータ１２２から出力されたこれらの動作データは、ロボット用動作データ１２ｋとしてロボット２に入力される前に、間引き処理１２ｉによりロボット２側での読み出しタイミングに変換される。このとき、必要に応じて、補助動作データファイル１２Ｌに格納された他のロボットや障害物の座標データを同時に、ロボットに入力するようにしてもよい。
【００３２】
アームシミュレータ１２１および移動シミュレータ１２２から出力されたデータは、関節逆変換処理１２ｇおよび位置逆変換処理１２ｈにより関節角度データ１２ｊに変換される。関節角度データ１２ｊは、例えば、ＢＶＨ形式の車輪位置、スイング角、関節角度などである。この関節角度はＣＧ用回転順序での角度である。この関節角度データ１２ｊはアニメーションエディタ１１で読み込まれ、アームシミュレータ１２１および移動シミュレータ１２２の結果をコンピュータ画面上で視覚的に確認できる。
【００３３】
上述した、編集、生成、確認の作業を繰り返して、適切なロボット用動作データ１２ｋを最終的に出力する。また、ロボット用動作データ１２ｋを、高精度動力学シミュレータ３で解析することにより、より精度の高いロボット用動作データ１２ｋとして出力するようにしてもよい。
【００３４】
次に、図３および図４を参照しながら、アームシミュレータ１２１の具体的な構成及び処理動作に関して説明する。
【００３５】
図３（ａ）は図２におけるアームシミュレータ１２１の計算手順をブロック線図で記した図である。アームシミュレータ１２１は、フレームごとに、関節角度指令値まで関節を動作させるために必要となる角速度および角加速度を算出し、角速度および角加速度に対して、リミッタ処理（速度リミッタ処理１２１ａ、角速度リミッタ処理１２１ｂおよび角度リミッタ処理１２１ｃ）を施すことにより、データが不連続になることを防いでいる。
【００３６】
図３（ｂ）はアームシミュレータ１２１における関節角度の上限値および下限値に対する角速度の拘束条件を説明する図である。
【００３７】
関節角度の上限値および下限値近傍の関節角度θにおける角速度ωは、次の式（１）および式（２）で与えられる。
ω＝ωmax×sqrt{ α×(θmax−θ) }        （１）
ω＝ωmin×sqrt{ α×(θ−θmin) }        （２）
これらの拘束条件により、アームを駆動するモータの制御への負担を軽減できる。ここで、ωmaxおよびωminは、それぞれ角速度の上限値または下限値である。θmaxおよびθminは、それぞれ関節角度の上限値および下限値である。αは減衰係数であり、一定の定数である。なお、ωhigh＝sqrt{ 2α×(θmax−θ) }、ωlow＝sqrt{ 2α×(θ−θmin) }、α：減速レート（＜αmax）である。
【００３８】
図４は図３のアームシミュレータ１２１の計算手順をフローチャートとして表した図である。アームシミュレータ１２１の計算手順はフレームｉ＝０番目から開始し（ステップＳ１）、まず、関節角度の指令値θRefを読み込み（ステップＳ２）、現在の関節角度θActとの差分Δθを求める（ステップＳ３）。次いで、差分Δθから、角速度指令値ωRefを求める（ステップＳ４）。
【００３９】
次いで、ステップＳ４で求められた角速度指令値ωRefが許容範囲を逸脱しているかを判定する（ステップＳ５）。ここで、ステップＳ４で求められた角速度指令値ωRefが許容範囲を逸脱していない場合には、求められた角速度指令値ωRefを角速度指令値として適用する（ステップＳ６）。一方、ステップＳ４で求められた角速度指令値が許容範囲を逸脱している場合には、角速度の上限値ωmaxおよび下限値ωminで制約をかける処理を施して角速度指令値として適用する（ステップＳ７）。このとき、図３（ｂ）に示してある関節角度と角速度との拘束関係を角速度指令値ωRefに対して適用する。
【００４０】
次いで、ステップＳ６またはステップＳ７で適用された角速度指令値ωRefと現在の角速度ωActとの差分Δωを求め（ステップＳ８）、この差分Δωから角加速度指令値βRefを求める（ステップＳ９）。
【００４１】
次いで、ステップＳ９で求められた角加速度指令値βRefが許容範囲を逸脱しているかを判定する（ステップＳ１０）。ここで、ステップＳ９で求められた角加速度指令値βRefが許容範囲を逸脱していない場合には、求められた角加速度指令値βRefを角加速度指令値として適用する（ステップＳ１１）。一方、ステップＳ９で求められた角加速度指令値βRefが許容範囲を逸脱している場合には、角加速度の上限値ωmaxおよび下限値ωminで制約をかける処理を施して角加速度指令値として適用する（ステップＳ１２）。
【００４２】
ステップＳ１１またはステップＳ１２で適用された角加速度指令値βRefは、ファイルに出力される（ステップＳ１３）とともに、フレームレートとかけることにより角速度指令値ωActを求める（ステップＳ１４）。角速度指令値ωActをロボット用動作データファイル１２ｋに出力する（ステップＳ１５）とともに、関節角度の指令値θActを計算し（ステップＳ１６）、関節角度の指令値θActを新しい関節角度としてロボット用動作データファイル１２ｋに出力する（ステップＳ１７）。
【００４３】
そして、フレームの順番が何番目かを判定し（ステップＳ１８）、フレームの順番が最終のｎ番目になるまで、上述した手順を各フレームに対して実行することにより、アーム動作のシミュレーションが実行される。これらのシミュレーション結果がロボット用動作データ１２ｋに出力される。
【００４４】
次に、図５を参照しながら、アームシミュレータ１２１による処理の前後における関節角度、角速度および角加速度の様子について説明する。図５（ａ）は本実施形態のアームシミュレータ１２１による処理を施す前の関節角度、角速度および角加速度の様子を示すグラフ、図５（ｂ）は本実施形態のアームシミュレータ１２１による処理を施す前の関節角度、角速度および角加速度の様子を示すグラフである。
【００４５】
図５（ａ）に示すシミュレーション前のグラフにおいて、角加速度にはスパイク状に不連続になっている箇所が見られる。そのため、角速度も、滑らかに変化せず、グラフが折れ曲がる箇所がある。これに対して、図５（ｂ）のシミュレーション後のグラフでは、角速度や角加速度の不連続点がスムージング処理されて、連続的なグラフになっていることが分かる。
【００４６】
ところで、図４のフローチャートに示すように、角速度、角加速度にスムージング処理を施すことにより、最終段で出力される関節角度は、本来の角度より変化が緩やかになるため、絶対値がずれる可能性がある。そこで、図３（ａ）のシミュレータアルゴリズムの中に、関節角度の出力に誤差が生じないように角加速度指令値βRefに対して、オフセット処理を加えるなどの補正処理を加えると、アームシミュレータ１２１の精度が高くなる。
【００４７】
次に、図６を参照しながら、移動系シミュレータ１２２の具体的な処理動作及び構成に関して説明する。図６は本実施形態の移動系シミュレータ１２２のアルゴリズムを計算フローチャートとして示した図である。
【００４８】
移動系シミュレータ１２２の計算手順はフレームｉ＝０番目から開始し（ステップＳ１）、まず、速度指示データファイルから速度指示データを読み込み、加速度の勾配である躍度を定義する（ステップＳ２２）。この躍度を積分して加速度目標値ａRefを求める（ステップＳ３３）。
【００４９】
次いで、ステップＳ３３で求められた加速度目標値ａRefが許容範囲内を逸脱しているかを判定する（ステップＳ３４）。ここで、ステップＳ３３で求められた加速度目標値ａRefが許容範囲を逸脱していない場合には、ステップＳ３３で求められた加速度目標値ａRefを加速度目標値として適用する（ステップＳ３５）。一方、ステップＳ３３で求められた加速度目標値ａRefが許容範囲内を逸脱している場合は、加速度の上限値ａMaxおよび下限値ａMinによるリミッタ処理を施して加速度目標値として適用する（ステップＳ３６）。
【００５０】
次いで、ステップＳ３５またはステップＳ３６で適用された加速度目標値ａRefから速度目標値ＶRefを求める（ステップＳ３７）。
【００５１】
次いで、ステップＳ３７で求められた速度目標値ＶRefが許容範囲内を逸脱しているかを判定する（ステップＳ３８）。ここで、ステップＳ３７で求められた速度目標値ＶRefが許容範囲を逸脱していない場合には、ステップＳ３７で求められた速度目標値ＶRefを速度目標値として適用する（ステップＳ３９）。一方、ステップＳ３３で求められた速度目標値ＶRefが許容範囲内を逸脱している場合は、速度目標値の上限値ａMaxおよび下限値ａMinによるリミッタ処理を施して速度目標値として適用する（ステップＳ４０）。
【００５２】
次いで、ステップＳ４０で求められた速度指令値ＶRefから移動距離指令値ＳRefを求める（ステップＳ４１）。
【００５３】
以上の、加速度目標値ａRef、速度目標値ＶRefおよび移動距離目標値ＳRefをロボット用動作データファイル１２ｋに出力する。
【００５４】
そして、フレームの順番が何番目かを判定し（ステップＳ４２）、フレームの順番が最終のｎ番目になるまで、上述した手順を各フレームに対して実行することにより、アーム動作のシミュレーションが実行される。これらのシミュレーション結果がロボット用動作データ１２ｋに出力される。
【００５５】
次に、図７から図９を参照しながら、本実施形態のロボットの駆動回路における駆動電流が許容範囲内に収まるように制御することに関して説明する。
【００５６】
本実施形態では、上述の図６に示す手順により生成された動作データを用いて、さらにアクチュエータの駆動回路モデルによるシミュレーションで駆動電流を検証するようになっている。この駆動電流がアクチュエータの許容範囲を越えているかどうかをチェックすることで、ロボットの実機動作の安定性を確保する。即ち、ロボットの駆動回路により駆動されるアクチュエータにおける駆動電流が許容範囲内に収まるように、その駆動電流を用いてデータを変換して制御するようになっている。
【００５７】
図７は本実施形態のアームシミュレータ１２１または移動系シミュレータ１２２で生成された動作データに基づくアクチュエータ４の駆動制御の一例を示す図である。図７において、アームシミュレータ１２１または移動系シミュレータ１２２により生成されてロボット用動作データファイル１２ｋに格納された動作データである関節角度、角速度および角加速度などは、換算処理モジュール１２ｍに送信される。この換算処理モジュール１２ｍで、関節角度はエンコーダ５のパルスカウント値に変換され、エンコーダ指令値信号１２ｎとしてアクチュエータ駆動回路１２ｐに入力される。また、換算処理モジュール１２ｍで、角速度、角加速度に応じてアクチュエータ４の駆動パルス信号のパルス幅が、パルス幅（ＰＷＭ）変調により調節され、ＰＷＭ変調信号１２０としてアクチュエータ駆動回路１２ｐに入力される。
【００５８】
アクチュエータ駆動回路１２ｐに入力されたこれらの信号１２ｎ、１２ｏに基づいて、アクチュエータ４が回転される。アクチュエータ４の回転は、図中に明示しない関節機構に伝達されて、アームが駆動される。これと同時に、アクチュエータ４の回転は、軸４１、ギア４２、ギア５２、軸５１を介して、エンコーダ５に伝達される。エンコーダ５のパルス値はアクチュエータ駆動回路１２ｐに戻され、エンコーダ指令値１２ｎと一致したところで、アクチュエータ駆動回路１２ｐによりアクチュエータ４の駆動が停止される。ここで、入力された信号に対する過渡的な応答を含めて、アクチュエータ駆動回路１２ｐからアクチュエータ４に流れる電流が、許容範囲を超過しないようにする必要がある。
【００５９】
そこで、本実施形態では、図８（ａ）に示すアクチュエータ駆動回路シミュレータ１２ｑにより、アクチュエータ駆動電流Ｉｄをチェックするように構成されている。ＰＷＭ信号１２ｏとエンコーダ指令値１２ｎは、シミュレータ１２１、１２２上において、図７の制御系と同じアルゴリズムで、関節角度、角速度、角加速度の値から導出される。アクチュエータ駆動回路シミュレータ１２ｑは、負荷モデル１２ｓを含むアクチュエータ駆動回路モデル１２ｒと、電流値決定モジュール１２ｔと、電流リミッタモジュール１２ｖとを備えて構成されている。
【００６０】
アクチュエータ駆動回路モデル１２ｒは、図８（ｂ）に示すように、電源系と、インピーダンスＺＬを有するアクチュエータ負荷モデルとから構成されている。電流値決定モジュール１２ｔでは、この回路モデルに基づいて、必要な駆動電流を求める。ここで、駆動するために必要な電流Ｉｄは、次の式（３）で与えられる。
Iｄ＝Ｖ／(Ｒs＋ＺＬ)          （３）
この駆動電流Ｉｄの値は、電流リミッタモジュール１２ｖで許容範囲内か否かが判別される。許容範囲内であれば、アクチュエータ駆動回路モデルに戻されて、動作データがそのまま出力される。他方、電流が許容範囲を超過した場合には、駆動電流Ｉｄが制限値に修正された値で、アクチュエータ駆動回路モデル１２ｒに戻される。このとき、制限された駆動電流Ｉｄに見合うように、元の動作データが修正されて、出力される。各フレームの動作データ全てに対して、この手順を繰り返して、最終的なロボット用動作データが出力される。
【００６１】
ここで、アクチュエータ駆動回路シミュレータ１２ｑによる処理の前後における関節データの様子について説明する。図９（ａ）は本実施形態のアクチュエータ駆動回路シミュレータ１２ｑによる処理を施す前の関節角度、角速度および角加速度の様子を示すグラフ、図９（ｂ）は本実施形態のアクチュエータ駆動回路シミュレータ１２ｑによる処理を施す前の関節角度、角速度および角加速度の様子を示すグラフである。
【００６２】
図９（ａ）に示すシミュレーション前のグラフにおいて、角加速度には角加速度許容範囲を超過する箇所が見られるが、図９（ｂ）のシミュレーション後のグラフでは、角速度の超過部分が制限値に制限されていることが分かる。
【００６３】
図７から図９に示すアクチュエータ駆動回路シミュレータ１２ｑによる計算手法は、アームシミュレータ１２１、移動系シミュレータ１２２の何れの動作データに対しても、同様のシミュレーションを施して、最終的な動作データを制作することができる。
【００６４】
以上、説明した手順によって、人間の動作をロボットに割り当てる処理が完了する。
【００６５】
なお、ロボット用データ生成部１２から出力される動作データは、所定時間ごとの、ロボットのアーム部関節およびヘッド部関節における関節角度、角速度および角加速度と、移動上における座標、方位、速度、加速度および躍度の目標値と、を時系列に記述したものである。
【００６６】
本実施形態では、ロボットの動作に人間の動作を適用することにより言語以外の要素による微妙な感情表現をロボットに容易に実行させることができるとともに、ロボットの動作の編集作業からシミュレーションおよび動作確認までの全て処理をコンピュータで行うことが可能となり、作業効率を向上させることができる。
【００６７】
また、本実施形態では、ロボットシミュレーション結果を前記モーション編集部において確認することで、実機での逐次的な動作確認が不要となる。
【００６８】
また、本実施形態では、ロボットの動作の元となるデータを、モーションキャプチャなどにより、人の動きを取り込める構成としている。これにより、人の動作に含まれる微妙な感情をロボットで再現できるようになる。
【図面の簡単な説明】
【００６９】
【図１】本発明の一実施形態に係るロボット動作編集システムの構成図である。
【図２】本実施形態に係るロボット動作編集システムの動作データ処理フローを示す図である。
【図３】本実施形態におけるアームシミュレータの説明図である。
【図４】本実施形態におけるアームシミュレータの計算手順をフローチャートとして表した図である。
【図５】本実施形態におけるアームシミュレータによる処理を施す前後の関節角度、角速度および角加速度の様子を示すグラフである。
【図６】本実施形態の移動系シミュレータのアルゴリズムを計算フローチャートとして示した図である。
【図７】本実施形態のアームシミュレータまたは移動系シミュレータで生成された動作データに基づくアクチュエータの駆動制御の一例を示す図である。
【図８】本実施形態におけるアクチュエータ駆動回路シミュレータの説明図である。
【図９】本実施形態のアクチュエータ駆動回路シミュレータによる処理を施す前後の関節角度、角速度および角加速度の様子を示すグラフである。
【符号の説明】
【００７０】
１…ロボット動作編集システム、１１…モーション編集部（アニメーションエディタ）、１１ａ…関節角度データ、１１ｂ…ＣＧデータ、１２…ロボット用データ生成部、１２ａ…データ読み出し速度調節・補間処理部、１２ｂ…速度指示データファイル、１２ｃ…関節角度変換処理部、１２ｄ…座標位置変換処理部、１２ｅ…速度生成処理部、１２ｆ…重力補償処理部、１２ｇ…関節角度逆変換処理部、１２ｈ…座標位置逆変換処理部、１２ｉ…データ間引き処理部、１２ｊ…補正済み関節角度データ、１２ｋ…ロボット用動作データファイル、１２Ｌ…補助動作データファイル、１２１…アームシミュレータ、１２２…移動シミュレータ、１２３…ヘッドシミュレータ、１３…モーション入力部、１３ａ…モーションキャプチャ、１３ｂ…モーション入力デバイス、１４…データ形式変換部、１４ａ…マーカ座標データ、１４ｂ…関節角度データ、１５…ＣＧ制作ソフト、２…ロボット、３…高精度動力学シミュレータ、４…アクチュエータ、４１…軸、４２…ギア、５…エンコーダ、５１…軸、５２…ギア。
【図１】
2007125645.tif 000003
【図２】
2007125645.tif 000004
【図３】
2007125645.tif 000005
【図４】
2007125645.tif 000006
【図５】
2007125645.tif 000007
【図６】
2007125645.tif 000008
【図７】
2007125645.tif 000009
【図８】
2007125645.tif 000010
【図９】
2007125645.tif 000011