(57)【要約】【課題】ロボットを目的位置で正確に停止させる。【解決手段】筐体を回転させてロボットが所定の目標地点まで走行する際に、駆動機構に筐体の回転を指示してから変化するピッチ角の統計値を検知し、検知されたピッチ角の統計値に対応する最小制御量を判断し、ロボットが所定の目標地点の所定距離手前に到達した場合、所定の目標地点までの残距離に応じて駆動機構に対する減速制御量を、最小制御量以上の範囲で生成し、減速制御量に従って前記駆動機構を制御して筐体の回転を減速させる。【選択図】図１
2019018277.tif 000002
【特許請求の範囲】
【請求項１】
球体状の筐体と、
前記筐体の内部に配置されたフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記筐体の走行方向に垂直な左右方向を軸とする前記表示部の角速度を検知する角速度センサと、
参照ピッチ角と、前記駆動機構において用いられ、前記筐体を停止させずに走行させるための最小制御量との対応関係を記憶するメモリと、
前記筐体を回転させて前記ロボットが所定の目標地点まで走行する際に、前記駆動機構に前記筐体の回転を指示してから変化するピッチ角の統計値を検知し、前記ピッチ角は前記検知された角速度の累積値であり、
前記対応関係を参照して前記検知されたピッチ角の統計値に対応する最小制御量を判断し、
前記ロボットが前記所定の目標地点の所定距離手前に到達した場合、前記所定の目標地点までの残距離に応じて前記駆動機構に対する減速制御量を、前記最小制御量以上の範囲で生成し、
前記減速制御量に従って前記駆動機構を制御して前記筐体の回転を減速させる
制御回路と、を含む、
ロボット。
【請求項２】
前記参照ピッチ角は、第１参照ピッチ角と第２参照ピッチ角とを含み、
前記制御回路は、
前記ロボットが走行を開始する前は、
前記ピッチ角の統計値として最大ピッチ角を検知し、
前記最小制御量は前記最大ピッチ角に対応した前記第１参照ピッチ角に対応する第１制御量であると判断し、
前記ロボットが走行を開始した後は、
前記ピッチ角の統計値として平均ピッチ角を検知し、
前記最小制御量は前記平均ピッチ角に対応した前記第２参照ピッチ角に対応する第２制御量であると判断し、
前記ロボットが前記所定の目標地点の所定距離手前に到達する前に判断された前記最小制御量以上の範囲で、前記減速制御量を生成する、
請求項１記載のロボット。
【請求項３】
前記制御回路は、
前記減速制御量をＳ字制御により減少させて前記筐体の回転を減速させる、
請求項１記載のロボット。
【請求項４】
前記制御回路は、
前記筐体を回転させて前記ロボットの走行を開始させる際に、前記筐体の回転速度が所定の速度に達するまで、前記筐体の回転を加速させる加速制御量を台形制御により増加させて前記筐体の回転を加速させる、
請求項３記載のロボット。
【請求項５】
前記制御回路は、
前記筐体の回転速度が所定の速度に達した後、前記所定の目標地点の所定距離手前に到達するまで、前記筐体の回転速度を前記所定の速度に維持する、
請求項４記載のロボット。
【請求項６】
前記フレームに設けられたカメラと、
前記フレームに設けられたマイクと、を備え、
前記メモリは、人物を照合するための参照データ画像及び音声を認識するための参照音声データを記憶し、
前記制御回路は、
前記マイクから入力した音声データと前記参照音声データに基づいて、所定の人物が所定の言葉を発したと判断し、且つ、前記カメラから入力した画像データと前記参照データ画像に基づいて、前記所定の人物を認識した場合、前記所定の人物の位置を前記所定の目標地点と設定する、
請求項１記載のロボット。
【請求項７】
前記制御回路は、以下の演算式を用いて前記減速制御量を生成し、
（ＳＩＮ（３＊π／２−π／Ｌ＊ｄ）＋１）＊（Ｍａｘ−ｍｉｎ）／２＋ｍｉｎ、
前記演算式において、
ｄは、前記ロボットの位置から前記所定の目標地点までの距離（ｍ）を示し、
Ｍａｘは、前記制御回路が前記減速制御量に従って前記駆動機構の制御を開始する時の制御量（Ｈｚ）を示し、
ｍｉｎは、前記最小制御量を示し、
Ｌは目的地点からの所定の距離を示す、
請求項１記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ロボットに関する。
【背景技術】
【０００２】
特許文献１は、ユーザの腕によって抱き上げられた状態又は持ち上げられた状態にあるか否かを判断し、判断結果に基づき、各関節機構の動作を停止させるロボットを開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３０６２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記従来技術は、例えば、ユーザがロボットを呼び寄せた場合に、前記ロボットが前記ユーザの位置まで来て停止する制御については一切開示がない。
【課題を解決するための手段】
【０００５】
上記課題を解決するために本開示の一態様にかかるロボットは、球体状の筐体と、
前記筐体の内部に配置されたフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記筐体の走行方向に垂直な左右方向を軸とする前記表示部の角速度を検知する角速度センサと、
参照ピッチ角と、前記駆動機構において用いられ、前記筐体を停止させずに走行させるための最小制御量との対応関係を記憶するメモリと、
前記筐体を回転させて前記ロボットが所定の目標地点まで走行する際に、前記駆動機構に前記筐体の回転を指示してから変化するピッチ角の統計値を検知し、前記ピッチ角は前記検知された角速度の累積値であり、
前記対応関係を参照して前記検知されたピッチ角の統計値に対応する最小制御量を判断し、
前記ロボットが前記所定の目標地点の所定距離手前に到達した場合、前記所定の目標地点までの残距離に応じて前記駆動機構に対する減速制御量を、前記最小制御量以上の範囲で生成し、
前記減速制御量に従って前記駆動機構を制御して前記筐体の回転を減速させる
制御回路と、を含む。
【発明の効果】
【０００６】
これにより、例えば、ユーザがロボットを呼び寄せた場合に、前記ロボットを前記ユーザの位置で停止させることが可能となった。
【図面の簡単な説明】
【０００７】
【図１】本開示の実施の形態１に係るロボットの外観図である。
【図２】本開示の実施の形態１に係るロボットの内部斜視図である。
【図３】図２のＡ視における、本開示の実施の形態１に係るロボットの内部側面図である。
【図４】図２のＡ視における、本開示の実施の形態１に係るロボットの直進動作を表す側面図である。
【図５】図２のＢ視における、本開示の実施の形態１に係るロボットの回転動作を表す平面図である。
【図６】本開示の実施の形態１に係るロボットの回転動作を表す斜視図である。
【図７】図３の側面図においてカウンターウェイト（重り）の駆動機構を示した図である。
【図８Ａ】カウンターウェイト（重り）が所定の直線方向に駆動する際のカウンターウェイト（重り）の駆動機構の動作を示す斜視図である。
【図８Ｂ】カウンターウェイト（重り）が所定の直線方向に駆動する際のカウンターウェイト（重り）の駆動機構の動作を示す側面図である。
【図８Ｃ】図３の側面図においてカウンターウェイト（重り）が所定の直線方向に往復移動する状態を示す側面図である。
【図９Ａ】スイングアームを回転させる際のカウンターウェイト（重り）の駆動機構の動作を示す斜視図である。
【図９Ｂ】スイングアームを回転させる際のカウンターウェイト（重り）の駆動機構の動作を示す側面図である。
【図９Ｃ】図２のＢ視における、本開示の実施の形態１に係るロボットのスイングアームが回転する状態を示す平面図である。
【図１０】図２のＡ視における、カウンターウェイト（重り）が前方寄りに位置しているときのロボットの姿勢を示す側面図である。
【図１１】図２のＡ視における、カウンターウェイト（重り）が後方寄りに位置しているときのロボットの姿勢を示す側面図である。
【図１２】図２のＣ視における、カウンターウェイト（重り）が右方寄りに位置しているときのロボットの姿勢を示す正面図である。
【図１３】図２のＣ視における、カウンターウェイト（重り）が左方寄りに位置しているときのロボットの姿勢を示す正面図である。
【図１４】筐体が矢印に示す前進方向に回転を始めるまでのロボットの姿勢を示す図である。
【図１５】本開示の実施の形態１に係るロボットが適用されたロボットシステムの全体構成の一例を示す図である。
【図１６】本開示の実施の形態１に係るロボットを示すブロック図である。
【図１７】本開示の実施の形態１に係るロボットが活動する空間と第１ユーザに対してロボットが行う処理の一部とを示す図である。
【図１８】メモリが記憶するロボットの周辺環境に対する地図情報を示す図である。
【図１９】３次元空間上におけるロボット１の前進方向をＸ軸としたときに、Ｘ軸に対して垂直に交わる２つの軸（Ｙ軸、Ｚ軸）を示す図である。
【図２０】床面の種類に応じた最大ピッチ角と最小制御量との関係を示す制御量決定データベースのデータ構成の一例を示す図である。
【図２１】台形制御により制御量を決定させた場合において、ロボットが走行する床面の種類に応じた停止位置の違いを示すグラフである。
【図２２】フローリング及び絨毯のそれぞれについて、式（１）を用いてロボットを目的位置に停止させる際の、減速開始位置から目的位置までの範囲内における目的位置までの残り距離と制御量との関係を示すグラフである。
【図２３】本開示の実施の形態１に係るロボットにおける移動開始から停止するまでの制御量の推移を示すグラフである。
【図２４】床面ごとにロボットが走行開始命令を受けて、実際に走り出すまでの間のピッチ角の変化を示すグラフである。
【図２５】本開示の実施の形態１に係るロボットのメインルーチンを示すフローチャートである。
【図２６】図２５における目的位置設定処理を示すフローチャートである。
【図２７】図２５における駆動制御処理を示すフローチャートである。
【図２８】本開示の実施の形態２における走行時のロボットの姿勢を示す図である。
【図２９】本開示の実施の形態２における制御量決定データベースのデータ構成を示す図である。
【図３０】本開示の実施の形態２に係るロボットが活動する空間と第１ユーザに対してロボットが行う処理の一部とを示す図である。
【図３１】本開示の実施の形態２に係る駆動制御処理を示すフローチャートである。
【図３２】図３１のステップＳ１２０１の最小制御量の更新処理の詳細を示すフローチャートである。
【図３３】本開示の実施の形態２に係るリングバッファのデータ構成を示す図である。
【図３４】本開示の実施の形態２の変形例に係る制御量決定データベースのデータ構成を示す図である。
【発明を実施するための形態】
【０００８】
（本開示にかかる一態様を発明するに至った経緯）
まず、本発明者は、球体状の筐体を備え、この筐体を回転させることで移動するロボットを検討している。
【０００９】
そして、前記ロボットのユーザが、上記のようなロボットに対して、前記ロボットの名前を呼ぶ等して、前記ロボットを前記ユーザの場所に呼び寄せることができる機能を検討している。
【００１０】
本発明者は、このような機能を前記ロボットに実現させるために、以下のような仕様を考えている。
【００１１】
即ち、前記ロボットは、前記ユーザが発した音声に基づき、前記ユーザの場所に呼び寄せる指示を認識すると共に前記ユーザの位置を確認する。そして、前記ロボットは、前記確認したユーザの位置を目標地点として設定して、前記目標地点に向けた移動を開始する。そして、前記目標地点に到達したことを検知すると、前記ロボットは前記移動動作を停止する。
【００１２】
しかし、本発明者が種々の実験を試みたところ、前記ロボットを前記目標地点にて停止させることは、必ずしも容易ではなかった。これは、上記ロボットの筐体が球体状であるため、転がりやすく、所望の位置に停止させることは容易ではなかったためである。そのため、前記ロボットは、前記ユーザの位置より手前で停止したり、又は、前記ロボットの駆動の停止後も慣性により前記ユーザの位置を通り過ぎることがあった。
【００１３】
従って、前記ロボットが前記ユーザの位置より手前で停止し、又は、前記ロボットが前記ユーザの位置を通り過ぎて停止するのではなく、前記ロボットが前記ユーザの位置で停止するように前記ロボットの性能を改善する必要があった。
【００１４】
本発明者が鋭意研究を重ねたところ、前記ロボットが前記ユーザの位置で停止するためには、前記ロボットが移動する速度を示す情報、及び、前記目標地点までの距離を示す情報、のみならず、走行面の素材を示す情報が必要であることが分かった。
【００１５】
しかし、前記ロボットが移動する速度を示す情報は、前記ロボット内部のモータの回転数を示す情報などから前記ロボット自身が判断できる。同様に、前記目標地点までの距離を示す情報は、前記ロボットに内蔵されたカメラから入力した情報などに基づき、前記ロボット自身が判断できる。
【００１６】
一方、走行面の素材を示す情報は、前記ロボットの内部に設けられたセンサ類から入力される情報からは直接的には判断できないという課題を見出した。
【００１７】
そこで、本発明者が鋭意検討した結果、前記ロボットが走行を開始する際、走行面の素材に応じて、前記ロボットの筐体が回転する角度が異なることに着目した。例えば、走行面が木材のフローリングの場合、前記ロボットと前記走行面との摩擦は相対的に小さい。よって、この場合、前記ロボットの筐体が回転する角度は、相対的に小さい。一方、走行面が絨毯の場合、前記ロボットと前記走行面との摩擦は相対的に大きい。よって、この場合、前記ロボットの筐体が回転する角度は、相対的に大きい。これにより、走行面の素材の情報は、前記ロボットの内部に設けられたセンサ類から入力できる情報からは直接的には判断できなくても、前記ロボットが走行を開始する際における前記ロボットの筐体の回転角度に基づいて判断できる。
【００１８】
上記知見に基づき、以下の発明の一態様を想到するに至った。
【００１９】
本開示の一態様にかかるロボットは、
球体状の筐体と、
前記筐体の内部に配置されたフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記筐体の走行方向に垂直な左右方向を軸とする前記表示部の角速度を検知する角速度センサと、
参照ピッチ角と、前記駆動機構において用いられ、前記筐体を停止させずに走行させるための最小制御量との対応関係を記憶するメモリと、
前記筐体を回転させて前記ロボットが所定の目標地点まで走行する際に、前記駆動機構に前記筐体の回転を指示してから変化するピッチ角の統計値を検知し、前記ピッチ角は前記検知された角速度の累積値であり、
前記対応関係を参照して前記検知されたピッチ角の統計値に対応する最小制御量を判断し、
前記ロボットが前記所定の目標地点の所定距離手前に到達した場合、前記所定の目標地点までの残距離に応じて前記駆動機構に対する減速制御量を、前記最小制御量以上の範囲で生成し、
前記減速制御量に従って前記駆動機構を制御して前記筐体の回転を減速させる
制御回路と、を含む、ものである。
【００２０】
本態様により、前記筐体の走行方向に垂直な左右方向を軸とする角速度を検知する角速度センサを設け、前記筐体を回転させて前記ロボットが所定の目標地点まで走行する際に、前記駆動機構に前記筐体の回転を指示してから所定時間内に変化する角速度の統計値を検知するようにした。
【００２１】
これにより、前記検知されたピッチ角の統計値に対応する最小制御量を判断し、前記ロボットが前記目標地点の所定距離手前に到達した場合、前記目標地点までの残距離に応じて前記駆動機構に対する減速制御量を、前記最小制御量以上の範囲で生成し、前記減速制御量に従って前記駆動機構を制御して前記筐体の回転を減速させるようにした。
【００２２】
これにより、前記ロボットが走行を開始する際における前記ロボットの筐体の回転角度から、走行面の素材を考慮して、前記ロボットが前記ユーザの位置より手前で停止し、又は、前記ロボットが前記ユーザの位置を通り過ぎて停止するのではなく、前記ロボットが前記ユーザの位置で停止できるようにした。
【００２３】
即ち、前記ロボットは、前記最小制御量以上の範囲の減速制御量に従って減速するため、前記ロボットが前記ユーザの位置より手前で停止することを防止できる。また、前記所定の目標地点の付近では前記最小制御量近傍の減速制御量に従って減速しているので、前記筐体の回転を停止する指示後に慣性により前記ロボットが転がることを抑制できる。これにより、前記筐体の回転停止を指示すればそのタイミングで前記ロボットを停止させることができる。
【００２４】
また、上記態様において、前記参照ピッチ角は、第１参照ピッチ角と第２参照ピッチ角とを含み、
前記制御回路は、
前記ロボットが走行を開始する前は、
前記ピッチ角の統計値として最大ピッチ角を検知し、
前記最小制御量は前記最大ピッチ角に対応した前記第１参照ピッチ角に対応する第１制御量であると判断し、
前記ロボットが走行を開始した後は、
前記ピッチ角の統計値として平均ピッチ角を検知し、
前記最小制御量は前記平均ピッチ角に対応した前記第２参照ピッチ角に対応する第２制御量であると判断し、
前記ロボットが前記所定の目標地点の所定距離手前に到達する前に判断された前記最小制御量以上の範囲で、前記減速制御量を生成してもよい。
【００２５】
本態様では、ロボットが走行を開始する前は、検知された最大ピッチ角に対応する第１参照ピッチ角に対応する第１制御量が最小制御量と判断され、ロボットが走行を開始した後は、検知された平均ピッチ角に対応する第２参照ピッチ角に対応する第２制御量が判断される。そのため、走行中にロボットの床面が異なる材質の床面に変わったとしても、ロボットを目標地点に停止させることができる。
【００２６】
また、上記態様において、前記制御回路は、
前記減速制御量をＳ字制御により減少させて前記筐体の回転を減速させてもよい。
【００２７】
本態様では、Ｓ字制御により筐体の回転が減速されるので、所定の目標地点にふらつくことなくロボットを停止させることができる。
【００２８】
また、上記態様において、前記制御回路は、
前記筐体を回転させて前記ロボットの走行を開始させる際に、前記筐体の回転速度が所定の速度に達するまで、前記筐体の回転を加速させる加速制御量を台形制御により増加させて前記筐体の回転を加速させてもよい。
【００２９】
本態様では、ロボットの走行を開始させる際に、筐体の回転速度が所定の速度に到達するまでは、筐体は台形制御により加速されるので、所定の目標地点までのロボットの移動時間を短くすることができる。
【００３０】
また、上記態様において、前記制御回路は、
前記筐体の回転速度が所定の速度に達した後、前記所定の目標地点の所定距離手前に到達するまで、前記筐体の回転速度を前記所定の速度に維持してもよい。
【００３１】
本態様では、筐体の回転速度が所定の速度に達した後、所定の目標地点の所定距離手前に到達するまでは、筐体の回転速度は所定の速度に維持されるので、筐体の回転速度が所定の速度を超えることを防止できる。そのため、筐体の回転速度が不必要に増大することを防止できる。
【００３２】
また、上記態様において、前記フレームに設けられたカメラと、
前記フレームに設けられたマイクと、を備え、
前記メモリは、人物を照合するための参照データ画像及び音声を認識するための参照音声データを記憶し、
前記制御回路は、
前記マイクから入力した音声データと前記参照音声データに基づいて、所定の人物が所定の言葉を発したと判断し、且つ、前記カメラから入力した画像データと前記参照データ画像に基づいて、前記所定の人物を認識した場合、前記所定の人物の位置を前記所定の目標地点と設定してもよい。
【００３３】
本態様では、マイクから入力した音声データと参照音声データとに基づいて、所定の人物が所定の言葉を発したと判断し、且つ、カメラから入力した画像データと参照データ画像とに基づいて、所定の人物を認識した場合、所定の人物の位置が前記所定の目標地点として設定されている。そのため、本態様は、例えば、ロボットの周辺に複数の人物が存在したとしても、ロボットを所定の言葉を発した人物の位置に停止させることができる。
【００３４】
また、上記態様において、前記制御回路は、以下の演算式を用いて前記減速制御量を生成し、
（ＳＩＮ（３＊π／２−π／Ｌ＊ｄ）＋１）＊（Ｍａｘ−ｍｉｎ）／２＋ｍｉｎ、
前記演算式において、
ｄは、前記ロボットの位置から前記所定の目標地点までの距離（ｍ）を示し、
Ｍａｘは、前記制御回路が前記減速制御量に従って前記駆動機構の制御を開始する時の制御量（Ｈｚ）を示し、
ｍｉｎは、前記最小制御量を示し、
Ｌは目的地点からの所定の距離を示してもよい。
【００３５】
本態様では、上記の演算式を用いて減速制御量が生成されているので、Ｓ字制御により所定の目標地点にロボットを滑らかに移動させることがで、所定の目標地点にロボットを正確に停止させることができる。
【００３６】
（実施の態様）
以下、本発明の各実施の形態について、図面を参照しながら説明する。尚、各図面において、同じ構成要素については同じ符号が用いられている。
【００３７】
（実施の形態１）
（全体構成）
図１は、本開示の実施の形態１に係るロボット１の外観図である。ロボット１は、図１に示すように、球体状の筐体１０１を備える。筐体１０１は例えば、透明な部材或いは半透明の部材で構成される。
【００３８】
図２は、本開示の実施の形態１に係るロボット１の内部斜視図である。
【００３９】
図２において、フレーム１０２が筐体１０１の内側部に配置されている。フレーム１０２は、第１回転板１０３及び第２回転板１０４を備える。第１回転板１０３は、第２回転板１０４に対して上方に位置している。第１回転板１０３及び第２回転板１０４は基台の一例に相当する。
【００４０】
図２に示すように、第１表示部１０５及び第２表示部１０６は、第１回転板１０３の上面に備え付けられている。また、第３表示部１０７は第２回転板１０４の上面に備え付けられている。第１表示部１０５、第２表示部１０６、及び第３表示部１０７は、例えば、複数の発光ダイオードにより構成される。第１表示部１０５、第２表示部１０６、及び第３表示部１０７は、ロボット１の表情の表示情報を表示する。具体的には、第１表示部１０５、第２表示部１０６、及び第３表示部１０７は、前記複数の発光ダイオードの点灯を個別に制御することにより、図１に示すように、ロボット１の顔の一部、例えば、目や口を表示する。図１の例では、第１表示部１０５がロボット１を正面から見て左目の画像を表示し、第２表示部１０６がロボット１を正面から見て右目の画像を表示し、第３表示部１０７が口の画像を表示している。そして、左目、右目、口の画像は、透明又は半透明の部材からなる筐体１０１を透過し、外部に放射されている。
【００４１】
カメラ１０８は、図２に示すように、第１回転板１０３の上面に備え付けられている。カメラ１０８は、ロボット１の周辺環境の映像を取得する。カメラ１０８は、図１に示すように、ロボット１の顔の一部、例えば、鼻を構成する。したがって、カメラ１０８の光軸はロボット１の前方に向かうことになる。これにより、カメラ１０８は正面に差し出された認識対象物を撮影できる。
【００４２】
制御回路１０９は、図２に示すように、第１回転板１０３の上面に備え付けられている。制御回路１０９は、ロボット１の各種動作を制御する。制御回路１０９の詳細は後述する。
【００４３】
第１駆動輪１１０及び第２駆動輪１１１は、それぞれ、第２回転板１０４の下面に備え付けられており、筐体１０１の内周面に接している。また、第１駆動輪１１０は、第１駆動輪１１０を駆動させる第１モータ１１２を有する。同様に、第２駆動輪１１１は、第２駆動輪１１１を駆動させる第２モータ１１３を有する。即ち、第１駆動輪１１０及び第２駆動輪１１１は、それぞれ独立した個別のモータによって駆動される。第１駆動輪１１０及び第２駆動輪１１１の駆動によるロボット１の動作の詳細は後述する。第１駆動輪１１０及び第２駆動輪１１１は、筐体駆動輪を構成する。
【００４４】
図３は、図２のＡ視における、本開示の実施の形態１に係るロボット１の内部側面図である。
【００４５】
図３において、カウンターウェイト（重り）１１４は、第１回転板１０３と第２回転板１０４との間に設けられている。カウンターウェイト（重り）１１４は、筐体１０１の中心からやや下方に位置する。このため、ロボット１の重心は、筐体１０１の中心から下方に位置する。これにより、ロボット１の動作を安定させることができる。Ａ視は、背面から正面を見て左方向からロボット１の側面を見た方向を指す。
【００４６】
図３に示すように、ロボット１は、カウンターウェイト（重り）１１４を駆動する機構として、カウンターウェイト（重り）１１４の移動方向を規定するガイドシャフト１１５、カウンターウェイト（重り）１１４の回転方向の位置を規定するスイングアーム１１６、スイングアーム１１６を回転させる回転用モータ１１７、スイングアーム１１６及び回転用モータ１１７の間を接続する回転シャフト１１８、カウンターウェイト（重り）１１４の駆動に用いられるベルト１１９（図８Ａ及び図８Ｂ）、ベルト１１９に接するモータプーリ１２０（図８Ａ及び図８Ｂ）、及び、モータプーリ１２０を回転させる、図示しない重り駆動用モータを備える。尚、本態様においては、前記重り駆動用モータはカウンターウェイト（重り）１１４に内蔵されている。カウンターウェイト（重り）１１４の駆動によるロボット１の動作の詳細は後述する。
【００４７】
回転シャフト１１８は、第１駆動輪１１０と第２駆動輪１１１との駆動軸に対して垂直方向に延びる。回転シャフト１１８は、フレーム１０２に備え付けられたシャフトの一例に相当する。第１駆動輪１１０及び第２駆動輪１１１は正面視において、地面に向けて距離が離れるように取り付けられている。この場合、第１駆動輪１１０と第２駆動輪１１１との駆動軸は、例えば、第１駆動輪１１０と第２駆動輪１１１との中心同士を結ぶ仮想的な軸線である。なお、第１駆動輪１１０と第２駆動輪１１１とが正面視において平行に取り付けられていれば、実際の駆動軸が第１駆動輪１１０と第２駆動輪１１１との駆動軸となる。
【００４８】
ロボット１は、図略の電源及びマイク２１７（図１６）をさらに備える。ロボット１は、図略の充電器により充電される。マイク２１７は、ロボット１の周辺環境の音声を取得する。
【００４９】
次に、第１駆動輪１１０及び第２駆動輪１１１を用いたロボット１の動作を図４から図６を参照して説明する。
【００５０】
図４は、図２のＡ視における、本開示の実施の形態１に係るロボット１の直進動作を表す側面図である。図５は、図２のＢ視における、本開示の実施の形態１に係るロボット１の回転動作を表す平面図である。図６は、本開示の実施の形態１に係るロボット１の回転動作を表す斜視図である。Ｂ視は上方から下方に向けてロボット１を見た方向を指す。
【００５１】
図４に示すように、第１駆動輪１１０及び第２駆動輪１１１を前方方向（Ａ視において、駆動軸回りに反時計回りの方向）に回転させると、その動力によって筐体１０１は前方方向（Ａ視において、反時計回りの方向）に回転する。これにより、ロボット１は前進する。逆に、第１駆動輪１１０及び第２駆動輪１１１を後方方向（Ａ視において、駆動軸回りに時計回りの方向）に回転させると、ロボット１は後進する。
【００５２】
また、図５及び図６に示すように、第１駆動輪１１０及び第２駆動輪１１１を互いに逆方向に回転させると、その動力によって筐体１０１は、その中心を通過する鉛直軸回りの回転動作を行う。即ち、ロボット１は、その場で左回り又は右回りに回転する。ロボット１は、このような前進、後進又は回転動作によって移動する。
【００５３】
次に、カウンターウェイト（重り）１１４を用いたロボット１の基本動作を図７から図９Ｃを参照して説明する。
【００５４】
図７は、図３の側面図においてカウンターウェイト（重り）１１４の駆動機構を示した図である。図８Ａは、カウンターウェイト（重り）１１４が所定の直線方向に駆動する際のカウンターウェイト（重り）１１４の駆動機構の動作を示す斜視図である。図８Ｂは、カウンターウェイト（重り）１１４が所定の直線方向に駆動する際のカウンターウェイト（重り）１１４の駆動機構の動作を示す側面図である。図８Ｃは、図３の側面図においてカウンターウェイト（重り）１１４が所定の直線方向に往復移動する状態を示す側面図である。図９Ａは、スイングアーム１１６を回転させる際のカウンターウェイト（重り）１１４の駆動機構の動作を示す斜視図である。図９Ｂは、スイングアーム１１６を回転させる際のカウンターウェイト（重り）１１４の駆動機構の動作を示す側面図である。図９Ｃは、図２のＢ視における、本開示の実施の形態１に係るロボット１のスイングアーム１１６が回転する状態を示す平面図である。
【００５５】
図７に示すように、例えば、スイングアーム１１６の中央位置がカウンターウェイト（重り）１１４のデフォルト位置である。カウンターウェイト（重り）１１４がスイングアーム１１６の中央に位置しているとき、第１回転板１０３及び第２回転板１０４は走行面とほぼ平行になり、ロボット１の顔を構成する、例えば、目、鼻、口がデフォルト方向に向いた状態になる。
【００５６】
図８Ａ及び図８Ｂに示すように、カウンターウェイト（重り）１１４に内蔵された、図示しない重り駆動用モータは、前記重り駆動用モータに連結されたモータプーリ１２０を回転させる。回転されたモータプーリ１２０がベルト１１９上を転がることにより、カウンターウェイト（重り）１１４はスイングアーム１１６内を移動する。モータプーリ１２０の回転方向、即ち、前記重り駆動用モータの駆動方向を変化させることにより、スイングアーム１１６内において、カウンターウェイト（重り）１１４は直線方向に往復移動する。
【００５７】
図８Ｃに示すように、カウンターウェイト（重り）１１４は、ガイドシャフト１１５に沿って、スイングアーム１１６内を直線方向に往復移動する。
【００５８】
図９Ａ及び図９Ｂに示すように、回転用モータ１１７は、回転シャフト１１８を回転させることにより、回転シャフト１１８（図３）に接続されたスイングアーム１１６を回転させる。
【００５９】
図９Ｃに示すように、スイングアーム１１６は時計回り、反時計回りのいずれの方向にも回転させることができる。
【００６０】
さらに、カウンターウェイト（重り）１１４を用いたロボット１の動作の詳細を図１０から図１３を参照して説明する。図１０は、図２のＡ視における、カウンターウェイト（重り）１１４が前方寄りに位置しているときのロボット１の姿勢を示す側面図である。図１１は、図２のＡ視における、カウンターウェイト（重り）１１４が後方寄りに位置しているときのロボット１の姿勢を示す側面図である。図１２は、図２のＣ視における、カウンターウェイト（重り）１１４が右方寄りに位置しているときのロボット１の姿勢を示す正面図である。図１３は、図２のＣ視における、カウンターウェイト（重り）１１４が左方寄りに位置しているときのロボット１の姿勢を示す正面図である。Ｃ視は、前方から後方に向けてロボット１を見た方向を指す。
【００６１】
図１０に示すように、スイングアーム１１６がロボット１の正面に対して垂直な状態で、カウンターウェイト（重り）１１４を、デフォルト位置からスイングアーム１１６の一端（図１０では左端）、即ち、前方寄りに移動させると、ロボット１は、矢印１２１が示すようにピッチ方向の前方に傾く。また、図１１に示すように、スイングアーム１１６がロボット１の正面に対して垂直な状態で、カウンターウェイト（重り）１１４を、デフォルト位置からスイングアーム１１６の他端（図１１では右端）、即ち、後方寄りに移動させると、ロボット１は、矢印１２２が示すようにピッチ方向の後方に傾く。従って、スイングアーム１１６がロボット１の正面に対して垂直な状態で、カウンターウェイト（重り）１１４をスイングアーム１１６内の前記一端から前記他端まで往復動作させると、ロボット１は、矢印１２１が示すピッチ方向の前方または矢印１２２が示すピッチ方向の後方に傾く往復動作を行う。即ち、ロボット１は所定のピッチ角範囲内においてピッチ方向に揺動する。
【００６２】
上述のように、第１表示部１０５、第２表示部１０６及び第３表示部１０７は、ロボット１の顔の一部、例えば、目や口を表す。従って、カウンターウェイト１１４を用いてロボット１にピッチ方向の前方またはピッチ方向の後方に傾く往復動作をさせることにより、例えば、ロボット１が息切れしている状態又は眠い状態を表現することができる。この制御を、例えば、電源の電力残量が所定値以下になった場合に行えば、ロボット１は、第１表示部１０５、第２表示部１０６、及び第３表示部１０７に前記顔とは無関係な電力残量に関する情報を表示することなく、電源の電力残量が少なくなっていることをユーザに違和感なく伝えることができる。
【００６３】
図１２に示すように、スイングアーム１１６がロボット１の正面に対して平行な状態で、カウンターウェイト（重り）１１４を、デフォルト位置からスイングアーム１１６の一端（図１２の右端）、即ち、右方寄りに移動させると、ロボット１は、矢印１２３が示す右側（正面から見て時計回りの方向）に傾く。また、図１３に示すように、スイングアーム１１６がロボット１の正面に対して平行な状態で、カウンターウェイト（重り）１１４を、デフォルト位置からスイングアーム１１６の他端（図１３の左端）、即ち、左方寄りに移動させると、ロボット１は、矢印１２４が示す左側（正面から見て反時計回りの方向）に傾く。従って、スイングアーム１１６をロボット１の正面に対して平行な状態で、カウンターウェイト（重り）１１４をスイングアーム１１６内の前記一端から前記他端まで往復動作させると、ロボット１は、矢印１２３が示す右側または矢印１２４が示す左側に傾く往復動作を行う。即ち、ロボット１は所定の角度において左右方向に揺動する。
【００６４】
次に、走行開始時のロボット１の姿勢について図１４を参照して説明する。
【００６５】
図１４は、筐体１０１が矢印１２５に示す前進方向に回転を始めるまでのロボット１の姿勢を示す図である。筐体１０１は、第１駆動輪１１０及び第２駆動輪１１１を第１駆動輪１１０に図示する矢印方向に回転することで発生する力が、床面１２６の摩擦等の外的要因による力よりも大きい場合に、矢印１２５に示す前進方向に前進を始める。また、筐体１０１は、第１駆動輪１１０及び第２駆動輪１１１を駆動することで発生する力が、床面１２６の摩擦等の外的要因による力よりも小さい場合に、前進を始めることは無い。このとき、筐体１０１は固定された状態となるため、第１駆動輪１１０及び第２駆動輪１１１は、筐体１０１の内側に沿って内部機構ごと矢印１２７で示す方向（Ａ視において時計回りの方向）へ回転する。
【００６６】
これにより、第１表示部１０５及び第２表示部１０６を含むフレーム１０２は、ロボット１が走行を開始するまでの間、外的要因による力の影響によりピッチ角が増大していくのである。ここで、角速度センサ２１９は、例えば、フレーム１０２内の例えば第１回転板１０３の上面に取り付けられている。そのため、角速度センサ１２９はフレーム１０２のピッチ方向の角速度を検出できる。その結果、角速度センサ１２９が検出するピッチ方向の角速度を累積することで、フレーム１０２のピッチ角が検出される。
【００６７】
図１５は、本開示の実施の形態１に係るロボット１が適用されたロボットシステム１２００の全体構成の一例を示す図である。ロボットシステム１２００は、クラウドサーバ２、携帯端末３、及びロボット１から構成される。ロボット１は例えばＷｉｆｉ（登録商標）の通信を介してインターネットと接続し、クラウドサーバ２と接続する。また、ロボット１は例えばＷｉｆｉ（登録商標）の通信を介して携帯端末３と接続する。ユーザ１２０１は例えば、子供であり、ユーザ１２０２，１２０３は、例えば、その子供の両親である。
【００６８】
携帯端末３は、例えば、ロボット１と連携するアプリケーションがインストールされている。携帯端末３は、アプリケーションを通じてロボット１に種々の指示を行ったり、ユーザ１２０１がロボット１の前に差し出した物体の画像認識結果を表示したりすることができる。
【００６９】
ロボット１は、例えば、携帯端末３からある絵本を子供に読み聞かせる要求があったとすると、その絵本の朗読を開始し、子供に読み聞かせる。ロボット１は、例えば、絵本の読み聞かせ中に子供から何らかの質問を受け付けると、その質問をクラウドサーバ２に送り、その質問に対する回答をクラウドサーバ２から受信し、回答を示す音声を発話する。
【００７０】
このように、ユーザ１２０１は、ロボット１をペットのように取り扱い、ロボット１との触れ合いを通じて、言語学習をすることができる。
【００７１】
次に、図１６を参照しつつ、本開示の実施の形態１に係るロボット１の内部回路の詳細について説明する。図１６は、本開示の実施の形態１に係るロボット１を示すブロック図である。
【００７２】
図１６に示すように、ロボット１は、制御回路１０９、表示部２１１、シャフト制御部２１３、回転シャフト１１８、筐体駆動輪制御部２１４、筐体駆動輪２１２、重り駆動機構制御部２１５、重り駆動機構２１８、角速度センサ２１９、距離センサ２２０、カメラ１０８、マイク２１７、スピーカ２１６、及び通信部２１０を備える。
【００７３】
制御回路１０９は、メモリ２０６と、ＣＰＵ等のプロセッサで構成された主制御部２００と、表示情報出力制御部２０５と、時刻を計時する図略のタイマー等を含むコンピュータで構成されている。
【００７４】
メモリ２０６は、例えば、不揮発性の書き換え可能な記憶装置で構成され、ロボット１の制御プログラムなどを記憶する。
【００７５】
主制御部２００は、メモリ２０６に記憶されているロボット１の制御プログラムを実行する。これにより、主制御部２００は、目的位置生成部２０１、移動経路生成部２０２、自己位置推定部２０３、駆動制御部２０４として機能する。
【００７６】
角速度センサ２１９は、例えば、第１回転板１０３の上面に取り付けられている。角速度センサ２１９は、重力方向に平行な方向軸（図１９に示すＺ軸に平行な方向軸）、筐体１０１の走行面に平行な筐体１０１の走行方向を、重力方向に直交する水平面に射影した方向軸（図１９に示すＸ軸に平行な方向軸）、及び前記２方向に直交する方向軸（図１９に示すＹ軸に平行な方向軸）の３つの方向軸で回転する角速度を検知し、主制御部２００へ出力する。すわなち、角速度センサ１２９は、Ｚ軸回りの角速度（ヨー方向の角速度）と、Ｘ軸回りの角速度（ロール方向の角速度）と、Ｙ軸回りの角速度（ピッチ方向の角速度）とを検知する。主制御部２００の駆動制御部２０４は、角速度センサ２１９により検知された３つの角速度のそれぞれを累積してメモリ２０６に蓄積することで、フレーム１０２のヨー角、ロール角、及びピッチ角を管理する。角速度センサ２１９は、第１回転板１０３の上面に限らず、第１回転板１０３の下面や、第２回転板１０４の上面又は下面等に取り付けられてもよい。なお、Ｙ軸はフレーム１０２の走行方向（Ｘ軸）に垂直な左右方向の一例である。
【００７７】
距離センサ２２０は、例えば、赤外線や超音波等を用いてロボット１の周囲の距離分布を示す距離情報を取得する距離センサで構成され、やカメラ１０８同様、第１回転板１０３上のロボット１正面方向に設けられる。このため、距離センサ２２０が取得する距離情報の方向は、ロボット１の前方にある物体の方向を向く。よって、距離センサ２２０は、ロボット１の前方に位置する物体とロボット１との距離を検出できる。距離センサ２２０は、第１回転板１０３の上面前方に限らず、第１回転板１０３の下面前方や、第２回転板１０４の上面又は下面の前方など距離センサ２２０による距離の計測が阻害されない位置であればどのような位置に配置されてもよい。
【００７８】
マイク２１７は、フレーム１０２に備え付けられ、音を電気信号に変換し、主制御部２００に出力する。マイク２１７は、例えば、第１回転板１０３の上面に取り付けられても良いし、第２回転板１０４の上面に取り付けられても良い。主制御部２００は、マイク２１７での取得音声からユーザの音声の有無を認識し、音声認識結果をメモリ２０６に蓄積することで、音声認識結果を管理する。主制御部２００は、メモリ２０６に格納された音声認識用データと、取得音声とを照合し、発話内容及び発話したユーザを認識する。
【００７９】
スピーカ２１６は、出力面が正面を向くようにフレーム１０２に備え付けられ、音声の電気信号を物理振動に変換する。主制御部２００は、所定の音声をスピーカ２１６から出力することで、ロボット１に発話させる。
【００８０】
カメラ１０８は、図２において説明したように、ロボット１の前方（Ｙ方向）の映像を撮像し、撮像した画像（以下、撮像画像）を主制御部２００に出力する。主制御部２００は、カメラ１０８から取得した撮像画像からユーザの顔の有無、位置、及び大きさを認識し、顔認識結果をメモリ２０６に蓄積することで、顔認識結果を管理する。
【００８１】
主制御部２００は、音声認識結果や顔認識結果、周辺環境の距離情報、３軸の角速度、及び通信部２１０の情報に基づきコマンドを生成し、表示情報出力制御部２０５、シャフト制御部２１３、筐体駆動輪制御部２１４、重り駆動機構制御部２１５、及び通信部２１０等に出力する。
【００８２】
表示情報出力制御部２０５は、主制御部２００から送信されるコマンドに応じたロボット１の表情の表示情報を表示部２１１に表示する。表示部２１１は、図２において説明した第１表示部１０５、第２表示部１０６、及び第３表示部１０７により構成される。
【００８３】
シャフト制御部２１３は、主制御部２００から送信されるコマンドに応じて、図９Ａ及び図９Ｂで説明した回転シャフト１１８を回転させる。シャフト制御部２１３は、図９Ａ及び図９Ｂで説明した回転用モータ１１７により構成される。
【００８４】
筐体駆動輪制御部２１４は、主制御部２００から送信されるコマンドに応じて、ロボット１の筐体駆動輪２１２を動作させる。筐体駆動輪制御部２１４は、図２において説明した、第１モータ１１２及び第２モータ１１３で構成される。筐体駆動輪２１２は、図２において説明した第１駆動輪１１０及び第２駆動輪１１１により構成される。筐体駆動輪２１２は、一組の駆動輪の一例に相当する。
【００８５】
重り駆動機構制御部２１５は、主制御部２００から送信されるコマンドに応じて、ロボット１の重り駆動機構２１８を動作させる。重り駆動機構制御部２１５は、カウンターウェイト１１４に内蔵された、図示しない重り駆動用モータで構成される。重り駆動機構２１８は、図３、図８Ａ及び図８Ｂにおいて説明したガイドシャフト１１５、スイングアーム１１６、回転用モータ１１７、ベルト１１９、及び、モータプーリ１２０により構成される。
【００８６】
通信部２１０は、ロボット１をクラウドサーバ２（図１５）に接続させるための通信装置で構成される。通信部２１０としては、例えば、Ｗｉｆｉ（登録商標）等の無線ＬＡＮの通信装置が採用できるがこれは一例である。通信部２１０は、主制御部２００から送信されるコマンドに応じてクラウドサーバ２と通信を行う。
【００８７】
次に、主制御部２００を構成する目的位置生成部２０１、移動経路生成部２０２、自己位置推定部２０３、及び駆動制御部２０４について説明する。
【００８８】
目的位置生成部２０１について、図１７を参照して説明する。図１７は、本開示の実施の形態１に係るロボット１が活動する空間と第１ユーザ１３００に対してロボット１が行う処理の一部とを示す図である。目的位置生成部２０１は、マイク２１７が取得した第１ユーザ１３００の音声と、メモリ２０６が保持する第１ユーザ１３００の声紋情報（参照音声データの一例）とを比較し、第１ユーザ１３００を検出する。第１ユーザ１３００はロボット１に対して第１キーワードを発話したユーザである。第１キーワードとしては、例えば、「こっちへおいで」というような、ロボット１を第１ユーザ１３００の位置に呼び寄せる言葉が採用できる。
【００８９】
目的位置生成部２０１は、第１ユーザ１３００の発声に対する音声認識結果に第１キーワードが含まれている場合に、第１ユーザ１３００の位置検出処理を行う。目的位置生成部２０１は、カメラ１０８の撮像画像１３０２とメモリ２０６が保持する第１ユーザ１３００の顔情報とを比較し、撮像画像１３０２内における第１ユーザ１３００の顔を認識する。目的位置生成部２０１は、撮像画像１３０２内において第１ユーザ１３００の顔を認識できたならば、撮像画像１３０２における第１ユーザ１３００の領域を抽出し、抽出した第１ユーザ１３００の領域からロボット１に対する第１ユーザ１３００の方向を特定する。目的位置生成部２０１は、特定した方向に対応する距離情報を距離センサ２２０から取得することで、ロボット１と第１ユーザ１３００との間の距離を推定する。また、目的位置生成部２０１は、推定した第１ユーザ１３００の方向、及び距離から実空間上における第１ユーザ１３００が存在する位置を目的位置３０１（図１８）として生成する。
【００９０】
移動経路生成部２０２は、ロボット１が目的位置まで移動するための移動経路を生成する。移動経路生成部２０２について、図１８を参照して説明する。図１８は、メモリ２０６が記憶するロボット１の周辺環境に対する地図情報を示す図である。また、図１８に示す地図情報は、ロボット１が存在する実空間に対して、ロボット１の前進方向を示すｘ軸、ロボット１の右方向（ロボット１を背面から正面に見たときの右方向）を示すｙ軸で表した２次元の座標空間で構成される。この地図情報は、格子状に区切られた複数のマスで構成され、各マスが各位置を表す。位置３００は、ロボット１の現在位置を示し、と目的位置３０１は、目的位置生成部２０１で生成された目的位置を示す。移動経路生成部２０２は、公知の処理（例えば、Ａスターアルゴリズムやダイクストラ）でロボット１が目的位置３０１まで移動するための最適な移動経路を決定する。例えば、ロボット１の移動経路は、矢印３０２のような移動経路を辿って、目的位置３０１に到達する。尚、メモリ２０６が保持する地図情報は、図１８に示すような２次元の座標空間が採用されても良いし、高さ方向を示すｚ軸を更に含む３次元の座標空間が採用されても良い。
【００９１】
自己位置推定部２０３は、ロボット１の周辺の環境情報または、ロボット１の移動量を用いて、所定の時間間隔で実空間上におけるロボット１の現在位置を推定する。例えば、自己位置推定部２０３は、カメラ１０８が周辺を撮像することで取得した撮像データ、及び距離センサ２２０が検出したロボット１の周辺に位置する物体までの距離を示す距離情報を参照して、例えば、Ｖ−ＳＬＡＭ（Ｖｉｓｕａｌ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ）を用いて、ロボット１の現在位置を推定すればよい。或いは、自己位置推定部２０３は、周辺環境の情報から現在位置を推定しても良いし、筐体駆動機構制御部２０７から取得できる第１モータ１１２と第２モータ１１３との回転量、及び角速度センサ２１９から取得できるロボット１の重力方向に平行な方向軸（Ｚ軸）回りの角速度（ヨー角の角速度）を用いたデッドレコニングのような公知の方法で、ロボット１の現在位置を推定しても良い。
【００９２】
自己位置推定部２０３は、推定したロボット１の現在位置をメモリ２０６が保持する地図情報に設定する。例えば、図１８に示すように、ロボット１の現在位置を示す位置３００は、自己位置推定部２０３によって逐次更新される。
【００９３】
駆動制御部２０４は、シャフト制御部２１３、筐体駆動輪制御部２１４、及び重り駆動機構制御部２１５のぞれぞれにコマンドとして出力する制御量と、及び表示情報出力制御部２０５を制御する制御コマンドとを決定する。制御量は、筐体駆動輪制御部２１４を構成する第１モータ１１２及び第２モータ１１３を制御する制御量Ｃ１と、重り駆動機構制御部２１５を構成する重り駆動用モータ（図略）を制御する制御量Ｃ２と、シャフト制御部２１３を構成する回転用モータ１１７を制御する制御量Ｃ３とがある。
【００９４】
制御量Ｃ１は筐体駆動輪制御部２１４を構成する第１モータ１１２及び第２モータ１１３のそれぞれの回転量を制御する値であり、値が大きいほど、第１モータ１１２及び第２モータ１１３のトルク及び回転速度は大きくなる。本実施の形態では、第１モータ１１２及び第２モータ１１３は、ＰＦＭ制御されるモータで構成されているので、制御量Ｃ１としては、第１モータ１１２及び第２モータ１１３のトルク及び回転速度を決定するための周波数が採用される。但し、これは一例であり、第１モータ１１２及び第２モータ１１３がＰＷＭ制御されるモータで構成されるのであれば、制御量Ｃ１は、デューティ値が採用される。シャフト制御部２１３を構成する回転用モータ１１７（図３）及び重り駆動機構２１８を構成する重り駆動用モータ（図略）は、例えばサーボモータで構成されている。そのため、制御量Ｃ２及び制御量Ｃ３は、それぞれ、指定した角度へサーボモータを回転させるコマンドとなる。
【００９５】
制御コマンドは、ロボット１の表情パターンを変更するコマンドである。したがって、駆動制御部２０４は、ロボット１の表情パターンを変更する場合、制御コマンドを表示情報出力制御部２０５に出力する。
【００９６】
次に、駆動制御部２０４の処理の詳細を説明する。駆動制御部２０４は、ロボット１が受ける床面の影響を推定し、表示情報出力制御部２０５、シャフト制御部２１３、筐体駆動輪制御部２１４、重り駆動機構制御部２１５、及び通信部２１０等に出力する制御量を決定する。
【００９７】
まず、本開示の実施の形態１にかかるロボット１における床面の検出処理の概要について図１４、図１９、図２０、及び図２４を用いて説明する。駆動制御部２０４は、ロボット１が走行開始命令を受けて、実際に走り出すまでの間に変化するロボット１の姿勢から、ロボット１が走行する床面の種類を推定する。
【００９８】
図１９は、３次元空間上におけるロボット１の前進方向をＸ軸としたときに、Ｘ軸に対して垂直に交わる２つの軸（Ｙ軸、Ｚ軸）を示す図である。また、ロボット１の回転は、Ｘ軸回りの回転角度をロール角（矢印４００に相当）、Ｙ軸周りの回転角度をピッチ角（矢印４０１に相当）、Ｚ軸周りの回転角度をヨー角（矢印４０２に相当）と呼称することとする。
【００９９】
本開示の実施の形態１に係るロボット１は、前述したように、ロボット１が走行開始命令を受けて、実際に走り出すまでの間にロボット１の姿勢はＹ軸周りに回転する。このとき、角速度センサ２１９は矢印４０１（図１９）方向の角速度を取得する。前述したように取得した角速度は累積されてメモリ２０６に蓄積されることで、フレーム１０２のピッチ角が管理されている。
【０１００】
図２４は、床面ごとにロボット１が走行開始命令を受けて、実際に走り出すまでの間のピッチ角の変化を示すグラフである。図２４に示すグラフは、縦軸がピッチ角を示し、下側の横軸が筐体駆動輪２１２を駆動する第１モータ１１２及び第２モータ１１３に対する制御量Ｃ１を示す。以下、第１モータ１１２及び第２モータ１１３の制御量Ｃ１を筐体駆動輪２１２に対する制御量Ｃ１とも記述する。筐体駆動輪２１２に対する制御量Ｃ１は、値が大きいほど、床面１２６（図１４）に対して与える力は大きくなる。また、図２４における制御量Ｃ１は、単位時間ごとに一定量増加しているため、図２４に示すグラフの上部に示しているように、走行開始指令を受けてからの経過時間を示す時間軸が設定される。
【０１０１】
ロボット１は、図２４に示すように、床面によって走行開始時の姿勢が変化する。ロボット１は、図１４が示すように、フレーム１０２等の内部機構の傾きが変化するため、ロボット１の重心位置も前方方向へ変移する。図２４を参照し、制御量Ｃ１により変化する筐体駆動輪２１２が床面に与える力と、ロボット１の重心位置の変化により床面に与える力との総和が、床面から受ける摩擦等の外的要因による力を超えると、ロボット１は動き出す。つまり、床面から受ける摩擦等の外的要因による力が大きいほど、走行を開始するまでのフレーム１０２等の内部機構のピッチ角は大きくなる。また、図２４を参照し、ピッチ角の減少は、ロボット１が走行に成功した際に出現する。すなわち、ロボット１が走行を開始するまでは、フレーム１０２等の内部機構のピッチ角は増大していき、ロボット１が走行を開始すると、ピッチ角は減少に転じる。
【０１０２】
したがって、ロボット１は、ピッチ角の減少が出現したタイミングで走行を開始すると言えるため、ピッチ角の変化を監視することで床面の種類を判断をすることができる。よって、駆動制御部２０４は、ピッチ角の最大角度（最大ピッチ角）が、床面の種類に応じて予め定められた値を超えるか否かを判断して床面の種類を推定する。尚、ピッチ角の変化の監視は、メモリ２０６の地図情報を参照して、ロボット１の位置３００が移動するまでの間でも良いし、所定の時間内における最大ピッチ角としても良い。
【０１０３】
図２０は、床面の種類に応じた最大ピッチ角と最小制御量との関係を示す制御量決定データベースＴ２０のデータ構成の一例を示す図である。制御量決定データベースＴ２０（対応関係の一例）は、１つの床面の種類に対して１つのレコードが割り当てられたデータベースであり、床面の種類毎に、最大ピッチ角（ｄｅｇ）と、最小制御量（Ｈｚ）とを対応付けて記憶する。
【０１０４】
図２０に示す最大ピッチ角及び最小制御量は、事前にロボット１を様々な床面で駆動させることで取得されたものである。尚、本開示の実施の形態１に係るロボット１においては、ロボット１のピッチ角の変化に伴う重心位置の変化が、ロボット１が床面に与える力の影響として大きい。そのため、駆動制御部２０４は、図２０に示すような制御量決定データベースＴ２０を使用することで、複雑な計算式を用いた複雑な演算を行わなくても、ロボット１を実際に動かすことができる。但し、これは一例であり、駆動制御部２０４は、ロボット１の重心位置や筐体駆動機構２０８が発するトルクから床面の摩擦等の外的要因を算出して、最小制御量を決定しても良い。
【０１０５】
図２３に示すように、ピッチ角の最大値は、フローリングのような摩擦が少ない床面で駆動させた場合と、絨毯のような毛足が長く摩擦が大きい床面で駆動させた場合とで大きな違いが現れる。つまり、例えば、家庭環境といった床面の性質が限られる環境下では、ピッチ角の最大値から、ロボット１が立つ床面がフローリングの上であるか、絨毯の上であるかの予測ができる。
【０１０６】
次に、本開示の第１の実施の形態に係るロボット１における制御量Ｃ１の生成処理について、図１８、図２１、図２２、及び図２３を用いて説明する。
【０１０７】
筐体駆動輪制御部２１４は、主制御部２００から送信される筐体駆動輪２１２の制御量Ｃ１に応じて、ロボット１の筐体駆動輪２１２を動作させる。制御量Ｃ１は、第１モータ１１２及び第２モータ１１３の回転量を制御する。第１モータ１１２及び第２モータ１１３の回転量は、制御量Ｃ１に比例して大きくなる。筐体駆動輪制御部２１４は、第１モータ１１２及び第２モータ１１３の回転量を、第１モータ１１２及び第２モータ１１３に付属したエンコーダから取得しても良いし、第１モータ１１２及び第２モータ１１３のスペックに応じた公知の計算方法で算出しても良い。
【０１０８】
制御量Ｃ１は、自己位置推定部２０３により推定された自己位置と目的位置生成部２０１により生成された目的位置までの残り距離に応じて変化する。ここで、制御量Ｃ１は、制御量決定データベースＴ２０を参照することで決定された最大ピッチ角に対応する最小制御量未満にならないように逐次更新される。そのため、ロボット１は、目的位置までの移動途中で、床面の外的要因により停止をすることなく、目的位置に辿り着くことができる。
【０１０９】
目的位置までの残り距離は、図１８に示すように、目的位置生成部２０１によって生成された目的位置３０１及び自己位置推定部２０３によって逐次更新されるロボット１の位置３００とから算出される。例えば、目的位置３０１までの残り距離は、移動経路生成部２０２が生成した移動経路において、ロボット１の位置３００と、目的位置３０１とを繋ぐ１又は複数のマスの個数に１マスあたりの距離を乗じることで算出される。或いは、目的位置３０１までの残り距離は目的位置３０１と位置３００とのユークリッド距離により求められても良い。
【０１１０】
ここで、制御量決定データベースＴ２０に記憶された最小制御量を参照する理由を説明する。本開示の実施の形態１に係るロボット１は、図１に示すように球体状をしている。そのため、ロボット１は、急停止を行った場合、慣性力により大きく前後方向にふらついて、目的位置３０１を超えてしまうことがある。駆動制御部２０４は、台形制御やＳ字制御を適用してロボット１を目的位置３０１まで移動させる。
【０１１１】
次に、床面の種類に応じた停止位置の違いについて図２１を参照して説明する。図２１は、台形制御により制御量Ｃ１を決定させた場合において、ロボット１が走行する床面の種類に応じた停止位置の違いを示すグラフである。
【０１１２】
図２１において、縦軸は制御量（Ｈｚ）を示し、横軸は目的位置までの残り距離を示す。直線５０３は、制御量Ｃ１の時間的推移を示す。直線５０３で示すように、制御量Ｃ１は、残り距離が短くなるにつれて一定の変化量で減少されている。図２１のグラフでは、ロボット１は、直線５０３で示す制御量Ｃ１にしたがって、絨毯又はフローリング上を走行する。
【０１１３】
絨毯の上を走行した場合、ロボット１は、制御量Ｃ１が直線５００が示す値（４００Ｈｚ）を下回ったとき停止する。また、ロボット１は、フローリングの上を走行した場合、フローリングは絨毯よりも摩擦が少ないので、直線５０１が示す値（２００Ｈｚ）を下回ったとき停止する。
【０１１４】
距離５０２は、直線５０３で示すように制御量Ｃ１を変化させてロボット１を絨毯の上で走行させた場合のロボット１の停止位置と、直線５０３で示すように制御量Ｃ１を変化させてロボット１をフローリングの上で走行させた場合のロボット１の停止位置との差を示す。
【０１１５】
距離５０２が示す停止位置の差は、床面がロボット１に与える、摩擦等の外的な力が要因となっている。そのため、ロボット１は、目的位置に到着するまで、制御量Ｃ１を最小制御量以上に保持する必要がある。すなわち、ロボット１を絨毯で走行させる場合は、制御量Ｃ１を絨毯に対応する最小制御量である４００Ｈｚ以上に保持すれば、ロボット１が目的位置に到達できないことを防止できる。また、ロボット１をフローリングで走行させる場合は、制御量Ｃ１をフローリングに対応する最小制御量である２００Ｈｚ以上に保持すれば、ロボット１が目的位置に到達できないことを防止できる。したがって、床面の種類に応じた最小制御量以上となるように制御量Ｃ１を設定することで、目的位置に到着するまでにロボット１が停止する事態を回避でき、ロボット１を目的位置までスムーズに移動させることができる。
【０１１６】
駆動制御部２０４は、目的位置までの残り距離、及び最小制御量に応じた制御量Ｃ１を生成する。ロボット１は、床面の種類が違う場合であっても、同様な動作を行うために、駆動制御部２０４は、例えば、以下の式（１）を用いたＳ字制御により制御量Ｃ１を決定する。
【０１１７】
尚、制御量Ｃ１の算出方法は、床面に応じて異なる制御方法が採用されても良い。例えば、床面がフローリングの場合、ロボット１は、床面からの影響力が少ないため、停止時に前後方向のふらつきが発生することがある。この場合、制御量Ｃ１は、停止直前の変化量を小さくするのが良い。そこで、本実施の形態では、式（１）を用いて、制御量Ｃ１は決定される。また、床面が絨毯の場合、ロボット１は、床面からの摩擦力の影響力大きいため、停止時に前後方向のふらつきが発生しにくい。この場合、台形制御を用いて、制御量Ｃ１は決定されても良い。但し、以下の例では、床面の種類によらず、目的位置の手前において、制御量Ｃ１は式（１）のＳ字制御によって決定されるものとする。
【０１１８】
制御量Ｃ１＝（ＳＩＮ（３＊π／２−π／Ｌ＊ｄ）＋１）＊（Ｍａｘ−ｍｉｎ）／２＋ｍｉｎ、
（１）
Ｌ［ｍ］：減速制御を開始するために事前に定められた目標位置からの距離である減速開始距離、ｄ［ｍ］：ロボット１の位置から目的位置までの残り距離、Ｍａｘ［Ｈｚ］：減速制御距離が示す位置である減速開始位置での制御量Ｃ１、ｍｉｎ［Ｈｚ］：最小制御量
また、ロボット１の位置から目的位置まで距離をｄ［ｍ］は、上述の図１８で説明した方法を用いて算出された値が採用できる。また、最小制御量ｍｉｎ［Ｈｚ］は、上述の制御量決定データベースＴ２０を参照して決定された値が採用できる。尚、本態様においては、式（１）に限らず、台形制御の減速比を変えるなどしても良い。
【０１１９】
図２２は、フローリング及び絨毯のそれぞれについて、式（１）を用いてロボット１を目的位置に停止させる際の、減速開始位置から目的位置までの範囲内における目的位置までの残り距離と制御量Ｃ１との関係を示すグラフである。図２２において縦軸は制御量［Ｈｚ］を示し、横軸は目的位置までの残り距離［ｍ］を示す。
【０１２０】
このグラフにおいて、目的位置からＬ［ｍ］離れた減速開始距離として１［ｍ］、減速開始位置での制御量Ｃ１として１０００［Ｈｚ］、床面が絨毯の場合の最小制御量ｍｉｎとして４００［Ｈｚ］、及び床面がフローリングの場合の最小制御量ｍｉｎとして２００［Ｈｚ］が採用され、これらの値を式（１）に代入したときの演算結果が示されている。
【０１２１】
絨毯の曲線（点線）及びフローリングの曲線（実線）に示されるように、１［ｍ］地点の減速開始位置から０［ｍ］地点の目的位置まで、制御量Ｃ１はサインカーブを描いて徐々に減少していることが分かる。また、フローリング及び絨毯について、目的位置での制御量Ｃ１はそれぞれ、２００［Ｈｚ］、４００［Ｈｚ］になっており、目的位置に到達するまで、制御量Ｃ１が最小制御量以上に維持されている。そのため、目的位置の手前でロボット１が停止する事態が防止される。また、フローリングの場合、残り距離が０．１５［ｍ］を超えたあたりから制御量Ｃ１の傾きが急激に緩くなっており、目的位置でのロボット１のふらつきの防止が図られている。
【０１２２】
図２３は、本開示の実施の形態１に係るロボット１における移動開始から停止するまでの制御量Ｃ１の推移を示すグラフである。図２３において、縦軸は制御量［Ｈｚ］を示し、横軸は移動距離［ｍ］を示す。図２３では、例えば、ロボット１が５ｍ移動した場合の制御量Ｃ１の推移が示されている。制御量Ｃ１は、移動開始から停止するまで、領域６００，６０１，６０２で示す３つの制御方式が適用される。
【０１２３】
領域６００は加速領域である。領域６００において、制御量Ｃ１は、時間に対して一定の変化量で増大する加速制御量となる。すなわち、領域６００では、制御量Ｃ１は、台形制御により増大される。領域６０１は等速領域である。領域６００において、制御量Ｃ１は、最大制御量を維持する等速制御量となる。最大制御量とは、ロボット１の上限速度に対応する事前に定められた制御量Ｃ１を指す。この上限速度は、第１モータ１１２及び第２モータ１１３の性能や走行時のロボット１の安全性等を考慮して事前に定められた値が採用される。
【０１２４】
領域６０２は減速領域である。領域６０２では、制御量Ｃ１は式（１）に示すＳ字制御による減速制御量となる。
【０１２５】
駆動制御部２０４は、ロボット１が移動を開始すると、制御量Ｃ１を台形制御により上昇させ、制御量Ｃ１が最大制御量（１０００［Ｈｚ］）に到達すると、制御量Ｃ１を最大制御量に維持する。そして、駆動制御部２０４は、ロボット１が減速開始位置に到達すると制御量Ｃ１を式（１）に従って減少させる。これにより、駆動制御部２０４は、ロボット１を速やかに目的位置に到達させると共に、目的位置にふらつきなく停止させることができる。更に、駆動制御部２０４は、制御量Ｃ１が最大制御量に到達すると、それ以上制御量Ｃ１を増大させないので、ロボット１の安全性を確保できる。
【０１２６】
なお、移動開始位置から目的位置までの距離が短い場合、制御量Ｃ１が最大制御量に到達する前にロボット１が減速開始位置に到達することもある。この場合、駆動制御部２０４は、減速開始位置での制御量Ｃ１を式（１）のＭａｘに代入して制御量Ｃ１を計算すればよい。これにより、駆動制御部２０４は、ロボット１を目的位置に滑らか且つ正確に停止させることができる。
【０１２７】
図１６に参照を戻す。重り駆動機構制御部２１５は、主制御部２００から出力される制御量Ｃ２に応じて、ロボット１の重り駆動機構２１８を動作させる。制御量Ｃ２は、重り駆動機構制御部２１５を構成する重り駆動用モータの回転量を制御する。重り駆動用モータの回転量は、カウンターウェイト（重り）１１４の可動域に制限される。
【０１２８】
シャフト制御部２１３は、主制御部２００から出力される制御量Ｃ３に応じて、ロボット１の回転シャフト１１８を動作させる。制御量Ｃ３は、回転用モータ１１７の回転量を制御する。
【０１２９】
以下、実施の形態１において、ロボット１が、声と顔とからユーザを識別し、識別したユーザの位置を目的位置として設定し、ロボット１の現在位置を把握しつつ、途中で止まることなく、目的位置まで移動するまでの処理手順を図２５から図２７を参照して、説明する。図２５は、本開示の実施の形態１に係るロボット１のメインルーチンを示すフローチャートである。
【０１３０】
図２５を参照し、目的位置生成部２０１は、目的位置設定処理を実行する（ステップＳ１０１）。
【０１３１】
図２６は、図２５における目的位置設定処理を示すフローチャートである。
【０１３２】
マイク２１７は、周辺環境の音信号を取得し（ステップＳ１００１：Ｙｅｓ）、主制御部２００へ出力する。主制御部２００は、取得した音信号に対して音声認識処理を行う（ステップＳ１００２）。この音声認識処理では、人物が発話した音声の音圧の時間的な推移を示す音声データとその音声データに含まれるユーザの発話内容をテキスト化して示す発話情報とが抽出される。目的位置生成部２０１は、マイク２１７が音信号を取得できない場合は、音信号が取得されるまでステップＳ１００１の処理を繰り返す（ステップＳ１００１：Ｎｏ）。
【０１３３】
目的位置生成部２０１は、音声認識処理で抽出した音声データが、１又は複数のユーザのユーザ情報としてメモリ２０６に事前に記憶された１又は複数の声紋情報のうち、いずれの声紋情報と一致するか否かを判断する。抽出した音声データと声紋情報とが一致したと判断した場合（ステップＳ１００３：Ｙｅｓ）、目的位置生成部２０１は、声紋情報が一致したユーザを第１ユーザ１３００と判定する（ステップＳ１００４）。目的位置生成部２０１は、抽出した音声データがメモリ２０６に記憶されたいずれの声紋情報とも一致しなかった場合（ステップＳ１００３：Ｎｏ）、処理をステップＳ１００１に戻す。
【０１３４】
目的位置生成部２０１は、音声認識処理によって得られた第１ユーザ１３００の音声データに第１キーワードが含まれている場合（ステップＳ１００５：Ｙｅｓ）、カメラ１０８から画像データを取得する（ステップＳ１００６）。目的位置生成部２０１は、音声認識処理によって得られた第１ユーザ１３００の音声データに第１キーワードが含まれていない場合（ステップＳ１００５：Ｎｏ）、処理をステップＳ１００１に戻す。
【０１３５】
目的位置生成部２０１は、カメラ１０８から取得した画像データに含まれる１又は複数の顔画像のそれぞれと、第１ユーザ１３００のユーザ情報としてメモリ２０６に事前に記憶された第１ユーザ１３００の顔の特徴量とを比較する顔認識処理を行い、画像データから第１ユーザ１３００を検出する（ステップＳ１００７）。
【０１３６】
目的位置生成部２０１は、画像データから第１ユーザ１３００を検出できた場合（ステップＳ１００７：Ｙｅｓ）、画像データ中での第１ユーザ１３００の位置から、ロボット１に対する第１ユーザ１３００の方向を検出する（ステップＳ１００８）。
【０１３７】
目的位置生成部２０１は、距離センサ２２０が取得した距離情報のうち、第１ユーザ１３００が存在する方向の距離情報を第１ユーザ１３００の距離情報として取得する（ステップＳ１００９）。目的位置生成部２０１は、第１ユーザ１３００の方向及び距離情報からロボット１の周辺の実空間における第１ユーザ１３００の位置を検出し、検出した位置を地図情報（図１８）にプロットする（ステップＳ１０１０）。
【０１３８】
目的位置生成部２０１は、プロットした位置をロボット１の目的位置３００として設定する（ステップＳ１０１１）。目的位置生成部２０１は、画像データから第１ユーザ１３００を検出できなかった場合（ステップＳ１００７：Ｎｏ）、処理をステップＳ１００６に戻す。
【０１３９】
次に、ロボット１が目的位置に移動するための移動経路の生成について説明する。図２５を参照し、移動経路生成部２０２は、メモリ２０６が保持する地図情報を参照して、ロボット１の位置３００と目的位置３０１との移動経路を生成する（ステップＳ１０２）。なお、地図情報には、距離センサ２２０の計測結果からロボット１の周辺に位置する障害物の位置もプロットされている。したがって、移動経路生成部２０２は、ロボット１の位置３００と目的位置３０１との移動経路上に障害物が存在すれば、ロボット１と障害物とが所定の距離以上の間隔となる安全な経路であって最短な経路となるように、移動経路を生成すればよい。
【０１４０】
次に、ロボット１の駆動制御処理について説明する。図２５を参照し、駆動制御部２０４は、駆動制御処理を実行する（ステップＳ１０３）。図２７は、図２５における駆動制御処理を示すフローチャートである。
【０１４１】
駆動制御部２０４は、角速度センサ２１９が検出したピッチ方向の角速度を取得する（ステップＳ１１０１）。次に、駆動制御部２０４は、取得したピッチ方向の角速度から単位時間当たりのピッチ角の変化量を算出する（ステップＳ１１０２）。
【０１４２】
例えば、角速度センサ２１９は、一定のサンプリング間隔でピッチ方向の角速度を検出するものとする。この場合、駆動制御部２０４は、角速度センサ２１９が検出した１サンプル点のピッチ方向の角速度を単位時間当たりのピッチ角の変化量として算出することができる。或いは、単位時間としてサンプリング間隔とは異なる時間を採用するのであれば、駆動制御部２０４は、角速度センサ２１９が検出した、単位時間分のサンプル点のピッチ方向の角速度を累積することで、単位時間当たりのピッチ角の変化量を算出してもよい。
【０１４３】
次に、駆動制御部２０４は、単位時間当たりのピッチ方向の変化量を累積し（ステップＳ１１０３）、フレーム１０２の現在のピッチ角を算出する。図１４を参照し、角速度センサ２１９は、例えば、Ａ視において、フレーム１０２が時計回りの方向に回転する場合にプラス、フレーム１０２が反時計回りの方向に回転する場合にマイナスの値をとるようにピッチ方向の角速度を検出するものとする。この場合、駆動制御部２０４は、角速度センサ２１９が検出したピッチ方向の角速度をそのまま累積することでフレーム１０２のピッチ角を検出することができる。なお、算出された現在のピッチ角はメモリ２０６に時系列に記憶される。
【０１４４】
駆動制御部２０４は、ピッチ角が所定回数連続して減少した場合（ステップＳ１１０４：Ｙｅｓ）、メモリ２０６に時系列に記憶したピッチ角の中から最大ピッチ角を特定する（ステップＳ１１０５）。ここで、駆動制御部２０４は、ピッチ角が所定回数連続して減少した場合、図２４に示すように、ピッチ角がピークに到達したとみなしている。所定回数としては、例えば、ピッチ角がピークに到達したとみなせる予め定められた値が採用される。
【０１４５】
次に、駆動制御部２０４は、制御量決定データベースＴ２０を参照して、特定した最大ピッチ角に対応する最小制御量を決定する（ステップＳ１１０６）。
【０１４６】
一方、駆動制御部２０４は、ピッチ角が所定回数連続して減少していない場合（ステップＳ１１０４：Ｎｏ）、Ｓ１１０５及びＳ１１０６の処理を行わず、処理をステップＳ１１０７に進める。
【０１４７】
次に、自己位置推定部２０３は、カメラ１０８が取得した画像データ及び距離センサ２２０が取得した距離情報からロボット１の自己位置を推定する（ステップＳ１１０７）。ここでは、自己位置推定部２０３は、公知のＶ−ＳＬＡＭを用いて、自己位置を推定すればよい。
【０１４８】
なお、カメラ１０８が取得した画像データにロボット１の周辺の物体を表す特徴点群が十分に表れていなければ、自己位置推定部２０３は、Ｖ−ＳＬＡＭを用いた自己位置の推定ができない。この場合、自己位置推定部２０３は、筐体駆動輪制御部２１４から第１モータ１１２及び第２モータ１１３の回転量を取得すると共に、角速度センサ２１９が検出したヨー角の角速度から公知のデッドレコニングを行う。すなわち、自己位置推定部２０３は、Ｖ−ＳＬＡＭにより自己位置を見失った地点からＶ−ＳＬＡＭにより再度、自己位置が検出されるまでの期間において、デッドレコニングでロボット１の自己位置を補填する。これにより、自己位置推定部２０３は、常にロボット１の自己位置を把握できる。
【０１４９】
駆動制御部２０４は、メモリ２０６が記憶する地図情報を参照して、ロボット１の位置３００の座標と目的位置３０１の座標とを用いて残り距離を算出する（ステップＳ１１０８）。残り距離の算出は、ロボット１の位置３００の座標と目的位置３０１の座標とを繋ぐ移動経路を示すマスの個数に１マスあたりの距離を乗じることで算出される。
【０１５０】
駆動制御部２０４は、ロボット１が目的位置３０１へ到着した場合（ステップＳ１１０９：Ｙｅｓ）、制御量Ｃ１として停止制御量を生成し（ステップＳ１１１０）、生成した停止制御量を筐体駆動輪制御部２１４へ出力する（ステップＳ１１１６）。駆動制御部２０４は、筐体駆動輪制御部２１４へ停止制御量を出力した場合（ステップＳ１１１７：Ｙｅｓ）、処理を終了する。ここで、停止制御量としては、例えば、０［Ｈｚ］が採用できる。
【０１５１】
一方、駆動制御部２０４は、ロボット１が目的位置３０１へ到着していない場合（ステップＳ１１０９：Ｎｏ）、ロボット１の位置３００から目的位置３０１までの残り距離が減速開始距離以下であるか否かを判定する（ステップＳ１１１１）。残り距離が減速開始距離以下の場合（ステップＳ１１１１：Ｙｅｓ）、制御量Ｃ１として式（１）を用いて残り距離に応じた減算制御量を生成し（ステップＳ１１１２）、生成した減速制御量を制御量Ｃ１として筐体駆動輪制御部２１４へ送信する（ステップＳ１１１６）。
【０１５２】
駆動制御部２０４は、ロボット１の位置３００から目的位置３０１までの残り距離、減速開始距離、Ｓ１１０６で決定した最小制御量、及び減速開始位置での制御量Ｃ１を、それぞれ、式（１）のｄ、Ｌ、ｍｉｎ、ＭＡＸに代入し、減速制御量を生成する。減速制御量は図２３の領域６０２において生成される制御量Ｃ１である。
【０１５３】
駆動制御部２０４は、ロボット１の位置３００から目的位置３０１までの残り距離が減速開始距離を越える場合（ステップＳ１１１１：Ｎｏ）、制御量Ｃ１が最大制御量未満であるか否かを判定する（ステップＳ１１１３）。制御量Ｃ１が最大制御量未満である場合（ステップＳ１１１３：Ｙｅｓ）、制御量Ｃ１として加速制御量を生成し（ステップＳ１１１４）、生成した加速制御量を筐体駆動機構制御部２０７へ出力する（ステップＳ１１１６）。加速制御量は図２１の領域６００において生成される制御量Ｃ１である。ここで、駆動制御部２０４は、時間が経過するにつれて一定の変化量で制御量Ｃ１を増大させることで加速制御量を生成すればよい。
【０１５４】
駆動制御部２０４は、制御量Ｃ１が最大制御量を超える場合（ステップＳ１１１３：Ｎｏ）、制御量Ｃ１として等速制御量を生成し（ステップＳ１１１５）、生成した等速制御量を筐体駆動輪制御部２１４へ出力する（ステップＳ１１１６）。等速制御量は図２３の領域６０１において生成される制御量Ｃ１である。
【０１５５】
駆動制御部２０４は、停止制御量を筐体駆動輪制御部２１４へ出力していない場合（ステップＳ１１１７：Ｎｏ）、ステップＳ１１０６の処理によって最小制御量が決定済みであるか否かを判定する（ステップＳ１１１８）。最小制御量が決定済みでなければ（ステップＳ１１１８：Ｎｏ）、ロボット１はまだ移動を開始していないので、処理をステップＳ１１０１に戻す。
【０１５６】
一方、駆動制御部２０４は、最小制御量が決定済みの場合（ステップＳ１１１８：Ｙｅｓ）、ロボット１は移動を開始しているので、処理をステップＳ１１０７に戻す。
【０１５７】
一方、駆動制御部２０４は、停止制御量を筐体駆動輪制御部２１４へ出力した場合（ステップＳ１１１７：Ｙｅｓ）、ロボット１は目的位置３０１に到達しているので、処理を終了する。
【０１５８】
図２７のフローチャートを概観すると、ロボット１が移動を開始していない場合は、ステップＳ１１０４でＮｏ、ステップＳ１００９でＮｏ、ステップＳ１１１１でＮｏ、ステップＳ１１１３でＹｅｓ、ステップＳ１１１７でＮｏ、ステップＳ１１１８でＮｏのループが繰り返され、制御量Ｃ１が一定の変化量で増大される。これに伴って、フレーム１０２のピッチ角が増大する。
【０１５９】
また、移動開始後の加速制御中では、ステップＳ１１０９でＮｏ、ステップＳ１１１１でＮｏ、ステップＳ１１１３でＹｅｓ、ステップＳ１１１７でＮｏ、ステップＳ１１１８でＹＥＳのループが繰り返され、ロボット１は一定の加速度で移動する。
【０１６０】
等速制御中では、ステップＳ１１０９でＮｏ、ステップＳ１１１１でＮｏ、ステップＳ１１１３でＮｏ、ステップＳ１１１７でＮｏ、ステップＳ１１１８でＹｅｓのループが繰り返され、ロボット１は一定の速度で移動する。
【０１６１】
減速制御中では、ステップＳ１１０９でＮｏ、ステップＳ１１１１でＹｅｓ、ステップＳ１１１７でＮｏ、ステップＳ１１１８でＹｅｓのループが繰り返され、ロボット１は式（１）に示すＳ字制御に従って減速される。
【０１６２】
以上、説明したように実施の形態１に係るロボット１によれば、角速度センサ２１９により検知されたフレーム１０２の最大ピッチ角に対応する最小制御量が決定され、最小制御量を下回らないようにロボット１が減速制御される。そのため、ロボット１を正確且つスムーズに目的位置に停止させることができる。
【０１６３】
（実施の形態２）
次に、図面を参照しながら実施の形態２について説明する。尚、各図面において、同じ構成要素については同じ符号が用いられている。また、実施の形態１と同様の構成要素、処理に関しては説明を省略する。実施の形態２に係るロボット１は、走行中に床面の種類が変わったとしても、変更後の床面の種類に応じて適切な最小制御量を決定し、ロボット１を目的位置までふらつきなく正確に到着させるものである。
【０１６４】
図２８は、本開示の実施の形態２における走行時のロボット１の姿勢を示す図である。図１４を用いて前述したように、第１駆動輪１１０及び第２駆動輪１１１を駆動する力が、床面１２６の摩擦等の外的要因による力よりも大きくなった場合に、矢印１２５に示す前進方向に移動を開始するが、そのときフレーム１０２等の内部機構は水平に戻らず、床面１２６の動的摩擦等の外的要因による力を受けることとなる。そのため、フレーム１０２等の内部機構は、図２８に示すように、図１４に示す動き出す直前の最大ピッチ角より小さなピッチ角を保った状態で前進する。この走行中のピッチ角は、床面の材質によって異なる。従って、走行時にある床材から異なる床材へロボット１が移動した場合、床面の動的摩擦等の外的要因による力が変化し、フレーム１０２等の内部機構のピッチ角が変化する。例えば、絨毯等の摩擦力が大きな床材の上をロボット１が走行する場合、フローリング等の摩擦力が小さな床材の上をロボット１が走行する場合に比べて、フレーム１０２等の内部機構の走行時のピッチ角は増大する。
【０１６５】
また、走行時において、ロボット１はピッチ方向に対して前後方向にふらついて走行するため、走行時におけるフレーム１０２等の内部機構のピッチ角は、例えば、一定の振幅で振動する。そこで、実施の形態２では、ロボット１の走行時においては、ピッチ角の平均値である平均ピッチ角を求め、この平均ピッチ角から床面の種類を推定し、最小制御量を決定する。
【０１６６】
図３０は、本開示の実施の形態２に係るロボット１が活動する空間と第１ユーザ１３００に対してロボット１が行う処理の一部とを示す図である。図３０において、図１７との相違点は、第１ユーザ１３００の下に絨毯１４０１が敷かれている点にある。一方、ロボット１は、移動開始位置において、フローリングの上に位置している。したがって、第１ユーザ１３００の「こっちにおいで」との呼びかけに対してロボット１が走行を開始すると、走行を開始してから暫くの期間、ロボット１はフローリングの上を走行するが、途中で絨毯１４０１の上に乗り上げて第１ユーザ１３００の位置まで走行することになる。
【０１６７】
フローリングは絨毯に比べ摩擦力が小さいので、最小制御量は絨毯の場合に比べて小さく設定されている。そのため、絨毯に乗り上げた後でもロボット１の最小制御量をフローリングの値に設定しておくと、第１ユーザ１３００の手前で制御量Ｃ１が不足して、ロボット１が第１ユーザ１３００の位置に到達できない可能性がある。
【０１６８】
これを防止するために、実施の形態２は下記の構成を採用する。
【０１６９】
図２９は、本開示の実施の形態２における制御量決定データベースＴ２９のデータ構成を示す図である。制御量決定データベースＴ２９においは、制御量決定データベースＴ２０との差分は、「最大ピッチ角」に代えて「動作時の平均ピッチ角」が採用されている点にある。
【０１７０】
「動作時の平均ピッチ角」は、走行中のロボット１において、フレーム１０２等の内部機構が採りうる平均ピッチ角の取り得る床面の種類に応じた範囲を規定する。制御量決定データベースＴ２９と、制御量決定データベースＴ２０と比較すると、制御量決定データベースＴ２０では、例えば、１行目に示すように、最小制御量「１００Ｈｚ」に対して最大ピッチ角が「０度以上５度未満」に設定されている。これに対して、制御量決定データベースＴ２９では、最小制御量「１００Ｈｚ」に対して動作時の平均ピッチ角が「０度以上３度未満」に設定されている。同様に２行目では、制御量決定データベースＴ２０では、最小制御量「１５０Ｈｚ」に対して最大ピッチ角が「５度以上１０度未満」に設定されているのに対して、制御量決定データベースＴ２９では、最小制御量「１５０Ｈｚ」に対して動作時の平均ピッチ角が「３度以上６度未満」に設定されている。
【０１７１】
このように、制御量決定データベースＴ２９では、制御量決定データベースＴ２０に対して、同じ最小制御量に対してピッチ角が全体的に小さく設定されている。すなわち、同じ床面の種類に対して、制御量決定データベースＴ２９は、制御量決定データベースＴ２０に比べて、ピッチ角が小さく設定されている。
【０１７２】
これは、走行時は停止時に比べてロボット１が受ける床面からの摩擦力が小さいので、床面の種類が同じであっても、フレーム１０２等の内部機構のピッチ角は、走行時の方が停止時に比べて小さくなるからである。
【０１７３】
そこで、実施の形態２においては、ロボット１が走行を開始する前は、実施の形態１と同様、制御量決定データベースＴ２０を参照して最小制御量を決定し、ロボット１が走行を開始した後は、制御量決定データベースＴ２９を参照して最小制御量を決定する。なお、制御量決定データベースＴ２０が記憶する最大ピッチ角及び最小制御量が第１参照ピッチ角及び第１制御量の一例であり、制御量決定データベースＴ２９が記憶する動作時の平均ピッチ角及び最小制御量が第２参照ピッチ角及び第２制御量の一例である。
【０１７４】
以下、ロボット１の走行中に床面の種類が変化したとしても、制御量決定データベースＴ２９を参照して、ロボット１を目的位置に正確且つスムーズに到達させる制御方法について説明する。
【０１７５】
実施の形態２において、メインルーチンは実施の形態１と同じ、すなわち、図２５と同じである。実施の形態２では、図２５に示すステップＳ１０３に示す駆動制御処理の詳細が実施の形態１と相違する。
【０１７６】
図３１は、本開示の実施の形態２に係る駆動制御処理を示すフローチャートである。なお、図３１において、図２７と同じ処理には同じ符号を付して説明を省く。図３１では、ステップＳ１１１１でＮｏに続いてステップＳ１２０１の最小制御量の更新処理が実行される。
【０１７７】
ステップＳ１１１１でＮｏと判定されるのは、ロボット１が走行を開始しており、ロボット１が走行中であり、且つ、目的位置までの残り距離が減速開始距離以下でないという条件を満たす場合である。そのため、ステップＳ１２０１の処理は、ロボット１が走行中であり、且つ、目的位置までの残り距離が減速開始距離以下でない場合に実行される。すなわち、図２３の領域６００で示される加速制御又は領域６０１で示される等速制御が適用される場合に実行される。
【０１７８】
図３２は、図３１のステップＳ１２０１の最小制御量の更新処理の詳細を示すフローチャートである。
【０１７９】
駆動制御部２０４は、角速度センサ２１９が検出したピッチ方向の角速度を取得し、フレーム１０２等の内部機構のピッチ角を算出し、算出したピッチ角を図３３に示すリングバッファＢ３３に格納する（ステップＳ１３０１）。
【０１８０】
図３３は、本開示の実施の形態２に係るリングバッファＢ３３のデータ構成を示す図である。リングバッファＢ３３は、１〜Ｎ（Ｎは２以上の整数）のＩｎｄｅｘで示されるＮ個のバッファで構成され、例えば、Ｉｎｄｅｘ＝１から順番に、ピッチ角を記憶する。リングバッファＢ３３は、Ｉｎｄｅｘ＝Ｎに到達すると、Ｉｎｄｅｘ＝１のバッファに記憶されているピッチ角を削除し、最新のピッチ角をＩｎｄｅｘ＝１のバッファに記憶し、ピッチ角を更新する。以降、リングバッファＢ３３は、Ｉｎｄｅｘで示す数値の順でバッファに記憶されたピッチ角を更新していく。これにより、リングバッファＢ３３は最新のピッチ角から過去Ｎ個分のピッチ角を格納する。なお、リングバッファＢ３３のサイズは任意であり、制御量Ｃ１の更新間隔等を基準に事前に定められた値が設定される。
【０１８１】
リングバッファＢ３３がピッチ角で満たされている場合（ステップＳ１３０２：Ｙｅｓ）、駆動制御部２０４は、リングバッファＢ３３が記憶するＮ個のピッチ角を足し合わせ、Ｎで割ることで平均ピッチ角を算出する（ステップＳ１３０３）。
【０１８２】
次に、駆動制御部２０４は、算出した平均ピッチ角に対応する最小制御量を図２９に示す制御量決定データベースＴ２９を参照して決定する（ステップＳ１３０４）。
【０１８３】
次に、駆動制御部２０４は、決定した最小制御量でメモリ２０９に記憶されている最小制御量を更新する（ステップＳ１３０５）。
【０１８４】
例えば、ステップＳ１１０５において、制御量決定データベースＴ２０から決定された最小制御量がメモリ２０９に記憶されていたとすると、ステップＳ１３０５では、この最小制御量がステップＳ１３０４で決定された最小制御量で更新される。
【０１８５】
また、前回のステップＳ１３０５の処理で更新された最小制御量がメモリ２０９に記憶されていたとしても、この最小制御量はステップＳ１３０４で決定された最小制御量で更新される。
【０１８６】
そして、ロボット１が減速開始位置に到達すると、そのときにメモリ２０９で記憶されていた最小制御量が式（１）のｍｉｎに入力されて制御量Ｃ１が算出されることになる。
【０１８７】
これにより、移動開始後に床面の種類が変更したとしても、変更後の床面の種類に応じた適切な最小制御量が設定される。また、走行中に床面の種類が２回以上変更されたとしても、目的位置の床面の種類に応じた適切な最小制御量が設定される。
【０１８８】
なお、本フローチャートでは、減速開始位置から目的位置までの距離は短く、この間に床面の種類は変更されないものとみなし、減速開始位置の到達時にメモリ２０９に記憶された最小制御量が式（１）のｍｉｎに入力されている。
【０１８９】
ステップＳ１３０２において、駆動制御部２０４は、リングバッファＢ３３がピッチ角で満たされていない場合（ステップＳ１３０２：Ｎｏ）、ステップＳ１３０３〜ステップＳ１３０５の処理を行わず、最小制御量の更新処理を終了する。
【０１９０】
以上のように、実施の形態２に係るロボット１によると、走行中に床面の種類が変わった場合においても、変更後の床面の種類に応じて適切な最小制御量が決定されるので、目的位置までの移動途中でロボット１を停止させることなくスムーズにロボット１を移動させることができる。
【０１９１】
なお、実施の形態２では、制御量決定データベースＴ２０と制御量決定データベースＴ２９は、別のデータベースで構成されている。但し、これは一例であり、図３４に示すように、両データベースは１つのデータベースに集約されていてもよい。図３４は、本開示の実施の形態２の変形例に係る制御量決定データベースＴ３４のデータ構成を示す図である。
【０１９２】
制御量決定データベースＴ３４においては、最小制御量に対して最大ピッチ角と動作時の平均ピッチ角とが対応付けて記憶されており、制御量決定データベースＴ２０と制御量決定データベースＴ２９とが１つのデータベースに集約されていることが分かる。
【０１９３】
制御量決定データベースＴ３４が用いられる場合、図３１のステップＳ１１０５では、「最大ピッチ角」のフィールドが参照され、検出した最大ピッチ角に対応する最小制御量が決定される。また、図３２のステップＳ１３０４では、「動作時の平均ピッチ角」のフィールドが参照され、算出した平均ピッチ角に対応する最小制御量が決定される。
【０１９４】
また、図３２のフローチャートでは、リングバッファＢ３３がピッチ角で満たされていなければ、最小制御量は決定されていなかったが、これは一例である。本開示は、リングバッファＢ３３がピッチ角で満たされていない場合、リングバッファＢ３３に記憶されピッチ角の中で最大のピッチ角から最小制御量が決定されてもよい。
【０１９５】
これにより、本開示は、平均ピッチ角を求める前に目的位置までの距離が減速開始距離以下になったとしても、最小制御量を用いて減速制御を行うことが可能となる。
【産業上の利用可能性】
【０１９６】
本開示は家庭向けのロボットとして有用である。
【符号の説明】
【０１９７】
１  ロボット
１０１  筐体
１０２  フレーム
１０８  カメラ
１０９  制御回路
１１０  第１駆動輪
１１１  第２駆動輪
１１２  第１モータ
１１３  第２モータ
１２９  角速度センサ
２００  主制御部
２０１  目的位置生成部
２０２  移動経路生成部
２０３  自己位置推定部
２０４  駆動制御部
２０５  表示情報出力制御部
２０６  メモリ
２０７  筐体駆動機構制御部
２０８  筐体駆動機構
２０９  メモリ
２１０  通信部
２１１  表示部
２１２  筐体駆動輪
２１３  シャフト制御部
２１４  筐体駆動輪制御部
２１５  重り駆動機構制御部
２１６  スピーカ
２１７  マイク
２１８  重り駆動機構
２１９  角速度センサ
２２０  距離センサ
１３００  第１ユーザ
Ｂ３３  リングバッファ
Ｔ２０  制御量決定データベース
Ｔ２９  制御量決定データベース
Ｔ３４  制御量決定データベース
【図１】
2019018277.tif 000003
【図２】
2019018277.tif 000004
【図３】
2019018277.tif 000005
【図４】
2019018277.tif 000006
【図５】
2019018277.tif 000007
【図６】
2019018277.tif 000008
【図７】
2019018277.tif 000009
【図８Ａ】
2019018277.tif 000010
【図８Ｂ】
2019018277.tif 000011
【図８Ｃ】
2019018277.tif 000012
【図９Ａ】
2019018277.tif 000013
【図９Ｂ】
2019018277.tif 000014
【図９Ｃ】
2019018277.tif 000015
【図１０】
2019018277.tif 000016
【図１１】
2019018277.tif 000017
【図１２】
2019018277.tif 000018
【図１３】
2019018277.tif 000019
【図１４】
2019018277.tif 000020
【図１５】
2019018277.tif 000021
【図１６】
2019018277.tif 000022
【図１７】
2019018277.tif 000023
【図１８】
2019018277.tif 000024
【図１９】
2019018277.tif 000025
【図２０】
2019018277.tif 000026
【図２１】
2019018277.tif 000027
【図２２】
2019018277.tif 000028
【図２３】
2019018277.tif 000029
【図２４】
2019018277.tif 000030
【図２５】
2019018277.tif 000031
【図２６】
2019018277.tif 000032
【図２７】
2019018277.tif 000033
【図２８】
2019018277.tif 000034
【図２９】
2019018277.tif 000035
【図３０】
2019018277.tif 000036
【図３１】
2019018277.tif 000037
【図３２】
2019018277.tif 000038
【図３３】
2019018277.tif 000039
【図３４】
2019018277.tif 000040