(57)【特許請求の範囲】
【請求項１】
複数の関節部を有するロボットの動作を制御する動作制御データを生成する動作制御データ生成システムであって、
前記複数の関節部のうち選択された所定の関節部に対するユーザ操作を検出することで、前記所定の関節部の動作を示す動作データを取得する動作データ取得部と、
複数の前記所定の関節部の動作データを解析することで、前記複数の動作データのタイミングを同期させる同期処理部と、
同期処理された前記複数の動作データに基づいて、前記関節部の動作として再現させるための動作制御データを生成して登録する動作制御データ生成部と、
前記動作データ取得部の取得した動作データを解析することで、前記所定の関節部の回動軸の運動状態が所定値を越えて変化する点を示す変極点を検出する変極点検出部とを備えており、
前記同期処理部は、前記変極点検出部により検出された複数の変極点のタイミングを同期させる、
ロボットの動作制御データ生成システム。
【請求項２】
前記変極点検出部は、所定の時間範囲に存在する複数の変極点のうちいずれか一つの変極点を基準変極点とし、その他の変極点を従属変極点とし、
前記同期処理部は、前記基準変極点のタイミングに前記従属変極点のタイミングを同期させる、
請求項１に記載のロボットの動作制御データ生成システム。
【請求項３】
前記関節部の回動軸には優先順位が予め設定されており、
前記変極点検出部は、対応する回動軸に設定されている優先順位が最も高い変極点を前記基準変極点として検出し、その他の変極点を前記従属変極点として検出する、
請求項２に記載のロボットの動作制御データ生成システム。
【請求項４】
前記変極点には、同期の基準となる前記基準変極点と、前記基準変極点に同期する前記従属変極点と、いずれの変極点とも同期しない独立変極点とが存在し、
前記変極点検出部は、検出した前記変極点の種別を、前記基準変極点、前記従属変極点、または前記独立変極点のいずれかへ変更することができる、
請求項３に記載のロボットの動作制御データ生成システム。
【請求項５】
前記変極点検出部は、前記変極点に関するデータを変更可能である、
請求項４に記載のロボットの動作制御データ生成システム。
【請求項６】
前記動作データ取得部は、前記動作制御データ生成部により登録された動作制御データに対応する動作を前記ロボットに再現させている間に、前記複数の関節部のうち選択された他の所定の関節部に対する他のユーザ操作を検出することで、前記他の所定の関節部の動作を示す他の動作データを取得し、
前記同期処理部は、前記複数の所定の関節部の動作データおよび前記他の所定の関節部の他の動作データを解析することで、前記複数の動作データおよび前記他の動作データのタイミングを同期させ、
前記動作制御データ生成部は、同期処理された前記複数の動作データおよび前記他の動作データに基づいて、新たな動作制御データを生成して登録する、
請求項１〜５のいずれか一項に記載のロボットの動作制御データ生成システム。
【請求項７】
前記動作データ取得部は、動作データの取得開始をカウントダウン方式でユーザへ通知する、
請求項１〜６のいずれか一項に記載のロボットの動作制御データ生成システム。
【請求項８】
前記動作制御データを実施した場合の発熱量を、前記動作制御データに従って前記ロボットが動作する前に推定する発熱量推定部と、
前記発熱量が所定の閾値を超えると判定した場合に、前記発熱量を抑制するための所定の発熱抑制処理を実行する発熱抑制部とをさらに備える、
請求項１〜７のいずれかに記載のロボットの動作制御データ生成システム。
【請求項９】
前記所定の発熱抑制処理は、前記発熱量が前記所定の閾値以下となるように前記動作制御データを変更する処理である、
請求項８に記載のロボットの動作制御データ生成システム。
【請求項１０】
前記所定の発熱抑制処理は、前記発熱量の抑制をユーザに助言する処理である、
請求項８に記載のロボットの動作制御データ生成システム。
【請求項１１】
前記発熱量推定部は、前記変極点検出部が変極点を検出するたびに、当該変極点までの動作制御データを実施した場合における発熱量を推定し、
前記発熱抑制部は、前記変極点を検出するたびに推定した発熱量が前記所定の閾値を超えると判定すると、前記所定の発熱抑制処理を実行する、
請求項８に記載のロボットの動作制御データ生成システム。
【請求項１２】
前記所定の発熱抑制処理は、前記動作制御データに含まれる動作ごとに、発熱量への影響を表示することで、前記発熱量の抑制をユーザに助言する処理である、
請求項１０に記載のロボットの動作制御データ生成システム。
【請求項１３】
複数の関節部を有するロボットの動作を制御する動作制御データをコンピュータにより生成する動作制御データ生成方法であって、
前記コンピュータは、
前記複数の関節部のうち選択された所定の関節部に対するユーザ操作を検出することで、前記所定の関節部の動作を示す動作データを取得し、
前記取得した動作データを解析することで、前記所定の関節部の回動軸の運動状態が所定値を越えて変化する点を示す変極点を検出し、
前記検出した複数の変極点のタイミングを同期させ、
前記同期させた複数の動作データに基づいて、前記関節部の動作として再現させるための動作制御データを生成して登録する、
ロボットの動作制御データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作制御データ生成システム及び動作制御データ生成方法に関する。
【背景技術】
【０００２】
近年では、会話、ゲーム、体操、運動等を通じてユーザとコミュニケーションするロボットが開発されている。この種のロボットでは、ユーザがロボットの動作をカスタマイズしたり、新しいアプリケーションを作成したりできるようになっているものがある。ユーザがロボットの動作をカスタマイズしたり、新たなアプリケーションを作成したりする場合、専門的知識を必要としない簡単な方法でできることが望ましい。
【０００３】
特許文献１には、ユーザがロボットの手、脚、首などを直接手で動かすことで、動きをロボットに教える方法が記載されている。特許文献１では、ユーザが一方の関節部を動かした場合に、他の関節部の動作が所定の可動範囲に収まるように制御する。
【０００４】
特許文献２には、ユーザがロボット動作編集システムを用いて、ロボットの動作を編集する方法が開示されている。
【０００５】
なお、ロボットは、手足や首などの可動部を動かすために複数の電動モータを備えているが、それらモータはロボットの動作に応じて発熱する。そこで、モータの過熱を防止すべく、ロボット運転時のモータの発熱をモニタして、そのモニタ結果に基づいてモータの動作パラメータを調整する技術も知られている（特許文献３）。
【０００６】
他の従来技術として、関節の回転の角速度が所定値を超えるとモータの駆動電流を抑制し、さらにモータの駆動電流の平均値が閾値を超えると安定姿勢に遷移させるものも知られている（特許文献４）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５４６４４０６号公報
【特許文献２】特開２００７−１２５６４５号公報
【特許文献３】特開平９−９１０２５号公報
【特許文献４】特許第４１３５０９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１では、各関節部が可動範囲に収まるように制御するため、ユーザが、ロボットの膝を伸ばしたままで股関節を上方に９０度曲げるなどの不自然な姿勢を、手動で登録してしまうのを抑制することができる。しかし、特許文献１では、複数の関節部の動きを同期させることはできないため、関節部に繋がる可動部の動きの開始および終了のタイミングが一致しない。従って、特許文献１では、全体の動作の中にムラが生じたり、不自然な動作が含まれてしまうといった課題がある。
【０００９】
特許文献２では、個々の関節の角度や角速度、角加速度が連続性を保つように動作データを処理しているが、特許文献１と同様に、複数の関節部の動きを同期させることについては開示も示唆もない。従って、特許文献２では、個々の関節の動きは滑らかであったとしても、全体としての動作にムラが生じたり、不自然な動作が含まれたりするといった課題がある。
【００１０】
なお、特許文献３，４では、実際にロボットを動かした場合の状態を検出し、その検出結果に応じて発熱を抑制する。従って、特許文献３，４では、ロボットへ新しい動作を登録した場合、その新しい動作がモータの過熱を招くか否かは、実際にその新しい動作をロボットにさせてみなければ判断できないという欠点がある。この場合、ユーザは、動作の一部を変更して再度ロボットに動作させ、その結果を確認するという処理を繰り返す必要があり、使い勝手が悪い。
【００１１】
本発明は、上記の課題に鑑みてなされたもので、その目的は、ユーザによる関節部への操作により動作データを入力することができ、複数の動作データのタイミングを同期させることで自然な動作を実現できるようにしたロボットの動作制御データ生成システム及び動作制御データ生成方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一つの観点に係るロボットの動作制御データ生成システムは、複数の関節部を有するロボットの動作を制御する動作制御データを生成する動作制御データ生成システムであって、複数の関節部のうち選択された所定の関節部に対するユーザ操作を検出することで、所定の関節部の動作を示す動作データを取得する動作データ取得部と、複数の所定の関節部の動作データを解析することで、複数の動作データのタイミングを同期させる同期処理部と、同期処理された複数の動作データに基づいて、関節部の動作として再現させるための動作制御データを生成して登録する動作制御データ生成部と、を備える。
【００１３】
動作データ取得部の取得した動作データを解析することで、所定の関節部の回動軸の運動状態が所定値を越えて変化する点を示す変極点を検出する変極点検出部を備えることができ、同期処理部は、変極点検出部により検出された複数の変極点のタイミングを同期させてもよい。
【００１４】
変極点検出部は、所定の時間範囲に存在する複数の変極点のうちいずれか一つの変極点を基準変極点とし、その他の変極点を従属変極点とすることができ、同期処理部は、基準変極点のタイミングに従属変極点のタイミングを同期させてもよい。
【００１５】
関節部の回動軸には優先順位が予め設定されており、変極点検出部は、対応する回動軸に設定されている優先順位が最も高い変極点を基準変極点として検出し、その他の変極点を従属変極点として検出することもできる。
【００１６】
変極点には、同期の基準となる基準変極点と、基準変極点に同期する従属変極点と、いずれの変極点とも同期しない独立変極点とが存在し、変極点検出部は、検出した変極点の種別を、基準変極点、従属変極点、または独立変極点のいずれかへ変更してもよい。
【００１７】
変極点検出部は、変極点に関するデータを変更可能であってもよい。
【００１８】
動作データ取得部は、動作制御データ生成部により登録された動作制御データに対応する動作をロボットに再現させている間に、複数の関節部のうち選択された他の所定の関節部に対する他のユーザ操作を検出することで、他の所定の関節部の動作を示す他の動作データを取得し、同期処理部は、複数の所定の関節部の動作データおよび他の所定の関節部の他の動作データを解析することで、複数の動作データおよび他の動作データのタイミングを同期させ、動作制御データ生成部は、同期処理された複数の動作データおよび他の動作データに基づいて、新たな動作制御データを生成して登録することもできる。
【００１９】
動作データ取得部は、動作データの取得開始をカウントダウン方式でユーザへ通知してもよい。
【００２０】
動作データ取得部は、ロボットの本体内に位置するロボット制御部に設けられており、変極点検出部と同期処理部および動作制御データ生成部は、ロボット制御部と通信可能な端末装置に設けられてもよい。
【００２１】
動作制御データを実施した場合の発熱量を、動作制御データに従ってロボットが動作する前に推定する発熱量推定部と、
【００２２】
発熱量が所定の閾値を超えると判定した場合に、発熱量を抑制するための所定の発熱抑制処理を実行する発熱抑制部とをさらに備えることもできる。
【００２３】
所定の発熱抑制処理は、発熱量が所定の閾値以下となるように動作制御データを変更する処理であってもよい。
【００２４】
所定の発熱抑制処理は、発熱量の抑制をユーザに助言する処理であってもよい。
【００２５】
発熱量推定部は、変極点検出部が変極点を検出するたびに、当該変極点までの動作制御データを実施した場合における発熱量を推定し、発熱抑制部は、変極点を検出するたびに推定した発熱量が所定の閾値を超えると判定すると、所定の発熱抑制処理を実行することもできる。
【００２６】
所定の発熱抑制処理は、動作制御データに含まれる動作ごとに、発熱量への影響を表示することで、発熱量の抑制をユーザに助言する処理であってもよい。
【００２７】
本発明の他の観点に従うロボットの動作制御データ生成方法は、複数の関節部を有するロボットの動作を制御する動作制御データをコンピュータにより生成する動作制御データ生成方法であって、コンピュータは、複数の関節部のうち選択された所定の関節部に対するユーザ操作を検出することで、所定の関節部の動作を示す動作データを取得し、取得した動作データを解析することで、所定の関節部の回動軸の運動状態が所定値を越えて変化する点を示す変極点を検出し、検出した複数の変極点のタイミングを同期させ、同期させた複数の動作データに基づいて、関節部の動作として再現させるための動作制御データを生成して登録する。
【図面の簡単な説明】
【００２８】
【図１】ロボットの動作制御データ生成システムの全体を示すシステム構成図。
【図２】ロボットの関節部の配置例を示す説明図。
【図３】ロボットの関節部の詳細構成を示す斜視図。
【図４】ユーザがロボットを手動操作して動作を登録する場合のタイミングチャートであって、同期処理前の状態を示す。
【図５】図４の動作を同期処理した場合のタイミングチャート。
【図６】同期処理前と同期処理後の動作データを並べて示すタイミングチャート。
【図７】関節部の回動軸に優先順位を設定するテーブルの構成図。
【図８】動作データを生成する処理を示すフローチャート。
【図９】図８中の動作制御データを生成する処理の詳細を示すフローチャート。
【図１０】第２実施例に係り、動作データを生成する処理を示すフローチャート。
【図１１】変極点の種別を変更する様子を示すタイミングチャート。
【図１２】第３実施例に係り、動作データを生成する処理を示すフローチャート。
【図１３】図１２中のタイミングチャート編集処理の詳細を示すフローチャート。
【図１４】変極点のパラメータを設定する画面例。
【図１５】第４実施例に係り、動作データを生成する処理を示すフローチャート。
【図１６】動作再現中に新たな動作データを入力する場合のタイミングチャート。
【図１７】第５実施例に係る動作制御データ生成システムのシステム構成図。
【図１８】関節部の発熱量の時間変化を示すグラフ。
【図１９】発熱量を推定し、発熱量を抑制できるように動作を生成する処理を示すフローチャート。
【図２０】第６実施例に係り、動作データを生成する処理を示すフローチャート。
【図２１】第７実施例に係り、動作データを生成する処理を示すフローチャート。
【図２２】第８実施例に係り、動作データを生成する処理を示すフローチャート。
【発明を実施するための形態】
【００２９】
本実施形態では、以下に詳述する通り、複数の関節部１６のうち選択された所定の関節部に対するユーザ操作を検出することで、所定の関節部の動作を示す動作データを取得する動作データ取得部１０９と、複数の所定の関節部の動作データを解析することで、複数の動作データのタイミングを同期させる同期処理部２０８と、同期処理された複数の動作データに基づいて、関節部の動作として再現させるための動作制御データを生成して登録する動作制御データ生成部２０９と、を備える。
【実施例１】
【００３０】
図１は、ロボットの動作制御データ生成システムの全体構成を示す。動作制御データ生成システムは、ロボット１と、ロボット１に通信可能に接続される端末２とを含む。
【００３１】
ロボット１は、ユーザとコミュニケーションすることのできる、いわゆるコミュニケーションロボットとして構成される。ロボット１は、例えば、一般家庭、オフィス、各種商業施設、病院、介護施設、保育園、幼稚園、学校などで、ユーザと対話したり、運動して遊んだりすることができる。以下、ロボット１とコミュニケーションする者と、ロボット１の動作データを登録する者とを区別せずにユーザと呼ぶ。また、ユーザがロボット１へ登録しようとする動作は、複数の単動作を組み合わせたものとなる。これら単動作を示すデータを動作データと呼ぶが、一連の動作の全体を示すデータも動作データと呼ぶことがある。そして、動作データにモータ１１８を制御するためのパラメータの値を設定することで、実際にロボット１を動作させるための動作制御データを得る。
【００３２】
ロボット１は、一つまたは複数のアプリケーション（サービス）を備える。アプリケーションとは、例えば、クイズ、ゲーム、体操、ダンス等である。ユーザは、アプリケーションに含まれる既存のロボット動作を一部または全部変更することもできるし、新たなロボット動作をアプリケーションに登録することもできる。
【００３３】
ロボット１は、ロボット制御部１０とロボット本体１１とを備えて構成される。ロボット制御部１０は、ロボット本体１１を制御するもので、その詳細は後述する。ロボット本体１１は、例えば、胴体１２、両足１３Ｒ，１３Ｌ、両手１４Ｒ，１４Ｌ、頭部１５を備える。
【００３４】
本実施例での「手」は、上腕、肘、前腕、手および指の全部または一部を含む意味で使用する。すなわち、胴体１２の上部両側から外向きに突出する可動部を「手」と呼ぶ。本実施例での「足」は、太もも、ひざ、すね、足および指の全部または一部を含む意味で使用する。すなわち、胴体１２の下部から下向きに突出する可動部を「足」と呼ぶ。なお、ロボット１が人型以外の形状を取る場合は、胴体から突出する全ての可動部を足と呼んだり、花びら等と呼んだりすることもある。
【００３５】
図２の関節配置図を参照する。ロボット１は、複数の関節部１６を有しており、それぞれ一つまたは複数の電動モータＭが設けられている。各関節部１６の詳細構成は、図３で後述する。
【００３６】
右足１３Ｒには、例えば足首の関節部１６（１Ｒ）、膝の関節部１６（２Ｒ）、股の関節部１６（３Ｒ）が設けられている。同様に、左足１３Ｌにも足首の関節部１６（１Ｌ）、膝の関節部１６（２Ｌ）、股の関節部１６（３Ｌ）が設けられている。右手１４Ｒには、例えば肩の関節部１６（４Ｒ）と肘の関節部１６（５Ｒ）が設けられている。同様に、左手１４Ｌにも肩の関節部１６（４Ｌ）と肘の関節部１６（５Ｌ）が設けられている。胴体１２と頭部１５の間には、首の関節部１６（６）が設けられている。
【００３７】
特に区別しない場合、関節部１６と呼ぶ。各関節部１６は、それぞれ所定の角度範囲で回動することができるようになっている。
【００３８】
図３は、関節部のモータ配置を示す。図３には、基準姿勢（例えば、直立姿勢）のロボット１が示されている。基準姿勢での電動モータＭの回動軸を図３の下側に示す。電動モータＭには、対応する関節部１６を特定する符号（１Ｒや２Ｌ等）を添える。右足首の関節部１６（１Ｒ）は、回動軸の異なるモータＭ（１Ｒ）Ｘ，Ｍ（１Ｒ）Ｙを備える。一方のモータＭ（１Ｒ）Ｘは、図３中のＸ軸を回動軸として回動する。このＸ軸回りの回動をロールと呼ぶ。他方のモータＭ（１Ｒ）Ｙは、Ｙ軸を回動軸として回動する。Ｙ軸回りの回動をピッチと呼ぶ。なお、Ｚ軸回りの回動はヨーと呼ぶ。左足首の関節部１６（１Ｌ）も、それぞれ回動軸の異なるモータＭ（１Ｌ）Ｘ，Ｍ（１Ｌ）Ｙを備える。モータＭの符号の最後のアルファベットＸ，Ｙ，Ｚは、回動軸Ｘ，Ｙ，Ｚを示しているので、以下、説明を省略する。
【００３９】
右膝の関節部１６（２Ｒ）は、モータＭ（２Ｒ）Ｙを備える。同様に、左膝の関節部１６（２Ｌ）も、モータＭ（２Ｌ）Ｙを備える。すなわち、膝の関節部１６（２Ｒ），１６（２Ｌ）は、Ｙ軸を中心にピッチ方向にのみ回動する。
【００４０】
右の股関節部１６（３Ｒ）は、３個のモータＭ（３Ｒ）Ｘ，Ｍ（３Ｒ）Ｙ，Ｍ（３Ｒ）Ｚを備える。同様に、左の股関節部１６（３Ｌ）も、３個のモータＭ（３Ｌ）Ｘ，Ｍ（３Ｌ）Ｙ，Ｍ（３Ｌ）Ｚを備える。
【００４１】
右肩の関節部１６（４Ｒ）は、２個のモータＭ（４Ｒ）Ｘ，Ｍ（４Ｒ）Ｙを備える。左肩の関節部１６（４Ｌ）も、２個のモータＭ（４Ｌ）Ｘ，Ｍ（４Ｌ）Ｙを備える。右肘の関節部１６（５Ｒ）は、一つのモータＭ（５Ｒ）Ｘを備える。左肘の関節部１６（５Ｌ）も、一つの関節部１６（５Ｌ）Ｘを備える。首の関節部１６（６）は、２個のモータＭ（６）Ｙ，Ｍ（６）Ｚを有する。モータＭ（６）Ｚは、Ｚ軸を中心に回動する。
【００４２】
関節部１６のモータＭの回動方向と、関節部１６の設けられた部位（肩、肘、足首等）の動作方向とは、相違する。例えば、拍手の動作の場合、肩関節１６（４Ｒ），１６（４Ｌ）のピッチ軸モータＭ（４Ｒ）Ｙ，Ｍ（４Ｌ）Ｙをピッチ方向に回動させることで、両腕１４Ｒ，１４Ｌをロボット１の前方に向けて水平方向に持ち上げる。その状態でさらに、肩関節１６（４Ｒ），１６（４Ｌ）のロール軸モータＭ（４Ｒ）Ｘ，Ｍ（４Ｌ）Ｘと肘関節１６（５Ｒ），１６（５Ｌ）のロール軸モータＭ（５Ｒ）Ｘ，Ｍ（５Ｌ）Ｘをロール方向へ回動させる。これにより、ロボット１の両腕１４Ｒ，１４Ｌは、拍手しているかのような動作を表現する。
【００４３】
このように、ロボット１が拍手する動作は、ユーザからは、肩関節部１６（４Ｌ），１６（４Ｒ）と肘関節部１６（５Ｒ），１６（５Ｌ）とをそれぞれヨー方向に回転する動作として見える。しかし、その動作を裏で支えるモータＭの回転軸の実際の動きは、上述の通りである。本実施例では、基本的に、モータＭの回動軸の動きとして関節部１６の動きを説明する。但し、関節部１６の構成や動作は、図２，図３に示す例に限らず、種々の構成を採用することができる。関節部１６を構成するモータＭの数や配置により、関節部全体としての動きと、その関節部を構成する各モータの回動方向とは異なる。
【００４４】
なお、ロボット１は、ユーザが親しみやすいように人型に形成されるが、これに限らず、犬、猫、象、熊、馬、ラッコなどの関節部を有する動物形状に形成してもよいし、複数の可動部分を持つ草花のような形状に形成してもよい。また、ロボット１は、人間と同様に配置される関節部１６を持つこともできるが、図２に示すように簡略化された配置の関節部１６を持つこともできる。ロボット１は、図２に例示する全ての関節部１６を備える必要はなく、いずれか複数の関節部１６を備えていればよい。
【００４５】
図１に戻る。ロボット制御部１０は、例えばロボット本体１１に設けられる。また、ロボット１には、後述するカメラ１１４やマイク１１３などが設けられる。
【００４６】
ロボット制御部１０は、例えば、マイクロプロセッサ（以下ＣＰＵ）１０１、メモリ１０２、ＳＳＤ（Solid State Drive）１０３、音声認識部１０４、画像認識部１０５、音声出力部１０６、センサ制御部１０７、ＬＥＤアレイ駆動部１０８、動作データサンプリング部１０９、アクチュエータ制御部１１０、アクチュエータ通信部１１１、通信部１１２、図示せぬ電源装置等を備えている。
【００４７】
ＣＰＵ１０１は、メモリ１０２またはＳＳＤ１０３に格納されているコンピュータプログラムや動作制御データを読み込んで実行することにより、例えばクイズやダンス、体操等のアプリケーションを実行する。本実施例では、補助記憶装置としてＳＳＤ１０３を用いるが、これに代えて、ハードディスクドライブを用いてもよい。
【００４８】
音声認識部１０４は、ロボット本体１１に設けられる一つまたは複数のマイク１１３から取得した音データを解析し、周囲の音声を認識する。画像認識部１０５は、ロボット本体１１に設けられる一つまたは複数のカメラ１１４から取得した画像データを解析して、ロボット１の周囲の画像を認識する。音声出力部１０６は、音声認識部１０４や画像認識部１０５での認識結果に応じた応答を音声として、ロボット本体１１に設けられるスピーカ１１５から出力する。
【００４９】
センサ制御部１０７は、ロボット本体１１に設けられる一つまたは複数のセンサ１１６からの信号を受信して処理する。センサ１１６には、例えば、回転角度センサ、距離センサ、圧力センサ、ジャイロセンサ、加速度センサ、障害物検出センサ等がある。
【００５０】
なお、センサ１１６、マイク１１３、カメラ１１４、スピーカ１１５等は、その全てがロボット本体１１内に搭載されている必要はなく、ロボット本体１１の外部に設けられていてもよい。例えば、介護施設の室温を検出する温度センサからの信号を、ロボット制御部１０は無線通信を介して取り込んで利用することができる。またロボット制御部１０は、施設内に設置されたカメラやマイク、スピーカと無線で接続することで、それらカメラやマイク等を利用することもできる。
【００５１】
ＬＥＤアレイ駆動部１０８は、ロボット本体１１に設けられる一つまたは複数のＬＥＤアレイ１１７を駆動する。ロボット制御部１０は、ＬＥＤアレイ１１７の点灯状態を駆動することで、ユーザへ情報や状態を通知する。
【００５２】
動作データサンプリング部１０９は、「動作データ取得部」の例である。動作データサンプリング部１０９は、ユーザが手動で操作した場合のアクチュエータ１１８の駆動量を、回転角度センサ等の検出信号に基づいて検出する。動作データサンプリング部１０９は、検出した動作データをメモリ１０２またはＳＳＤ１０３のいずれかに記憶する。
【００５３】
ここで、動作データとは、ユーザがロボット本体１１の手足や首を手動で直接操作することで入力する、ロボット１の動作を示すデータである。例えば、両手を所定回数上げ下ろしした後、所定回数だけ拍手するといった一つ以上の動作を示すデータが、動作データである。動作データに基づいて、実際にアクチュエータ１１８を駆動させるための動作制御データが作成される。動作制御データをＣＰＵ１０１が読み込んで、所定のアクチュエータを所定のタイミングで駆動させることで、ロボット１はユーザの意図した通りに動作する。
【００５４】
アクチュエータ制御部１１０は、アクチュエータ通信部１１１を介して複数のアクチュエータ１１８に接続されており、各アクチュエータ１１８を制御する。アクチュエータ１１８としては、例えばＤＣサーボモータ等の電動モータを挙げることができる。これに限らず、例えば、超音波モータ、圧電アクチュエータ、ソレノイド等をアクチュエータとして用いることもできる。以下、アクチュエータ１１８として、サーボモータを例に挙げて説明する。従って、サーボモータに符号１１８を使用する場合がある。
【００５５】
通信部１１２は、ロボット制御部１０が通信経路３を介して、端末２と双方向通信するための回路である。通信経路３は、有線または無線のいずれでもよい。なお、通信経路３は、例えばインターネット等の通信網を介して、図外のプログラム配信サーバと接続することもできる。
【００５６】
端末２の構成例を説明する。端末２は、ロボット１をユーザの意図通りに動作させるための動作制御データを作成して、ロボット１へ登録するための装置である。従って、端末２を、「動作制御データ生成装置」と呼ぶこともできる。
【００５７】
端末２は、例えば、ノート型ＰＣやタブレット型ＰＣ等のパーソナルコンピュータとして構成してもよいし、携帯電話や携帯情報端末のように構成してもよい。
【００５８】
端末２は、例えば、ＣＰＵ２０１、メモリ２０２、ＳＳＤ２０３、表示部２０４、操作部２０５、通信部２０６、変極点検出処理部２０７、変極点同期処理部２０８、制御パラメータ生成処理部２０９を備えている。
【００５９】
ＣＰＵ２０１は、メモリ２０２やＳＳＤ２０３に格納されたコンピュータプログラムを読み込んで実行することで、各機能２０７，２０８，２０９を実現する。ＳＳＤ２０３に代えて、ハードディスクドライブ等を補助記憶装置として用いても良い。
【００６０】
表示部２０４は、例えばＬＥＤディスプレイ、有機ＥＬディスプレイなどの表示装置を介して、ユーザに情報を提供する。操作部２０５は、例えばキーボード、マウス等のポインティングデバイス、タッチパネルを通じて、ユーザからの指示を受け取る。タブレット型ＰＣのように、表示部２０４と操作部２０５を見かけ上一体化することもできる。
【００６１】
通信部２０６は、通信経路３を介して、ロボット制御部１０の通信部１１２と双方向通信する。変極点検出処理部２０７は、動作データサンプリング部１０９の取得した動作データから、変極点を検出する。変極点同期処理部２０８は、所定の関係にある複数の変極点同士を同期させる。制御パラメータ生成処理部２０９は、アクチュエータ１１８を駆動する場合のパラメータを設定することで動作制御データを生成する。
【００６２】
端末２で作成された動作制御データは、通信部２０６，通信経路３，通信部１１２を介してロボット制御部１０へ送られ、メモリ１０２またはＳＳＤ１０３に格納される。
【００６３】
図４は、変極点を同期させる前の動作データを示すタイミングチャートである。縦軸は角度を示し、横軸は時間を示す。本実施例では、ユーザがロボット１へ登録する動作の例として、「両手を挙げて３回万歳した後、３回拍手する」を挙げる。
【００６４】
変極点とは、関節部１６の回動軸の運動状態が所定値を越えて変化する点である。変極点は、例えば、角度増加が開始する点、角度増加が終了する点、角度減少が開始する点、角度減少が終了する点、に分類することができる。
【００６５】
図４の例では、角度増加が開始する点（ａ１，ａ５，ａ９，ｂ１，ｂ５，ｂ９，ｃ１，ｃ５，ｃ９，ｄ１，ｄ５，ｄ９，ｅ１，ｅ５，ｅ９，ｆ１，ｆ５，ｆ９）、角度増加が終了する点（ａ２，ａ６，ａ１０，ｂ２，ｂ６，ｂ１０，ｃ２，ｃ６，ｃ１０，ｄ２，ｄ６，ｄ１０，ｅ２，ｅ６，ｅ１０，ｆ２，ｆ６，ｆ１０）、角度減少が開始する点（ａ３，ａ７，ａ１１，ｂ３，ｂ７，ｂ１１，ｃ３，ｃ７，ｃ１１，ｄ３，ｄ７，ｄ１１，ｅ３，ｅ７，ｅ１１，ｆ３，ｆ７，ｆ１１）、角度減少が終了する点（ａ４，ａ８，ａ１２，ｂ４，ｂ８，ｂ１２，ｃ４，ｃ８，ｃ１２，ｄ４，ｄ８，ｄ１２，ｅ４，ｅ８，ｅ１２，ｆ４，ｆ８，ｆ１２）となる。
【００６６】
角度増加が開始する点と角度減少が開始する点は、「角度変化が開始する点」と定義することもできる。同様に、角度増加が終了する点と角度減少が終了する点は、「角度変化が終了する点」と定義することもできる。図４では省略しているが、角度変化を示すグラフの直線は、実際には直線ではなく、角度の変化率は一定ではない。このようなノイズ的挙動を変極点として検出しないように、本実施例では、関節部１６の回動軸の運動状態（モータＭの回動軸の角度変化）が所定値を越えて変化する点だけを変極点として検出する。所定値は、関節部１６の回動軸の運動状態が大きく変化する点を検出し、ノイズ的挙動を検出しないように設定される。全ての関節部１６に同一の所定値を適用してもよいし、一つまたは複数の関節部ごとに異なる所定値を適用してもよい。また、所定値は、固定値であってもよいし、ロボット１の積算稼働時間等に応じて動的に設定される値でもよい。
【００６７】
図４では、最初に両手を上げ下げして万歳の動作を３回した後で、両手を打ち合わせて３度拍手する動作が示されている。図２も参照して、この動作をユーザがロボット１に登録する方法を説明する。
【００６８】
最初に、ユーザは、万歳の動作を登録するために、ロボット１の両手１４Ｒ，１４Ｌを把持して大きく上げ下げする。このユーザ操作により、右肩関節部１６（４Ｒ）および左肩関節部１６（４Ｌ）は、ピッチ方向に大きく回動し、モータＭ（４Ｒ）Ｙ，Ｍ（４Ｌ）Ｙの回動軸が回動する。肩の関節部１６（４Ｒ），１６（４Ｌ）の単位時間あたりの回動角度変化は、モータＭ（４Ｒ）Ｙ，Ｍ（４Ｌ）の回動軸に設けられるロータリーエンコーダ等の回動角度センサにより検出される。回動角度センサの検出信号は、動作データサンプリング部１０９によりサンプリングされて保存される。
【００６９】
続いてユーザは、拍手の動作を登録するために、ロボット１の両手１４Ｒ，１４Ｌを把持したままロボット１の前方で左右に振り、ロボット１の前で両手１４Ｒ，１４Ｌを軽く接触させる。このユーザ操作により、右肩の関節部１６（４Ｒ）および右肘の関節部１６（５Ｒ）は、ヨー方向に大きく回動し、モータＭ（４Ｒ）Ｘ，Ｍ（５Ｒ）Ｘの回動軸が回動する。左肩の関節部１６（４Ｌ）および左肘の関節部１６（５Ｌ）も、ヨー方向に大きく回動し、モータＭ（４Ｌ）Ｘ，Ｍ（５Ｌ）Ｘの回動軸が回動する。このようにして、肩の関節部１６（４Ｒ），１６（４Ｌ）および肘の関節部１６（５Ｒ），１６（５Ｌ）の単位時間あたりの回動角変化は、回動角度センサにより検出される。動作データサンプリング部１０９は、回動角度センサからの検出信号をサンプリングして保存する。
【００７０】
上述のようにユーザは、ロボット１の両手１４Ｒ，１４Ｌを直接把持して所望の方向に所望の量だけ回動操作することで、動作を登録する。しかし、手動操作であるため、どうしても動き方にムラが生じ、ぎこちない動きになりやすい。
【００７１】
例えば図４の例では、点ａ１と点ｄ１、点ａ２と点ｄ２、点ａ５と点ｄ５、点ａ６と点ｄ６、点ａ７と点ｄ７、点ａ８と点ｄ８、点ａ９と点ｄ９、点ａ１０と点ｄ１０、点ａ１１と点ｄ１１などのタイミングが一致していない。従って、この動作データから動作制御データを作成してロボット１に実行させたとすると、ロボット１の両手１４Ｒ，１４Ｌが左右ばらばらに上下することになり、不自然な万歳となる。
【００７２】
同様に、拍手の動作の部分に着目すると、右手と左手の動きのタイミングが合っていないため、ぎこちない不自然な拍手になってしまう。そこで本実施例では、近接する変極点を同期させることでタイミングを一致させ、自然な動きを得るようにしている。
【００７３】
図５は、変極点を同期処理した後の動作データを示すタイミングチャートである。同期処理後の変極点の符号を大文字に変えて表示する。本実施例では、所定の時間範囲に存在する複数の変極点のタイミングを一致させることで、それら複数の変極点のタイミングを同期させる。
【００７４】
タイミングを一致させる基準時点の決定方法としては、種々の方法を採り得る。本実施例では、所定の時間範囲に存在する複数の変極点のうち、優先順位の高い変極点を基準変極点とし、その他の変極点を従属変極点とし、基準変極点のタイミングに各従属変極点のタイミングを一致させる。予め関節部１６の各回動軸に優先順位を設定しておき、優先順位の最も高い関節部１６の回動軸に関する変極点を基準変極点として扱う。基準変極点のタイミングに従属変極点のタイミングを一致させる方法に限らず、例えば、各変極点のタイミングの平均値を基準として同期させる方法も考えられる。
【００７５】
図５の例では、万歳の動作を行う時間範囲では点Ａ１〜Ａ１２が基準変極点となり、拍手の動作を行う時間範囲では点Ｂ２〜Ｂ１２が基準変極点となる。基準変極点は四角形で示し、従属変極点は丸印で示す。
【００７６】
図５では、拍手の開始時点となる変極点Ｂ１，Ｃ１，Ｅ１，Ｆ１は、万歳の終了時点である変極点Ａ１２と同一の所定の時間範囲に属しており、かつ、変極点Ａ１２よりも優先順位が低い。従って、万歳の終了時点である基準変極点Ａ１２のタイミングに、拍手の開始時点となる従属変極点Ｂ１，Ｃ１，Ｅ１，Ｆ１のタイミングが一致している。
【００７７】
図５の例では、同期処理を実施した結果、点Ａ１と点Ｄ１、点Ａ２と点Ｄ２、点Ａ３と点Ｄ３、点Ａ４と点Ｄ４、点Ａ５と点Ｄ５、点Ａ６と点Ｄ６、点Ａ７と点Ｄ７、点Ａ８と点Ｄ８、点Ａ９と点Ｄ９、点Ａ１０と点Ｄ１０、点Ａ１１と点Ｄ１１、点Ａ１２と点Ｄ１２は、それぞれタイミングが一致している。従って、この動作データから動作制御データを作成してロボット１に実行させた場合、ロボット１の両手１４Ｒ，１４Ｌは一緒に上下し、きれいで自然な万歳となる。
【００７８】
拍手動作に着目すると、同様に、点Ｂ１と点Ｃ１，Ｅ１，Ｆ１、点Ｂ２と点Ｃ２，Ｅ２，Ｆ２、点Ｂ３と点Ｃ３，Ｅ３，Ｆ３、点Ｂ４と点Ｃ４，Ｅ４，Ｆ４、点Ｂ５と点Ｃ５，Ｅ５，Ｆ５、点Ｂ６と点Ｃ６，Ｅ６，Ｆ６、点Ｂ７と点Ｃ７，Ｅ７，Ｆ７、のように、それぞれのタイミングが一致している。従って、同期処理した動作データから動作制御データを作成してロボット１に実行させると、自然な拍手を得ることができる。
【００７９】
さらに、上述のように、万歳の終了時点である基準変極点Ａ１２のタイミングに、拍手の開始時点となる従属変極点Ｂ１，Ｃ１，Ｅ１，Ｆ１のタイミングが一致しているため、図５の例では、万歳の後、ただちに拍手が行われる。
【００８０】
図６は、同期処理前の動作データと同期処理後の動作データとを対比して示すタイミングチャートである。上述のように、基準変極点のタイミングに各従属変極点のタイミングが一致するため、自然な動作を得られることがわかる。
【００８１】
図７は、各関節部１６の各回動軸に優先順位を設定する優先順位テーブルＴ１０を示す説明図である。この優先順位テーブルＴ１０は、例えば、端末２のメモリ２０１またはＳＳＤ２０２に格納されている。優先順位に基づいて、基準変極点が決定される。
【００８２】
優先順位テーブルＴ１０は、例えば、優先順位欄Ｃ１０１、部位欄Ｃ１０２、関節名称欄Ｃ１０３および回動方向欄Ｃ１０４を対応付けている。優先順位欄Ｃ１０１は、優先順位の高低を示しており、図７では上側の方が優先順位が高く、下側の優先順位は低い。部位欄Ｃ１０２は、関節部１６の設けられている部位を特定する。部位としては、例えば、右足、左足、右手、左手、首などがある。
【００８３】
関節名称欄Ｃ１０３は、部位に属する関節部１６の名称を記憶する。関節部１６が複数の回動軸を持つ場合、回動方向ごとに優先順位を設定する。そのため、関節名称欄Ｃ１０３には、同一名の関節部が複数現れることがある。回動方向欄Ｃ１０４は、関節部１６が回動可能な方向を特定する。回動方向には、ピッチ、ロール、ヨーがある。
【００８４】
優先順位テーブルＴ１０は、胴体１２の下側に位置する足の優先順位が高く、胴体１２の上側に向かうほど優先順位が低くなるように設定されている。この理由は、足がロボット１の姿勢を決定づける重要要素であり、足の動作が不安定になるとロボット１のバランスが崩れるおそれがあるためである。
【００８５】
そこで、本実施例では、足に近い方の関節部１６の回動方向の優先順位を高くすることで、足に近い方の変極点を基準変極点とする。手や首の変極点は従属変極点となって、足に近い方の基準変極点に同期する。これにより、本実施例では、所定の時間範囲に存在する各変極点を同期させた場合でも、ロボット１の全体のバランスが崩れるのを抑制して自然な動作を得ることができる。これに対しもしも、首や手などの上側に位置する関節部１６の回動軸の優先順位を高くしたとすると、足の動作タイミングが手や首の動作タイミングに一致させられることになり、姿勢が不安定になる。
【００８６】
図８は、動作データを生成する処理を示す。ユーザは、端末２の操作部２０５から動作生成の開始を指示する。端末２は、ユーザからの動作生成開始指示を受領すると（Ｓ１１：ＹＥＳ）、通信部２０６からロボット制御部１０に対して、動作データの生成を行う旨を指示する。
【００８７】
ロボット制御部１０は、端末２からの指示を受領すると、例えばＬＥＤアレイ１１７やスピーカ１１５を用いて、動作データの生成開始をカウントダウン方式でユーザに通知する（Ｓ１２）。ユーザは、ロボット１が表示ないし発話する「１０，９，８，７，．．．」といったカウントダウンを確認すると、ロボット１の前に待機し、動作データの入力に備える。
【００８８】
ステップＳ１２で開始したカウントダウンが０になると（Ｓ１３：ＹＥＳ）、ユーザはロボット１の手足を手動で直接操作して所望の動作データを入力できる。ロボット制御部１０の動作データサンプリング部１０９は、ユーザにより手動操作される手足の回動角度をサンプリングして保存する（Ｓ１４）。ユーザの手動操作による動作データの入力が完了するまで（Ｓ１５：ＮＯ）、動作データサンプリング部１０９は、ステップＳ１４を繰り返す。ユーザは、ロボット１の手足をそれが可能な範囲で回動させることで、所望の動作データを入力することができる。
【００８９】
動作データの入力が終了すると（Ｓ１５：ＹＥＳ）、端末２は、ロボット制御部１０の保持する動作データを取得して、動作制御データを生成する（Ｓ１６）。動作制御データを生成する処理の詳細は、図９で述べる。
【００９０】
なお、ユーザによるロボット１の各部位（手足や首）の手動操作が一定時間以上ない場合に、ユーザによる動作データの入力が終了したものと判定することができる。ユーザが端末２の操作部２０５から動作データの入力終了を指示した場合、または、ユーザが動作データの入力終了を宣言し、その言葉をロボット１の音声認識部１０４が検出した場合に、動作データの入力が終了したものと判定してもよい。
【００９１】
図９は、図８中のステップＳ１６の詳細を示すフローチャートである。端末２の変極点検出処理部２０７は、ロボット制御部１０から動作データを取得し、その動作データから変極点を検出する（Ｓ２１）。以下、処理の主体を変極点検出部２０７として述べるが、これに代えて、処理の主体を端末２としてもよい。
【００９２】
変極点検出部２０７は、優先順位テーブルＴ１０を参照する（Ｓ２２）。変極点検出部２０７は、各変極点のうち、優先順位テーブルＴ１０に設定された優先順位が最も高い関節部１６の回動軸に対応する変極点を基準変極点とし（Ｓ２３）、その他の変極点を従属変極点とする（Ｓ２４）。詳しくは、動作データを所定の時間範囲（タイムスロット）ずつに区切った場合、一つの所定の時間範囲は、一つの基準変極点と少なくとも一つの（通常、複数の）従属変極点を含む。
【００９３】
変極点同期処理部２０８は、基準変極点のタイミングと各従属変極点のタイミングとが一致するように同期処理を実施する（Ｓ２５）。詳しくは、所定の時間範囲ごとに、その時間範囲に属する基準変極点のタイミングに、同じ時間範囲に属する従属変極点のタイミングを一致させる。
【００９４】
制御パラメータ生成処理部２０９は、実際にアクチュエータ１１８を駆動して動作データを再現するための制御パラメータを生成することで、動作データから動作制御データを生成する（Ｓ２６）。生成された動作制御データは、通信部２０６からロボット制御部１０へ送られて、メモリ１０２またはＳＳＤ１０３へ格納される。
【００９５】
ロボット制御部１０のＣＰＵ１０１は、端末２からの動作開始指示に従って、動作制御データを読み込んで実行する。ＣＰＵ１０１は、ロボット１の各アクチュエータ１１８を所定のタイミングで制御する。これにより、ユーザは、図８のステップＳ１４で入力した動作データの再現を確認することができる。
【００９６】
このように構成される本実施例によれば、ユーザがロボット１の手足を手動で操作することで動作データを入力した場合でも、動作データから抽出される変極点同士のタイミングを自動的に同期させることができる。従って、本実施例によれば、ユーザの入力する動作データに存在するムラや不自然さを抑制して、自然な動作をロボット１に登録することができる。
【００９７】
本実施例では、優先順位テーブルＴ１０を用意し、最も高い優先順位を持つ関節部１６の回動軸に対応する変極点を基準変極点とし、その他の変極点を従属変極点とし、基準変極点のタイミングに各従属変極点のタイミングを一致させる。従って、本実施例では、変極点同士を速やかに同期させることができる。
【００９８】
本実施例では、ロボット１の姿勢の安定に関与する度合の大きい部位（例えば足）に属する関節部１６の優先順位を高く設定するため、変極点同士を同期させた場合でも、ロボット１の姿勢が不安定になるのを抑制することができる。
【実施例２】
【００９９】
図１０，図１１を用いて第２実施例を説明する。本実施例を含む以下の各実施例は第１実施例の変形例に該当するため、第１実施例との相違を中心に説明する。本実施例では、ユーザは、動作データから抽出された変極点の種別を変更することができる。
【０１００】
図１０は、本実施例による動作制御データ生成処理Ｓ１６Ａのフローチャートである。本処理は、図８で述べたステップＳ１６に代えて実行される。本処理のステップＳ３１〜Ｓ３４は、図９のステップＳ２１〜Ｓ２４に対応し、本処理のステップＳ３８，Ｓ３９は図９のステップＳ２５，Ｓ２６に対応するため、説明を省略する。
【０１０１】
そこで本実施例に特徴的なステップＳ３５〜Ｓ３７について説明する。変極点検出部２０７は、図４や図５で示したような動作データのタイミングチャートを端末２の表示部２０４に表示する（Ｓ３５）。ユーザは、表示されたタイミングチャートを見て、変極点の種別を変えるべきか否か判断する。ユーザは、変極点の種別を変更する場合、変更対象の変極点を特定する情報と変更先の種別を特定する情報とを操作部２０５から端末２へ入力する（Ｓ３６：ＹＥＳ）。
【０１０２】
変極点検出部２０７は、ユーザからの変更指示を受領すると、ユーザの指示する変極点の種別をユーザの指示する種別に変更し（Ｓ３７）、ステップＳ３５へ戻る。
【０１０３】
本実施例では、変極点の種別として、基準変極点、従属変極点、独立変極点の３つを用意している。独立変極点とは、基準変極点および従属変極点のいずれからも独立した変極点であり、同期しない。ユーザは、例えば、従属変極点を独立変極点へ、あるいは、独立変極点を従属変極点へ、種別を変更することができる。
【０１０４】
或る変極点の種別が従属変極点から独立変極点に変更された場合、その変極点はユーザの手動操作で入力された通りのタイミングとなり、基準変極点と同期しない。
【０１０５】
さらに、本実施例では、従属変極点を独立変極点に変更する場合だけでなく、基準変極点を従属変極点または独立変極点のいずれかに変更したり、従属変極点を基準変極点に変更したりすることもできる。例えば、ユーザがタイミングチャートに示されている変極点のうちいずれか任意の変極点を操作部２０５でクリック操作するたびに、その変極点の種別が・・・→基準変極点→従属変極点→独立変極点→基準変極点・・・のように循環して変化するようになっている。
【０１０６】
基準変極点がタイムスロット（所定の時間範囲）に１つ必要な場合、既存の基準変極点を従属変極点または独立変極点に変更するときに、ユーザは、同じタイムスロット内の従属変極点または独立変極点を基準変極点に変更すればよい。または、変極点検出部２０７が自動的に、基準変極点を一つ設定することもできる。
【０１０７】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、変極点の種別を変更できるため、ユーザの利便性が向上する。詳しくは、ユーザは、従属変極点を独立変極点または基準変極点のいずれかへ変更したり、基準変極点を従属変極点または独立変極点のいずれかへ変更したりすることができるため、ユーザの望む通りの動作をロボット１に演じさせることができる。
【０１０８】
図５および図１１のタイミングチャートを参照し、例えばユーザが、万歳の後でちょっと間を置いてから拍手する動作を意図した場合を説明する。図５に示すように、拍手の開始する変極点Ｂ１，Ｃ１，Ｅ１，Ｆ１は、万歳動作の終了する変極点Ａ１２と同一のタイムスロットに属しており、かつその優先順位が低いため、従属変極点として検出され、基準変極点Ａ１２に同期する。従って、図５のままでは、万歳の直後に拍手が行われることになる。しかし、その動作は、ユーザの意図した動作ではない。
【０１０９】
そこで、図１１に示すように、本実施例では、ユーザは、拍手の開始する変極点Ｂ１，Ｃ１，Ｅ１，Ｆ１のうち、最も優先順位の高い変極点Ｂ１の種別を従属変極点から基準変極点に変更する。あるいは、ユーザが変極点Ｂ１，Ｃ１，Ｅ１，Ｆ１のうちいずれか一つの基準変極点への変更を指示すると、変極点検出部２０７が変極点Ｂ１，Ｃ１，Ｅ１，Ｆ１の中から最も優先順位の高い変極点Ｂ１を選択して、その種別を基準変極点に変更する。変極点Ｂ１が基準変極点に変化すると、その後に続く所定の時間範囲内の各従属変極点Ｃ１，Ｅ１，Ｆ１は、基準変極点Ｂ１に同期する。
【０１１０】
このように本実施例では、ユーザが変極点の種別を変更できるため、例えば万歳の終了するタイミングと拍手の開始するタイミングとに間をもたせる等のように、ユーザの意図した通りの動作を容易に実現することができる。この結果、本実施例によれば、ユーザの使い勝手が向上すると共に、ロボット１の動作の表現力が豊かになり、ユーザの興味を惹きつける。
【実施例３】
【０１１１】
図１２〜図１４を用いて第３実施例を説明する。本実施例では、ユーザが手動操作で入力した動作データを基準として、その動作シーケンスは保持したままで、動作時間や動作量（回動角度）を変更できるようにした。
【０１１２】
図１２は、本実施例の動作制御データ生成処理Ｓ１６Ｂのフローチャートである。本処理は、図８で述べたステップＳ１６に代えて実行される。本処理のステップＳ４１〜Ｓ４４は、図９のステップＳ２１〜Ｓ２４に対応し、本処理のステップＳ４８，Ｓ４９は図９のステップＳ２５，Ｓ２６に対応するため、説明を省略する。
【０１１３】
そこで本実施例に特徴的なステップＳ４５〜Ｓ４７について説明する。変極点検出部２０７は、ユーザが手動操作で入力した動作データのタイミングチャートを端末２の表示部２０４に表示する（Ｓ４５）。ユーザは、表示されたタイミングチャートを編集するか否かを判断する。ユーザは、タイミングチャートの編集を希望する場合、編集画面を呼び出すための指示を端末２へ入力する（Ｓ４６：ＹＥＳ）。端末２の変極点検出部２０７は、ユーザからの編集指示を受け取ると、編集処理へ移行する（Ｓ４７）。ユーザがタイミングチャートの編集を行わない場合（Ｓ４６：ＮＯ）、ステップＳ４８へ移行する。
【０１１４】
図１３は、図１２中のタイミングチャートの編集処理（Ｓ４７）を示すフローチャートである。
【０１１５】
最初に、変極点検出部２０７は、編集を終えるか否か判定し（Ｓ５１）、ユーザが編集終了を指示している場合（Ｓ５１：ＹＥＳ）、図１２の処理へ戻る。編集を続ける場合（Ｓ５１：ＮＯ）、変極点検出部２０７は、ユーザが編集対象の変極点を指定したか判定する（Ｓ５２）。ユーザは、表示部２０４に表示されたタイミングチャートに含まれる変極点群の中から、編集を希望する任意の変極点を一つ選択する。その選択は、操作部２０５を介して端末２へ入力される。
【０１１６】
ユーザが編集対象の変極点を指定すると（Ｓ５２：ＹＥＳ）、タイミングチャートを編集するためのパラメータ設定画面Ｇ１０を表示部２０４に表示する（Ｓ５３）。パラメータ設定画面Ｇ１０の例は、図１４で後述する。変極点検出部２０７は、ユーザがパラメータ設定画面Ｇ１０へ入力したパラメータを取得し、編集対象の変極点のパラメータをユーザの指定する値に更新して保存する（Ｓ５４）。
【０１１７】
図１４は、変極点のパラメータ設定を変更するための画面Ｇ１０である。例えば、ユーザがタイミングチャート中の任意の変極点をクリックすると、その変極点に関するパラメータに関する現在の情報を表示し、かつ、その現在の情報を変更するための画面Ｇ１０が表示される。変極点のパラメータは、「変極点に関するデータ」の例である。
【０１１８】
画面Ｇ１０には、その変極点のパラメータが少なくとも一つ表示される。ユーザは、表示されたパラメータのうち少なくとも一つの値を変更することができる。画面Ｇ１０には、ユーザ変更を禁止するパラメータを含めてもよい。画面Ｇ１０は、パラメータの現在値と修正値を対比して表示することができる。
【０１１９】
図１４は、右肩関節部のモータＭ（４Ｒ）Ｙ）の第６番目の変極点について示す。この例では、その変極点の時間軸上の位置である「時刻」と、直前の変極点との時間差である「間隔」と、回動角度を示す「位置」とが表示される。
【０１２０】
ユーザは、プルダウン式メニューに登録済みの値の中から所望の値を選択することで、パラメータの修正値を設定することができる。これに代えて、ユーザは、任意の数値を直接画面Ｇ１０へ入力してもよい。
【０１２１】
ユーザは、画面Ｇ１０に表示されている変極点とは別の変極点を、変極点指定画面Ｇ１１から選ぶこともできるし、タイミングチャート上の変極点をクリックすることで編集対象を変えることもできる。
【０１２２】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、ユーザが手動操作で入力した動作データのシーケンス（変極点の出現順序）を保持したままで、ユーザは任意の変極点のパラメータの全部または一部を変更できる。従って、本実施例によれば、ユーザは手動入力した変極点を簡単に修正できるため、使い勝手が向上する。さらに、本実施例によれば、ユーザが好みに応じてパラメータを適宜調整できるため、ロボット１の動作の表現力も向上する。
【実施例４】
【０１２３】
図１５，図１６を用いて第４実施例を説明する。本実施例では、ユーザは、複数回に分けて、手動操作により動作データを入力できるようにしている。
【０１２４】
図１５は、動作データを生成する処理を示すフローチャートである。本処理は、図８で述べた処理と同一のステップＳ１１〜Ｓ１６を備える。さらに本実施例では、ステップＳ１３でカウントダウンが０になった後（Ｓ１３：ＹＥＳ）、新規なステップＳ１７を実行し、その後でステップＳ１４〜Ｓ１６を実施する。
【０１２５】
新規ステップＳ１７では、登録済み動作データ（動作制御データ）をロボット１に実行させ、動作の再生を開始する。登録済み動作を再生開始した後、ユーザは、ロボット１を直接手動で操作することで、新たな動作データを追加する（Ｓ１４，Ｓ１５）。これにより、例えば、ユーザは、一回目の手動操作で第１の動作データを入力した後、第１の動作データを再生させながら、二回目の手動操作で第２の動作データを追加入力することができる。発熱やメモリ残量等の制限を受けない限り、ユーザは、動作データを随時追加して登録することができる。
【０１２６】
図１６は、既存の動作データに新たな動作データを追加入力する場合のタイミングチャートを示す。図１６では、「万歳の後で拍手する」という動作が登録済みであり、さらに「首を上下に動かした後で左右に振る」という動作を追加する。
【０１２７】
ユーザは、ロボット１に万歳や拍手などをさせながら、図１６に示すようにロボット１の頭部１５を上下に振ったり左右に振ったりする。この後、変極点検出部２０７は、既存の動作データと新規に追加された動作データの両方を考慮して、基準変極点や従属変極点を検出する。そして、所定の時間範囲ごとに変極点を同期させる処理が行われ、制御パラメータが設定されて動作制御データが作られる。
【０１２８】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、ユーザは、複数回に分けて、動作データを入力することができるため、複雑な動作をロボット１へ登録できる。従って、ユーザの使い勝手とロボット１の動作の表現力が向上する。
【０１２９】
特に、ユーザはロボット１を直接手動で操作することで動作データを入力するため、パーソナルコンピュータなどから動作データを入力する方式に比べて、一度に複雑な動作を入力するのは難しい。しかし本実施例によれば、登録済みの動作データを再生させながら、新たな動作データを入力できるため、複雑な動作であってもロボット１へ入力することができる。
【実施例５】
【０１３０】
図１７〜図１９を用いて第５実施例を説明する。本実施例では、ユーザが手動操作で入力した動作データをロボット１が再生する前に、その動作データから生成される動作制御データによる発熱量（モータ温度）を推定する。そして、本実施例では、推定した発熱量が所定の閾値を超えると判定した場合に、発熱量を抑制するための処理を実行する。
【０１３１】
図１７は、本実施例によるシステム構成図である。本実施例の端末２Ａは、図１で述べた端末２と同一構成２０１〜２０９を備えるともに、さらに発熱量推定部２１０と、発熱抑制部２１１を備える。図１７では、紙面の都合上、制御パラメータ生成処理部２０９をパラメータ生成処理部２０９と略記する。
【０１３２】
図１８は、或る関節部１６の駆動源であるモータ（即ちアクチュエータ１１８）に着目して、動作制御データに応じて発熱量が変化する様子を示すグラフである。図１８の縦軸は発熱量（モータ温度）を示し、横軸は時間を示す。
【０１３３】
まず最初に、発熱量を推定する方法を説明する。ロボット１を動作させるためには、動作対象の関節部１６のモータ１１８のそれぞれに対して、所定のパラメータを設定する必要がある。所定のパラメータとしては、例えば、目標位置（目標角度）、目標位置までのサーボの移動時間がある。
【０１３４】
単動作の発熱量Ｐｐは、目標位置までの動作角度Δθと移動時間ΔＴ１の逆数の積から、下記の式１に示すように推定できる。式１において、ｋ１は係数である。
Ｐｐ＝ｋ１×Δθ／ΔＴ１・・・（式１）
【０１３５】
単動作と単動作の間に休止期間ΔＴ２がある場合、その休止期間中にモータ１１８は冷却されて、温度が低下する。休止期間中の冷却により低下する熱量Ｐｍは、下記の式２から求めることができる。式２において、ｋ２は係数である。
Ｐｍ＝ｋ２×ΔＴ２・・・（式２）
【０１３６】
従って、モータ１１８ごとに一連の動作で発生する熱量Ｐは、下記の式３に示すように、一連の動作に含まれる各単動作での発熱量Ｐｐを積算し、そこから冷却効果による熱量Ｐｍを減じることで求めることができる。
Ｐ＝ΣＰｐｉ−ΣＰｍｊ・・・（式３）
【０１３７】
図１８（ａ）は、ある関節部１６のモータ１１８の発熱量が一連の動作で変化する様子を示す。対象のモータ１１８の初期の発熱量ｐ１は、室温とほぼ等しいが、モータ１１８の動作につれて徐々に増加していく（ｐ１→ｐ２→ｐ３→ｐ４→ｐ５）。モータ１１８は、ロボット１の内部に設けられているため、その配置構造等によっても相違するが、熱がこもりやすい。
【０１３８】
休止期間ΔＴ２が訪れると、モータ１１８は自然空冷されるため、発熱量は低下する（ｐ５→ｐ６）。その後、モータ１１８の作動が再開されると、モータ１１８は発熱し、発熱量は上昇する（ｐ６→ｐ７→ｐ８→ｐ９→ｐ１０）。
【０１３９】
しかし、一連の動作が終了した時点の発熱量ｐ１０（モータ温度）は、所定の閾値Ｐｔｈを上回っている。所定の閾値Ｐｔｈは、例えば、サーボモータ１１８の最大定格温度を越えない値に設定される。
【０１４０】
モータ１１８の発熱量が閾値Ｐｔｈを超えると、モータ１１８が過熱状態となり、性能が低下するおそれがある。そこで、本実施例では、モータ１１８に設定するパラメータのうち、目標位置と移動時間の少なくともいずれか一方を変更することで、図１８（ｂ）に示すように、モータ１１８の発熱量を抑制する。
【０１４１】
目標位置と移動時間のいずれか一方または両方を変更しただけでは、一連の動作の全体の流れ（動作シーケンス）そのものに変化はほとんど生じない。従って、ユーザは、ロボット１の動作のわずかな変化に全く気づかないか、気づいたとしてもその変化を許容すると考えられる。
【０１４２】
図１８（ｂ）では、休止期間ΔＴ２ｂを、修正前の休止期間ΔＴ２よりも若干長く設定し、さらに、或る単動作の目標位置を減少させることで発熱を抑えている（ｐ８）。
【０１４３】
図１９は、本実施例による動作生成処理のフローチャートである。本処理は、図８で述べた処理のステップＳ１１〜Ｓ１６を備えている。
【０１４４】
さらに本処理では、動作制御データの生成後に（Ｓ１６）、動作制御データを解析して個々の関節部１６のモータ１１８の発熱量を推定する（Ｓ６１）。本処理では、推定した発熱量が閾値ＰＴｈを超えるか判定し（Ｓ６２）、推定した発熱量が閾値ＰＴｈを超えると判定すると（Ｓ６２：ＹＥＳ）、ステップＳ１６で生成した動作制御データを一部変更する（Ｓ６３）。ステップＳ６１〜Ｓ６３は、発熱抑制処理Ｓ６０の一例である。推定した発熱量が閾値ＰＴｈ以下の場合（Ｓ６２：ＮＯ）、動作制御データを変更せずに本処理を終了する。
【０１４５】
ステップＳ６３では、例えば、個々の関節部１６のモータ１１８のそれぞれについて、推定発熱量が閾値ＰＴｈ以下となるように、動作制御データのパラメータ（目標位置や移動時間）を適宜修正する。
【０１４６】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、動作制御データを実際にロボット１で再生する前に、その動作制御データによる発熱量を関節部のモータ１１８ごとに推定し、推定した発熱量が閾値ＰＴｈを超える場合は、自動的に修正する。従って、本実施例によれば、モータ１１８が過熱状態となって性能が低下したり、動作が停止したりするのを未然に抑制することができ、使い勝手および信頼性が向上する。
【０１４７】
一般的なユーザは、モータ性能の温度特性やロボット１の熱的条件等を気にせずに動作データを入力すると考えられるが、その場合でも、ロボット１を正常に動作させることができるため、ユーザフレンドリーであり、かつ信頼性も向上する。
【実施例６】
【０１４８】
図２０を用いて第６実施例を説明する。本実施例は、第４実施例（図１５）と第５実施例（図１９）とを結合している。
【０１４９】
図２０は、本実施例による動作データ生成処理のフローチャートである。本処理は、図１５で述べたステップＳ１１〜Ｓ１７の後で、図１９で述べたステップＳ６１〜Ｓ６３を実行する。
【０１５０】
本実施例では、登録済み動作制御データを実行して動作データを再生しながら（Ｓ１１〜Ｓ１７）、新たな動作データを追加でき（Ｓ１４，Ｓ１５）、さらに登録済み動作データおよび追加した動作データから生成する動作制御データの発熱量を推定し、必要な場合は発熱量を抑制すべく動作制御データを変更する（Ｓ６１〜Ｓ６３）。このように構成される本実施例も第５実施例と同様の作用効果を奏する。
【実施例７】
【０１５１】
図２１を用いて第７実施例を説明する。本実施例では、発熱抑制処理として、ユーザに動作データの変更を助言する。
【０１５２】
図２１は、本実施例による動作データ生成処理のフローチャートである。本処理は、図１５で述べたステップＳ１１〜Ｓ１６を実行した後で、動作制御データの発熱量を推定し（Ｓ６１）、推定した発熱量が閾値ＰＴｈを超えると判定すると（Ｓ６２：ＹＥＳ）、動作データの変更をユーザに対して助言する（Ｓ６４）。この助言は、例えば「いま入力した動作データは、熱により正常動作しない可能性があります。動作データの再入力をお勧めします」といったメッセージを表示部２０４に表示することで行われる。
【０１５３】
ユーザが操作部２０５を介して動作データの再入力を指示すると（Ｓ６５：ＹＥＳ）、ステップＳ１２に戻り、カウントダウンが開始される。
【０１５４】
このように構成される本実施例も第５実施例と同様の作用効果を奏する。さらに本実施例では、動作制御データを自動的に変更するのではなく、助言にとどめるため、第５実施例に比べてユーザの意思を尊重することができる。
【実施例８】
【０１５５】
図２２を用いて第８実施例を説明する。本実施例では、ユーザが単動作を入力するたびに、それによる発熱量を推定して、累計発熱量（モータ温度）が閾値ＰＴｈを超えるか判断し、必要な場合にユーザに助言を与える。
【０１５６】
図２２は、本実施例による動作データ生成処理のフローチャートである。端末２は、ユーザからの動作生成開始指示を受領すると（Ｓ１１：ＹＥＳ）、通信部２０６からロボット制御部１０に、動作データの生成を行う旨を指示する。
【０１５７】
ロボット制御部１０は、端末２からの指示を受領すると、動作データの生成開始をカウントダウン方式でユーザに通知する（Ｓ１２）。カウントダウンが０になると（Ｓ１３：ＹＥＳ）、動作データサンプリング部１０９は、ユーザにより手動操作される手足の回動角度をサンプリングして保存する（Ｓ１４）。
【０１５８】
変極点検出部２０７は、動作データサンプリング部１０９の保存した動作データを取得し、変極点があるか判断する（Ｓ１８）。変極点が検出されると（Ｓ１８：ＹＥＳ）、制御パラメータ生成処理部２０９は、パラメータを設定して動作制御データを生成する（Ｓ１６）。
【０１５９】
発熱量推定部２１０は、変極点までの動作制御データから発熱量を推定し（Ｓ６１）、発熱抑制部２１１は、推定した発熱量が閾値ＰＴｈを超えるか判定する（Ｓ６２）。端末２は、推定した発熱量が閾値ＰＴｈ以下である場合（Ｓ６２：ＮＯ）、動作データの入力を終了するか否か判定する（Ｓ６６）。ユーザの手動操作による動作データの入力が終了していない場合（Ｓ６６：ＮＯ）、ステップＳ１２へ戻る。動作データの入力を終了する場合（Ｓ６６：ＹＥＳ）、本処理を終了する。
【０１６０】
推定した発熱量が閾値ＰＴｈを超える場合（Ｓ６２：ＹＥＳ）、発熱抑制部２１１は、動作データの変更をユーザに助言する（Ｓ６４）。端末２は、ユーザが助言に従って動作データの再入力を希望すると（Ｓ６５：ＹＥＳ）、ステップＳ１２へ戻る。動作データの再入力を希望しない場合（Ｓ６５：ＮＯ）、本処理を終了する。
【０１６１】
このように構成される本実施例も第５実施例と同様の作用効果を奏する。さらに本実施例では、変極点を検出するたびに発熱量が閾値を越えているか判定し、ユーザに助言を与える。従って、本実施例によれば、ユーザが動作データの全体を入力する前に、単動作ごとに段階的に発熱量を判定することができ、早期に動作データを修正できる。この結果、動作データの全体を入力した後で助言を与える場合に比べて、使い勝手が向上する。
【０１６２】
なお、図２２のステップＳ６４において、図１８で示すようなグラフをユーザに提示すれば、ユーザの入力した単動作ごとに発熱量を推定して、ユーザに提供できる。ユーザは、単動作を入力するたびに、発熱量の推移を目視で容易に確認することができる。
【０１６３】
さらに、ユーザへ助言を与えた後で、ユーザの望む場合には、動作制御データを自動的に修正するように構成してもよい。
【０１６４】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。端末２は、ロボット１から離れた場所に設置されたパーソナルコンピュータ等でもよいし、ロボット１に取り付けられたタブレット型ＰＣであってもよい。
【符号の説明】
【０１６５】
１：ロボット、２：端末、１０：ロボット制御部、１６：関節部、１０９：動作データサンプリング部、２０７：変極点検出部、２０８：変極点同期処理部、２０９：制御パラメータ生成処理部、２１０：発熱量推定部、２１１：発熱抑制部
【図１】
0006671928.tif 000002
【図２】
0006671928.tif 000003
【図３】
0006671928.tif 000004
【図４】
0006671928.tif 000005
【図５】
0006671928.tif 000006
【図６】
0006671928.tif 000007
【図７】
0006671928.tif 000008
【図８】
0006671928.tif 000009
【図９】
0006671928.tif 000010
【図１０】
0006671928.tif 000011
【図１１】
0006671928.tif 000012
【図１２】
0006671928.tif 000013
【図１３】
0006671928.tif 000014
【図１４】
0006671928.tif 000015
【図１５】
0006671928.tif 000016
【図１６】
0006671928.tif 000017
【図１７】
0006671928.tif 000018
【図１８】
0006671928.tif 000019
【図１９】
0006671928.tif 000020
【図２０】
0006671928.tif 000021
【図２１】
0006671928.tif 000022
【図２２】
0006671928.tif 000023