(57)【要約】【課題】装着品に干渉しないように可動部を駆動するロボット、ロボットの制御方法及びプログラムを提供する。【解決手段】制御部１１０は、可動部と該可動部を駆動する駆動部とを有し、装着品を装着可能な機器を制御し、干渉判定部１１３と、設定部１１２と、駆動制御部１１４と、を備える。干渉判定部１１３は、装着品が可動部の動作に干渉するか否かを判定する。設定部１１２は、干渉判定部１１３により装着品が可動部の動作に干渉すると判定された場合に、可動部の可動範囲を設定する。駆動制御部１１４は、設定部１１２により設定された可動範囲内で可動部を駆動するように駆動部を制御する。【選択図】図４
2020055084.tif 000002
【特許請求の範囲】
【請求項１】
可動部と該可動部を駆動する駆動部とを有し、装着品を装着可能な機器を制御する制御装置であって、
前記装着品が前記可動部の動作に干渉するか否かを判定する干渉判定手段と、
前記干渉判定手段により前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定手段と、
前記設定手段により設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御手段と、
を備えることを特徴とする制御装置。
【請求項２】
前記設定手段は、前記可動部の位置を示すデータを取得し、前記干渉判定手段により前記装着品が前記可動部の動作に干渉したと判定されたときに取得した前記可動部の位置を示すデータに基づいて、前記可動部の可動範囲を設定する、
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記設定手段は、前記装着品が装着されると、前記装着品が前記可動部の動作に干渉するように前記駆動部を制御する干渉駆動制御処理を実行し、前記装着品が前記可動部の動作に干渉したと判定されたときに取得した前記可動部の位置を示すデータに基づいて、前記可動部の可動範囲を設定する、
ことを特徴とする請求項２に記載の制御装置。
【請求項４】
前記機器に前記装着品が装着されたか否かを判定する装着判定手段をさらに備え、
前記設定手段は、前記装着判定手段により前記機器に前記装着品が装着されたと判定されると、前記干渉駆動制御処理を実行する、
ことを特徴とする請求項３に記載の制御装置。
【請求項５】
前記機器が所定の初期状態にあるときの当該機器の画像である初期画像を示すデータを記憶する記憶手段をさらに備え、
前記装着判定手段は、前記機器を撮像した画像を示すデータを取得し、前記機器の画像と前記記憶手段に記憶された初期画像とを比較し、前記装着品が前記機器に装着されたか否かを判定する、
ことを特徴とする請求項４に記載の制御装置。
【請求項６】
前記装着判定手段は、前記機器に前記装着品が装着されたことを表す装着品装着情報を前記機器のユーザから取得し、前記装着品装着情報に基づいて、前記装着品が前記機器に装着されたか否かを判定する、
ことを特徴とする請求項４に記載の制御装置。
【請求項７】
前記装着品が前記機器に装着されていない場合における前記可動部の可動範囲として、所定の初期可動範囲を取得する初期可動範囲取得手段をさらに備え、
前記駆動制御手段は、前記装着判定手段により前記装着品が前記機器に装着されていないと判定されている場合には、前記初期可動範囲内で前記可動部を駆動するように前記駆動部を制御する、
ことを特徴とする請求項４から６のいずれか１項に記載の制御装置。
【請求項８】
前記装着判定手段は、前記機器に前記装着品が装着された部位をさら検出し、
前記設定手段は、前記干渉駆動制御処理を実行することにより、前記装着判定手段により検出された部位に位置する前記装着品に前記可動部を接触させるように前記駆動部を制御する、
ことを特徴とする請求項４から７のいずれか１項に記載の制御装置。
【請求項９】
前記機器は、前記可動部に設けられた、前記可動部の接触を検出するセンサをさらに備え、
前記干渉判定手段は、前記センサの検出結果に基づいて、前記装着品が前記可動部の駆動に干渉したか否かを判定する、
ことを特徴とする請求項１から８の何れか１項に記載の制御装置。
【請求項１０】
可動部と、
前記可動部を駆動するように構成された駆動部と、
装着品が前記可動部の動作に干渉するか否かを判定する干渉判定手段と、
前記干渉判定手段により前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定手段と、
前記設定手段により設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御手段と、
を備えることを特徴とするロボット。
【請求項１１】
可動部と該可動部を駆動する駆動部とを有し、装着品を装着可能な機器を制御する制御装置を制御する方法であって、
前記装着品が前記可動部の動作に干渉するか否かを判定する干渉判定ステップと、
前記干渉判定ステップにより前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定ステップと、
前記設定ステップにより設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御ステップと、
を備えることを特徴とする機器の制御方法。
【請求項１２】
可動部と該可動部を駆動する駆動部とを有し、装着品を装着可能な機器を制御するコンピュータを、
前記装着品が前記可動部の動作に干渉するか否かを判定する干渉判定手段、
前記干渉判定手段により前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定手段、
前記設定手段により設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ロボット、制御方法及びプログラムに関する。
【背景技術】
【０００２】
可動部としてのロボットアームを備える機器を制御する制御装置が知られている。このような制御装置では、ロボットアームが機器の本体に干渉しないように制御することが求められている。例えば、特許文献１に開示された制御装置は、ロボットアームに関する第１座標情報と、ロボットアームに対し予め設定された干渉領域に対応する第２座標情報とを記憶し、これらの第１及び第２座標情報に応じて、ロボットアームが干渉領域に侵入するか否かをリアルタイムに判定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３１５０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボットアームを備える機器には、装着品が装着される場合がある。特許文献１に開示された制御装置では、ロボットアームに干渉する領域に装着品が装着されると、予め設定された干渉領域に侵入しないようにロボットアームを動作させたとしても、装着品の情報が記憶されていないため、ロボットアームと装着品が干渉することを防止することができないという問題がある。
【０００５】
本発明は、上記のような課題を解決するためになされたものであり、装着品に干渉しないように可動部を駆動する制御装置、ロボット、制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の目的を達成するため、本発明に係る制御装置の一様態は、
可動部と該可動部を駆動する駆動部とを有し、装着品を装着可能な機器を制御する制御装置であって、
前記装着品が前記可動部の動作に干渉するか否かを判定する干渉判定手段と、
前記干渉判定手段により前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定手段と、
前記設定手段により設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御手段と、
を備えることを特徴とする。
【０００７】
本発明の目的を達成するため、本発明に係るロボットの一様態は、
可動部と、
前記可動部を駆動するように構成された駆動部と、
装着品が前記可動部の動作に干渉するか否かを判定する干渉判定手段と、
前記干渉判定手段により前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定手段と、
前記設定手段により設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御手段と、
を備えることを特徴とする。
【０００８】
本発明の目的を達成するため、本発明に係る制御方法の一様態は、
可動部と該可動部を駆動する駆動部とを有し、装着品を装着可能な機器を制御する制御装置を制御する方法であって、
前記装着品が前記可動部の動作に干渉するか否かを判定する干渉判定ステップと、
前記干渉判定ステップにより前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定ステップと、
前記設定ステップにより設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御ステップと、
を備えることを特徴とする。
【０００９】
本発明の目的を達成するため、本発明に係るプログラムの一様態は、
可動部と該可動部を駆動する駆動部とを有し、装着品を装着可能な機器を制御するコンピュータを、
前記装着品が前記可動部の動作に干渉するか否かを判定する干渉判定手段、
前記干渉判定手段により前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定手段、
前記設定手段により設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御手段、
として機能させる。
【発明の効果】
【００１０】
本発明によれば、装着品に干渉しないように可動部を駆動することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係るロボットを示す図である。
【図２】（Ａ）〜（Ｃ）は、本発明の実施の形態に係るロボットの動きを示す側面図であり、（Ｄ）〜（Ｆ）は、本発明の実施の形態に係るロボットの右腕の動きを示す図である。
【図３】本発明の実施の形態に係るロボットの右腕を、その一部を破断して示す図である。
【図４】本発明の実施の形態に係るロボットの構成を示すブロック図である。
【図５】本発明の実施の形態に係る駆動処理を示すフローチャートである。
【図６】本発明の実施の形態に係る左腕の干渉駆動制御処理を示すフローチャートである。
【図７】（Ａ）は、本発明の実施の形態に係るロボットに装着品を装着した図であり、（Ｂ）は、装着品を示す図である。
【図８】本発明の実施の形態に係る可動範囲を示す図である。
【図９】（Ａ）〜（Ｂ）は、本発明の実施例に係る装着品を示す図であり、（Ｃ）〜（Ｅ）は、装着品を装着したロボットを示す図である。
【図１０】本発明の変形例に係る駆動処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、本発明を実施するための形態に係る制御装置およびロボット（機器）を説明する。
【００１３】
実施の形態に係るロボット１００は、図１に示すように、人をデフォルメした形状を有し、胴体部（本体）１０１と、頭部１０２と、右腕（第１の可動部）１０３Ｒおよび左腕（第２の可動部）１０３Ｌと、第１の駆動部１０４Ｒおよび第２の駆動部１０４Ｌと、右手１０５Ｒおよび左手１０５Ｌと、右足１０６Ｒおよび左足１０６Ｌと、撮像部１０７と、マイク１０８と、操作部１２０と、を備え、胴体部１０１の内部には、制御部（制御装置）１１０と電源部１３０とを有する。ロボット１００には、ロボットを装飾するためなどの装着品（後述する図７、図９等参照）を取り付けることができる。装着品が取り付けられると、ロボット１００は、装着品が右腕１０３Ｒ、左腕１０３Ｌの動作に干渉しない可動範囲を設定し、この可動範囲内で右腕１０３Ｒ、左腕１０３Ｌの動作を実行する。なお、「干渉」は、右腕１０３Ｒ、左腕１０３Ｌの動作が妨げられることを含む。本実施の形態では、装着品が右腕１０３Ｒ、左腕１０３Ｌの動作に干渉したか否かを、右手１０５Ｒ、左手１０５Ｌが装着品に干渉（接触）したか否かにより判定する例について説明する。
【００１４】
右腕１０３Ｒの一端部は、第１の駆動部１０４Ｒを介して胴体部１０１の右肩の位置に取り付けられている。左腕１０３Ｌの一端部は、第２の駆動部１０４Ｌを介して胴体部１０１の左肩の位置に取り付けられている。
【００１５】
第１の駆動部１０４Ｒは、図２（Ａ）〜図２（Ｃ）に示すように、Ｘ軸を軸心として右腕１０３Ｒを前後に回転させるように駆動し、図２（Ｄ）〜図２（Ｆ）に示すように、Ｙ軸を軸心として右腕１０３Ｒを胴体部１０１から遠ざける方向または胴体部１０１に近づける方向に回転させるように駆動する。Ｘ軸は、ロボット１００からみて左右の方向に延びており、Ｙ軸は、Ｘ軸に直交する。図２（Ｂ）に示す位置に右腕１０３Ｒが位置する場合、Ｘ軸を軸心とする右腕１０３Ｒの回転角（以下「右腕１０３ＲのＸ軸回転角」という）を０°とする。第１の駆動部１０４Ｒが、右腕１０３Ｒを−９０°、Ｘ軸を軸心として回転（Ｘ軸回転）させると、右手１０５Ｒが、図２（Ａ）に示す位置に移動する。この場合における右腕１０３ＲのＸ軸回転角を−９０°とし、初期位置とする。第１の駆動部１０４Ｒが右腕１０３Ｒを９０°Ｘ軸回転させると、右腕１０３Ｒは、図２（Ｃ）に示す位置に移動する。この位置の右腕１０３ＲのＸ軸回転角を９０°とし、終点角度（限界角度）とする。
【００１６】
また、右手１０５Ｒが図２（Ｂ）および図２（Ｅ）に示す垂らした位置のＹ軸を軸心とする右腕１０３Ｒの回転角（以下「右腕１０３ＲのＹ軸回転角」という）を０°とする。この位置から、第１の駆動部１０４Ｒが、右腕１０３Ｒを９０°、Ｙ軸を軸心として回転（Ｙ軸回転）させると、右腕１０３Ｒは、図２（Ｄ）に示すように胴体部１０１から離れた位置に移動する。この位置を初期位置とし、右腕１０３ＲのＹ軸回転角を９０°とする。逆向きに右腕１０３ＲをＹ軸回転すると、図２（Ｆ）に示すように、Ｙ軸方向から見て胴体部１０１にオーバーラップした位置に移動する。この位置における右腕１０３ＲのＹ軸回転角を−３０°とする。第２の駆動部１０４Ｌは、第１の駆動部１０４Ｒと同様に、Ｘ軸とＹ軸を軸心として左腕１０３ＬをＹ軸回転およびＸ軸回転させる。
【００１７】
また、第１と第２の駆動部１０４Ｒ、１０４Ｌは、制御部１１０により制御されるアクチュエータによって作動し、図示しないポテンションメータによってＸ軸とＹ軸の回転角がセンシングされている。ポテンションメータは、左腕１０３Ｌ及び右腕１０３Ｒの各々のＸ軸回転角及びＹ軸回転角を示すデータを制御部１１０に出力する。なお、第１と第２の駆動部１０４Ｒは、制御部１１０により、右腕１０３Ｒおよび右手１０５Ｒと、左腕１０３Ｌおよび左手１０５Ｌと、が互いに干渉しないように制御されている。また、Ｘ軸とＹ軸の回転角を示すデータは、可動部である右腕１０３Ｒ（右手１０５Ｒを含む）および左腕１０３Ｌ（左手１０５Ｌを含む）の位置を示すデータに含まれる。
【００１８】
右手１０５Ｒは、右腕１０３Ｒの他端部に取り付けられている。左手１０５Ｌは、左腕１０３Ｌの他端部に取り付けられている。右手１０５Ｒと左手１０５Ｌは、ゴムなどの弾性体から構成される中空部材であり、各々の内部には、図３に示すように（右腕１０３Ｒ側のみ図示）、圧力センサ１４０が配置されている。各圧力センサ１４０は、右手１０５Ｒ（左手１０５Ｌ）が装着品などに接触して弾性変形したときの圧力を検知して、圧力を示すデータを制御部１１０に出力する。これにより、右手１０５Ｒ（左手１０５Ｌ）が、胴体部１０１、装着品などに干渉（接触）したか否かを判定できる。この結果、装着品への右手１０５Ｒ（左手１０５Ｌ）の接触によりにより、装着品が右腕１０３Ｒ（左腕１０３Ｌ）の動作に干渉したか否かを判定できる。
【００１９】
図１に示す右足１０６Ｒと左足１０６Ｌは、胴体部１０１の下部に取り付けられ、制御部１１０の制御に基づいて、図示しない駆動部に駆動されてロボット１００を自律移動させるものである。右足１０６Ｒと左足１０６Ｌが駆動されることで、ロボット１００は、前進、後退、右旋回および左旋回する。
【００２０】
撮像部１０７は、頭部１０２の鼻の位置に設けられたカメラである。撮像部１０７は、鏡に映ったロボット１００などの所定の対象を撮像し、撮像した画像を示すデータを制御部１１０に出力する。
【００２１】
マイク１０８は、頭部１０２の右耳、左耳の位置に配置され、音声を収音する。マイク１０８は、収音した音声を示すデータを制御部１１０に出力する。
【００２２】
制御部１１０は、図４に示すように、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）１５０、ＲＡＭ（Random Access Memory）１６０から構成される。ＲＯＭ１５０は、データを書き換え可能なフラッシュメモリ等の不揮発性メモリから構成され、制御部１１０が各種機能を実現するためのプログラム、ロボット１００が所定の初期状態にあるときの画像である初期画像（ロボット１００の初期画像）を示すデータ、初期可動範囲（装着品が装着されていない場合における可動範囲）、干渉ポイント（右手１０５Ｒまたは左手１０５Ｌが装着品に干渉（接触）するポイント）、可動境界ライン（干渉ポイントを結ぶ線）、可動範囲（装着品が装着された場合における可動範囲）を示すデータなどを記憶する。ＲＯＭ１５０は、記憶手段の一例である。ＲＡＭ１６０は、揮発性メモリから構成され、制御部１１０が各種処理を行うためのプログラムを実行するための作業領域として用いられる。制御部１１０は、ＣＰＵがＲＯＭ１５０に記憶されたプログラムを読み出してＲＡＭ１６０上で実行することにより、装着判定部１１１と、設定部１１２と、干渉判定部１１３と、駆動制御部１１４として機能する。
【００２３】
装着判定部１１１は、音声および／または画像から、装飾するためなどの装着品がロボット１００に装着されたか否かを判定する。装着判定部１１１は、ユーザから発せられた音声をマイク１０８により検出し、ユーザから発せられた音声に装着品を装着したことを示す音声を含んでいるか否かを、例えば周知の音声解析により判定し、その判定結果に基づいて、装着品が装着されたか否かを判定する。装着品を装着したことを示す音声は、例えば、「○○を装着した」などを含む。また、装着判定部１１１は、撮像部１０７が撮像した画像を取得し、装着品が装着されているか否かを判定する。具体的には、撮像部１０７が撮像した画像に鏡に映るロボット１００が写っている場合、撮像部１０７が撮像した画像とＲＯＭ１５０に記憶された初期画像とを周知の手法により比較し、その比較結果に基づいて、装着品がロボット１００に装着されたか否かを判定する。なお、装着判定部１１１は、音声および画像の両方、音声および画像の何れか１つにより装着品が装着されたか否かを判定してもよい。
【００２４】
設定部１１２は、装着品が装着されると、右手１０５Ｒと左手１０５Ｌが、装着品に干渉（接触）するように第１と第２の駆動部１０４Ｒ、１０４Ｌを制御する干渉駆動制御処理を実行し、初期可動範囲内で右手１０５Ｒと左手１０５Ｌが装着品に干渉（接触）したと判定されたときに、検出された右手１０５Ｒと左手１０５Ｌの位置に基づいて、右手１０５Ｒと左手１０５Ｌの可動範囲を設定する。初期可動範囲は、装着品が装着されていない場合における可動部の可動範囲であって、可動部が他の部分（胴体部１０１、頭部１０２、右足１０６Ｒ、左足１０６Ｌ）に接触しないような可動範囲に設定されており、予めＲＯＭ１５０に記憶されている。右手１０５Ｒと左手１０５Ｌの位置は、第１と第２の駆動部１０４Ｒ、１０４ＬのＸ軸とＹ軸の回転角により表される。
【００２５】
設定部１１２は、左腕１０３ＬをＸ軸回転およびＹ軸回転させ、干渉判定部１１３により左手１０５Ｌが装着品に干渉（接触）したと判定されると、設定部１１２は、左腕１０３ＬのＸ軸回転角及びＹ軸回転角を干渉ポイントとしてＲＯＭ１５０に記憶する。右腕１０３Ｒについても同様に干渉ポイントをＲＯＭ１５０に記憶する。つぎに、設定部１１２は、右腕１０３Ｒと左腕１０３Ｌの可動範囲のマップを作成しＲＯＭ１５０に記憶する。例えば、干渉ポイントとしてＲＯＭ１５０に記憶した左腕１０３ＬのＸ軸回転角及びＹ軸回転角から可動範囲のマップを作成し、ＲＯＭ１５０に記憶する。右腕１０３Ｒについても、同様に可動範囲のマップを作成し、ＲＯＭ１５０に記憶する。
【００２６】
干渉判定部１１３は、右手１０５Ｒまたは左手１０５Ｌが装着品に干渉したか否かを判定する。干渉しているか否かは、右手１０５Ｒと左手１０５Ｌに配置された圧力センサ１４０により基準値以上の圧力が検知されたか否かにより行う。また、干渉判定部１１３は、右手１０５Ｒまたは左手１０５Ｌが、初期可動範囲内で駆動されたときに、基準値以上の圧力が検知された場合、装着品に干渉したと判定する。
【００２７】
駆動制御部１１４は、ＲＯＭ１５０に記憶した可動範囲のマップを参照し、可動範囲内で右腕１０３Ｒと左腕１０３Ｌを駆動するように、第１と第２の駆動部１０４Ｒ、１０４Ｌを制御する。また、駆動制御部１１４は、ＲＯＭ１５０に記憶した初期可動範囲を参照する初期可動範囲取得部を含み、装着品が装着されていない場合、初期可動範囲内で左腕１０３Ｌ及び右腕１０３Ｒを駆動する。
【００２８】
操作部１２０は、胴体部１０１の背中に設けられ、ロボット１００を操作するためのものであり、電源ボタンを含む。
【００２９】
電源部１３０は、胴体部１０１に内蔵された充電池から構成され、ロボット１００の各部に電力を供給する。
【００３０】
つぎに、以上の構成を有するロボット１００が実行する駆動処理について説明する。駆動処理は、ロボット１００に装着品が取り付けられたとき、ロボット１００の右腕１０３Ｒと左腕１０３Ｌが装着品に干渉しないように、可動範囲を設定し、可動範囲内で右腕１０３Ｒと左腕１０３Ｌを駆動する処理を実行する。なお、ロボット１００に装着品を取り付けた場合、ユーザは、ロボット１００に「○○を装着した」と話しかけるか、ロボット１００を鏡に向けるものとする。
【００３１】
ユーザが操作部１２０を操作し電源をＯＮにすると、ロボット１００は電源をＯＮにする指示に応答し、図５に示す駆動処理を開始する。以下、ロボット１００が実行する駆動処理をフローチャートを用いて説明する。
【００３２】
まず、装着判定部１１１は、ユーザから発せられた音声を検出する（ステップＳ１０１）。つぎに、装着判定部１１１は、ユーザから発せられた音声に装着品を装着したことを示す音声を含んでいるか否かを判定する（ステップＳ１０２）。装着品を装着したことを示す音声は、例えば、「○○を装着した」などを含む。装着品を装着したことを示す音声が含まれていないと判定されると（ステップＳ１０２；Ｎｏ）、撮像部１０７が撮像した画像を取得する（ステップＳ１０３）。つぎに、装着判定部１１１は、装着品が装着されているか否かを判定する（ステップＳ１０４）。具体的には、撮像部１０７が撮像した画像に鏡に映るロボット１００が写っている場合、撮像部１０７が撮像した画像とＲＯＭ１５０に記憶された初期画像とを比較し、装着品がロボット１００に装着されたか否かを判定する。装着品を装着していないと判定されると（ステップＳ１０４；Ｎｏ）後述するステップＳ１０９に進む。
【００３３】
ユーザから発せられた音声に、装着品を装着したことを示す音声を含んでいると判定（ステップＳ１０２；Ｙｅｓ）、または鏡に映るロボット１００の画像に装着品が装着されていると判定されると（ステップＳ１０４；Ｙｅｓ）、設定部１１２は、右腕１０３Ｒと左腕１０３Ｌを初期位置に移動する（ステップＳ１０５）。具体的には、設定部１１２は、第１と第２の駆動部１０４Ｒ、１０４Ｌを制御し、右腕１０３Ｒと左腕１０３Ｌを、各々のＸ軸回転角が−９０°（図２（Ａ）に示す位置）になるように、Ｙ軸回転角が９０°（図２（Ｄ）に示す位置）になるように、駆動する。つぎに、左腕の干渉駆動制御処理を実行する（ステップＳ１０６）。
【００３４】
図６に示す左腕の干渉駆動制御処理が開始すると、設定部１１２は、左腕１０３Ｌを、そのＸ軸回転角はそのままで、胴体部１０１に近づける方向にＹ軸回転させる（ステップＳ２０１）。左腕１０３Ｌを胴体部１０１に近づける方向にＹ軸回転させるのは、胴体部１０１に装着された装着品に左手１０５Ｌを干渉させるためである。つぎに、干渉判定部１１３は、左手１０５Ｌが装着品に干渉したか否かを判定する（ステップＳ２０２）。干渉しているか否かは、左手１０５Ｌに配置された圧力センサ１４０により基準値以上の圧力が検知されたか否かにより行う。初期可動範囲内で基準値以上の圧力が検知された場合、装着品に干渉したと判定する。干渉していないと判定されると（ステップＳ２０２；Ｎｏ）ステップＳ２０１〜ステップＳ２０２を繰り返し、左腕１０３Ｌをさらに、胴体部１０１に近づける方向にＹ軸回転させる。干渉したと判定されると（ステップＳ２０２；Ｙｅｓ）、設定部１１２は、そのときの左腕１０３ＬのＸ軸回転角及びＹ軸回転角を干渉ポイントとしてＲＯＭ１５０に記憶する（ステップＳ２０３）。
【００３５】
つぎに、左腕１０３Ｌを、そのＹ軸回転角はそのままで、基準角度分、Ｘ軸回転させる（ステップＳ２０４）。基準角度は、例えば１°である。つぎに、干渉判定部１１３は、左手１０５Ｌが装着品に依然として干渉しているか否かを判定する（ステップＳ２０５）。干渉しなくなったと判定されると（ステップＳ２０５；Ｎｏ）ステップＳ２０１に戻る。干渉していると判定されると（ステップＳ２０５；Ｙｅｓ）、左腕１０３Ｌを、そのＸ軸回転角はそのままで、Ｙ軸回転させ、胴体部１０１から左手１０５Ｌを離す方向に駆動する（ステップＳ２０６）。つぎに、干渉判定部１１３は、左手１０５Ｌが装着品に依然として干渉しているか否かを判定する（ステップＳ２０７）。干渉していると判定されると（ステップＳ２０７；Ｙｅｓ）ステップＳ２０６〜ステップＳ２０７を繰り返す。そして、左手１０５Ｌが装着品から離れて干渉しなくなったと判定されると（ステップＳ２０７；Ｎｏ）、そのときの左腕１０３ＬのＸ軸回転角及びＹ軸回転角を干渉ポイントとしてＲＯＭ１５０に記憶する（ステップＳ２０８）。
【００３６】
つぎに、左腕１０３ＬのＸ軸回転角が終点角度か否かを判定する（ステップＳ２０９）。Ｘ軸回転角が９０°である場合、Ｘ軸回転角が終点角度であると判定する。終点角度でないと判定されると（ステップＳ２０９；Ｎｏ）、ステップＳ２０４からステップＳ２０９を繰り返す。Ｘ軸回転角が終点角度であると判定されると（ステップＳ２０９；Ｙｅｓ）、左腕１０３Ｌを初期位置に戻す（ステップＳ２１０）。その後、図５に示す駆動処理に戻り、右腕の干渉駆動制御処理を実行する（ステップＳ１０７）。
【００３７】
右腕の干渉駆動制御処理は、図６に示す左腕の干渉駆動制御処理と、右腕１０３Ｒと左腕１０３Ｌの違い以外は同様である。このため、右腕の干渉駆動制御処理の詳細な説明については、省略する。
【００３８】
つぎに、設定部１１２は、干渉ポイントとしてＲＯＭ１５０に記憶した左腕１０３ＬのＸ軸回転角及びＹ軸回転角を用いて、装着品装着時用の可動範囲のマップを作成し、ＲＯＭ１５０に記憶する（ステップＳ１０８）。右腕１０３Ｒについても、同様に可動範囲のマップを作成し、ＲＯＭ１５０に記憶する。つぎに、駆動制御部１１４は、ＲＯＭ１５０に記憶した装着品装着時用の可動範囲のマップを参照し、可動範囲内で右腕１０３Ｒと左腕１０３Ｌを駆動するように、第１と第２の駆動部１０４Ｒ、１０４Ｌを制御する（ステップＳ１０９）。なお、装着品が装着されていない場合は、駆動制御部１１４は、初期可動範囲で右腕１０３Ｒと左腕１０３Ｌを駆動する。つぎに、終了指示を受け付けたか否かを判定する（ステップＳ１１０）。終了指示を受け付けていないと判定すると（ステップＳ１１０；Ｎｏ）、ステップＳ１０１からステップ１１０を繰り返す。終了指示を受け付けたと判定すると（ステップＳ１１０；Ｙｅｓ）、駆動処理を終了する。
【００３９】
つぎに、本実施の形態に係るロボット１００が実行する駆動処理を具体例に基づいて図７および図８を参照しながら説明する。ロボット１００には、図７（Ａ）に示すように、図７（Ｂ）に示す装着品Ｒが胴体部１０１に装着されたとする。
【００４０】
ユーザが操作部１２０を操作し電源をＯＮにすると、ロボット１００は電源をＯＮにする指示に応答し駆動処理を開始する。
【００４１】
ユーザが「装着品を装着した」とロボットに話しかけると、装着判定部１１１は、ユーザから発せられた音声を検出し（ステップＳ１０１；図５）、ユーザから発せられた音声に装着品を装着したことを示す音声を含んでいると判定する（ステップＳ１０２；Ｙｅｓ；図５）。
【００４２】
つぎに、設定部１１２は、右腕１０３Ｒと左腕１０３Ｌを初期位置に移動する（ステップＳ１０５；図５）。つぎに、左腕の干渉駆動制御処理を実行する（ステップＳ１０６；図５）。
【００４３】
左腕の干渉駆動制御処理が開始すると、設定部１１２は、左腕１０３ＬをＹ軸回転させ胴体部１０１に近づける（ステップＳ２０１；図６）。つぎに、左腕１０３Ｌが干渉したと判定されると（ステップＳ２０２；Ｙｅｓ；図６）、図８に示すように、左腕１０３ＬのＸ軸回転角及びＹ軸回転角を干渉ポイントとしてＲＯＭ１５０に記憶する（ステップＳ２０３；図６）。
【００４４】
つぎに、左腕１０３Ｌを基準角度分、Ｘ軸回転させる（ステップＳ２０４；図６）。つぎに、干渉判定部１１３は、左手１０５Ｌが装着品Ｒに干渉したか否かを判定する（ステップＳ２０５；図６）。干渉したと判定されると（ステップＳ２０５；Ｙｅｓ；図６）、左腕１０３ＬをＹ軸回転させ、胴体部１０１から離す方向に駆動する（ステップＳ２０６；図６）。これにより左手１０５Ｌが干渉しなくなったと判定されると（ステップＳ２０７；Ｎｏ；図６）、左腕１０３ＬのＸ軸回転角及びＹ軸回転角を干渉ポイントとしてＲＯＭ１５０に記憶する（ステップＳ２０８；図６）。
【００４５】
つぎに、左腕１０３ＬのＸ軸回転角が終点角度か否かを判定する（ステップＳ２０９；図６）。Ｘ軸回転角が終点角度でないと判定されると（ステップＳ２０９；Ｎｏ；図６）、ステップＳ２０４からステップＳ２０９を繰り返す。Ｘ軸回転角が終点角度であると判定されると（ステップＳ２０９；Ｙｅｓ；図６）、左腕１０３Ｌを初期位置に戻す（ステップＳ２１０；図６）。その後、駆動処理に戻り、右腕の干渉駆動制御処理を、左腕の干渉駆動制御処理と同様に実行する（ステップＳ１０７；図５）。
【００４６】
つぎに、設定部１１２は、右腕１０３Ｒと左腕１０３Ｌの可動範囲のマップを作成しＲＯＭ１５０に記憶する（ステップＳ１０８；図５）。具体的には、図８に示すように、干渉ポイントとしてＲＯＭ１５０に記憶した左腕１０３ＬのＸ軸回転角及びＹ軸回転角から可動範囲のマップを作成する。右腕１０３Ｒについても、同様に可動範囲のマップを作成する。これにより、可動範囲、複数の干渉ポイントから成る可動境界ライン、および可動不可範囲が設定される。初期可動不可範囲は、装着品Ｒが装着される前の可動不可範囲であって、ロボット１００の工場出荷時などにあらかじめ設定される。
【００４７】
つぎに、駆動制御部１１４は、ＲＯＭ１５０に記憶した可動範囲のマップを参照し、可動範囲内で右腕１０３Ｒと左腕１０３Ｌを駆動するように、第１と第２の駆動部１０４Ｒ、１０４Ｌを制御する。（ステップＳ１０９；図５）。つぎに、終了指示を受け付けたと判定すると（ステップＳ１１０；Ｙｅｓ；図５）、駆動処理を終了する。
【００４８】
以上のように、本実施の形態のロボット１００によれば、装着品が装着されると、装着判定部１１１は、装着品が装着されたことを判定し、設定部１１２は、左腕と右腕の干渉駆動制御処理を実行し、可動範囲のマップを作成しＲＯＭ１５０に記憶する。ロボット１００は、可動範囲内で右腕１０３Ｒと左腕１０３Ｌを駆動する。これにより、ロボット１００は装着品が装着したことを判定でき、装着品に干渉しないように可動部である右腕１０３Ｒと左腕１０３Ｌを駆動することができる。装着品に干渉しないように可動部である右腕１０３Ｒと左腕１０３Ｌを駆動するため、第１と第２の駆動部１０４Ｒ、１０４Ｌに過剰に負荷がかかることを防ぐことができる。また、可動部が装着品に干渉して、音が発生することや、装着品の破損や傷が付くことを防ぐことができる。
【００４９】
また、ロボット１００は、右腕１０３Ｒと左腕１０３Ｌの位置を示すデータを取得し、右腕１０３Ｒと左腕１０３Ｌの位置に基づいて、右腕１０３Ｒと左腕１０３Ｌの可動範囲を設定することで、正確な可動範囲のマップを作成できる。
【００５０】
また、ロボット１００は、装着品が右腕１０３Ｒと左腕１０３Ｌの動作に干渉するように駆動部を制御する干渉駆動制御処理を実行することで、可動範囲のマップの作成時間を短くできる。
【００５１】
また、ロボット１００は、装着判定部１１１を備えることで、装着品が装着されたか否かを判定でき、装着品が装着されるとユーザが操作しなくても干渉駆動制御処理を実行することができる。
【００５２】
また、ロボット１００は、初期状態にあるときのロボット１００の画像である初期画像を示すデータを記憶するＲＯＭ１５０を備えることで、現在のロボット１００の画像とＲＯＭ１５０に記憶された初期画像とを比較し、装着品が装着されたか否かを判定できる。
【００５３】
また、装着品が装着されていない場合、ロボット１００は、初期可動範囲で右腕１０３Ｒと左腕１０３Ｌ駆動することで、可動部が胴体部１０１に干渉することを防ぐことができる。
【００５４】
また、ロボット１００は、右手１０５Ｒと左手１０５Ｌの内部に圧力センサ１４０を備えることで、装着品が右腕１０３Ｒと左腕１０３Ｌの駆動に干渉したか否かを判定することができる。
【００５５】
（変形例）
上述の実施の形態では、ロボット１００に装着品Ｒを装着する例について説明した。ロボット１００に装着する装着品は、ロボット１００に装着することができればよく、図９（Ｃ）から図９（Ｅ）に示すように、装着品Ｒ、図９（Ａ）に示す装着品Ｓ、図９（Ｂ）に示す装着品Ｔを装着してもよい。
【００５６】
上述の実施の形態では、ロボット１００の装着判定部１１１が、音声で装着品が装着されたことを判定、または鏡に映る自機を撮像した画像から装着品が装着されたことを判定する例について説明した。ロボット１００の装着判定部１１１は、装着品が装着されたことを判定できればよい。例えば、ロボット１００がカメラを有する電子機器と通信可能に接続され、電子機器が撮像したロボット１００の画像を、ロボット１００に送信するようにしてもよい。この場合、装着判定部１１１は、撮像したロボット１００の画像と、ロボット１００に予め保存されたロボット１００の初期画像とを比較し、装着品Ｒ、Ｔが装着されていると判定してもよい。
【００５７】
また、装着判定部１１１は、ユーザにより操作された他の電子機器からロボット１００に装着品が装着されたことを表す装着品装着情報を取得し、装着品装着情報に基づいて、装着品がロボット１００に装着されたか否かを判定してもよい。また、装着判定部１１１は、右足１０６Ｒと左足１０６Ｌに取り付けられた圧力センサにより、自機の質量を測定し、質量が大きくなったとき装着品が装着されたと判定してもよい。また、ロボット１００は、定期的に鏡を撮像して装着品が装着されたことを判定してもよい。また、装着品は装着したことを表す信号を送信する通信部を有し、ロボット１００は装着品から装着したことを表す信号を受信する通信部を有してもよい。この場合、装着品からロボット１００に送信し、ロボット１００は、装着したことを表す信号を受信した場合、装着品が装着されたと判定してもよい。
【００５８】
上述の実施の形態では、装着判定部１１１が、装着品が装着されたか否かを判定する例について説明したが、装着判定部１１１は、装着品が装着された部位を検出してもよい。この場合、設定部１１２は、装着判定部１１１により検出された部位に位置する装着品に右手１０５Ｒと左手１０５Ｌを接触させるように、第１と第２の駆動部１０４Ｒ、１０４Ｌを制御し、干渉駆動制御処理を実行してもよい。例えば、図１０に示すように、装着判定部１１１は、電子機器が撮像したロボット１００の画像を取得する（ステップＳ３０１）。つぎに、装着判定部１１１は、取得した画像と予め記憶したロボット１００の初期画像とを比較し、装着品が装着された部位を検出する（ステップＳ３０２）。つぎに、設定部１１２は、右手１０５Ｒと左手１０５Ｌを装着品が装着された部位に移動させる（ステップＳ３０３）。
【００５９】
つぎに、設定部１１２は、装着品が装着された部位について左手の干渉駆動処理を実行する（ステップＳ３０４）。つぎに、設定部１１２は、装着品が装着された部位について右手の干渉駆動処理を実行する（ステップＳ３０５）。設定部１１２は、可動範囲のマップを作成する（ステップＳ３０６）。駆動制御部１１４は、可動範囲のマップを参照し、可動範囲内で右腕１０３Ｒと左腕１０３Ｌを駆動する（ステップＳ３０７）。つぎに、終了指示を受け付けていないと判定すると（ステップＳ３０８；Ｎｏ）、ステップＳ３０１からステップ３０８を繰り返す。つぎに、終了指示を受け付けたと判定すると（ステップＳ３０８；Ｙｅｓ）、駆動処理を終了する。この場合、例えば、胸または腰の位置に取り付けられた場合は、その位置のみ設定部１１２が、左腕と右腕の干渉駆動制御処理を実行し、可動範囲のマップを作成する。なお、左腕と右腕の干渉駆動制御処理と可動範囲のマップの作成とは、上述した実施の形態と同様の方法で実施される。このようにすることで、短い時間で可動範囲のマップを作成することができる。
【００６０】
上述の実施の形態では、ロボット１００の干渉判定部１１３が、右手１０５Ｒまたは左手１０５Ｌが装着品に干渉したか否かを、圧力センサ１４０により圧力が検知されたか否かにより行う例について説明した。干渉判定部１１３は、左腕１０３Ｌ、右腕１０３Ｒ、右手１０５Ｒまたは左手１０５Ｌが装着品に干渉したか否かを判定できればよい。例えば、右手１０５Ｒと左手１０５Ｌに６軸モーションセンサ等の加速度センサを備え、基準値以上の加速度の変化を検出した場合、左腕１０３Ｌ、右腕１０３Ｒ、右手１０５Ｒまたは左手１０５Ｌが装着品に干渉（接触）したか否かを判定してもよい。この場合、左腕１０３Ｌ、右腕１０３Ｒ、右手１０５Ｒまたは左手１０５Ｌの何れかが、装着品に干渉すると、６軸モーションセンサが加速度の変化を検出するため、右手１０５Ｒと左手１０５Ｌ以外でも干渉を判定できる。また、第１と第２の駆動部１０４Ｒ、１０４Ｌがトルクセンサを備え、干渉判定部１１３は、第１と第２の駆動部１０４Ｒ、１０４Ｌが検出したトルクにより、左腕１０３Ｌ、右腕１０３Ｒ、右手１０５Ｒまたは左手１０５Ｌの何れかが、装着品に干渉しているか否かを判定してもよい。
【００６１】
上述の実施の形態では、設定部１１２が、左腕１０３Ｌを、そのＹ軸回転角はそのままで、例えば１°である基準角度分、Ｘ軸回転させ、干渉ポイントを特定する例について説明した。設定部１１２は、干渉ポイントを代表点だけ特定し、代表点以外のポイントを補間演算により求めてもよい。また、設定部１１２は、干渉ポイントにマージンを設けて可動境界ラインを作成してもよい。このようにすることで、第１と第２の駆動部１０４Ｒ、１０４Ｌの駆動に誤差が生じても、右手１０５Ｒと左手１０５Ｌが装着品に干渉することを防ぐことができる。また、ＲＯＭ１５０は、装着品が装着されていない場合における可動部の可動範囲として、図８に示す所定の初期可動範囲をさらに記憶し、装着判定部１１１により装着品がロボット１００に装着されていないと判定されている場合には、駆動制御部１１４は、初期可動範囲内で右腕１０３Ｒと左腕１０３Ｌを駆動するように、第１と第２の駆動部１０４Ｒ、１０４Ｌを制御する。
【００６２】
上述の実施の形態では、設定部１１２が、左腕の干渉駆動制御処理を実行した後、右腕の干渉駆動制御処理を実行する例について説明した。設定部１１２は、左腕の干渉駆動制御処理を実行しながら、右腕の干渉駆動制御処理を実行してもよい。この場合、右手１０５Ｒと左手１０５Ｌが干渉しないように実行する。例えば、第１の駆動部１０４ＲのＸ軸回転角と第２の駆動部１０４ＬのＸ軸回転角をずらして、右腕と左腕の干渉駆動制御処理を実行する。
【００６３】
上述の実施の形態では、可動部である右腕１０３Ｒ、左腕１０３Ｌ、右手１０５Ｒおよび左手１０５Ｌの位置が、第１と第２の駆動部１０４Ｒ、１０４ＬのＸ軸回転角及びＹ軸回転角により決定される例について説明した。可動部の位置は、いずれの方法で示されてもよい。可動部が、Ｘ軸及びＹ軸にそれぞれ沿って移動する場合には、基準点からの移動距離および移動方向で位置を決定してもよい。
【００６４】
上述の実施の形態では、装着品が装着されると、設定部１１２が、可動部が装着品に干渉するように駆動部を制御する干渉駆動制御処理を実行し、可動範囲のマップを作成（更新）する例について説明した。設定部１１２は、可動範囲のマップを作成することができればよく、左腕の可動範囲設定処理を実行してもよい。
【００６５】
干渉駆動制御処理では、ステップＳ２０３で、左腕１０３ＬのＸ軸回転角及びＹ軸回転角を干渉ポイントとしてＲＯＭ１５０に記憶した後、ステップＳ２０４で、左腕１０３Ｌを基準角度分、Ｘ軸回転させる。これに対して、可動範囲設定処理では、Ｘ軸回転角及びＹ軸回転角を干渉ポイントとして記憶した後、左腕１０３Ｌを、Ｘ軸回転角をそのままでＹ軸回転させ胴体部１０１から離す。その後、左腕１０３Ｌを、Ｙ軸回転角をそのままで基準角度分、Ｘ軸回転させ、左腕１０３Ｌを、そのＸ軸回転角はそのままで、胴体部１０１に近づける方向にＹ軸回転させる。左手１０５Ｌが装着品に干渉すると、Ｘ軸回転角及びＹ軸回転角を干渉ポイントとして記憶する。Ｘ軸回転角が終点になるまでこれらの動作を実行する。右腕の可動範囲設定処理についても同様に実行する。以上のようにすることで、右手１０５Ｒと左手１０５Ｌが弾性体から構成されない場合であっても可動範囲のマップを作成できる。
【００６６】
上述の実施の形態では、装着品が装着される度に、左腕と右腕の干渉駆動制御処理を実行し、装着品装着時用の可動範囲のマップを作成しＲＯＭ１５０に記憶する例について、説明した。可動範囲のマップが作成された装着品が、再度装着されたときは、ＲＯＭ１５０に記憶されている可動範囲のマップを再度適用するようにしてもよい。このようにすることで、装着品を取り外し、再度取り付けたとき、可動範囲のマップを作成する工程を省くことができる。この場合、装着品が複数種類ある場合には、装着品の種類ごとに、装着品装着時用の可動範囲のマップが作成され、記憶される。
【００６７】
上述の実施の形態では、装着品が胴体部１０１に取り付けられる例について説明したが、装着品は可動部である左腕１０３Ｌ、右腕１０３Ｒに取り付けられてもよい。例えば、右腕１０３Ｒにテニスラケットなどの装着品が取り付けられてもよい。右腕１０３Ｒを駆動したとき、装着品が胴体部１０１に接触して右腕１０３Ｒの動作が妨げられる場合も、装着品が可動部の動作に干渉する場合に含まれる。この場合、右腕１０３Ｒに取り付けられた装着品が胴体部１０１に干渉（接触）しないように可動範囲のマップを作成する。
【００６８】
上述の実施の形態では、設定部１１２が、干渉駆動制御処理を実行し、干渉判定部１１３が、圧力が検知されたか否かにより可動範囲を設定する例について説明した。干渉判定部１１３は、装着品が可動部の動作に干渉するか否かを判定し、設定部１１２は、可動範囲を設定することができればよい。例えば、干渉判定部１１３は、装着品が可動部の動作に干渉するか否かを、装着された装着品の種類や装着された位置を特定することにより実行してもよい。この場合、干渉判定部１１３は、ロボット１００に設けられたセンサや外部端末から通信部を介して装着された装飾品の種類や装着された位置を特定する。設定部１１２は、装着された装着品に紐付けされた可動範囲のデータをＲＯＭ１５０から読み出す、または外部端末から取得する。
【００６９】
上述の実施の形態では、初期可動範囲がＲＯＭ１５０に記憶されている例について説明したが、制御部１１０は、初期可動範囲を予め記憶していなくてもよい。この場合、制御部１１０は、装着品がロボット１００に装着されていない場合における可動部の可動範囲として、所定の初期可動範囲を取得する初期可動範囲取得部をさらに備える。初期可動範囲取得部は、外部のデータベースまたはネットワークから通信部を介して初期可動範囲を取得する。このようにすることで、左腕と右腕の干渉駆動制御処理を実行しなくても可動範囲を取得することができる。なお、初期可動範囲取得部は、駆動制御部１１４に含まれる。
【００７０】
上述の実施の形態では、ロボット１００は、可動部として、右腕１０３Ｒと左腕１０３Ｌを有する例について説明した。ロボット１００は、可動部を１つ有してもよく、３つ以上有していてもよい。また、ロボット１００の可動部としての右腕１０３Ｒと左腕１０３Ｌは、肩の部分に相当する第１と第２の駆動部１０４Ｒ、１０４Ｌにより駆動されていたが、肘の部分や、手首の部分を駆動するように、肘、手首の部分に駆動部をさらに設けてもよい。これにより、人の動きに近い動きを再現できる。この場合、肩、肘、手首の駆動部を順列組み合わせで駆動し、可動範囲のマップを作成する。
【００７１】
上述の実施の形態では、ロボット１００が、人を模した形状を有する例について説明したが、ロボット１００の形状は、特に限定されず、例えば、犬または猫を含む動物を模した形状を有してもよく、アニメーションのキャラクタや想像上の生き物を模した形状であってもよい。このようなロボット１００は、愛玩ロボットとして用いることができる。また、ロボット１００は、駆動部により駆動される可動部を有するものであればよく、製品を組み立てる産業用ロボットなどを含む。
【００７２】
また、ＣＰＵ、ＲＯＭ１５０、ＲＡＭ１６０等から構成される制御部１１０が実行する処理を行う中心となる部分は、専用のシステムによらず、通常の情報携帯端末（スマートフォン、タブレットＰＣ（Personal Computer））、パーソナルコンピュータなどを用いて実行可能である。たとえば、上述の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）等）に格納して配布し、このコンピュータプログラムを情報携帯端末などにインストールすることにより、上述の処理を実行する情報端末を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置にこのコンピュータプログラムを格納しておき、通常の情報処理端末などがダウンロード等することで情報処理装置を構成してもよい。
【００７３】
また、制御部１１０の機能を、ＯＳ（Operating System）とアプリケーションプログラムとの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【００７４】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板（ＢＢＳ：Bulletin Board System）にこのコンピュータプログラムを掲示し、ネットワークを介してこのコンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【００７５】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００７６】
（付記１）
可動部と該可動部を駆動する駆動部とを有し、装着品を装着可能な機器を制御する制御装置であって、
前記装着品が前記可動部の動作に干渉するか否かを判定する干渉判定手段と、
前記干渉判定手段により前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定手段と、
前記設定手段により設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御手段と、
を備えることを特徴とする制御装置。
【００７７】
（付記２）
前記設定手段は、前記可動部の位置を示すデータを取得し、前記干渉判定手段により前記装着品が前記可動部の動作に干渉したと判定されたときに取得した前記可動部の位置を示すデータに基づいて、前記可動部の可動範囲を設定する、
ことを特徴とする付記１に記載の制御装置。
【００７８】
（付記３）
前記設定手段は、前記装着品が装着されると、前記装着品が前記可動部の動作に干渉するように前記駆動部を制御する干渉駆動制御処理を実行し、前記装着品が前記可動部の動作に干渉したと判定されたときに取得した前記可動部の位置を示すデータに基づいて、前記可動部の可動範囲を設定する、
ことを特徴とする付記２に記載の制御装置。
【００７９】
（付記４）
前記機器に前記装着品が装着されたか否かを判定する装着判定手段をさらに備え、
前記設定手段は、前記装着判定手段により前記機器に前記装着品が装着されたと判定されると、前記干渉駆動制御処理を実行する、
ことを特徴とする付記３に記載の制御装置。
【００８０】
（付記５）
前記機器が所定の初期状態にあるときの当該機器の画像である初期画像を示すデータを記憶する記憶手段をさらに備え、
前記装着判定手段は、前記機器を撮像した画像を示すデータを取得し、前記機器の画像と前記記憶手段に記憶された初期画像とを比較し、前記装着品が前記機器に装着されたか否かを判定する、
ことを特徴とする付記４に記載の制御装置。
【００８１】
（付記６）
前記装着判定手段は、前記機器に前記装着品が装着されたことを表す装着品装着情報を前記機器のユーザから取得し、前記装着品装着情報に基づいて、前記装着品が前記機器に装着されたか否かを判定する、
ことを特徴とする付記４に記載の制御装置。
【００８２】
（付記７）
前記装着品が前記機器に装着されていない場合における前記可動部の可動範囲として、所定の初期可動範囲を取得する初期可動範囲取得手段をさらに備え、
前記駆動制御手段は、前記装着判定手段により前記装着品が前記機器に装着されていないと判定されている場合には、前記初期可動範囲内で前記可動部を駆動するように前記駆動部を制御する、
ことを特徴とする付記４から６のいずれか１つに記載の制御装置。
【００８３】
（付記８）
前記装着判定手段は、前記機器に前記装着品が装着された部位をさら検出し、
前記設定手段は、前記干渉駆動制御処理を実行することにより、前記装着判定手段により検出された部位に位置する前記装着品に前記可動部を接触させるように前記駆動部を制御する、
ことを特徴とする付記４から７のいずれか１つに記載の制御装置。
【００８４】
（付記９）
前記機器は、前記可動部に設けられた、前記可動部の接触を検出するセンサをさらに備え、
前記干渉判定手段は、前記センサの検出結果に基づいて、前記装着品が前記可動部の駆動に干渉したか否かを判定する、
ことを特徴とする付記１から８の何れか１つに記載の制御装置。
【００８５】
（付記１０）
可動部と、
前記可動部を駆動するように構成された駆動部と、
装着品が前記可動部の動作に干渉するか否かを判定する干渉判定手段と、
前記干渉判定手段により前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定手段と、
前記設定手段により設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御手段と、
を備えることを特徴とするロボット。
【００８６】
（付記１１）
可動部と該可動部を駆動する駆動部とを有し、装着品を装着可能な機器を制御する制御装置を制御する方法であって、
前記装着品が前記可動部の動作に干渉するか否かを判定する干渉判定ステップと、
前記干渉判定ステップにより前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定ステップと、
前記設定ステップにより設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御ステップと、
を備えることを特徴とする機器の制御方法。
【００８７】
（付記１２）
可動部と該可動部を駆動する駆動部とを有し、装着品を装着可能な機器を制御するコンピュータを、
前記装着品が前記可動部の動作に干渉するか否かを判定する干渉判定手段、
前記干渉判定手段により前記装着品が前記可動部の動作に干渉すると判定された場合に、前記可動部の可動範囲を設定する設定手段、
前記設定手段により設定された前記可動範囲内で前記可動部を駆動するように前記駆動部を制御する駆動制御手段、
として機能させるプログラム。
【符号の説明】
【００８８】
１００…ロボット、１０１…胴体部、１０２…頭部、１０３Ｒ…右腕、１０３Ｌ…左腕、１０４Ｒ…第１の駆動部、１０４Ｌ…第２の駆動部、１０５Ｒ…右手、１０５Ｌ…左手、１０６Ｒ…右足、１０６Ｌ…左足、１０７…撮像部、１０８…マイク、１１０…制御部、１１１…装着判定部、１１２…設定部、１１３…干渉判定部、１１４…駆動制御部、１２０…操作部、１３０…電源部、１４０…圧力センサ、１５０…ＲＯＭ、１６０…ＲＡＭ、Ｒ、Ｓ、Ｔ…装着品
【図１】
2020055084.tif 000003
【図２】
2020055084.tif 000004
【図３】
2020055084.tif 000005
【図４】
2020055084.tif 000006
【図５】
2020055084.tif 000007
【図６】
2020055084.tif 000008
【図７】
2020055084.tif 000009
【図８】
2020055084.tif 000010
【図９】
2020055084.tif 000011
【図１０】
2020055084.tif 000012