(57)【要約】【課題】走行面の素材に起因してロボットの顔の位置、即ち、ロボットの姿勢が変わる不自然さを防止する。【解決手段】走行状態判定部は、加速度センサーが検出した加速度から重力成分を除去した値が一定期間、基準値未満を維持すれば、ロボット１の走行状態を摩擦面走行と判定する。走行状態判定部は、角速度センサーが検出したピッチ方向の角速度からロボット１の姿勢角度を算出し、算出した姿勢角度が判定時間において下限角度以上を維持していれば、判定時間の終了時の姿勢角度を姿勢制御角度として設定する。姿勢制御部は、ロボット１の走行状態が摩擦面走行と判定された場合、姿勢制御角度に相当する移動量分、カウンターウェイトを前方に移動させる。【選択図】図１５
2018005810.tif 000002
【特許請求の範囲】
【請求項１】
球体状の筐体と、
前記筐体の内部に配置されたフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記筐体の走行方向に垂直な左右方向を軸とする角速度を検知する角速度センサーと、
前記筐体を回転させて前記筐体を走行させている間に、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が所定角度を超えて変化したと判断した場合、前記回転角度に応じた距離、前記重りを前記筐体の走行方向の前側に移動させる制御回路と、を備えたロボット。
【請求項２】
球体状の筐体と、
前記筐体の内部に配置され基台を含むフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記基台に垂直な上下方向の第１加速度を検知する加速度センサーと、
前記筐体の走行方向に垂直な左右方向を軸とする角速度を検知する角速度センサーと、
前記加速度センサーから出力された前記第１加速度を表す第１値から重力成分を除去した第２値を得る制御回路と、を備え、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が基準値から第１変動幅を超えて前記基台に垂直な下方向に対応する値に変化したと判断し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が所定角度を超えて変化したと判断した場合、前記回転角度に応じた距離、前記重りを前記筐体の走行方向の前側に移動させるロボット。
【請求項３】
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が前記所定角度を超えて変化したと判断した場合、前記重りを前記筐体の走行方向の前方に移動させる制御は行わない、
請求項２記載のロボット。
【請求項４】
前記加速度センサーは、前記基台に水平な前記筐体の走行方向を示す第２加速度を検知し、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記第２加速度の変化が第２変動幅内に収束し、且つ前記筐体の回転角度の変化が前記所定角度内に収まる場合、前記重りを前記筐体の走行方向の後方に移動させる、
請求項２又は３のいずれか一方に記載のロボット。
【請求項５】
前記加速度センサーは、前記基台に水平な前記筐体の走行方向を示す第２加速度を検知し、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記第２加速度の変化が第２変動幅内に収束し、且つ前記筐体の回転角度の変化が前記所定角度内に収まる場合、前記重りを前記筐体の走行方向の前方に移動させる制御は行わない、
請求項２又は３のいずれか一方に記載のロボット。
【請求項６】
球体状の筐体と、
前記筐体の内部に配置され基台を含むフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記基台に垂直な上下方向の第１加速度を検知する加速度センサーと、
前記筐体の走行方向に垂直な左右方向を軸とする角速度を検知する角速度センサーと、
前記加速度センサーから出力された前記第１加速度を表す第１値から重力成分を除去した第２値を得る制御回路と、を備え、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が基準値から第１変動幅を超えて前記基台に垂直な下方向に対応する値に変化したと判断し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体が基準位置から所定角度を超えて回転したと判断した場合、前記筐体が前記基準位置から回転し始めてから所定期間経過するまでの前記左右方向を軸とする角速度の変化に基づき前記筐体の回転角度を判断し、前記回転角度に応じた距離、前記重りを前記重りのイニシャル位置より前記筐体の走行方向の前側に移動させる、ロボット。
【請求項７】
前記制御回路は、
前記所定期間が経過する前に、前記左右方向を軸とする角速度の変化に基づき前記基準位置からの前記筐体の回転が前記所定角度以下に戻ったと判断した場合、前記重りを移動させる制御は行わない、
請求項６記載のロボット。
【請求項８】
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が基準値から第１変動幅を超えて前記基台に垂直な下方向に対応する値に変化したと判断し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向への前記基準位置からの前記筐体の回転が前記所定角度以下であると判断した場合、前記重りを移動させる制御は行わない、
請求項６記載のロボット。
【請求項９】
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体が基準位置から所定角度を超えて回転したと判断した場合、前記重りを移動させる制御は行わない、
請求項６記載のロボット。
【請求項１０】
前記加速度センサーは、前記基台に水平な前記筐体の走行方向を示す第２加速度を検知し、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記第２加速度の変化が第２変動幅内に収束し、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向への前記基準位置からの前記筐体の回転が前記所定角度以下であると判断した場合、前記重りを前記重りのイニシャル位置より前記筐体の走行方向の後方に移動させる、
請求項６記載のロボット。
【請求項１１】
前記加速度センサーは、前記基台に水平な前記筐体の走行方向を示す第２加速度を検知し、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記第２加速度の変化が第２変動幅内に収束し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向への前記基準位置からの前記筐体の回転が前記所定角度以下であると判断した場合、前記重りを移動させる制御は行わない、
請求項６記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、自己の状態を判断するロボットに関する。
【背景技術】
【０００２】
従来から種々のロボットが提案されている。
【０００３】
特許文献１は、４本の足を有する多足走行ロボットを開示する（例えば、第８頁第１５−１７行など）。特許文献１において、多足走行ロボットは、３軸（Ｘ軸、Ｙ軸、Ｚ軸）方向の加速度を検出する加速度センサー、及び、３角（Ｒ角、Ｐ角、Ｙ角）方向の回転角速度を検出する角速度センサーを備えている（例えば、第８頁第２６行−第９頁第８行など）。前記加速度センサー及び前記角速度センサーに検出結果に基づき（例えば、第９頁第５−１４行など）、ユーザが前記ロボットを抱き上げたことを検出すると、前記ロボットは各足の動きを停止する（例えば、第１０頁第１３−２０行など）。これにより、ユーザの怪我の発生を未然に防止する（例えば、第６頁第１１−１２行など）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０００／０３２３６０号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の従来技術では、更なる改善が必要とされていた。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本開示の一態様のロボットは、
球体状の筐体と、
前記筐体の内部に配置されたフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記筐体の走行方向に垂直な左右方向を軸とする角速度を検知する角速度センサーと、
前記筐体を回転させて前記筐体を走行させている間に、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が所定角度を超えて変化したと判断した場合、前記回転角度に応じた距離、前記重りを前記筐体の走行方向の前側に移動させる制御回路と、を備えたものである。
【発明の効果】
【０００７】
上記態様により、更なる改善を実現できた。
【図面の簡単な説明】
【０００８】
【図１】本開示の実施の形態に係るロボットの外観斜視図である。
【図２】本開示の実施の形態に係るロボットの内部斜視図である。
【図３】図２のＡ視における、本開示の実施の形態に係るロボットの内部側面図である。
【図４】図２のＡ視における、本開示の実施の形態に係るロボットの直進動作を表す側面図である。
【図５】図２のＢ視における、本開示の実施の形態に係るロボットの回転動作を表す平面図である。
【図６】本開示の実施の形態に係るロボットの回転動作を表す斜視図である。
【図７】図３の側面図において重り駆動機構を示した図である。
【図８Ａ】カウンターウェイトを所定の直線方向に駆動する際のカウンターウェイトの駆動機構の動作を示す斜視図である。
【図８Ｂ】カウンターウェイトを所定の直線方向に駆動する際のカウンターウェイトの駆動機構の動作を示す側面図である。
【図８Ｃ】図３の側面図においてカウンターウェイトが所定の直線方向に往復移動する状態を示す側面図である。
【図９Ａ】スイングアームを回転させる際のカウンターウェイトの駆動機構の動作を示す斜視図である。
【図９Ｂ】スイングアームを回転させる際の重り駆動機構の動作を示す側面図である。
【図９Ｃ】図２のＢ視における、本開示の実施の形態に係るロボットのスイングアームが回転する状態を示す平面図である。
【図１０】図２のＡ視における、カウンターウェイトが前方寄りに位置しているときのロボットの姿勢を示す側面図である。
【図１１】図２のＡ視における、カウンターウェイトが後方寄りに位置しているときのロボットの姿勢を示す側面図である。
【図１２】図２のＣ視における、カウンターウェイトが右方寄りに位置しているときのロボットの姿勢を示す正面図である。
【図１３】図２のＣ視における、カウンターウェイトが左方寄りに位置しているときのロボットの姿勢を示す正面図である。
【図１４】本開示の実施の形態に係るロボットが適用されたロボットシステムの全体構成の一例を示す図である。
【図１５】本開示の実施の形態に係るロボットを示すブロック図である。
【図１６】本開示の実施の形態におけるロボットのメインルーチンの一例を示すフローチャートである。
【図１７】走行状態判定処理（図１６のＳ１０３）の詳細を示すフローチャートである。
【図１８】移動状態判定処理（図１７のＳ２０１）の詳細を示すフローチャートである。
【図１９】姿勢判定処理（図１７のＳ２０３）の詳細を示すフローチャートである。
【図２０】ロボットの姿勢角度を示す図である。
【図２１】姿勢判定処理を説明するグラフである。
【図２２】摩擦面走行判定処理（図１７のＳ２０５）の詳細を示すフローチャートである。
【図２３Ａ】走行状態が「通常走行」のときのロボットの状態を示す模式図である。
【図２３Ｂ】走行状態が「摩擦面走行」のときのロボットの状態を示す模式図である。
【図２３Ｃ】走行状態が「坂道走行」のときのロボットの状態を示す模式図である。
【図２４Ａ】走行状態に応じてロボットに加わる上下方向の加速度Ａｚの時間的な推移を示すグラフである。
【図２４Ｂ】走行状態に応じてロボットに加わる加速度Ａｚ’の時間的な推移を示すを示すグラフである。
【図２５】空回り走行制御処理（図１６のＳ１０５）の詳細を示すフローチャートである。
【図２６Ａ】空回り走行制御処理の説明図である。
【図２６Ｂ】空回り走行制御処理の説明図である。
【図２６Ｃ】空回り走行制御処理の説明図である。
【図２６Ｄ】空回り走行制御処理の説明図である。
【図２６Ｅ】空回り走行制御処理の説明図である。
【図２７】姿勢方向制御処理（図１６のＳ１０６）の詳細を示すフローチャートである。
【発明を実施するための形態】
【０００９】
（本開示に係る一態様を発明するに至った経緯）
上記のように、特許文献１は、加速度センサー及び角速度センサーを備えた４本の足を有する多足走行ロボットを開示する。特許文献１では、２つの閾値（δ１、δ２）を設けて、加速度センサー及び角速度センサーの検出出力の分散値を３分類し、ロボットが地面上を行動している状態か、持ち上げられた状態か、又は持ち下ろされた状態かを判断している（例えば、第９頁第５−１４行など）。
【００１０】
これに対し、本発明者は、球体状の筐体を備え、前記筐体の内周面に一組の駆動輪を接して前記筐体を回転させるロボットを検討している。このロボットの内部には、フレームが設けられ、前記フレームに少なくとも前記ロボットの顔の一部を表示する表示部を備え付けている。尚、このロボットは、手足を備えると回転の妨げとなるため、手足を有さない。
【００１１】
このロボットを検討している中で、前記ロボットを走行させる走行面の素材によって、走行中のロボットの顔の位置、即ち、前記ロボットの姿勢、が変わることが分かった。例えば、摩擦係数の低いフローリングの床上で前記ロボットを走行させる場合、前記ロボットの顔が正面を向いているとすると、摩擦係数の高い絨毯の上で前記ロボットを走行させる場合、前記ロボットの顔が上方を向いてしまう。このように、同じ走行処理であるにも関わらず、前記ロボットの内部処理に起因するのではなく、走行面の素材によって前記ロボットの顔の位置、即ち、前記ロボットの姿勢、が変わるという課題があることを見出した。
【００１２】
かかる課題は、上記特許文献１にも言及がなく、従来には存在しなかったと認識している。
【００１３】
本発明者は、上記課題を解決するために、以下の各態様の発明を想到するに至った。
【００１４】
本開示の一態様に係るロボットは、
球体状の筐体と、
前記筐体の内部に配置されたフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記筐体の走行方向に垂直な左右方向を軸とする角速度を検知する角速度センサーと、
前記筐体を回転させて前記筐体を走行させている間に、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が所定角度を超えて変化したと判断した場合、前記回転角度に応じた距離、前記重りを前記筐体の走行方向の前側に移動させる制御回路と、を備えたものである。
【００１５】
前記筐体を回転させて前記筐体を走行させている間に、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が所定角度を超えて変化したと判断した場合、前記筐体の走行方向への移動が前記走行方向から見て前記筐体と走行面との摩擦により抑制されたことに起因して、前記表示部の位置が上方向に移動していると考えられる。
【００１６】
そこで、本態様では、このような場合、前記回転角度に応じた距離、前記重りを前記筐体の走行方向の前側に移動させるようにした。
【００１７】
これにより、前記筐体の走行方向への移動が前記筐体と走行面との摩擦により抑制されている場合であっても、前記抑制に起因して上方向に向いた前記表示部の位置を下方向に戻すことができる。
【００１８】
この結果、同じ走行処理であるにも関わらず、前記ロボットの内部処理に起因するのではなく、走行面の素材に起因して前記ロボットの顔の位置、即ち、前記ロボットの姿勢、が変わる不自然さを防止できる。
【００１９】
（実施の形態）
（全体構成）
図１は、本開示の実施の形態に係るロボット１の外観斜視図である。ロボット１は、図１に示すように、球体状の筐体１０１を備える。筐体１０１は例えば、透明な部材或いは半透明の部材で構成される。
【００２０】
図２は、本開示の実施の形態に係るロボット１の内部斜視図である。
【００２１】
図２において、フレーム１０２が筐体１０１の内側部に配置されている。フレーム１０２は、第１回転板１０３及び第２回転板１０４を備える。第１回転板１０３は、第２回転板１０４に対して上方に位置している。第１回転板１０３及び第２回転板１０４は基台の一例に相当する。
【００２２】
図２に示すように、第１表示部１０５及び第２表示部１０６は、第１回転板１０３の上面に備え付けられている。また、第３表示部１０７は第２回転板１０４の上面に備え付けられている。第１表示部１０５、第２表示部１０６及び第３表示部１０７は、例えば、複数の発光ダイオードにより構成される。第１表示部１０５、第２表示部１０６及び第３表示部１０７は、ロボットの表情の表示情報を表示する。具体的には、第１表示部１０５、第２表示部１０６及び第３表示部１０７は、前記複数の発光ダイオードの点灯を個別に制御することにより、図１に示すように、ロボット１の顔の一部、例えば、目や口を表示する。図１の例では、第１表示部１０５が左目の画像を表示し、第２表示部１０６が右目の画像を表示し、第３表示部１０７が口の画像を表示している。そして、左目、右目、口の画像は、透明又は半透明の部材からなる筐体１０１を透過し、外部に放射されている。
【００２３】
カメラ１０８は、図２に示すように、第１回転板１０３の上面に備え付けられている。カメラ１０８は、ロボット１の周辺環境の映像を取得する。カメラ１０８は、図１に示すように、ロボット１の顔の一部、例えば、鼻を構成する。したがって、カメラ１０８の光軸はロボット１の前方に向かうことになる。これにより、カメラ１０８は正面に差し出された認識対象物を撮影できる。
【００２４】
制御回路１０９は、図２に示すように、第１回転板１０３の上面に備え付けられている。制御回路１０９は、ロボット１の各種動作を制御する。制御回路１０９の詳細は、図１５を参照しながら後述する。
【００２５】
第１駆動輪１１０及び第２駆動輪１１１は、それぞれ、第２回転板１０４の下面に備え付けられており、筐体１０１の内周面に接している。また、第１駆動輪１１０は、第１駆動輪１１０を駆動させる第１モータ１１２を有する。同様に、第２駆動輪１１１は、第２駆動輪１１１を駆動させる第２モータ１１３を有する。即ち、第１駆動輪１１０及び第２駆動輪１１１は、それぞれ独立した個別のモータによって駆動される。第１駆動輪１１０及び第２駆動輪１１１の駆動によるロボット１の動作の詳細は後述する。第１駆動輪１１０及び第２駆動輪１１１は、一組の駆動輪を構成する。
【００２６】
図３は、図２のＡ視における、本開示の実施の形態に係るロボット１の内部側面図である。図３において、カウンターウェイト１１４（重りの一例）は、第１回転板１０３と第２回転板１０４との間に設けられている。カウンターウェイト１１４は、筐体１０１の中心からやや下方に位置する。このため、ロボット１の重心は、筐体１０１の中心から下方に位置する。これにより、ロボット１の動作を安定させることができる。Ａ視は、右方から左方に向けてロボット１を見た方向を指す。
【００２７】
図３に示すように、ロボット１は、カウンターウェイト１１４を駆動する機構として、カウンターウェイト１１４の移動方向を規定するガイドシャフト１１５、カウンターウェイト１１４の回転方向の位置を規定するスイングアーム１１６、スイングアーム１１６を回転させる回転用モータ１１７、スイングアーム１１６及び回転用モータ１１７の間を接続する回転シャフト１１８、カウンターウェイト１１４の駆動に用いられるベルト１１９（図８Ａ及び図８Ｂ）、ベルト１１９に接するモータプーリ１２０（図８Ａ及び図８Ｂ）、及び、モータプーリ１２０を回転させる、図示しない重り駆動用モータを備える。尚、本態様においては、前記駆動用モータはカウンターウェイト１１４に内蔵されている。カウンターウェイト１１４の駆動によるロボット１の動作の詳細は後述する。
【００２８】
回転シャフト１１８は、第１駆動輪１１０と第２駆動輪１１１との駆動軸に対して垂直方向に延びる。回転シャフト１１８は、フレーム１０２に備え付けられたシャフトの一例に相当する。第１駆動輪１１０及び第２駆動輪１１１は正面視において、地面に向けて距離が離れるように取り付けられている。この場合、第１駆動輪１１０と第２駆動輪１１１との駆動軸は、例えば、第１駆動輪１１０と第２駆動輪１１１との中心同士を結ぶ仮想的な軸線である。なお、第１駆動輪１１０と第２駆動輪１１１とが正面視において平行に取り付けられていれば、実際の駆動軸が第１駆動輪１１０と第２駆動輪１１１との駆動軸となる。
【００２９】
ロボット１は、図略の電源及びマイク２１７（図１５）をさらに備える。ロボット１は、図略の充電器により充電される。マイク２１７は、ロボット１の周辺環境の音声を取得する。
【００３０】
次に、第１駆動輪１１０及び第２駆動輪１１１を用いたロボット１の動作を図４から図６を参照して説明する。
【００３１】
図４は、図２のＡ視における、本開示の実施の形態に係るロボット１の直進動作を表す側面図である。図５は、図２のＢ視における、本開示の実施の形態に係るロボット１の回転動作を表す平面図である。図６は、本開示の実施の形態に係るロボット１の回転動作を表す斜視図である。Ｂ視は上方から下方に向けてロボットを見た方向を指す。
【００３２】
図４に示すように、第１駆動輪１１０及び第２駆動輪１１１を前方方向に回転させると、その動力によって筐体１０１は前方方向に回転する。これにより、ロボット１は前進する。逆に、第１駆動輪１１０及び第２駆動輪１１１を後方方向に回転させると、ロボット１は後進する。
【００３３】
また、図５及び図６に示すように、第１駆動輪１１０及び第２駆動輪１１１を互いに逆方向に回転させると、その動力によって筐体１０１は、その中心を通過する鉛直軸回りの回転動作を行う。即ち、ロボット１は、その場で左回り又は右回りに回転する。ロボット１は、このような前進、後進又は回転動作によって移動する。
【００３４】
次に、カウンターウェイト１１４を用いたロボット１の基本動作を図７から図９Ｃを参照して説明する。
【００３５】
図７は、図３の側面図において重り駆動機構を示した図である。図８Ａは、カウンターウェイト１１４を所定の直線方向に駆動する際のカウンターウェイト１１４の駆動機構の動作を示す斜視図である。図８Ｂは、カウンターウェイト１１４を所定の直線方向に駆動する際のカウンターウェイト１１４の駆動機構の動作を示す側面図である。図８Ｃは、図３の側面図においてカウンターウェイト１１４が所定の直線方向に往復移動する状態を示す側面図である。図９Ａは、スイングアーム１１６を回転させる際のカウンターウェイト１１４の駆動機構の動作を示す斜視図である。図９Ｂは、スイングアーム１１６を回転させる際の重り駆動機構の動作を示す側面図である。図９Ｃは、図２のＢ視における、本開示の実施の形態に係るロボット１のスイングアーム１１６が回転する状態を示す平面図である。
【００３６】
図７に示すように、例えば、スイングアーム１１６の中央位置がカウンターウェイト１１４のデフォルト位置である。カウンターウェイト１１４がスイングアーム１１６の中央に位置しているとき、第１回転板１０３及び第２回転板１０４は走行面とほぼ平行になり、ロボット１の顔を構成する、例えば、目、鼻、口がデフォルト方向に向いた状態になる。
【００３７】
図８Ａ及び図８Ｂに示すように、カウンターウェイト１１４に内蔵された、図示しない重り駆動用モータは、前記重り駆動用モータに連結されたモータプーリ１２０を回転させる。回転されたモータプーリ１２０がベルト１１９上を転がることにより、カウンターウェイト１１４はスイングアーム１１６内を移動する。モータプーリ１２０の回転方向、即ち、前記重り駆動用モータの駆動方向を変化させることにより、スイングアーム１１６内において、カウンターウェイト１１４は直線方向に往復移動する。
【００３８】
図８Ｃに示すように、カウンターウェイト１１４は、ガイドシャフト１１５に沿って、スイングアーム１１６内を直線方向に往復移動する。
【００３９】
図９Ａ及び図９Ｂに示すように、回転用モータ１１７は、回転シャフト１１８を回転させることにより、回転シャフト１１８（図３）に接続されたスイングアーム１１６を回転させる。
【００４０】
図９Ｃに示すように、スイングアーム１１６は時計回り、反時計回りのいずれの方向にも回転させることができる。
【００４１】
さらに、カウンターウェイト１１４を用いたロボット１の動作の詳細を図１０から図１３を参照して説明する。図１０は、図２のＡ視における、カウンターウェイト１１４が前方寄りに位置しているときのロボット１の姿勢を示す側面図である。図１１は、図２のＡ視における、カウンターウェイト１１４が後方寄りに位置しているときのロボット１の姿勢を示す側面図である。図１２は、図２のＣ視における、カウンターウェイト１１４が右方寄りに位置しているときのロボット１の姿勢を示す正面図である。図１３は、図２のＣ視における、カウンターウェイト１１４が左方寄りに位置しているときのロボット１の姿勢を示す正面図である。Ｃ視は、前方から後方に向けてロボット１を見た方向を指す。
【００４２】
図１０に示すように、スイングアーム１１６がロボット１の正面に対して垂直な状態で、カウンターウェイト１１４を、デフォルト位置からスイングアーム１１６の一端（図１０では左端）、即ち、前方寄りに移動させると、ロボット１は、矢印１２１が示すように前方に傾く。また、図１１に示すように、スイングアーム１１６がロボット１の正面に対して垂直な状態で、カウンターウェイト１１４を、デフォルト位置からスイングアーム１１６の他端（図１１では右端）、即ち、後方寄りに移動させると、ロボット１は、矢印１２２が示すように後方に傾く。従って、スイングアーム１１６がロボット１の正面に対して垂直な状態で、カウンターウェイト１１４をスイングアーム１１６内の前記一端から前記他端まで往復動作させると、ロボット１は、矢印１２１が示す前方または矢印１２２が示す後方に傾く往復動作を行う。即ち、ロボット１は所定の角度において上下方向に回転する。
【００４３】
上述のように、第１表示部１０５、第２表示部１０６及び第３表示部１０７は、ロボット１の顔の一部、例えば、目や口を表す。従って、カウンターウェイト１１４を用いてロボット１に前方または後方に傾く往復動作をさせることにより、例えば、ロボット１が息切れしている状態又は眠い状態を表現することができる。この制御を、例えば、電源の電力残量が所定値以下になった場合に行えば、ロボット１は、第１表示部１０５、第２表示部１０６、及び第３表示部１０７に前記顔とは無関係な電力残量に関する情報を表示することなく、電源の電力残量が少なくなっていることをユーザに違和感なく伝えることができる。
【００４４】
図１２に示すように、スイングアーム１１６がロボット１の正面に対して平行な状態で、カウンターウェイト１１４を、デフォルト位置からスイングアーム１１６の一端（図１２の右端）、即ち、右方寄りに移動させると、ロボット１は、矢印１２３が示す右側に傾く。また、図１３に示すように、スイングアーム１１６がロボット１の正面に対して平行な状態で、カウンターウェイト１１４を、デフォルト位置からスイングアーム１１６の他端（図１３の左端）、即ち、左方寄りに移動させると、ロボット１は、矢印１２４が示す左側に傾く。従って、スイングアーム１１６をロボット１の正面に対して平行な状態で、カウンターウェイト１１４をスイングアーム１１６内の前記一端から前記他端まで往復動作させると、ロボット１は、矢印１２３が示す右側または矢印１２４が示す左側に傾く往復動作を行う。即ち、ロボット１は所定の角度において左右に揺動する。
【００４５】
上述のように、第１表示部１０５、第２表示部１０６、及び第３表示部１０７は、ロボット１の顔の一部、例えば、目や口を表す。従って、カウンターウェイト１１４を用いてロボット１に右方または左方に傾く往復運動をさせることにより、例えば、ロボット１の機嫌がよい状態を表現し又はロボット１が考え中であることを表現できる。
【００４６】
図１４は、本開示の実施の形態に係るロボット１が適用されたロボットシステム１５００の全体構成の一例を示す図である。ロボットシステム１５００は、クラウドサーバ３、携帯端末４、及びロボット１を備える。ロボット１は例えばＷｉｆｉ（登録商標）の通信を介してインターネットと接続し、クラウドサーバ３と接続する。また、ロボット１は例えばＷｉｆｉ（登録商標）の通信を介して携帯端末４と接続する。ユーザ１５０１は例えば、子供であり、ユーザ１５０２，１５０３は、例えば、その子供の両親である。
【００４７】
携帯端末４は、例えば、ロボット１と連携するアプリケーションがインストールされている。携帯端末４は、アプリケーションを通じてロボット１に種々の指示を行ったり、図１４で説明した画像認識結果を表示したりすることができる。
【００４８】
ロボット１は、例えば、携帯端末４からある絵本を子供に読み聞かせる要求があったとすると、その絵本の朗読を開始し、子供に読み聞かせる。ロボット１は、例えば、絵本の読み聞かせ中に子供から何らかの質問を受け付けると、その質問をクラウドサーバ３に送り、その質問に対する回答をクラウドサーバ３から受信し、回答を示す音声を発話する。
【００４９】
このように、ユーザ１５０１は、ロボット１をペットのように取り扱い、ロボット１との触れ合いを通じて、言語学習をすることができる。
【００５０】
次に、図１５を参照しつつ、本開示の実施の形態に係るロボット１の内部回路の詳細について説明する。図１５は、本開示の実施の形態に係るロボット１を示すブロック図である。
【００５１】
図１５に示すように、ロボット１は、制御回路１０９、表示部２１１、シャフト制御部２１３、回転シャフト１１８、筐体駆動輪制御部２１４、筐体駆動輪２１２、重り駆動機構制御部２１５、重り駆動機構２１８、姿勢検出部２１９、マイク２１７、スピーカ２１６、カメラ１０８、及び通信部２１０を備える。
【００５２】
制御回路１０９は、メモリ２０６と、ＣＰＵ等のプロセッサで構成された主制御部２００と、表示情報出力制御部２０５と、時刻を計時する図略のタイマー等を含むコンピュータで構成されている。
【００５３】
メモリ２０６は、例えば、不揮発性の書き換え可能な記憶装置で構成され、ロボット１の制御プログラムなどを記憶する。
【００５４】
主制御部２００は、メモリ２０６に記憶されているロボット１の制御プログラムを実行する。これにより、主制御部２００は、走行状態判定部２０１、回避行動制御部２０２、及び姿勢制御部２０３として機能する。
【００５５】
姿勢検出部２１９は、加速度センサー２２１及び角速度センサー２２２を備える。
【００５６】
加速度センサー２２１は、例えば、第１回転板１０３に取り付けられた３軸の加速度センサーで構成されている。加速度センサー２２１は、図２に示すように、上下方向（Ｚ方向）の加速度（第１加速度の一例）と、左右方向（Ｘ方向）の加速度と、前後方向（Ｙ方向）の加速度（第２加速度の一例）とを検出する。上下方向は第１回転板１０３の主面と直交する方向である。左右方向は、前方から後方にロボット１を見たときの左右の方向である。前後方向は、上下方向と直交し、且つ、左右方向と直交する方向である。よって、前後方向は、第１回転板１０３の主面と平行な方向である。
【００５７】
加速度センサー２２１は、検知した３方向の加速度を主制御部２００へ出力する。加速度センサー２２１及び角速度センサー２２２は、第１回転板１０３の上面に限らず、第１回転板１０３の下面や、第２回転板１０４の上面又は下面等に取り付けられてもよい。
【００５８】
角速度センサー２２２は、左右方向を軸とするロボット１の角速度、すなわち、ロボット１のピッチ方向の角速度を検出する。更に、角速度センサー２２２は、上下方向を軸とするロボット１の角速度、すなわち、ヨー方向のロボット１の角速度を検出する。更に、角速度センサー２２２は、前後方向を軸とするロボット１の角速度、すなわち、ロール方向のロボット１の角速度を検出する。
【００５９】
マイク２１７は、フレーム１０２に備え付けられ、音を電気信号に変換し、主制御部２００に出力する。マイク２１７は、例えば、第１回転板１０３の上面に取り付けられても良いし、第２回転板１０４の上面に取り付けられても良い。主制御部２００は、マイク２１７での取得音声からユーザの音声の有無を認識し、音声認識結果をメモリ２０６に蓄積することで、音声認識結果を管理する。主制御部２００は、メモリ２０６に格納された音声認識用データと、取得音声とを照合し、発話内容及び発話したユーザを認識する。
【００６０】
スピーカ２１６は、出力面が正面を向くようにフレーム１０２に備え付けられ、音声の電気信号を物理振動に変換する。主制御部２００は、所定の音声をスピーカ２１６から出力することで、ロボット１に発話させる。
【００６１】
カメラ１０８は、図２において説明したように、ロボット１の前方（Ｙ方向）の映像を撮像し、撮像した画像（以下、撮像画像）を主制御部２００に出力する。主制御部２００は、カメラ１０８から取得した撮像画像からユーザの顔の有無、位置、及び大きさを認識し、顔認識結果をメモリ２０６に蓄積することで、顔認識結果を管理する。
【００６２】
主制御部２００は、音声認識結果や顔認識結果に基づきコマンドを生成し、表示情報出力制御部２０５、シャフト制御部２１３、筐体駆動輪制御部２１４、重り駆動機構制御部２１５、及び通信部２１０等に出力する。
【００６３】
表示情報出力制御部２０５は、主制御部２００から送信されるコマンドに応じたロボット１の表情の表示情報を表示部２１１に表示する。表示部２１１は、図２において説明した第１表示部１０５、第２表示部１０６、及び第３表示部１０７により構成される。
【００６４】
シャフト制御部２１３は、主制御部２００から送信されるコマンドに応じて、図９Ａ及び図９Ｂで説明した回転シャフト１１８を回転させる。シャフト制御部２１３は、図９Ａ及び図９Ｂで説明した回転用モータ１１７により構成される。
【００６５】
筐体駆動輪制御部２１４は、主制御部２００から送信されるコマンドに応じて、ロボット１の筐体駆動輪２１２を動作させる。筐体駆動輪制御部２１４は、図２において説明した、第１モータ１１２及び第２モータ１１３で構成される。筐体駆動輪２１２は、図２において説明した第１駆動輪１１０及び第２駆動輪１１１により構成される。筐体駆動輪２１２は、一組の駆動輪の一例に相当する。
【００６６】
重り駆動機構制御部２１５は、主制御部２００から送信されるコマンドに応じて、ロボット１の重り駆動機構２１８を動作させる。重り駆動機構制御部２１５は、カウンターウェイト１１４に内蔵された、図示しない重り駆動用モータで構成される。重り駆動機構２１８は、図３、図８Ａ及び図８Ｂにおいて説明したガイドシャフト１１５、スイングアーム１１６、回転用モータ１１７、ベルト１１９、モータプーリ１２０、及び、図示しない重り駆動用モータにより構成される。
【００６７】
通信部２１０は、ロボット１をクラウドサーバ３（図１４）に接続させるための通信装置で構成される。通信部２１０としては、例えば、Ｗｉｆｉ（登録商標）等の無線ＬＡＮの通信装置が採用できるがこれは一例である。通信部２１０は、主制御部２００から送信されるコマンドに応じてクラウドサーバ３と通信を行う。
【００６８】
（メインルーチン）
図１６は、本開示の実施の形態におけるロボット１のメインルーチンの一例を示すフローチャートである。
【００６９】
図１６のフローチャートは、サンプリング間隔Δｔで周期的に実行される。まず、主制御部２００は、第１モータ１１２及び第２モータ１１３の回転の有無を確認する（Ｓ１０１）。ここで、主制御部２００は、例えば、第１モータ１１２及び第２モータ１１３が備えるエンコーダが検知した第１モータ１１２及び第２モータ１１３の回転角度を微分して、第１モータ１１２及び第２モータ１１３の回転速度を求める。そして、主制御部２００は、求めた第１モータ１１２及び第２モータ１１３の回転速度の両方が実質的に０を示せば、ロボット１は「回転中でない」、すなわち、「停止中」と判定し、求めた第１モータ１１２及び第２モータ１１３の回転速度の少なくとも一方が実質的に０を示さなければ、ロボット１は「回転中」と判定すればよい。
【００７０】
次に、主制御部２００は、Ｓ１０１において「回転中」と判定した場合（Ｓ１０２でＹＥＳ）、処理をＳ１０３に進める。一方、主制御部２００は、Ｓ１０１において「回転中でない」と判定した場合（Ｓ１０２でＮＯ）、処理を終了する。
【００７１】
Ｓ１０３では、走行状態判定部２０１は、走行状態判定処理を実行する。走行状態判定処理の詳細は、図１７を用いて後述する。
【００７２】
Ｓ１０４では、走行状態判定処理（Ｓ１０３）の処理結果に応じて処理が分岐する。すなわち、走行状態判定処理の処理結果が「空回り走行」であれば（Ｓ１０４で「空回り走行」）、回避行動制御部２０２は、空回り走行制御処理を実行し（Ｓ１０５）、処理を終了する。空回り走行制御処理の詳細は、図２５を用いて後述する。走行状態判定処理の処理結果が「坂道走行」であれば（Ｓ１０４で「坂道走行」）、主制御部２００は処理を終了する。
【００７３】
走行状態判定処理の処理結果が「摩擦面走行」であれば（Ｓ１０４で「摩擦面走行」）、姿勢制御部２０３は、姿勢制御処理を実行し（Ｓ１０６）、処理を終了する。姿勢制御処理の詳細は、図２７を用いて後述する。
【００７４】
このように、走行状態は、第１モータ１１２及び第２モータ１１３が回転中である場合におけるロボット１の走行状態を示し、「空回り走行」、「坂道走行」「摩擦面走行」、及び「通常走行」が含まれる。
【００７５】
「摩擦面走行」とは、フローリングの摩擦係数を標準的な摩擦係数とすると、標準的な摩擦係数よりも一定の値以上大きな摩擦係数を持つ床面（例えば、絨毯のような床面）をロボット１が走行している状態を指す。なお、本実施の形態では、ロボット１は、標準的な摩擦係数を持つフローリングを所定の目標速度で走行しているときに、図２において、Ｙ方向が走行方向と平行になるように設計されている。この時の第１〜第３表示部１０５〜１０７の位置をロボット１の顔の標準位置とすると、ロボット１が摩擦面走行をした場合、摩擦の影響によって走行方向に対するＹ方向の角度が増大するので、ロボット１の顔は基準位置よりも上方に向く。これを元の基準位置に戻すのが姿勢制御処理（Ｓ１０６）である。
【００７６】
走行状態判定処理の処理結果が「通常走行」であれば（Ｓ１０４で「通常走行」）、主制御部２００は処理を終了する。「通常走行」とは、ロボット１が、標準的な摩擦係数を持つ水平な床面を走行している状態を指す。「坂道走行」とは、ロボット１が坂道を登っている状態を指す。「空回り走行」とは、第１モータ１１２及び第２モータ１１３は回転中であるが、ロボット１が移動していない状態を指す。
【００７７】
（走行状態判定処理）
図１７は、走行状態判定処理（図１６のＳ１０３）の詳細を示すフローチャートである。まず、走行状態判定部２０１は、移動状態判定処理を行う（Ｓ２０１）。移動状態判定処理の詳細は図１８を用いて後述する。
【００７８】
移動状態判定処理の処理結果が「移動状態」を示せば（Ｓ２０２でＹＥＳ）、走行状態判定部２０１は、姿勢変更判定処理を実行する（Ｓ２０３）。姿勢変更判定処理の詳細は、図１９を用いて後述する。一方、移動状態判定処理の処理結果が「移動状態」を示さなければ（Ｓ２０２でＮＯ）、走行状態判定部２０１は、ロボット１の走行状態が「空回り走行」と判定し（Ｓ２１０）、処理を図１６のＳ１０４に戻す。
【００７９】
姿勢変更判定処理の処理結果が「姿勢変更あり」を示せば（Ｓ２０４でＹＥＳ）、走行状態判定部２０１は、摩擦面走行判定処理を実行する（Ｓ２０５）。摩擦面走行判定処理の詳細は、図２２を用いて後述する。一方、姿勢変更判定処理の処理結果が「姿勢変更なし」を示せば（Ｓ２０４でＮＯ）、走行状態判定部２０１は、ロボット１の走行状態を「通常走行」と判定し（Ｓ２０９）、処理を図１６のＳ１０４に戻す。
【００８０】
摩擦面走行判定処理の処理結果が「摩擦面走行」でないことを示せば（Ｓ２０６でＹＥＳ）、走行状態判定部２０１は、「坂道走行」と判定し（Ｓ２０７）、処理を図１６のＳ１０４に戻す。
【００８１】
一方、摩擦面走行判定処理の処理結果が「摩擦面走行」を示せば（Ｓ２０６でＮＯ）、走行状態判定部２０１は、ロボット１の走行状態を「摩擦面走行」と判定し（Ｓ２０８）、処理を図１６のＳ１０４に戻す。
【００８２】
（移動状態判定処理）
図１８は、移動状態判定処理（図１７のＳ２０１）の詳細を示すフローチャートである。まず、走行状態判定部２０１は、加速度センサー２２１から加速度Ａを取得する（Ｓ３０１）。
【００８３】
次に、走行状態判定部２０１は、Ｓ３０１で取得した加速度Ａのうち、Ｙ方向の加速度Ａｙを積分することで、ロボット１の現在のＹ方向の速度Ｖｙを算出する（Ｓ３０２）。
【００８４】
次に、走行状態判定部２０１は、算出した現在のＹ方向の速度Ｖｙが０より大きければ（Ｓ３０３でＹＥＳ）、ロボット１は「移動状態」と判定する（Ｓ３０４）。「移動状態」は第１モータ１１２及び第２モータ１１３が空回りしておらず、ロボット１が実際に走行している状態を指す。具体的には、「移動状態」には上述の「坂道走行」、「摩擦面走行」、及び「通常走行」が含まれる。一方、走行状態判定部２０１は、算出した現在のＹ方向の速度Ｖｙが０であれば（Ｓ３０３でＮＯ）、処理を図１７のＳ２０２に戻す。Ｓ３０３でＮＯの場合、図１７のＳ２０２でＮＯと判定され、ロボット１の走行状態は「空回り走行」と判定される（Ｓ２１０）。
【００８５】
（姿勢判定処理）
図１９は、姿勢判定処理（図１７のＳ２０３）の詳細を示すフローチャートである。まず、走行状態判定部２０１は、加速度センサー２２１から加速度Ａを取得すると共に、角速度センサー２２２から角速度ωを取得する（Ｓ４０１）。
【００８６】
次に、走行状態判定部２０１は、Ｓ４０１で取得した角速度ωのうち、ピッチ方向の角速度ωｐからロボット１のピッチ方向の角度である姿勢角度θの変化量Δθを算出する（Ｓ４０２）。この場合、走行状態判定部２０１は、サンプリング間隔ΔｔにＳ４０１で取得した角速度ωｐを乗じることで変化量Δθ（＝ωｐ×Δｔ）を算出すればよい。すなわち、変化量Δθとは、サンプリング間隔Δｔでの姿勢角度θの変化量を指す。
【００８７】
図２０は、ロボット１の姿勢角度θを示す図である。図２０では、姿勢角度θが０度の状態が示されている。図２０に示すように姿勢角度θは、基準方向Ｄ１に対するＹ方向の角度を指す。基準方向Ｄ１は、ロボット１の走行方向を水平面Ｅ１に投影した方向である。
【００８８】
次に、走行状態判定部２０１は、現在の姿勢角度θを算出する（Ｓ４０３）。この場合、走行状態判定部２０１は、現在の姿勢角度θを姿勢角度θ（ｔ）、１つ前のサンプリング点で算出した姿勢角度θを姿勢角度θ（ｔ−Δｔ）とすると、θ（ｔ）＝θ（ｔ−Δｔ）＋Δθにより、現在の姿勢角度θを算出すればよい。
【００８９】
次に、走行状態判定部２０１は、Ｓ４０１で取得した加速度Ａｚから重力加速度成分（ｇ×ｃｏｓθ）を除去し、加速度Ａｚ’（＝Ａｚ−（−ｇ×ｃｏｓθ））を算出する（Ｓ４０４）。なお、Ｓ４０４で算出された加速度Ａｚ’は後述する摩擦面走行判定処理（図２２）で使用するために、少なくとも過去一定期間分の値がメモリに保存される。加速度Ａｚ’は、第２値の一例である。ｇ×ｃｏｓθに「−」の符号が付いているのは、上方をプラス、下方をマイナスにとっているからである。
【００９０】
次に、走行状態判定部２０１は、Ｓ４０３で算出した姿勢角度θが所定の下限角度θＬに到達したか否かを判定する（Ｓ４０５）。図２１は、姿勢判定処理を説明するグラフであり、縦軸はピッチ方向の角速度ωｐ（ｄｅｇｒｅｅ／ｓｅｃ）を示し、横軸は時間を示している。図２１において、縦軸と平行に引かれた点線はサンプリング点を示している。波形Ｗ１は、角速度ωｐの時間的な推移を示す波形である。波形Ｗ１と時間軸との間の面積は角速度ωｐの積分値を示すので、この面積は姿勢角度θを示す。下限角度θＬは、姿勢角度θが判定時間ＴＤの計時の開始条件を満たす角度である。
【００９１】
姿勢角度θが下限角度θＬ以上であれば（Ｓ４０５でＹＥＳ）、走行状態判定部２０１は、判定時間ＴＤを計時するためのカウント値をカウントアップする（Ｓ４０６）。図１９に示すフローチャートはサンプリング間隔Δｔ毎に実行されるので、カウント値はサンプリング間隔Δｔずつカウントアップされていく。姿勢判定処理は、図２０、図２１に示すように、姿勢角度θが下限角度θＬを超えるのを待ってから、判定時間ＴＤの計時を開始する。これは、ロボット１が摩擦面走行や坂道走行をする場合、姿勢角度θが下限角度θＬ以上の角度を持続するという考えに基づいている。したがって、下限角度θＬとしては、ロボット１が摩擦面走行や坂道走行を走行する場合に想定されるロボット１の姿勢角度θの最小値が採用できる。
【００９２】
一方、姿勢角度θが下限角度θＬ未満であれば（Ｓ４０５でＮＯ）、走行状態判定部２０１は処理をＳ４１１に進める。
【００９３】
Ｓ４０７では、カウント値が判定時間ＴＤに到達すると（Ｓ４０７でＹＥＳ）、走行状態判定部２０１は、姿勢判定処理の処理結果を「姿勢変更あり」と判定し（Ｓ４０８）、判定時間ＴＤの計時を終了する（Ｓ４０９）。この場合、走行状態判定部２０１は、判定時間ＴＤのカウント値を０にリセットすればよい。
【００９４】
ロボット１は、ある程度の姿勢角度θを維持した状態で摩擦面走行や坂道走行をすると考えられる。そこで、姿勢変更判定処理では、判定時間ＴＤにおいて姿勢角度θが下限角度θＬ以上を維持するという条件を満たす場合にロボット１の姿勢が変更したと判定する。これにより、フローリングの上のゴミにロボット１が乗り上げた場合のような一時的な姿勢角度θの変更によって、ロボット１が摩擦面走行や坂道走行をしたと判定されることを防止できる。
【００９５】
次に、走行状態判定部２０１は、姿勢制御角度θＣを現在の姿勢角度θに設定し（Ｓ４１０）、処理を図１７のＳ２０４に戻す。この場合、図２０を参照し、姿勢制御角度θＣは、判定時間ＴＤの終了ポイントＥＰ（図２１）の終了時点でのロボット１の姿勢角度θとなる。つまり、姿勢制御角度θＣは、下限角度θＬ＋判定時間ＴＤでの姿勢角度θの変化量θ＿ＴＤとなる。よって、終了ポイントＥＰ後に姿勢角度θが増大し続けたとしても、姿勢制御角度θＣは終了ポイントＥＰでの姿勢角度θとなる。
【００９６】
Ｓ４１１では、走行状態判定部２０１は、判定期間ＴＤの計時中であれば（Ｓ４１１でＹＥＳ）、判定区間ＴＤの計時を終了し（Ｓ４１２）、処理をＳ４１３に進め、判定期間ＴＤの計時中でなければ（Ｓ４１１でＮＯ）、処理をＳ４１３に進める。Ｓ４１２では、Ｓ４０９と同様、走行状態判定部２０１は、判定時間ＴＤのカウント値を０にリセットすればよい。
【００９７】
Ｓ４１３では、走行状態判定部２０１は、姿勢判定処理の処理結果を「姿勢変更なし」と判定し、処理を図１７のＳ２０４に戻す。
【００９８】
毛先の方向や長さが疎らな絨毯のような床面をロボット１が走行する場合、姿勢角度θが下限角度θＬ以上及び未満の状態を繰り返す可能性がある。この場合、姿勢角度θが下限角度θＬ以上の状態を継続していないにも拘わらず、カウント値の蓄積により、「姿勢変更あり」と判定される可能性がある。そこで、Ｓ４１１、Ｓ４１１の処理が設けられている。これにより、姿勢角度θが下限角度θＬ以上と未満とが繰り返される状態において、カウント値が蓄積されることが防止される。その結果、姿勢角度θが下限角度θＬ以上の状態を継続していない場合において、「姿勢変更あり」と判定される事態を回避できる。
【００９９】
図２１を用いて、姿勢判定処理の概略を説明する。走行状態判定部２０１は、サンプリング間隔Δｔで角速度ωｐを取得し、取得した角速度ωｐを積算して現在の姿勢角度θを監視する。そして、姿勢角度θが下限角度θＬに到達すると、走行状態判定部２０１は、判定時間ＴＤの計時を開始する開始ポイントＳＰが到来したと判定し、判定時間ＴＤの計時を開始する。そして、判定時間ＴＤにおいて姿勢角度θが下限角度θＬ未満になると、走行状態判定部２０１は、図１９のＳ４０５でＮＯと判定し、「姿勢変更なし」と判定する（Ｓ４１１）。一方、判定時間ＴＤの終了ポイントＥＰにおいて姿勢角度θが下限角度θＬ以上を維持すると、「姿勢変更あり」と判定する（図１９のＳ４０８）。
【０１００】
（摩擦面走行判定処理）
図２２は、摩擦面走行判定処理（図１７のＳ２０５）の詳細を示すフローチャートである。まず、走行状態判定部２０１は、図１９のＳ４０４で算出した加速度Ａｚ’（＝Ａｚ＋ｇ×ｃｏｓθ）が過去一定期間、基準値（第１変動幅の一例）未満の状態を維持しているか否かを判定し（Ｓ５０１）、基準値未満の状態を維持しているのであれば（Ｓ５０１でＹＥＳ）、走行状態判定部２０１は、「摩擦面走行」と判定する（Ｓ５０２）。一方、加速度Ａｚ’が過去一定期間、基準値未満の状態を維持していなければ（Ｓ５０１でＮＯ）、走行状態判定部２０１は、「摩擦面走行でない」と判定する（Ｓ５０３）。図２２の処理が終了すると処理は図１７のＳ２０６に戻る。
【０１０１】
図２３Ａは、走行状態が「通常走行」のときのロボット１の状態を示す模式図である。図２３Ｂは、走行状態が「摩擦面走行」のときのロボット１の状態を示す模式図である。図２３Ｃは、走行状態が「坂道走行」のときのロボット１の状態を示す模式図である。
【０１０２】
図２４Ａは、走行状態に応じてロボット１に加わる上下方向の加速度Ａｚの時間的な推移を示すグラフである。図２４Ｂは、走行状態に応じてロボット１に加わる加速度Ａｚ’の時間的な推移を示すを示すグラフである。図２４Ａにおいて、縦軸は加速度Ａｚを示し、横軸は時間を示している。図２４Ｂにおいて、縦軸は加速度Ａｚ’を示し、横軸は時間を示している。図２４Ａ、図２４Ｂにおいて、波形Ｗ２１１，Ｗ２２１は「通常走行：期間Ｔ１」から「摩擦面走行：期間Ｔ２」に走行状態が切り替えられたときの加速度Ａｚ，Ａｚ’を示し、波形Ｗ２１２，Ｗ２２２は「通常走行：期間Ｔ１」から「坂道走行：期間Ｔ２」に走行状態が切り替えられたときの加速度Ａｚ，Ａｚ’を示す。
【０１０３】
図２３Ａを参照し、「通常走行」では、ロボット１は水平な標準的な摩擦係数を持つ床面ＦＡを所定の目標速度で走行している。通常走行では、ロボット１は、Ｙ方向が床面ＦＡと平行になるように設計されているので、Ｙ方向はロボット１の走行方向Ｄ２と平行になる。この場合、ロボット１には、Ｚ方向に重力成分（−ｇ）が加わるので、図２４Ａの期間Ｔ１に示すように、加速度Ａｚは、波形Ｗ２１１，Ｗ２１２共、Ａｚ＝−ｇとなる。よって、加速度Ａｚ’はＡｚ（＝−ｇ）−（−ｇ）により、０となる。そのため、図２４Ｂに示すように、期間Ｔ１では、加速度Ａｚ’は波形Ｗ２２１，Ｗ２２２共ほぼ０を維持している。なお、図２４Ａ、図２４Ｂにおいて、波形が脈動しているのは、床の振動等の影響である。
【０１０４】
図２３Ｂを参照し、摩擦面走行では、床面ＦＢからの摩擦等によって、ロボット１は、床面ＦＢと平行な走行方向Ｄ２に対して姿勢角度θ分、上方に向いた状態で、走行方向Ｄ２に向けて速度Ｖで床面ＦＢを走行する。したがって、ロボット１が摩擦面走行をしている場合、ロボット１にはＹ方向の速度ＶｙとＺ方向の速度Ｖｚとが表れる。
【０１０５】
ロボット１が床面ＦＢに侵入した直後、速度Ｖは摩擦等の影響により一旦減少するが、ロボット１は定速制御をしているので、やがて、速度Ｖは目標速度に戻る。よって、ロボット１が床面ＦＢに侵入してから速度Ｖが目標速度に戻るまでの過渡期間において、ロボット１のＺ方向には、速度Ｖｚの変化に起因する加速度ａｚが加わる。
【０１０６】
また、過渡期間においては、ロボット１の姿勢角度θは０度から床面ＦＢの摩擦係数に応じた角度になるまで増大するので、ロボット１のＺ方向には、加速度ａｚに加えて、重力に起因する−ｇ×ｃｏｓθの加速度が加わる。よって、加速度Ａｚは、Ａｚ＝ａｚ−ｇ×ｃｏｓθとなる。したがって、加速度Ａｚ’は、ａｚとなる（Ａｚ’＝ａｚ−ｇ×ｃｏｓθ−（−ｇ×ｃｏｓθ））。過渡期間では速度Ｖｚは減速した後、増大するので、加速度ａｚはマイナス方向に向けて変化した後、プラス方向に向けて変化する。よって、摩擦面走行の過渡期間では、図２４Ｂの波形Ｗ２２１に示すように、加速度Ａｚ’の波形は下に凸の形状となる。
【０１０７】
図２３Ｃを参照し、坂道走行では、坂道ＦＣの傾斜角度をαとすると、ロボット１は基準方向Ｄ１に対して傾斜角度αだけ上方向に向いた状態で、速度Ｖで坂道ＦＣを走行する。この場合、ロボット１のＹ方向も坂道ＦＣ（走行方向Ｄ２）と平行になるので、ロボット１には、Ｙ方向の速度成分のみ表れ、Ｚ方向の速度成分は表れない。
【０１０８】
よって、ロボット１が坂道ＦＣに侵入してから坂道ＦＣに乗り上げるまでの過渡期間では、ロボット１には、摩擦面走行の場合のように速度Ｖｚに起因する加速度ａｚは加わらず、重力に起因する−ｇ×ｃｏｓθの加速度のみが加わる。よって、図２４Ａの波形Ｗ２１２に示すように、坂道走行の過渡期間では、加速度Ａｚはｃｏｓθに応じて徐々にマイナス側からプラス側に増大していく。
【０１０９】
このように、坂道走行では、加速度Ａｚは、重力に起因する−ｇ×ｃｏｓθの加速度のみが加わるので、加速度Ａｚ’は、０となる（Ａｚ’＝−ｇ×ｃｏｓθ−（−ｇ×ｃｏｓθ））。よって、図２４Ｂの波形Ｗ２２２に示すように加速度Ａｚ’はほぼ０を維持する。
【０１１０】
したがって、走行状態判定部２０１は、加速度Ａｚ’が一定期間、基準値未満の状態を維持すれば、ロボット１の走行状態は摩擦面走行と判定できる（Ｓ５０１でＹＥＳ）。一方、走行状態判定部２０１は、加速度Ａｚ’が一定期間、基準値未満の状態を維持していなければ、ロボット１の走行状態は坂道走行であると判定できる（Ｓ５０１でＮＯ）。
【０１１１】
図１９のＳ４０４では、過去一定期間分の加速度Ａｚ’がメモリに保存されている。そのため、図２４に示すように、Ｓ５０１の処理の実行時点が時刻Ｐ２４であったとすると、走行状態判定部２０１は、時刻Ｐ２４から遡って一定期間Ｔ２４内に算出された加速度Ａｚ’の値から加速度Ａｚ’の波形を算出できる。そして、この波形が波形Ｗ２２１に示すように下に凸の波形を示せば、一定期間、加速度Ａｚ’が基準値未満の状態を維持するので、摩擦面走行と判定される。一方、この波形が波形Ｗ２２２に示すように平坦な波形を示せば、一定期間、加速度Ａｚ’が基準値以上の状態を維持するので、坂道走行と判定される。なお、一定期間Ｔ２４としては、例えば、上述した過渡期間程度の値が採用できる。また、基準値としては、０より一定のマージンだけ低い値が採用されればよい。
【０１１２】
（空回り走行処理）
図２５は、空回り走行制御処理（図１６のＳ１０５）の詳細を示すフローチャートである。図２６Ａ、図２６Ｂ、図２６Ｃ、図２６Ｄ、及び図２６Ｅは、空回り走行制御処理の説明図である。図２６Ａ、図２６Ｂ、図２６Ｃ、図２６Ｄ、及び図２６Ｅでは、上方から下方に見たときのロボット１が示されている。また、図２６Ｂ、図２６Ｃ、図２６Ｄ、及び図２６Ｅにおいて、「Ｓ＋数値」で示すステップ番号は図２５の「Ｓ＋数値」で示すステップ番号と対応している。図２６Ａでは、障害物２６００によってロボット１の進行が妨げられ、ロボット１が空回りしている状態が示されている。図２６Ａでは、障害物２６００として電源線が示されているが、これは一例である。例えば、壁のような物体が障害物２６００になることもある。
【０１１３】
まず、図２６Ａに示すように、ロボット１が障害物２６００によって、空回り走行をしているので、回避行動制御部２０２は、第１駆動輪１１０及び第２駆動輪１１１を逆回転させる（Ｓ６０１）。この場合、回避行動制御部２０２は、第１駆動輪１１０及び第２駆動輪１１１を逆回転させるコマンドを筐体駆動輪制御部２１４に出力することで、ロボット１を現在の走行方向（Ｄ２６１）とは反対の方向Ｄ２６２に移動させればよい。これにより、図２６Ｂに示すように、ロボット１は方向Ｄ２６２への走行を試みる。
【０１１４】
次に、走行状態判定部２０１は、移動状態判定処理を実行する（Ｓ６０２）。移動状態判定処理の詳細は、図１８で説明したので、詳細な説明は省く。
【０１１５】
次に、Ｓ６０２の処理結果が「移動状態」を示せば（Ｓ６０３でＮＯ）、ロボット１は方向Ｄ２６２に走行可能なので、回避行動制御部２０２は、ロボット１を１８０度旋回させて（Ｓ６１３）、方向Ｄ２６２を走行方向としてロボット１を通常走行させる（Ｓ６１４）。
【０１１６】
この場合、回避行動制御部２０２は、ロボット１が１８０度旋回するまで、第１駆動輪１１０と第２駆動輪１１１とを互いに逆方向に回転させるコマンドを筐体駆動輪制御部２１４に出力することで、ロボット１を１８０度旋回させればよい。また、回避行動制御部２０２は、角速度センサー２２２が検出するヨー方向の角速度ωｙを積分することで、ロボット１のヨー方向の回転角度をモニタし、この回転角度が１８０度を示したとき、ロボット１が１８０度旋回したと判断すればよい。
【０１１７】
一方、Ｓ６０２の処理結果が「移動状態」を示していなければ（Ｓ６０３でＹＥＳ）、ロボット１は方向Ｄ２６１に加えて方向Ｄ２６２にも走行ができないので、回避行動制御部２０２は、ロボット１を左回りに９０度旋回させて、ロボット１の走行方向を方向Ｄ２６３に向け、方向Ｄ２６３への走行制御を行う（Ｓ６０４）。この場合、図２６Ｃに示すように、ロボット１は方向Ｄ２６３への走行を試みる。
【０１１８】
Ｓ６０４における回避行動制御部２０２の制御の詳細は、Ｓ６０１で上述した内容と同じであるので、詳細な説明は省略する。このことは、後述するＳ６０７，Ｓ６１０も同じである。
【０１１９】
次に、走行状態判定部２０１は、再度、移動状態判定処理を実行する（Ｓ６０５）。次に、Ｓ６０５の処理結果が「移動状態」を示せば（Ｓ６０６でＮＯ）、ロボット１は方向Ｄ２６３に走行可能なので、回避行動制御部２０２は、方向Ｄ２６３を走行方向としてロボット１を通常走行させる（Ｓ６１４）。
【０１２０】
一方、Ｓ６０５の処理結果が「移動状態」を示さなければ（Ｓ６０６でＹＥＳ）、ロボット１は、方向Ｄ２６１，Ｄ２６２に加えて方向Ｄ２６３にも走行ができない。そのため、回避行動制御部２０２は、図２６Ｄに示すように、ロボット１を現在の走行方向（方向Ｄ２６３）に対して１８０度旋回させて、ロボット１の走行方向を方向Ｄ２６４に向け、走行制御を行う（Ｓ６０７）。
【０１２１】
次に、走行状態判定部２０１は、再度、移動状態判定処理を実行する（Ｓ６０８）。次に、Ｓ６０８の処理結果が「移動状態」を示せば（Ｓ６０９でＮＯ）、ロボット１は方向Ｄ２６４に走行可能なので、回避行動制御部２０２は、方向Ｄ２６４を走行方向としてロボット１を通常走行させる（Ｓ６１４）。
【０１２２】
一方、Ｓ６０８の処理結果が「移動状態」を示さなければ（Ｓ６０９でＹＥＳ）、ロボット１は、方向Ｄ２６１，Ｄ２６２，Ｄ２６３に加えて方向Ｄ２６４にも走行ができないので、回避行動制御部２０２は、回避行動ができないと判定し、Ｓ６１０〜Ｓ６１２の処理を実行する。
【０１２３】
Ｓ６１０では、図２６Ｅに示すように、回避行動制御部２０２は、ロボット１を現在の進行方向（方向Ｄ２６４）に対して右回りに９０度旋回させ、ロボット１の進行方向を方向Ｄ２６５に向ける。
【０１２４】
次に、回避行動制御部２０２は、カウンターウェイト１１４を現在の進行方向（Ｄ２６５）に対して反対方向（Ｄ２６６）の端部まで移動させるコマンドを重り駆動機構制御部２１５に出力する（Ｓ６１１）。次に、このコマンドを受けた重り駆動機構制御部２１５は、カウンターウェイト１１４をスイングアーム１１６の後端に移動させる（Ｓ６１２）。
【０１２５】
この場合、図１１に示すように、カウンターウェイト１１４は、スイングアーム１１６の後端に移動され、ロボット１は矢印１２２が示すように後方に傾く。これにより、ロボット１は、障害物２６００に当たってひっくり返る仕草を表現できる。
【０１２６】
（姿勢方向制御処理）
図２７は、姿勢方向制御処理（図１６のＳ１０６）の詳細を示すフローチャートである。姿勢方向制御処理は、Ｓ１０４において、ロボット１の走行状態が摩擦面走行と判定された場合に実行される。
【０１２７】
まず、姿勢制御部２０３は、走行状態判定部２０１が図１９のＳ４１０で設定した姿勢制御角度θＣを取得する（Ｓ７０１）。
【０１２８】
次に、姿勢制御部２０３は、姿勢制御角度θＣに対応するカウンターウェイト１１４の移動量を算出する（Ｓ７０２）。この場合、カウンターウェイトの移動量Ｄは、Ｄ＝Ｋ×Δθにより算出される。
【０１２９】
ここで、Ｋは姿勢制御角度θＣを移動量に換算するための係数であり、Ｋ＝Ｄ＿ｍａｘ／θ＿ｍａｘである。Ｄ＿ｍａｘはカウンターウェイト１１４の最大振幅である。図３を参照して、スイングアームの前後方向の中央がカウンターウェイト１１４のデフォルト位置であるとすると、最大振幅Ｄ＿ｍａｘは、スイングアームの中央から後端又は先端までの長さを示す。θ＿ｍａｘは、カウンターウェイト１１４を最大振幅Ｄ＿ｍａｘに位置決めしたときのロボット１の姿勢角度θである。Δθは、現在の姿勢角度θと姿勢制御角度θＣとの差分である。例えば、現在の姿勢角度が０度であり、姿勢制御角度θＣが１０度であれば、Δθは１０度となる。
【０１３０】
次に、姿勢制御部２０３は、Ｓ７０２で算出した移動量Ｄ分、カウンターウェイト１１４を前方に移動させるコマンドを重り駆動機構制御部２１５に出力することで、カウンターウェイト１１４を姿勢制御角度θＣに対応する位置に移動させる（Ｓ７０３）。
【０１３１】
ロボット１が摩擦面走行をしている場合、図２３Ｂに示すように、ロボット１のＹ方向は走行方向Ｄ２に対して姿勢角度θ分、上方を向く。このＹ方向を走行方向Ｄ２に向けるには、姿勢角度θに対応する移動量Ｄ分、カウンターウェイト１１４を前方に移動させればよい。そこで、姿勢制御部２０３は、姿勢制御角度θＣに対応する移動量分、カウンターウェイト１１４を前方に移動させている。これにより、Ｙ方向が走行方向Ｄ２と一致し、ロボット１の顔の位置を標準位置に戻すことができる。
【０１３２】
したがって、本実施の形態におけるロボット１は、走行面の素材に起因して、顔の位置が上方向を向いた状態で走行する不自然さを防止できる。
【０１３３】
また、本実施の形態では、姿勢角度θが下限角度θＬ以上になった場合であっても、判定時間ＴＤ間に姿勢角度θが下限角度θＬ未満に戻れば（図１９のＳ４０７でＮＯ）、姿勢変更なしと判定され（Ｓ４１１）、図１７のＳ２０４でＮＯと判定され、通常走行と判定される（Ｓ２０９）。
【０１３４】
これにより、例えば、フローリングの上のゴミにロボット１が乗り上げて、一時的にロボット１の顔が上方向を向いた場合は、ロボット１の顔を下方向に移動させる制御が行われなくなる。これにより、例えば、ゴミを通過した後に、ロボット１が顔を下方に向けた状態で走行する不自然さを防止できる。
【０１３５】
また、本実施の形態では、姿勢角度θが０度以上になった場合であっても姿勢角度θが下限角度θＬ未満であれば（図１９のＳ４０７でＮＯ）、姿勢変更なしと判定され（Ｓ４１１）、図１７のＳ２０４でＮＯと判定され、通常走行と判定される（Ｓ２０９）。
【０１３６】
この場合、カウンターウェイト１１４は移動されず、ロボット１の顔は多少上方向を向くことになるが、その量が僅かなので、ロボット１の顔を下方向に戻さなくても問題はない。そこで、本実施の形態では、姿勢角度θが下限角度θＬ未満の場合、姿勢変更なしと判定している。
【０１３７】
また、本実施の形態では、図１６のＳ１０４で走行状態が坂道走行と判定された場合、摩擦面走行と判定された場合とは異なり、姿勢制御処理は実行されない。
【０１３８】
これは、図２３Ｃに示すように、ロボット１が坂道を登って走行している場合、ロボット１の顔が上方向を向いても、その方向が走行方向Ｄ２と平行であり、不自然ではないからである。その結果、ロボット１が坂道を登って走行している場合に、ロボット１の顔が下方向を向けて走行する不自然さを解消できる。
【０１３９】
また、本実施の形態では、ロボット１が障害物２６００によって移動ができなくなった場合、カウンターウェイト１１４がスイングアーム１１６の後端に移動され、ロボット１の顔が上方向を向く。これにより、ロボット１が障害物２６００に当たってひっくり返る仕草を表現できる。
【０１４０】
（変形例１）
上記実施の形態では、ロボット１が障害物２６００によって移動ができなくなった場合、ロボット１の顔を上方向に向け、ひっくり返る仕草を表現した。本開示はこれに限定されず、ロボット１が障害物２６００によって移動ができなくなった場合、カウンターウェイト１１４を移動させず、デフォルトの位置に位置決めした状態にしておいてもよい。
【０１４１】
（変形例２）
上記実施の形態では、加速度センサー２２１を備えているが、本実施の形態はこれに限定されず、加速度センサー２２１は省かれてもよい。この場合、加速度Ａｚに基づいて摩擦面走行と坂道走行との判別はできなくなる。しかし、少なくとも摩擦面走行の場合は、角速度センサー２２２が検出した角速度から姿勢角度θを算出し、姿勢角度θ分、ロボット１の顔を下方向に向けることができる。
【０１４２】
（変形例３）
上記実施の形態では、図２４に示すように加速度Ａｚは上方がプラス、下方がマイナスに設定されているが、上方がマイナス、下方がプラスに設定されていてもよい。
【０１４３】
（本開示の実施の形態の概要）
本開示の一態様に係るロボットは、
球体状の筐体と、
前記筐体の内部に配置されたフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記筐体の走行方向に垂直な左右方向を軸とする角速度を検知する角速度センサーと、
前記筐体を回転させて前記筐体を走行させている間に、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が所定角度を超えて変化したと判断した場合、前記回転角度に応じた距離、前記重りを前記筐体の走行方向の前側に移動させる制御回路と、を備える。
【０１４４】
本態様では、所定方向に重りを往復移動させる重りの駆動機構を、前記フレームに備え付け、前記筐体が走行方向に垂直な左右方向を軸とする角速度を検知する角速度センサーを設けた。
【０１４５】
前記筐体を回転させて前記筐体を走行させている間に、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が所定角度を超えて変化したと判断した場合、前記筐体の走行方向への移動が前記走行方向から見て前記筐体と走行面との摩擦により抑制されたことに起因して、前記表示部の位置が上方向に移動していると考えられる。そこで、本態様では、このような場合、前記回転角度に応じた距離、前記重りを前記筐体の走行方向の前側に移動させるようにした。
【０１４６】
これにより、前記筐体の走行方向への移動が前記筐体と走行面との摩擦により抑制されている場合であっても、前記抑制に起因して上方向に向いた前記表示部の位置を下方向に戻すことができる。
【０１４７】
この結果、同じ走行処理であるにも関わらず、前記ロボットの内部処理に起因するのではなく、走行面の素材に起因して前記ロボットの顔の位置、即ち、前記ロボットの姿勢、が変わる不自然さを防止できる。
【０１４８】
また、本開示の別の一態様に係るロボットは、
球体状の筐体と、
前記筐体の内部に配置され基台を含むフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記基台に垂直な上下方向の第１加速度を検知する加速度センサーと、
前記筐体の走行方向に垂直な左右方向を軸とする角速度を検知する角速度センサーと、
前記加速度センサーから出力された前記第１加速度を表す第１値から重力成分を除去した第２値を得る制御回路と、を備え、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が基準値から第１変動幅を超えて前記基台に垂直な下方向に対応する値に変化したと判断し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が所定角度を超えて変化したと判断した場合、前記回転角度に応じた距離、前記重りを前記筐体の走行方向の前側に移動させる。
【０１４９】
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が基準値から第１変動幅を超えて前記基台に垂直な下方向に対応する値に変化したと判断し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が所定角度を超えて変化したと判断した場合、前記筐体の走行方向への移動が前記筐体と走行面との摩擦により抑制されたことに起因して、前記表示部の位置が上方向に移動していると考えられる。そこで、本態様では、このような場合、前記回転角度に応じた距離、前記重りを前記筐体の走行方向の前側に移動させるようにした。
【０１５０】
これにより、前記筐体の走行方向への移動が前記筐体と走行面との摩擦により抑制されている場合であっても、前記抑制に起因して上方向に向いた前記表示部の位置を下方向に戻すことができる。
【０１５１】
この結果、同じ走行処理であるにも関わらず、前記ロボットの内部処理に起因するのではなく、走行面の素材に起因して前記ロボットの顔の位置、即ち、前記ロボットの姿勢、が変わる不自然さを防止できる。
【０１５２】
上記態様において、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が前記所定角度を超えて変化したと判断した場合、前記重りを前記筐体の走行方向の前方に移動させる制御は行わなくてもよい。
【０１５３】
例えば、ロボットが坂道を登って走行している場合、坂道を下る方向への力が前記筐体に働き前記筐体の走行方向への移動が抑制される。この場合も、前記表示部の位置が上方向に移動する。
【０１５４】
前記ロボットが坂道を登って走行している場合、前記ロボットの顔が上方向を向いても摩擦係数の高い絨毯の上で前記ロボットを走行させる場合とは異なって不自然ではない。
前記加速度センサー及び前記角速度センターの検知結果が、前記第２値が前記第１変動幅内で変化していることを示し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が前記所定角度を超えて変化したことを示す場合は、前記ロボットの顔が上方を向いているだけではなく、前記ロボット自身が上方向に移動しているので、前記ロボットは、例えば、坂道を登って走行していると推定できる。
【０１５５】
そこで、本態様では、前記筐体を回転させて前記筐体を走行させている間、前記第２値が前記第１変動幅内で変化している状態で、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体の回転角度が前記所定角度を超えて変化したと判断した場合、前記重りを前記筐体の走行方向の前方に移動させる制御は行わないようにした。
【０１５６】
これにより、前記ロボットの顔が上方向を向いている場合でも、前記ロボットが坂道を登って走行している場合と、摩擦係数の高い絨毯の上で前記ロボットを走行させる場合とを区別して、前者の場合は前記重りを前記筐体の走行方向の前方に移動させず、前記ロボットの顔が上方向を向いている状態のままとした。
【０１５７】
そのため、前記ロボットが坂道を登って走行している場合に、前記ロボットの顔が下方向を向くように修正されて、却って不自然になることを防止できる。
【０１５８】
また、上記態様において、
前記加速度センサーは、前記基台に水平な前記筐体の走行方向を示す第２加速度を検知し、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記第２加速度の変化が第２変動幅内に収束し、且つ前記筐体の回転角度の変化が前記所定角度内に収まる場合、前記重りを前記筐体の走行方向の後方に移動させてもよい。
【０１５９】
前記ロボットが走行中に、例えば、壁に当たり、空回りしている場合、前記加速度センターの出力波形、及び、前記角速度センサーの出力波形は、以下のような状態を示す。前記第２値は前記第１変動幅内で変化し、前記第２加速度の変化は第２変動幅内に収束し、且つ前記筐体の回転角度の変化が前記所定角度内に収まる。即ち、前記ロボットは坂道を登る訳ではなく、平面を走行しているので、前記第２値は前記第１変動幅内で変化する。前記ロボットは、例えば、壁に当たり、前進できないので、前記筐体が走行方向の第２加速度の変化は第２変動幅内に収束する。そして、前記ロボットは、例えば、壁に当たっているとは言え、前記筐体と走行面との摩擦により走行が抑制されている訳ではないので、前記ロボットの顔は上方向を向かず、そのままの姿勢で空回りする。そのため、前記筐体の回転角度の変化が前記所定角度内に収まる。
【０１６０】
そこで、本態様では、前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記第２加速度の変化が第２変動幅内に収束し、且つ前記筐体の回転角度の変化が前記所定角度内に収まる場合、前記ロボットが走行中に、例えば、壁に当たり、空回りしていると判断する。
【０１６１】
この場合、本態様によると、前記重りを前記筐体の走行方向の後方に移動させる。
【０１６２】
これにより、前記ロボットが走行中に、例えば、壁に当たり、空回りしていると判断した場合には、前記ロボットの顔を上方向に向けるようにした。そのため、前記ロボットが走行中に、例えば、壁に当たった場合には、あえて、前記ロボットの顔を上方向に向けるように制御して、前記ロボットが、例えば、壁に当たってひっくり返る仕草を表現した。
【０１６３】
即ち、前記ロボットが走行中に、例えば、壁に当たり、空回りしている場合と、摩擦係数の高い絨毯の上で前記ロボットを走行させる場合とでは、前記重りの移動方向が異なる。
【０１６４】
そのため、前記ロボットが走行中に、例えば、壁に当たり、空回りしている場合には、前記ロボットをそのままの姿勢とするのではなく、あえて、前記ロボットの顔が上方向を向くように修正するので、ひっくり返る表現で前記ロボットが、例えば、壁に当たっていることをユーザにアピールできる。
【０１６５】
また、上記態様において、
前記加速度センサーは、前記基台に水平な前記筐体の走行方向を示す第２加速度を検知し、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記第２加速度の変化が第２変動幅内に収束し、且つ前記筐体の回転角度の変化が前記所定角度内に収まる場合、前記重りを前記筐体の走行方向の前方に移動させる制御は行わなくてもよい。
【０１６６】
本態様では、前記ロボットが走行中に、例えば、壁に当たり、空回りしていると判断した場合には、前記重りを前記筐体の走行方向の前方に移動させる制御は行わない。
【０１６７】
これにより、前記ロボットが走行中に、例えば、壁に当たり、空回りしている場合と、摩擦係数の高い絨毯の上で前記ロボットを走行させる場合とを区別して、前者の場合は、前記筐体と走行面との摩擦により走行が抑制されている訳ではないので、前記重りを前記筐体の走行方向の前方に移動させず、前記ロボットをそのままの姿勢とした。
【０１６８】
そのため、前記ロボットが走行中に、例えば、壁に当たり、空回りしている場合に、前記ロボットの顔が下方向を向くように修正されて、却って不自然になることを防止できる。
【０１６９】
また、上記態様において、
球体状の筐体と、
前記筐体の内部に配置され基台を含むフレームと、
前記フレームに備え付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記フレームに備え付けられ、前記筐体の内周面に接して前記筐体を回転させて前記筐体を走行させる一組の駆動輪と、
前記フレームに備え付けられ、所定方向に重りを往復移動させる重りの駆動機構と、
前記基台に垂直な上下方向の第１加速度を検知する加速度センサーと、
前記筐体の走行方向に垂直な左右方向を軸とする角速度を検知する角速度センサーと、
前記加速度センサーから出力された前記第１加速度を表す第１値から重力成分を除去した第２値を得る制御回路と、を備え、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が基準値から第１変動幅を超えて前記基台に垂直な下方向に対応する値に変化したと判断し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体が基準位置から所定角度を超えて回転したと判断した場合、前記筐体が前記基準位置から回転し始めてから所定期間経過するまでの前記左右方向を軸とする角速度の変化に基づき前記筐体の回転角度を判断し、前記回転角度に応じた距離、前記重りを前記重りのイニシャル位置より前記筐体の走行方向の前側に移動させる、ロボット。
【０１７０】
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が基準値から第１変動幅を超えて前記基台に垂直な下方向に対応する値に変化したと判断し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体が基準位置から所定角度を超えて回転したと判断した場合、摩擦などにより走行が抑制されたことに起因して、前記表示部の位置が上方向に移動していると考えられる。そこで、本態様では、このような場合、前記筐体が前記基準位置から回転し始めてから所定期間経過するまでの前記左右方向を軸とする角速度の変化に基づき前記筐体の回転角度を判断し、前記回転角度に応じた距離、前記重りを前記重りのイニシャル位置より前記筐体の走行方向の前側に移動させるようにした。
【０１７１】
これにより、前記筐体の走行方向への移動が前記筐体と走行面との摩擦などにより抑制されている場合であっても、前記抑制に起因して上方向に向いた前記表示部の位置を下方向に戻すことができる。
【０１７２】
この結果、同じ走行処理であるにも関わらず、前記ロボットの内部処理に起因するのではなく、走行面の素材に起因して前記ロボットの顔の位置、即ち、前記ロボットの姿勢、が変わる不自然さを防止できる。
【０１７３】
また、上記態様において、
前記制御回路は、
前記所定期間が経過する前に、前記左右方向を軸とする角速度の変化に基づき前記基準位置からの前記筐体の回転が前記所定角度以下に戻ったと判断した場合、前記重りを移動させる制御は行わなくてもよい。
【０１７４】
例えば、フローリングの上のゴミに前記筐体が乗り上げた場合も、前記筐体の走行方向への移動が前記筐体と走行面との摩擦により、一時的に前記表示部の位置が上方向に移動することはあり得る。このような場合に、前記表示部の位置を下方向に移動させると、例えば、前記ゴミを通過した後に、前記ロボットは下を向いた状態で走行することになる。
そこで、本態様では、前記所定期間が経過する前に、前記左右方向を軸とする角速度の変化に基づき前記基準位置からの前記筐体の回転が前記所定角度以下に戻ったと判断した場合、前記重りを移動させる制御は行わないようにした。
【０１７５】
これにより、例えば、前記ゴミを通過した後に、前記ロボットは下を向いた状態で走行する不自然さを防止できる。
【０１７６】
また、上記態様において、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が基準値から第１変動幅を超えて前記基台に垂直な下方向に対応する値に変化したと判断し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向への前記基準位置からの前記筐体の回転が前記所定角度以下であると判断した場合、前記重りを移動させる制御は行わなくてもよい。
【０１７７】
前記筐体の走行方向への移動が前記筐体と走行面との摩擦などにより抑制され、前記抑制に起因して前記表示部の位置が上方向を向いた場合でも、その上方向を向いた角度が前記所定角度以下である場合は、走行面の素材に起因して前記ロボットの顔の位置が変わる不自然さも小さいので、前記重りを移動させる制御は行わないようにした。
【０１７８】
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向へ前記筐体が基準位置から所定角度を超えて回転したと判断した場合、前記重りを移動させる制御は行わなくてもよい。
【０１７９】
また、上記態様において、
前記加速度センサーは、前記基台に水平な前記筐体の走行方向を示す第２加速度を検知し、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記第２加速度の変化が第２変動幅内に収束し、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向への前記基準位置からの前記筐体の回転が前記所定角度以下であると判断した場合、前記重りを前記重りのイニシャル位置より前記筐体の走行方向の後方に移動させてもよい。
【０１８０】
また、上記態様において、
前記加速度センサーは、前記基台に水平な前記筐体の走行方向を示す第２加速度を検知し、
前記制御回路は、
前記筐体を回転させて前記筐体を走行させている間に、前記第２値が前記第１変動幅内で変化している状態で、前記第２加速度の変化が第２変動幅内に収束し、且つ、前記左右方向を軸とする角速度の変化に基づき前記走行方向の前側から見て上方向への前記基準位置からの前記筐体の回転が前記所定角度以下であると判断した場合、前記重りを移動させる制御は行わなくてもよい。
【産業上の利用可能性】
【０１８１】
本開示によれば、ロボットを違和感なく走行させる点で有用である。
【符号の説明】
【０１８２】
Ａ，Ａｙ，Ａｚ  加速度
Ｄ  移動量
Ｄ＿ｍａｘ  最大振幅
Ｄ１  基準方向
Ｄ２  走行方向
θ  姿勢角度
θＣ  姿勢制御角度
θＬ  下限角度
ω，ωｐ，ωｙ  角速度
１  ロボット
３  クラウドサーバ
４  携帯端末
１０１  筐体
１０２  フレーム
１０３  第１回転板
１０４  第２回転板
１０５  第１表示部
１０６  第２表示部
１０７  第３表示部
１０８  カメラ
１０９  制御回路
１１０  第１駆動輪
１１１  第２駆動輪
１１２  第１モータ
１１３  第２モータ
１１４  カウンターウェイト
１１５  ガイドシャフト
１１６  スイングアーム
１１７  回転用モータ
１１８  回転シャフト
１１９  ベルト
１２０  モータプーリ
２００  主制御部
２０１  走行状態判定部
２０２  回避行動制御部
２０３  姿勢制御部
２０５  表示情報出力制御部
２０６  メモリ
２１０  通信部
２１１  表示部
２１２  筐体駆動輪
２１３  シャフト制御部
２１４  筐体駆動輪制御部
２１５  重り駆動機構制御部
２１６  スピーカ
２１７  マイク
２１８  重り駆動機構
２１９  姿勢検出部
２２１  加速度センサー
２２２  角速度センサー
１５００  ロボットシステム
１５０１，１５０２  ユーザ
２６００  障害物
【図１】
2018005810.tif 000003
【図２】
2018005810.tif 000004
【図３】
2018005810.tif 000005
【図４】
2018005810.tif 000006
【図５】
2018005810.tif 000007
【図６】
2018005810.tif 000008
【図７】
2018005810.tif 000009
【図８Ａ】
2018005810.tif 000010
【図８Ｂ】
2018005810.tif 000011
【図８Ｃ】
2018005810.tif 000012
【図９Ａ】
2018005810.tif 000013
【図９Ｂ】
2018005810.tif 000014
【図９Ｃ】
2018005810.tif 000015
【図１０】
2018005810.tif 000016
【図１１】
2018005810.tif 000017
【図１２】
2018005810.tif 000018
【図１３】
2018005810.tif 000019
【図１４】
2018005810.tif 000020
【図１５】
2018005810.tif 000021
【図１６】
2018005810.tif 000022
【図１７】
2018005810.tif 000023
【図１８】
2018005810.tif 000024
【図１９】
2018005810.tif 000025
【図２０】
2018005810.tif 000026
【図２１】
2018005810.tif 000027
【図２２】
2018005810.tif 000028
【図２３Ａ】
2018005810.tif 000029
【図２３Ｂ】
2018005810.tif 000030
【図２３Ｃ】
2018005810.tif 000031
【図２４Ａ】
2018005810.tif 000032
【図２４Ｂ】
2018005810.tif 000033
【図２５】
2018005810.tif 000034
【図２６Ａ】
2018005810.tif 000035
【図２６Ｂ】
2018005810.tif 000036
【図２６Ｃ】
2018005810.tif 000037
【図２６Ｄ】
2018005810.tif 000038
【図２６Ｅ】
2018005810.tif 000039
【図２７】
2018005810.tif 000040