(57)【要約】【課題】ロボットが想定外の姿勢で動作を開始した場合であっても、ロボットの動作実行時の転倒リスクを低減する。【解決手段】モーション制御装置（１０）は、モーションデータに示される動作部（５０）の開始位置と、モーションデータを再生する直前の動作部（５０）の位置との差分を算出する差分算出部（１３０）と、モーションデータの再生を制御する再生制御部（１１０）とを備え、再生制御部（１１０）は、差分算出部（１３０）によって算出された差分が第１閾値以上である場合、モーションデータの再生を行わない。【選択図】図１
2018202523.tif 000002
【特許請求の範囲】
【請求項１】
再生されるモーションデータに基づいて動作する動作部と、前記動作部を動作させる駆動部とを有するロボットの動作を制御する制御装置において、
前記モーションデータに示される前記動作部の開始位置と、前記モーションデータを再生する直前の前記動作部の位置との差分を算出する差分算出部と、
前記モーションデータの再生を制御する再生制御部とを備え、
前記再生制御部は、
前記モーションデータを再生する直前の前記動作部の位置から、前記モーションデータに基づいて動作を行っても、前記ロボットが転倒する可能性の低い差分の値の臨界値を第１閾値とし、
前記差分算出部によって算出された差分が前記第１閾値以上である場合、前記モーションデータの再生を行わないことを特徴とする制御装置。
【請求項２】
駆動されると前記ロボットが転倒する可能性が高い前記駆動部の情報が予め記憶された記憶部をさらに備え、
前記差分算出部は、前記情報に基づいて、駆動されると前記ロボットが転倒する可能性が高い前記駆動部によって駆動される前記動作部に対して前記差分を算出することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記ロボットの姿勢の情報と、駆動されると前記ロボットが転倒する可能性が高い前記駆動部の情報とを対応付けて記憶する記憶部をさらに備え、
前記差分算出部は、前記ロボットの姿勢の情報に対応する、駆動されると前記ロボットが転倒する可能性が高い前記駆動部の情報に基づいて、駆動されると前記ロボットが転倒する可能性が高い前記駆動部によって動作させられる前記動作部に対して前記差分を算出することを特徴とする請求項１に記載の制御装置。
【請求項４】
前記駆動部はモータであり、
前記モータの回転速度、及び前記ロボットの姿勢の情報に基づいて、前記動作部にかかる力の大きさを算出する処理を行う演算処理部をさらに備え、
前記再生制御部は、
前記モーションデータに基づいて動作を行っても、前記ロボットが転倒する可能性の低い、前記動作部にかかる力の大きさの臨界値を第２閾値とし、
前記演算処理部によって算出された前記動作部にかかる力の大きさが第２閾値以上である場合、前記モーションデータの再生を行わないことを特徴とする請求項１から３のいずれか１項に記載の制御装置。
【請求項５】
再生されるモーションデータに基づいて動作する動作部と、前記動作部を動作させる駆動部とを有するロボットの動作を制御する制御装置における制御方法において、
前記モーションデータに示される前記動作部の開始位置と、前記モーションデータを再生する直前の前記動作部の位置との差分を算出する差分算出工程と、
前記モーションデータの再生を制御する再生制御工程とを備え、
前記再生制御工程にて、
前記モーションデータを再生する直前の前記動作部の位置から、前記モーションデータに基づいて動作を行っても、前記ロボットが転倒する可能性の低い差分の値の臨界値を第１閾値とし、
前記差分算出工程にて算出された差分が前記第１閾値以上である場合、前記モーションデータの再生を行わないことを特徴とする制御方法。
【請求項６】
請求項１に記載の制御装置としてコンピュータを機能させるための制御プログラムであって、前記差分算出部及び前記再生制御部としてコンピュータを機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置、制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
複数の駆動部（例えば、サーボモータ）を備え、複数の駆動部を駆動させることにより、手足を動かすことが可能なロボットが従来技術として知られている。
【０００３】
また、特許文献１には、作業軌跡の開始点から終了点への方向ベクトルと、ロボットの移動方向ベクトルとのなす角が許容角より小さい場合、ロボットの移動を許可するロボット動作の自動教示方法が開示されている。また、ロボット動作の自動教示方法では、上記なす角が許容角より大きい場合、ロボットの移動を禁止する。これにより、ロボット動作の自動教示時にロボットが異常な動作を行うことを防ぐことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−０００８８３号公報（１９９９年１月６日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されているロボット動作の自動教示方法では、ロボットが動作を開始するときのロボットの姿勢が決まっているときのみ有効である。ロボットが想定外の姿勢で動作を開始した場合、ロボットの現在位置と、ロボットがこれから行う動作の開始位置とが大きく異なれば、ロボットが転倒するという問題がある。
【０００６】
本発明の一態様は、ロボットが想定外の姿勢で動作を開始した場合であっても、ロボットの動作実行時の転倒リスクを低減することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明の一態様に係る制御装置は、再生されるモーションデータに基づいて動作する動作部と、前記動作部を動作させる駆動部とを有するロボットの動作を制御する制御装置において、前記モーションデータに示される前記動作部の開始位置と、前記モーションデータを再生する直前の前記動作部の位置との差分を算出する差分算出部と、前記モーションデータの再生を制御する再生制御部とを備え、前記再生制御部は、前記モーションデータを再生する直前の前記動作部の位置から、前記モーションデータに基づいて動作を行っても、前記ロボットが転倒する可能性の低い差分の値の臨界値を第１閾値とし、前記差分算出部によって算出された差分が前記第１閾値以上である場合、前記モーションデータの再生を行わない。
【０００８】
また、本発明の一態様に係る制御方法は、再生されるモーションデータに基づいて動作する動作部と、前記動作部を動作させる駆動部とを有するロボットの動作を制御する制御装置における制御方法において、前記モーションデータに示される前記動作部の開始位置と、前記モーションデータを再生する直前の前記動作部の位置との差分を算出する差分算出工程と、前記モーションデータの再生を制御する再生制御工程とを備え、前記再生制御工程にて、前記モーションデータを再生する直前の前記動作部の位置から、前記モーションデータに基づいて動作を行っても、前記ロボットが転倒する可能性の低い差分の値の臨界値を第１閾値とし、前記差分算出工程にて算出された差分が前記第１閾値以上である場合、前記モーションデータの再生を行わない。
【発明の効果】
【０００９】
本発明の一態様によれば、ロボットが想定外の姿勢で動作を開始した場合であっても、ロボットの動作実行時の転倒リスクを低減することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態１に係るロボットの構成を示すブロック図である。
【図２】図１に示すロボットの動作を示すフローチャートである。
【図３】（ａ）〜（ｃ）は図１に示すロボットの動作を示す模式図である。
【図４】本発明の実施形態２に係るロボットの構成を示すブロック図である。
【図５】図４に示すロボットの動作を示すフローチャートである。
【図６】（ａ）及び（ｂ）は図４に示すロボットの動作を示す模式図である。
【図７】本発明の実施形態３に係るロボットの構成を示すブロック図である。
【図８】図７に示すロボットの動作を示すフローチャートである。
【図９】図７に示すロボットの動作を示す模式図である。
【発明を実施するための形態】
【００１１】
〔実施形態１〕
以下、本発明の実施形態について、図１〜図３に基づいて説明すれば、以下の通りである。図１は本発明の実施形態１に係るロボット１の構成を示すブロック図である。
【００１２】
（ロボット１の構成）
ロボット１は、図１に示すように、モーション制御装置１０（制御装置）、スピーカ２０、発光部３０、サーボモータ４０（駆動部、モータ）、及び動作部５０を備えている。ロボット１は、モーションデータに基づいて動作を実行する。モーション制御装置１０は、実行要求部１０５、再生制御部１１０、データ制御部１１５、記憶部１２０、位置検出部１２５、差分算出部１３０、差分判定部１３５、及び駆動制御部１４０を備えている。
【００１３】
実行要求部１０５は、再生制御部１１０に処理を行うように指示する。具体的には、実行要求部１０５は、再生制御部１１０に、ロボット１に特定のモーションを実行させるように要求する。再生制御部１１０は、実行要求部１０５から特定のモーションの実行の要求を受けると、データ制御部１１５に記憶部１２０から特定のモーションに該当するモーションデータを選択するように指示する。再生制御部１１０は、位置検出部１２５に現在の動作部５０の位置を検出するように指示する。現在の動作部５０の位置とは、ロボット１がモーションデータを再生する直前の動作部５０の位置である。また、再生制御部１１０は、差分算出部１３０にモーションデータを供給し、処理を行うように指示する。再生制御部１１０は、スピーカ２０及び発光部３０を制御して、スピーカ２０に音声を出力させ、発光部３０を発光させる。
【００１４】
データ制御部１１５は、記憶部１２０から特定のモーションに該当するモーションデータを選択する。データ制御部１１５は、選択したモーションデータ及び転倒リスクが高いサーボモータ４０の情報を再生制御部１１０に供給する。転倒リスクが高いとは、サーボモータ４０が駆動されるとロボット１が転倒する可能性が高いことを意味する。記憶部１２０は、複数のモーションデータを予め記憶しており、転倒リスクが高いサーボモータ４０の情報も予め記憶している。
【００１５】
位置検出部１２５は、サーボモータ４０が備える位置検出器（図示せず）から動作部５０の位置を検出する。具体的には、位置検出部１２５は、検出した位置の情報を再生制御部１１０に供給する。
【００１６】
差分算出部１３０は、現在の動作部５０の位置と、再生制御部１１０から供給されたモーションデータに示される動作部５０の開始位置との差分を算出する。差分算出部１３０は、算出した差分を差分判定部１３５に供給する。
【００１７】
差分判定部１３５は、差分算出部１３０によって算出された差分が第１閾値以上であるか否かを判定する。差分算出部１３０によって算出された差分は、大きければ大きいほど、そのままモーションデータに基づいて動作を行えばロボット１が転倒する可能性が高くなる。したがって、現在の動作部５０の位置から、モーションデータに基づいて動作を行っても、ロボット１が転倒する可能性の低い差分の値の臨界値を第１閾値とする。第１閾値は、製品（ロボット１）ごとに異なる値であり、製品ごとに調整されて決定される値である。差分判定部１３５は、判定した結果を再生制御部１１０に供給する。
【００１８】
駆動制御部１４０は、サーボモータ４０を制御することにより動作部５０を動作させる。サーボモータ４０は、駆動制御部１４０によって駆動される。サーボモータ４０は動作部５０を動作させる。動作部５０が動作されれば、サーボモータ４０ではなく、他の駆動機構を用いてもよい。ロボット１は複数のサーボモータ４０を備えており、例えば、サーボモータ４０はロボット１の肩、腰、または足首などに設けられていてもよい。動作部５０は、サーボモータ４０によって動作する部分であり、ロボット１全体の重心が変化したときに、動作する部分である。例えば、ロボット１の上半身が動いたら、動作部５０はロボット１の上半身に該当し、ロボット１の頭が動いたら、動作部５０はロボット１の頭に該当する。動作部５０は、モーションデータに基づいて動作する。
【００１９】
スピーカ２０は、ロボット１が音声を出力するためのものである。スピーカ２０は、再生制御部１１０からの指示により音声を出力する。発光部３０は、例えば、ＬＥＤ（Light Emitting Diode）であってもよく、再生制御部１１０からの指示により発光する。発光部３０は、発光することができれば特に限定されない。
【００２０】
（ロボット１の動作）
次にロボット１の動作（制御方法）について図２に基づいて説明する。図２はロボット１の動作を示すフローチャートである。
【００２１】
まず、図２に示すように、実行要求部１０５は、再生制御部１１０に特定のモーションの実行を要求する（Ｓ１０５）。再生制御部１１０は、実行要求部１０５から特定のモーションの実行を要求されると、データ制御部１１５に特定のモーションに該当するモーションデータを取得するように指示する。モーションデータとは、例えば、以下の表１に示すようなデータである。
【００２２】
【表１】
2018202523.tif 000003
【００２３】
表１において、ｔ（ｍｓｅｃ）は時間であり、ｓ（°）はロボット１において胴体ｂ２と腕ａ２とのなす角であり、ｈ（°）はロボット１において胴体ｂ２と脚ｃ２とのなす角である。表１に示すように、ｔ（ｍｓｅｃ）が０〜１０００（ｍｓｅｃ）の間で変化する場合、ｓ（°）は０〜−９０（°）の間で変化し、ｈ（°）は常に−９０（°）である。
【００２４】
ここでは、ロボット１の肩に設けられたサーボモータ４０をサーボモータｓ１と称し、ロボット１の腰に設けられたサーボモータ４０をサーボモータｈ１と称する。表１に示すモーションデータでは、図３の（ａ）に示すような動作になる。図３の（ａ）ではロボット１は直立している。図３に示すように、ロボット１にはサーボモータｓ１及びサーボモータｈ１が設けられている。サーボモータｓ１が駆動することでｓ（°）が変化し、サーボモータｈ１が駆動することでｈ（°）が変化する。ｓ（°）及びｈ（°）において、図３における右方向が０（°）になり、図３における下方向が−９０（°）になる。図３の（ａ）では、ｓ（°）が０（°）から−９０（°）に移動するように、サーボモータｓ１が駆動する。また、ｈ（°）が−９０（°）である状態が維持されるように、サーボモータｈ１が停止している。
【００２５】
データ制御部１１５は、再生制御部１１０からモーションデータを取得するように指示されると、記憶部１２０から複数のモーションデータを参照し、記憶部１２０から特定のモーションに該当するモーションデータを取得する（Ｓ１１０）。データ制御部１１５は、取得したモーションデータ、及び転倒リスクが高いサーボモータ４０の情報を再生制御部１１０に供給する。
【００２６】
再生制御部１１０は、データ制御部１１５からモーションデータ、及び転倒リスクが高いサーボモータ４０の情報が供給された後、位置検出部１２５に現在の動作部５０の位置を検出するように指示する。ここで、動作部５０については、転倒リスクが高いサーボモータ４０によって駆動されるものを対象とする。転倒リスクが低いサーボモータ４０が駆動してもロボット１が転倒する可能性が低いからである。位置検出部１２５は、再生制御部１１０から現在の動作部５０の位置を検出するように指示されると、現在の動作部５０の位置を検出する（Ｓ１１５）。具体的には、位置検出部１２５は、サーボモータ４０が備える位置検出器（図示せず）から動作部５０の位置を検出する。サーボモータ４０が備える位置検出器はサーボモータ４０の回転角を検出し、位置検出部１２５は、サーボモータ４０の回転角から、動作部５０の位置を検出する。位置検出部１２５は、検出した動作部５０の位置の情報を再生制御部１１０に供給する。動作部５０の位置とは、例えば、以下の表２に示すように、ｓ（°）及びｈ（°）の角度を示すものである。ｓ（°）において動作部５０はロボット１の腕ａ２に該当し、ｈ（°）において動作部５０はロボット１の脚ｃ２に該当する。動作部５０については、転倒リスクが高いサーボモータ４０によって駆動されるものを対象とするので、位置検出部１２５は、ｈ（°）の角度のみを検出する。
【００２７】
【表２】
2018202523.tif 000004
【００２８】
表２において、「ｂｅｆｏｒｅ」はロボット１がモーションデータを再生する直前の動作部５０の位置を示している。表２に示すように、ロボット１がモーションデータを再生する直前の動作部５０の位置は、ｈ（°）が−９２（°）であることを示す位置である。位置検出部１２５が検出した位置は、ロボット１がモーションデータを再生する直前の動作部５０の位置であるので、表２においては、ｈ（°）が−９２（°）であることを示す位置である。
【００２９】
再生制御部１１０は、位置検出部１２５から動作部５０の位置の情報が供給される。その後、再生制御部１１０は、差分算出部１３０にモーションデータ、位置検出部１２５から供給された動作部５０の位置の情報、及びデータ制御部１１５から供給された転倒リスクが高いサーボモータ４０の情報を供給する。
【００３０】
差分算出部１３０は、再生制御部１１０からモーションデータ、動作部５０の位置の情報、及び転倒リスクが高いサーボモータ４０の情報が供給されると、現在の動作部５０の位置とモーションデータに示される動作部５０の開始位置との差分を算出する（Ｓ１２０：差分算出工程）。ここで、動作部５０については、転倒リスクが高いサーボモータ４０によって駆動されるものを対象とする。
【００３１】
具体的には、例えば、表２において、現在の動作部５０の位置は、ｈ（°）が−９２（°）であることを示す位置である。モーションデータに示される動作部５０の開始位置は、ｈ（°）が−９０（°）であることを示す位置である。転倒リスクが高いサーボモータ４０は、サーボモータｈ１のみであるので、差分算出部１３０によって算出される差分は、ｈ（°）において２（°）である。ロボット１は直立しているので、転倒リスクが高いサーボモータ４０は、サーボモータｓ１ではなく、サーボモータｈ１となる。差分算出部１３０は、算出した差分を差分判定部１３５に供給する。
【００３２】
差分判定部１３５は、差分算出部１３０から差分が供給されると、差分算出部１３０によって算出された差分が第１閾値以上であるか否かを判定する（Ｓ１２５）。第１閾値は、サーボモータ４０ごとに異なっていてもよい。また、ロボット１がモーションデータを再生する直前の動作部５０の位置と、モーションデータに示される動作部５０の開始位置は必ずしも一致しているわけではない。差分判定部１３５は、問題のない範囲で多少の誤差を許容するために、差分算出部１３０によって算出された差分が第１閾値以上であるか否かを判定する。
【００３３】
差分算出部１３０によって算出された差分が第１閾値未満である場合（Ｓ１２５にてＮＯの場合）、差分判定部１３５は、再生制御部１１０にモーションデータを再生するように指示する。例えば、表２において、差分算出部１３０によって算出される差分は、前述したように、ｈ（°）において２（°）である。第１閾値が５（°）であるとすると、差分算出部１３０によって算出される差分は第１閾値未満となる。表２に示す状態で動作部５０が動くと、ロボット１の動作は、図３の（ａ）に示す動作になる。図３の（ａ）に示す動作では、ロボット１が急に大きく動作することがないので、転倒する可能性がない。つまり、差分判定部１３５は、差分算出部１３０によって算出された差分が第１閾値未満である場合、ロボット１が転倒する可能性がないと判定し、再生制御部１１０にモーションデータを再生するように指示する。
【００３４】
再生制御部１１０は、差分判定部１３５からモーションデータを再生するように指示されると、再生制御部１１０は、駆動制御部１４０にモーションデータを供給する。駆動制御部１４０は、再生制御部１１０から供給されたモーションデータに基づいてモーションデータを再生する（Ｓ１３０：再生制御工程）。具体的には、駆動制御部１４０は、モーションデータに基づいてサーボモータ４０を制御し、動作部５０を動作させる。
【００３５】
差分算出部１３０によって算出された差分が第１閾値以上である場合（Ｓ１２５にてＹＥＳの場合）、差分判定部１３５は、再生制御部１１０にエラーを通知する（Ｓ１３５）。例えば、以下の表３において、ロボット１がモーションデータを再生する直前の動作部５０の位置は、ｈ（°）が０（°）であることを示す位置である。一方、モーションデータに示される動作部５０の開始位置は、ｈ（°）が−９０（°）であることを示す位置である。よって、差分算出部１３０によって算出される差分は、ｈ（°）において９０（°）である。第１閾値が５（°）であるとすると、差分算出部１３０によって算出される差分は第１閾値以上となる。表３に示す状態で動作部５０が動くと、ロボット１の動作は、図３の（ｂ）に示す動作になる。図３の（ｂ）ではロボット１は座っている状態から直立している状態に移ることが示されている。図３の（ｂ）に示す動作では、ロボット１が急に大きく動作するので、転倒する可能性がある。つまり、差分判定部１３５は、差分算出部１３０によって算出された差分が第１閾値以上である場合、ロボット１が転倒する可能性があると判定し、再生制御部１１０にエラーを通知する。
【００３６】
【表３】
2018202523.tif 000005
【００３７】
再生制御部１１０は、差分判定部１３５からエラーを通知されると、処理を終了する（モーションデータの再生を行わない）。なお、再生制御部１１０は、差分判定部１３５からエラーを通知されたとき、スピーカ２０及び発光部３０を用いて、スピーカ２０に音声を出力させ、発光部３０を発光させることでロボット１の周囲にエラーであることを示してもよい。
【００３８】
以上により、モーション制御装置１０では、差分算出部１３０は、ロボット１がモーションデータを再生する直前の動作部５０の位置と、モーションデータに示される動作部５０の開始位置との差分を算出する。ここで、差分算出部１３０によって算出された差分は、大きければ大きいほど、そのままモーションデータに基づいて動作を行なえばロボット１が転倒する可能性が高くなる。したがって、現在の動作部５０の位置から、モーションデータに基づいて動作を行っても、ロボット１が転倒する可能性の低い差分の値の臨界値を第１閾値とする。再生制御部１１０は、差分算出部１３０によって算出された差分が第１閾値未満である場合、モーションデータを再生する制御を行う。これにより、ロボット１が想定外の姿勢で動作を開始した場合であっても、ロボット１の動作実行時の転倒リスクを低減することができる。
【００３９】
また、モーション制御装置１０では、記憶部１２０は、駆動されるとロボット１が転倒する可能性が高いサーボモータ４０の情報を予め記憶する。また、差分算出部１３０は、その情報に基づいて、駆動されるとロボット１が転倒する可能性が高いサーボモータ４０によって駆動される動作部５０に対して差分を算出する。これにより、駆動されるとロボット１が転倒する可能性が高いサーボモータ４０によって駆動される動作部５０においてのみ差分を算出するので、差分算出部１３０が行う処理を少なくすることができる。
【００４０】
（変形例１）
なお、再生制御部１１０は、差分判定部１３５からエラーを通知されると、動作部５０の位置を基準位置に移動させるように駆動制御部１４０に指示してもよい。基準位置とは、例えば、ｓ（°）が−９０（°）、ｈ（°）が−９０（°）を示す位置である。動作部５０の位置が基準位置に移動した後、再生制御部１１０は、動作部５０の位置を、基準位置からモーションデータに示される動作部５０の開始位置に移動させるように駆動制御部１４０に指示する。動作部５０の位置がモーションデータに示される動作部５０の開始位置に移動した後、再生制御部１１０は、駆動制御部１４０にモーションデータを供給する。駆動制御部１４０は、再生制御部１１０から供給されたモーションデータに基づいてモーションデータを再生する。
【００４１】
（変形例２）
また、図３の（ｃ）に示すように、サーボモータｈ１及びサーボモータａ１のように、転倒リスクが高いサーボモータ４０が複数存在する場合、転倒リスクが高い複数のサーボモータ４０それぞれに対して差分を判定し、モーションデータの実行可否を判定する。この差分とは、前述したように、ロボット１がモーションデータを再生する直前の動作部５０の位置とモーションデータに示される動作部５０の開始位置との差分である。サーボモータａ１とは、ロボット１の足首に設けられたサーボモータ４０である。図３の（ｃ）ではロボット１は直立している。
【００４２】
転倒リスクが高いサーボモータ４０が複数存在する場合、ロボット１は、サーボモータ４０ごとにモーションデータの実行可否を判定してもよい。また、差分判定部１３５が、各サーボモータ４０における差分を合計し、その合計が第１閾値以上であるか否かを判定することでモーションデータの実行可否を判定してもよい。
【００４３】
ロボット１がサーボモータ４０ごとにモーションデータの実行可否を判定する場合、例えば、サーボモータｈ１における差分が２であり、サーボモータａ１における差分が７であるとする。サーボモータｈ１における差分が第１閾値未満となり、サーボモータａ１における差分が第１閾値以上となる。差分判定部１３５は、サーボモータｈ１をモーションデータ実行可であると判定し、サーボモータａ１をモーションデータ実行不可であると判定する。つまり、モーションデータにおいて、サーボモータｈ１の駆動は実行されるが、サーボモータａ１の駆動は実行されない。
【００４４】
また、差分判定部１３５が、各サーボモータ４０における差分を合計し、その合計が第１閾値以上であるか否かを判定する場合、例えば、サーボモータｈ１における差分が４であり、サーボモータａ１における差分が４であるとする。サーボモータｈ１における差分とサーボモータａ１における差分との和は８となり、第１閾値以上となる。差分判定部１３５は、モーションデータ実行不可であると判定する。異なる例として、サーボモータｈ１における差分が２であり、サーボモータａ１における差分が２であるとする。サーボモータｈ１における差分とサーボモータａ１における差分との和は４となり、第１閾値未満となる。差分判定部１３５は、モーションデータ実行可であると判定する。
【００４５】
〔実施形態２〕
本発明の他の実施形態について、図４〜図６に基づいて説明すれば、以下の通りである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【００４６】
（ロボット２の構成）
ロボット２は、図４に示すように、ロボット１と比べて、加速度センサ６０、カメラ７０、及びマイク８０を備えている点が異なり、モーション制御装置１０がモーション制御装置１１に変更されている点が異なる。モーション制御装置１１は、モーション制御装置１０と比べて、状態検出部１４５を備えている点が異なる。
【００４７】
状態検出部１４５は、加速度センサ６０、カメラ７０、及びマイク８０から情報を受け取り、それらの情報からロボット２の状態（姿勢）を検出する。加速度センサ６０は、ロボット２の加速度を検出する。カメラ７０は、ロボット２の周囲の画像を撮影する。マイク８０は、ロボット２の周囲の音声を入力する。状態検出部１４５が、加速度センサ６０、カメラ７０、及びマイク８０から情報に基づいて、ロボット２の状態を検出する方法は公知であるので説明を省略する。
【００４８】
（ロボット２の動作）
次にロボット２の動作について図５に基づいて説明する。図５はロボット２の動作を示すフローチャートである。ロボット２の動作は、図５に示すように、ロボット１の動作と比べて、Ｓ１４０及びＳ１４５の処理が追加されている点が異なる。
【００４９】
Ｓ１０５〜Ｓ１１５の処理は、ロボット１の動作と同様である。Ｓ１１５の処理の後、再生制御部１１０は、位置検出部１２５から動作部５０の位置の情報が供給されると、状態検出部１４５にロボット２の状態を検出するように指示する。
【００５０】
状態検出部１４５は、再生制御部１１０からロボット２の状態を検出するように指示されると、ロボット２の状態を検出する（Ｓ１４０）。具体的には、状態検出部１４５は、加速度センサ６０、カメラ７０、及びマイク８０から情報を受け取り、それらの情報からロボット２の状態を検出する。状態検出部１４５は、検出したロボット２の状態の情報を再生制御部１１０及びデータ制御部１１５に供給する。
【００５１】
データ制御部１１５は、ロボット２の状態に応じて、転倒リスクが高いサーボモータ４０を特定する（Ｓ１４５）。記憶部１２０には、ロボット２の状態の情報と転倒リスクが高いサーボモータ４０の情報とが対応付けられて記憶されている。データ制御部１１５は、状態検出部１４５から供給されたロボット２の状態の情報に対応する、記憶部１２０に記憶されているロボット２の状態の情報を記憶部１２０から参照する。また、データ制御部１１５は、記憶部１２０から、記憶部１２０に記憶されているロボット２の状態の情報に対応付けられた転倒リスクが高いサーボモータ４０の情報を参照する。データ制御部１１５は、この情報を参照することで、状態検出部１４５から供給されたロボット２の状態の情報に対応する、転倒リスクが高いサーボモータ４０を特定する。データ制御部１１５は、取得したモーションデータ、及び転倒リスクが高いサーボモータ４０の情報を再生制御部１１０に供給する。Ｓ１２０〜Ｓ１３５の処理は、ロボット１の動作と同様である。
【００５２】
以上により、モーション制御装置１１では、差分算出部１３０は、ロボット２の姿勢の情報に対応する、駆動されるとロボット２が転倒する可能性が高いサーボモータ４０の情報に基づいて、駆動されるとロボット２が転倒する可能性が高いサーボモータ４０によって動作させられる動作部５０に対して差分を算出する。差分とは、ロボット２がモーションデータを再生する直前の動作部５０の位置と、モーションデータに示される動作部５０の開始位置との差分である。これにより、ロボット２の姿勢に応じて、ロボット２がモーションデータを再生する直前の動作部５０の位置と、モーションデータに示される動作部５０の開始位置との差分が算出される。このため、ロボット２の姿勢に応じて、モーションデータを再生するか否かを判定するので、ロボット２の動作実行時の転倒リスクを低減することができる。
【００５３】
（転倒リスクが高いサーボモータ４０が存在しない場合）
なお、データ制御部１１５が、ロボット２の状態の情報に対応する、転倒リスクが高いサーボモータ４０が存在しないと判定した場合、再生制御部１１０にモーションを再生するように指示する。例えば、図６の（ａ）に示すように、ロボット２が背中を後ろにして横になっている状態を考える。図６の（ａ）に示す動作は、以下の表４に対応する。サーボモータｓ１において、ロボット２がモーションデータを再生する直前の動作部５０（腕ａ２）の位置とモーションデータに示される動作部５０（腕ａ２）の開始位置との差分が大きくても、ロボット２が転倒する可能性はない。また、サーボモータｈ１において、ロボット２がモーションデータを再生する直前の動作部５０（脚ｃ２）の位置とモーションデータに示される動作部５０（脚ｃ２）の開始位置との差分が大きくても、ロボット２が転倒する可能性はない。ロボット２が背中を後ろにして横になっているからである。ロボット２が背中を後ろにして横になっている状態では、サーボモータｓ１及びサーボモータｈ１の両方とも転倒リスクが高いサーボモータ４０には該当しない。データ制御部１１５は、転倒リスクが高いサーボモータ４０は存在しないと判定する。転倒リスクが高いサーボモータ４０は存在しない場合、データ制御部１１５は、再生制御部１１０にモーションを再生するように指示する。
【００５４】
【表４】
2018202523.tif 000006
【００５５】
（ロボット２の状態に応じてモーションデータ実行不可であると判定する場合）
一方、例えば、図６の（ｂ）に示すように、ロボット２が腕ａ２及び脚ｃ２で胴体ｂ２を支持している状態を考える。図６の（ｂ）に示す動作は、以下の表５に対応する。この状態でサーボモータｓ１及び／またはサーボモータｈ１を駆動させると、ロボット２が転倒する。データ制御部１１５は、ロボット２が転倒すると判定し、再生制御部１１０にエラーを通知する。再生制御部１１０は、データ制御部１１５からエラーを通知されると、処理を終了する（モーションデータの再生を行わない）。
【００５６】
【表５】
2018202523.tif 000007
【００５７】
〔実施形態３〕
本発明の他の実施形態について、図７〜図９に基づいて説明すれば、以下の通りである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【００５８】
（ロボット３の構成）
ロボット３は、図７に示すように、ロボット２と比べて、モーション制御装置１１がモーション制御装置１２に変更されている点が異なる。モーション制御装置１２は、モーション制御装置１１と比べて、演算処理部１５０及び判定部１５５を備えている点が異なる。
【００５９】
演算処理部１５０は、サーボモータ４０の回転速度、及び動作部５０にかかる力の大きさを算出する。判定部１５５は、演算処理部１５０によって算出された、動作部５０にかかる力の大きさが第２閾値以上であるか否かを判定する。演算処理部１５０によって算出された差分は、大きければ大きいほど、そのままモーションデータに基づいて動作を行えばロボット３が転倒する可能性が高くなる。したがって、ロボット３がモーションデータに基づいて動作を行っても、ロボット３が転倒する可能性の低い差分の値の臨界値を第２閾値とする。第２閾値は、製品（ロボット３）ごとに異なる値であり、製品ごとに調整されて決定される値である。
【００６０】
（ロボット３の動作）
次にロボット３の動作について図８に基づいて説明する。図８はロボット３の動作を示すフローチャートである。ロボット３の動作は、図８に示すように、ロボット２の動作と比べて、Ｓ１５５〜Ｓ１６０の処理が追加されている点が異なる。
【００６１】
Ｓ１０５〜Ｓ１１５、Ｓ１４０、Ｓ１４５、Ｓ１２０、Ｓ１２５の処理は、ロボット２の動作と同様である。Ｓ１２５の処理の後、差分算出部１３０によって算出された差分が第１閾値未満である場合（Ｓ１２５にてＮＯの場合）、差分判定部１３５は、演算処理部１５０にモーションデータ、動作部５０の位置の情報、及びロボット３の状態の情報を供給する。また、差分算出部１３０によって算出された差分が第１閾値以上である場合（Ｓ１２５にてＹＥＳの場合）、差分判定部１３５は、再生制御部１１０にエラーを通知する。
【００６２】
演算処理部１５０は、差分判定部１３５からモーションデータ、動作部５０の位置の情報、及びロボット３の状態の情報が供給されると、サーボモータ４０の回転速度を算出する（Ｓ１５０）。具体的には、例えば、図９に示す動作において、以下の表６では、ｔ（ｍｓｅｃ）が０〜９００（ｍｓｅｃ）である場合、ｓ（°）が常に０（°）であり、ｈ（°）が−９０（°）から−４５（°）に変化する。時間に対する角度の変化量が分かるので、演算処理部１５０はモーションデータに基づいてサーボモータ４０の回転速度を算出する。また、サーボモータ４０の回転速度は、ロボット３の状態によって変化するので、演算処理部１５０は、ロボット３の状態の情報に基づいてサーボモータ４０の回転速度を算出する。
【００６３】
【表６】
2018202523.tif 000008
【００６４】
演算処理部１５０は、算出したサーボモータ４０の回転速度、及び状態検出部１４５から供給されたロボット３の状態の情報に基づいて、動作部５０にかかる力の大きさを算出する（Ｓ１５５）。具体的には、演算処理部１５０は、ロボット３の状態の情報から、ロボット３の重心を算出する。演算処理部１５０は、サーボモータ４０の回転速度、及びロボット３の重心に基づいて動作部５０にかかる力の大きさを算出する。ここで、動作部５０については、転倒リスクが高いサーボモータ４０によって駆動されるものを対象とする。
【００６５】
動作部５０において、ロボット３の状態が異なると、ロボット３の重心が異なる。例えば、ロボット３が腕ａ２を上げている場合と、ロボット３が腕ａ２を下げている場合とを比べると、サーボモータ４０の回転速度及びロボット３の重心が異なる。なお、演算処理部１５０が動作部５０にかかる力の大きさを算出する方法は公知であるので、説明を省略する。演算処理部１５０は、算出した動作部５０にかかる力の大きさの情報を判定部１５５に供給する。
【００６６】
なお、以下の表７において、ｔ（ｍｓｅｃ）が０〜４５０（ｍｓｅｃ）である場合、ｓ（°）が常に０（°）であり、ｈ（°）が−９０（°）から−４５（°）に変化する。表６に示す動作と比べて、表７に示す動作では、ｈ（°）が−９０（°）から−４５（°）に変化する時間が半分になっているので、サーボモータ４０の回転速度が約２倍になる。また、動作部５０にかかる力の大きさは約４倍になる。よって、表６に示す動作よりも、表７に示す動作の方が、ロボット３が転倒する可能性が高くなる。
【００６７】
【表７】
2018202523.tif 000009
【００６８】
判定部１５５は、演算処理部１５０から供給された、動作部５０にかかる力の大きさの情報に基づいて、動作部５０にかかる力の大きさが第２閾値以上であるか否かを判定する（Ｓ１６０）。
【００６９】
動作部５０にかかる力の大きさが第２閾値未満である場合（Ｓ１６０にてＮＯの場合）、判定部１５５は、再生制御部１１０にモーションデータを再生するように指示する。一方、動作部５０にかかる力の大きさが第２閾値以上である場合（Ｓ１６０にてＹＥＳの場合）、判定部１５５は、再生制御部１１０にエラーを通知する（Ｓ１３５）。
【００７０】
以上により、モーション制御装置１２では、再生制御部１１０は、演算処理部１５０によって算出された動作部５０にかかる力の大きさが第２閾値未満である場合、モーションデータを再生する。ここで、演算処理部１５０によって算出された差分は、大きければ大きいほど、そのままモーションデータに基づいて動作を行なえばロボット３が転倒する可能性が高くなる。したがって、現在の動作部５０の位置から、モーションデータに基づいて動作を行っても、ロボット３が転倒する可能性の低い、動作部５０にかかる力の大きさの臨界値を第２閾値とする。これにより、ロボット３の動作実行時の転倒リスクを低減することができる。
【００７１】
〔ソフトウェアによる実現例〕
モーション制御装置１０・１１・１２の制御ブロック（特に実行要求部１０５、再生制御部１１０、データ制御部１１５、位置検出部１２５、差分算出部１３０、差分判定部１３５、駆動制御部１４０、状態検出部１４５、演算処理部１５０、及び判定部１５５）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【００７２】
後者の場合、モーション制御装置１０・１１・１２は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００７３】
〔まとめ〕
本発明の態様１に係る制御装置（モーション制御装置１０・１１・１２）は、再生されるモーションデータに基づいて動作する動作部５０と、前記動作部を動作させる駆動部（サーボモータ４０）とを有するロボット１・２・３の動作を制御する制御装置において、前記モーションデータに示される前記動作部の開始位置と、前記モーションデータを再生する直前の前記動作部の位置との差分を算出する差分算出部１３０と、前記モーションデータの再生を制御する再生制御部１１０とを備え、前記再生制御部は、前記モーションデータを再生する直前の前記動作部の位置から、前記モーションデータに基づいて動作を行っても、前記ロボットが転倒する可能性の低い差分の値の臨界値を第１閾値とし、前記差分算出部によって算出された差分が前記第１閾値以上である場合、前記モーションデータの再生を行わない。
【００７４】
上記構成によれば、差分算出部は、ロボットがモーションデータを再生する直前の動作部の位置と、モーションデータに示される動作部の開始位置との差分を算出する。ここで、差分算出部によって算出された差分は、大きければ大きいほど、そのままモーションデータに基づいて動作を行なえばロボットが転倒する可能性が高くなる。したがって、現在の動作部の位置から、モーションデータに基づいて動作を行っても、ロボットが転倒する可能性の低い差分の値の臨界値を第１閾値とする。再生制御部は、差分算出部によって算出された差分が第１閾値以上である場合、モーションデータの再生を行わない。これにより、ロボットが想定外の姿勢で動作を開始した場合であっても、ロボットの動作実行時の転倒リスクを低減することができる。
【００７５】
本発明の態様２に係る制御装置（モーション制御装置１０・１１・１２）は、上記態様１において、駆動されると前記ロボットが転倒する可能性が高い前記駆動部の情報が予め記憶された記憶部１２０をさらに備え、前記差分算出部１３０は、前記情報に基づいて、駆動されると前記ロボットが転倒する可能性が高い前記駆動部によって駆動される前記動作部に対して前記差分を算出してもよい。
【００７６】
上記構成によれば、記憶部は、駆動されるとロボットが転倒する可能性が高い駆動部の情報を予め記憶する。また、差分算出部は、前記情報に基づいて、駆動されるとロボットが転倒する可能性が高い駆動部によって駆動される動作部に対して差分を算出する。これにより、駆動されるとロボットが転倒する可能性が高い駆動部によって駆動される動作部においてのみ差分を算出するので、差分算出部が行う処理を少なくすることができる。
【００７７】
本発明の態様３に係る制御装置（モーション制御装置１１・１２）は、上記態様１において、前記ロボットの姿勢の情報と、駆動されると前記ロボットが転倒する可能性が高い前記駆動部の情報とを対応付けて記憶する記憶部１２０をさらに備え、前記差分算出部１３０は、前記ロボットの姿勢の情報に対応する、駆動されると前記ロボットが転倒する可能性が高い前記駆動部の情報に基づいて、駆動されると前記ロボットが転倒する可能性が高い前記駆動部によって動作させられる前記動作部に対して前記差分を算出してもよい。
【００７８】
上記構成によれば、差分算出部は、ロボットの姿勢の情報に対応する、駆動されるとロボットが転倒する可能性が高い駆動部の情報に基づいて、駆動されるとロボットが転倒する可能性が高い駆動部によって動作させられる動作部に対して差分を算出する。差分とは、ロボットがモーションデータを再生する直前の動作部の位置と、モーションデータに示される動作部の開始位置との差分である。これにより、ロボットの姿勢に応じて、ロボットがモーションデータを再生する直前の動作部の位置と、モーションデータに示される動作部の開始位置との差分が算出される。このため、ロボットの姿勢に応じて、モーションデータを再生するか否かを判定するので、ロボットの動作実行時の転倒リスクを低減することができる。
【００７９】
本発明の態様４に係る制御装置（モーション制御装置１２）は、上記態様１から３のいずれかにおいて、前記駆動部（サーボモータ４０）はモータであり、前記モータの回転速度、及び前記ロボットの姿勢の情報に基づいて、前記動作部５０にかかる力の大きさを算出する処理を行う演算処理部１５０をさらに備え、前記再生制御部１１０は、前記モーションデータに基づいて動作を行っても、前記ロボット３が転倒する可能性の低い、前記動作部にかかる力の大きさの臨界値を第２閾値とし、前記再生制御部１１０は、前記演算処理部によって算出された前記動作部にかかる力の大きさが第２閾値以上である場合、前記モーションデータの再生を行わない。
【００８０】
上記構成によれば、再生制御部は、演算処理部によって算出された動作部にかかる力の大きさが第２閾値未満である場合、モーションデータを再生する。ここで、演算処理部によって算出された差分は、大きければ大きいほど、そのままモーションデータに基づいて動作を行なえばロボットが転倒する可能性が高くなる。したがって、現在の動作部の位置から、モーションデータに基づいて動作を行っても、ロボットが転倒する可能性の低い、動作部にかかる力の大きさの臨界値を第２閾値とする。これにより、ロボットの動作実行時の転倒リスクを低減することができる。
【００８１】
本発明の態様５に係る制御方法は、再生されるモーションデータに基づいて動作する動作部と、前記動作部を動作させる駆動部とを有するロボットの動作を制御する制御装置における制御方法において、前記モーションデータに示される前記動作部の開始位置と、前記モーションデータを再生する直前の前記動作部の位置との差分を算出する差分算出工程と、前記モーションデータの再生を制御する再生制御工程とを備え、前記再生制御工程にて、前記モーションデータを再生する直前の前記動作部の位置から、前記モーションデータに基づいて動作を行っても、前記ロボットが転倒する可能性の低い差分の値の臨界値を第１閾値とし、前記差分算出工程にて算出された差分が前記第１閾値以上である場合、前記モーションデータの再生を行わない。
【００８２】
上記構成によれば、差分算出工程にて、ロボットがモーションデータを再生する直前の動作部の位置と、モーションデータに示される動作部の開始位置との差分を算出する。ここで、差分算出工程にて算出された差分は、大きければ大きいほど、そのままモーションデータに基づいて動作を行なえばロボットが転倒する可能性が高くなる。したがって、現在の動作部の位置から、モーションデータに基づいて動作を行っても、ロボットが転倒する可能性の低い差分の値の臨界値を第１閾値とする。再生制御工程にて、差分算出工程にて算出された差分が第１閾値以上である場合、モーションデータの再生を行わない。これにより、ロボットが想定外の姿勢で動作を開始した場合であっても、ロボットの動作実行時の転倒リスクを低減することができる。
【００８３】
本発明の各態様に係る制御装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記制御装置が備える各部（ソフトウェア要素）として動作させることにより上記制御装置をコンピュータにて実現させる制御装置の制御プログラム、及びそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【００８４】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
【符号の説明】
【００８５】
１、２、３  ロボット
１０、１１、１２  モーション制御装置（制御装置）
２０  スピーカ
３０  発光部
４０、ａ１、ｈ１、ｓ１  サーボモータ（駆動部、モータ）
５０  動作部
６０  加速度センサ
７０  カメラ
８０  マイク
１０５  実行要求部
１１０  再生制御部
１１５  データ制御部
１２０  記憶部
１２５  位置検出部
１３０  差分算出部
１３５  差分判定部
１４０  駆動制御部
１４５  状態検出部
１５０  演算処理部
１５５  判定部
ａ２  腕
ｂ２  胴体
ｃ２  脚
【図１】
2018202523.tif 000010
【図２】
2018202523.tif 000011
【図３】
2018202523.tif 000012
【図４】
2018202523.tif 000013
【図５】
2018202523.tif 000014
【図６】
2018202523.tif 000015
【図７】
2018202523.tif 000016
【図８】
2018202523.tif 000017
【図９】
2018202523.tif 000018