IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニック株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-09
(45)【発行日】2022-02-18
(54)【発明の名称】ロボット
(51)【国際特許分類】
   G05D 1/02 20200101AFI20220210BHJP
   B25J 5/00 20060101ALN20220210BHJP
【FI】
G05D1/02 H
B25J5/00 Z
【請求項の数】 14
(21)【出願番号】P 2017182234
(22)【出願日】2017-09-22
(65)【公開番号】P2019057203
(43)【公開日】2019-04-11
【審査請求日】2020-08-20
(73)【特許権者】
【識別番号】000005821
【氏名又は名称】パナソニック株式会社
(74)【代理人】
【識別番号】100067828
【弁理士】
【氏名又は名称】小谷 悦司
(74)【代理人】
【識別番号】100115381
【弁理士】
【氏名又は名称】小谷 昌崇
(74)【代理人】
【識別番号】100118049
【弁理士】
【氏名又は名称】西谷 浩治
(72)【発明者】
【氏名】小川 兼人
(72)【発明者】
【氏名】樋口 聖弥
【審査官】稲垣 浩司
(56)【参考文献】
【文献】特表2008-522880(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/12
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
球体の第1側部と前記第1側部に対向する第2側部とをカットした球帯状のメイン筐体と、
前記第1側部に対応する第1球冠部と、
前記第2側部に対応する第2球冠部と、
前記第1球冠部と前記第2球冠部とを連結するシャフトと、
前記シャフトにアームを介して取り付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記メイン筐体の内部に設けられ前記シャフトと直交する重りの軸を中心に回転する重りと、
前記シャフトの回転により前記第1球冠部及び前記第2球冠部を回転させる第1駆動機構と、
前記第1駆動機構から独立し、前記シャフトを中心に前記メイン筐体を回転させる第2駆動機構と、
前記重りの軸回りに前記重りを回転させる重り駆動機構と、
前記第1球冠部又は前記第2球冠部に設けられ前記表示部が向いている側に向けられた距離センサーと、
前記シャフトを含む平面に垂直な軸を中心とする前記ロボットの旋回角度を計測し、また、前記ロボットの揺れを検知するジャイロセンサーと、
メモリと、
制御回路と、を備え、
前記制御回路は、
前記第1駆動機構を制御して、前記距離センサーを、前記シャフトを中心として所定角度ずつ上方向に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第1距離と次に計測された第2距離との差が第1所定値以上である場合は、前記第1距離が計測された時の前記ロボットの旋回角度の方向において前記第1距離先に、走行面より低所に窪んだ段差が有ることを示す情報を前記メモリに記憶し、
前記段差の有る方向に前記メイン筐体を回転させる際、
まず、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を前進させ、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第1側とは異なる第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記段差の有る方向に前記ロボットを旋回させ、
次に、前記段差の有る方向に前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させる、
ロボット。
【請求項2】
前記制御回路は、
前記ジャイロセンサーが検知した前記ロボットの揺れの値が所定期間変動していない場合は、前記ロボットが平面に置かれたと判断し、
前記第2駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記重りの回転を停止させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測する、
請求項1記載のロボット。
【請求項3】
前記制御回路は、
前記距離センサーの光軸の角度を所定の下限値から所定の上限値の範囲で所定角度ずつ前記上方向に増大させる前記光軸の制御を実行し、
前記光軸の制御が終了するまで、前記第1距離と前記第2距離との差が前記第1所定値未満である場合は、前記第1距離が計測された時の前記ロボットの旋回角度の方向には段差が無いことを示す情報を前記メモリに記憶する、
請求項1記載のロボット。
【請求項4】
前記制御回路は、
前記ジャイロセンサーが検知した前記ロボットの揺れの値が所定期間変動していない場合は、前記ロボットが平面に置かれたと判断し、
前記第2駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記重りの回転を停止させ、
前記ロボットの前進及び後進を停止させた状態で前記重りの回転を停止させたときの旋回角度を第1旋回角度とした場合、前記第1旋回角度から所定旋回単位角度をなす次の第2旋回角度まで前記ロボットを旋回させて前記第2旋回角度の方向において段差の有無を判断する際、
まず、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を前進させ、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第1側とは異なる第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記第2旋回角度まで前記ロボットを旋回させ、
次に、前記第1駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測する、
請求項1記載のロボット。
【請求項5】
前記制御回路は、
前記ロボットが平面に置かれたと判断し、前記ロボットの前進及び後進を停止させた状態で前記重りの回転を停止させたときの旋回角度を前記第1旋回角度とした場合、前記ロボットが前記第1旋回角度から360度旋回するまで、前記所定旋回単位角度で前記段差の有無を判断する処理を継続する、
請求項4記載のロボット。
【請求項6】
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記取得された映像に人物が含まれていないと判断し、且つ、前記取得された音に前記人物の音声が含まれていないと判断した場合であって、前記360度のいずれの方向にも前記段差がある場合、
前記ロボットの位置から最も遠い段差の有る方向に、前記ロボットの位置から前記最も遠い段差までの距離より短い距離だけ前記メイン筐体を回転させて前進させる、
請求項5記載のロボット。
【請求項7】
球体の第1側部と前記第1側部に対向する第2側部とをカットした球帯状のメイン筐体と、
前記第1側部に対応する第1球冠部と、
前記第2側部に対応する第2球冠部と、
前記第1球冠部と前記第2球冠部とを連結するシャフトと、
前記シャフトにアームを介して取り付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記メイン筐体の内部に設けられ前記シャフトと直交する重りの軸を中心に回転する重りと、
前記シャフトの回転により前記第1球冠部及び前記第2球冠部を回転させる第1駆動機構と、
前記第1駆動機構から独立し、前記シャフトを中心に前記メイン筐体を回転させる第2駆動機構と、
前記重りの軸を回転させる重り駆動機構と、
前記第1球冠部又は前記第2球冠部に設けられ前記表示部が向いている側に向けられた距離センサーと、
前記シャフトを含む平面に垂直な軸を中心とする前記ロボットの旋回角度を計測し、また、前記ロボットの揺れを検知するジャイロセンサーと、
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、
メモリと、
制御回路と、を備え、
前記制御回路は、
前記カメラにより取得された映像に人物が含まれていると判断された場合、または、前記マイクにより取得された音に前記人物の音声が含まれていると判断された場合は、
まず、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を前進させ、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第1側とは異なる第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記人物が存在する方向に対応する所定の旋回角度まで前記ロボットを旋回させ、
次に、前記第1駆動機構を制御して、前記距離センサーを、前記シャフトを中心として所定角度ずつ上方向に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第1距離と次に計測された第2距離との差が所定値以上である場合は、前記第1距離が計測された時の前記ロボットの旋回角度の方向において前記第1距離先に、走行面より低所に窪んだ段差が有ると判断し、
次に、前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させる、
ロボット。
【請求項8】
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記段差の有る方向に前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させた後、前記カメラにより取得された映像に人物が含まれているかを判断し、または、前記マイクにより取得された音に前記人物の音声が含まれているかを判断し、
前記取得された映像に前記人物が含まれていると判断された場合、または、前記取得された音に前記人物の音声が含まれていると判断された場合、
まず、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を前進させ、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第1側とは異なる第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記人物が存在する方向に対応する所定の旋回角度まで前記ロボットを旋回させ、
次に、前記第1駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第3距離と次に計測された第4距離との差が所定値以上である場合は、前記第3距離が計測された時の前記ロボットの旋回角度の方向において前記第3距離先に、段差が有ると判断し、
次に、前記第3距離より短い距離だけ前記メイン筐体を回転させて前進させる、
請求項1記載のロボット。
【請求項9】
前記制御回路は、
前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させた後所定期間以内に前記マイクから取得された音に、前記人物が前記ロボットに指示する音声が含まれているかを判断し、
前記取得された音に前記人物が前記ロボットに指示する音声が含まれていると判断された場合は、前記指示に対応するタスクを実行する、
請求項7記載のロボット。
【請求項10】
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記360度のいずれの方向にも段差がない場合において、前記取得された映像に人物が含まれていないと判断し、且つ、前記取得された音に前記人物の音声が含まれていないと判断した場合、前記距離センサーを用いて前記メイン筐体を回転させて前進させる方向に障害物があるかを判断し、
前記メイン筐体を回転させて前進させる方向に障害物があると判断した場合、前記ロボットから前記障害物までの距離が第2所定値未満かを判断し、
前記ロボットから前記障害物までの距離が前記第2所定値未満である場合、前記第2駆動機構を制御して前記ロボットを前進させる第1速度より遅い第2速度に減速させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して前記第1側に前記重りを傾けることによって、前記ロボットを第1旋回半径よりも大きい第2旋回半径で旋回させ、
前記第1旋回半径は、前記ロボットが前記第1旋回角度から360度旋回するまで、前記所定旋回単位角度で前記段差の有無を判断する処理を行ったときの前記ロボットの旋回半径である、
請求項5記載のロボット。
【請求項11】
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記360度のいずれの方向にも段差がない場合において、前記取得された映像に人物が含まれていると判断し、または、前記取得された音に前記人物の音声が含まれていると判断した場合、
前記人物が存在する方向に、前記第2駆動機構を制御して前記ロボットを前進させる第1速度で前記ロボットを前進させる、
請求項5記載のロボット。
【請求項12】
前記制御回路は、
前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させた後所定期間以内に前記マイクから取得された音に、前記人物が前記ロボットに指示する音声が含まれているかを判断し、
前記取得された音に前記人物が前記ロボットに指示する音声が含まれていると判断された場合は、前記指示に対応するタスクを実行する、
請求項11記載のロボット。
【請求項13】
前記制御回路は、
前記メイン筐体の回転を停止させる停止制御量に従って前記第2駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で第1回転制御量に従って前記重り駆動機構を制御して前記第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記メイン筐体を回転させる第1加速制御量に従って前記第2駆動機構を制御して前記ロボットを前進させ、前記第2駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記第1回転制御量と逆方向の制御量である第2回転制御量に従って前記重り駆動機構を制御して前記表示部が向いている方向に対して前記第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第1加速制御量と同一制御量の第2加速制御量に従って前記第2駆動機構を制御して前記ロボットを後進させる、
請求項1記載のロボット。
【請求項14】
前記制御回路は、
前記第2速度で前記ロボットを前進させる減速制御量に従って前記第2駆動機構を制御して前記ロボットを前進させ、
第1回転制御量に従って前記重り駆動機構を制御して前記第1側に前記重りを傾け、
前記第1回転制御量は、前記メイン筐体の回転を停止させる停止制御量に従って前記第2駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記第1側に前記重りを傾ける回転制御量である、
請求項10記載のロボット。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットに関する。
【背景技術】
【0002】
特許文献1は、走行方向前方にある測距対象物までの距離を測距する測距センサーを用いて、走行面よりも下にある凹みを検出し、検出した凹みに侵入しないようにロボットを制御する技術を開示する。
【0003】
特許文献2は、自律移動装置の落下を防止するために、気圧センサーで計測された計測データと基準気圧との差から算出した自律移動装置と床面との高度差、又は自律移動装置を床面から持ち上げたときの加速度センサーの計測データを二重積分することで算出した高度差を自律移動装置と床面との高度差として取得し、取得した高度差が所定値以上であれば、自律移動装置をその場でのみ回転させる技術を開示する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2014-21625号公報
【文献】特開2017-102538号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上記従来技術は更なる改良が必要であった。
【課題を解決するための手段】
【0006】
本開示の一態様に係るロボットは、球体の第1側部と前記第1側部に対向する第2側部とをカットした球帯状のメイン筐体と、
前記第1側部に対応する第1球冠部と、
前記第2側部に対応する第2球冠部と、
前記第1球冠部と前記第2球冠部とを連結するシャフトと、
前記シャフトにアームを介して取り付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記メイン筐体の内部に設けられ前記シャフトと直交する重りの軸を中心に回転する重りと、
前記シャフトの回転により前記第1球冠部及び前記第2球冠部を回転させる第1駆動機構と、
前記第1駆動機構から独立し、前記シャフトを中心に前記メイン筐体を回転させる第2駆動機構と、
前記重りの軸回りに前記重りを回転させる重り駆動機構と、
前記第1球冠部又は前記第2球冠部に設けられ前記表示部が向いている側に向けられた距離センサーと、
前記シャフトを含む平面に垂直な軸を中心とする前記ロボットの旋回角度を計測し、また、前記ロボットの揺れを検知するジャイロセンサーと、
メモリと、
制御回路と、を備え、
前記制御回路は、
前記第1駆動機構を制御して、前記距離センサーを、前記シャフトを中心として所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第1距離と次に計測された第2距離との差が第1所定値以上である場合は、前記第1距離が計測された時の前記ロボットの旋回角度の方向において前記第1距離先に、段差が有ることを示す情報を前記メモリに記憶し、
前記段差の有る方向に前記メイン筐体を回転させる際、
まず、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を前進させ、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第1側とは異なる第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記段差の有る方向に前記ロボットを旋回させ、
次に、前記段差の有る方向に前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させる、ものである。
【発明の効果】
【0007】
本開示によれば更なる改善を図ることができる。
【図面の簡単な説明】
【0008】
図1A】本開示の実施の形態に係るロボットの外観斜視図である。
図1B】本開示の実施の形態に係るロボットの外観正面図である。
図2】本開示の実施の形態に係るロボットの内部斜視図である。
図3】本開示の実施の形態に係るロボットの内部背面図である。
図4】本開示の実施の形態に係るロボットの第1球冠部及び第2球冠部の連結状態を示す内部背面図である。
図5図3におけるロボットのAA断面図である。
図6A図3のB視におけるロボットの内部側面図である。
図6B図3のB視における、本開示の実施の形態に係るロボットの第1表示部、第2表示部、及び第3表示部が後方に傾いた状態を示す内部側面図である。
図6C図3のB視における、本開示の実施の形態に係るロボットの第1表示部、第2表示部、及び第3表示部が前方に傾いた状態を示す内部側面図である。
図7A図3のC視における、本開示の実施の形態に係るロボットの第2駆動機構を示す側面図である。
図7B図3のC視におけるロボットの直進動作を表す側面図である。
図8A図3において、ロボットの重りが左方寄りに位置しているときのロボットの姿勢を示す内部背面図である。
図8B図3において、ロボットの重りが右方寄りに位置しているときのロボットの姿勢を示す内部背面図である。
図9】メイン筐体が図7Bに示す矢印136の方向に回転を始めるまでのロボットの姿勢を示す図である。
図10】本開示の実施の形態に係るロボットが適用されたロボットシステムの全体構成の一例を示す図である。
図11】本開示の実施の形態に係るロボットを示すブロック図である。
図12】本開示の実施の形態に係るロボットが採用する段差検知処理を説明する模式図である。
図13】段差情報テーブルを作成する際のロボットの動作を示す図である。
図14】段差情報テーブルのデータ構成の一例を示す図である。
図15】その場旋回処理を実行したときのロボットの状態を示す図である。
図16】周囲に存在する人物が検知されなかった場合において、ロボットの進行方向が決定される処理を説明する図である。
図17】周囲に存在する人物が検知された場合において、ロボットの進行方向が決定される処理を説明する図である。
図18】本開示の実施の形態に係るロボットの処理を示すフローチャートである。
図19図18において周囲に段差がないと判定されたときの(S104でNO)続きのフローチャートである。
図20図18において人物が検知されたときの(S105でYES)続きのフローチャートである。
図21】段差検知処理の詳細を示すフローチャートである。
図22】その場旋回処理の詳細を示すフローチャートである。
図23】進行方向決定処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【0009】
(本開示にかかる一態様を発明するに至った経緯)
まず、本発明者は、球体状の筐体を備え、この筐体を回転させることで家庭内等の室内で自律的に移動する球体ロボットを検討している。
【0010】
このような、球体ロボットは、机等の高所に置かれた場合、高所から落下して故障する危険性があるので、高所からの落下を未然に防ぐ必要がある。そのためには、球体ロボットは、走行面からの高低差が急激に変化する段差を検出し、段差を避けて走行する必要がある。
【0011】
ここで、段差からの落下を防止するために、段差の方向に球体ロボットを移動させることを一律に禁止してしまうと、机のようや周囲が全て段差で取り囲まれているような高所において球体ロボットを移動させることができないという問題が生じる。
【0012】
球体ロボットを、常時、移動させると、ロボットをペットのように振る舞わせることができ、ユーザに対する球体ロボットへの愛着が増すと考えられる。したがって、球体ロボットの自律的な移動は可能な限り制限しない方がよい。そのためには、周囲が段差で取り囲まれている場合であっても、極力危険性の低い方位に球体ロボットを旋回させ、その方向に走行させる必要がある。
【0013】
本発明者が研究対象とする球体ロボットは、一対の球冠部と、一対の球冠部を連結するシャフトと、シャフトに取り付けられた表示部と、シャフト回りに回転可能に取り付けられたメイン筐体とを備え、メイン筐体をシャフト回りに回転させることで、地面に対して走行するように構成されている。一方、球体ロボットは、シャフトを回転させると、それと連動して表示部及び一対の球冠部がピッチ方向に連動して回転する。これにより、球体ロボットは、表示部のシャフト回りの向きを変更させることが可能となる。ここで、一対の球冠部には、球体ロボットの正面に存在する物体までの距離を計測する距離センサーが設けられている。また、表示部にはロボットの表情を示す目及び口の画像が表示される。そのため、球体ロボットは、一対の球冠部をシャフト回りに回転させることで、目及び口の画像の方向及び距離センサーの光軸の方向を変更することができる。
【0014】
そこで、本発明者は、ある場所で球体ロボットを静止させた状態で、シャフト回りに距離センサーの光軸の方向を変化させながら、距離センサーの計測値をモニタすると、段差がある箇所では、距離センサーの計測値に急激な変化が現れるとの知見を得た。例えば、距離センサーの光軸を床面に向け、シャフト回りの角度を徐々に増大させていくと、段差のある箇所までは距離センサーの計測値は徐々に増大していくが、段差のある箇所に到達すると、距離センサーの計測値はそれまでの測定値に対して急激に増大するとの知見を得た。
【0015】
特許文献1は、測距センサーを用いて凹みを検出する技術を開示するが、測距センサーは、清掃ロボットが清掃対象とする床面から垂直に所定距離離間した位置に配置され、且つ、水平よりも下向きに取り付けられているとの記載があるに留まり、光軸がピッチ方向に変更可能に取り付けられているとの記載はない。また、特許文献1は、測距センサーの座標値と床面の方程式とを用いて凹みを検出しているため、複雑な演算が必要であり、処理ステップが嵩むという課題がある。
【0016】
特許文献2は、加速度センサー又は気圧センサーにより高度差を検出しており、距離センサーについての開示はないので、距離センサーの光軸をピッチ方向に回転させて高度差を検出するとの技術思想はない。
【0017】
以上により、特許文献1,2には、本発明者の知見は何ら考慮されていない。
【0018】
本開示は、球冠部をピッチ方向に回転させることに連動して距離センサーの光軸を変更させることができるという球体ロボットの特性を利用して段差を検出し、検出した段差に球体ロボットが落下しないように、球体ロボットを走行させる技術を提供することである。
【0019】
(1)本開示の一態様にかかるロボットは、球体の第1側部と前記第1側部に対向する第2側部とをカットした球帯状のメイン筐体と、
前記第1側部に対応する第1球冠部と、
前記第2側部に対応する第2球冠部と、
前記第1球冠部と前記第2球冠部とを連結するシャフトと、
前記シャフトにアームを介して取り付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記メイン筐体の内部に設けられ前記シャフトと直交する重りの軸を中心に回転する重りと、
前記シャフトの回転により前記第1球冠部及び前記第2球冠部を回転させる第1駆動機構と、
前記第1駆動機構から独立し、前記シャフトを中心に前記メイン筐体を回転させる第2駆動機構と、
前記重りの軸回りに前記重りを回転させる重り駆動機構と、
前記第1球冠部又は前記第2球冠部に設けられ前記表示部が向いている側に向けられた距離センサーと、
前記シャフトを含む平面に垂直な軸を中心とする前記ロボットの旋回角度を計測し、また、前記ロボットの揺れを検知するジャイロセンサーと、
メモリと、
制御回路と、を備え、
前記制御回路は、
前記第1駆動機構を制御して、前記距離センサーを、前記シャフトを中心として所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第1距離と次に計測された第2距離との差が第1所定値以上である場合は、前記第1距離が計測された時の前記ロボットの旋回角度の方向において前記第1距離先に、段差が有ることを示す情報を前記メモリに記憶し、
前記段差の有る方向に前記メイン筐体を回転させる際、
まず、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を前進させ、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第1側とは異なる第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記段差の有る方向に前記ロボットを旋回させ、
次に、前記段差の有る方向に前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させる、ものである。
【0020】
本態様によれば、距離センサーが所定角度ずつ回転する毎に表示部が向いている側に存在する物体までの距離が計測され、先に計測された第1距離と次に計測された第2距離との差が第1所定値以上である場合は、第1距離が計測された時のロボットの旋回角度の方向において第1距離先に、段差が有ることを示す情報がメモリに記憶される。
【0021】
そのため、本態様は、球冠部をピッチ方向に回転させることに連動して距離センサーの光軸を変更させることができるという球体ロボットの特性を利用して段差を検出することができる。
【0022】
また、本態様は、段差の有る方向に前記メイン筐体を回転させる際、メイン筐体の回転を停止させた状態で重り駆動機構を制御して表示部が向いている方向に対して右側又は左側の第1側に前記重りを傾け、第1側に前記重りを傾けた状態で第2駆動機構を制御してメイン筐体を前進させ、且つ、メイン筐体の回転を停止させた状態で第1側とは異なる第2側に重りを傾け、第2側に重りを傾けた状態で第2駆動機構を制御してメイン筐体を後進させる動作を所定回数繰り返して、段差の有る方向にロボットを旋回させる。
【0023】
そのため、本態様は、通常の旋回時よりも小さな旋回半径でロボットを旋回させて、ロボットを段差の有る方向に向けることができる。その結果、本態様は、例えば、机の角というようなロボットが落下する危険性の高い箇所であっても、小さな旋回半径でロボットを旋回させて、旋回時にロボットが落下することを防止できる。以下、この旋回半径の小さな旋回をその場旋回と呼び、その処理をその場旋回処理と呼ぶ。
【0024】
更に、本態様は、段差の有る方向にロボットを移動させる際、段差までの距離である第1距離より短い距離だけメイン筐体を回転させて前進させるため、移動先の前方に有る段差からロボットが落下することを防止できる。
【0025】
(2)上記態様において、前記制御回路は、
前記ジャイロセンサーが検知した前記ロボットの揺れの値が所定期間変動していない場合は、前記ロボットが平面に置かれたと判断し、
前記第2駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記重りの回転を停止させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測してもよい。
【0026】
本態様によれば、ロボットが平面に置かれると、ロボットの前進及び後進を停止させた状態で重りの回転が停止される。これにより、ロボットは、左又は右に傾いていない通常時の姿勢に戻された状態で停止した状態となる。本態様は、この状態において、距離センサーが所定角度ずつ回転する毎に表示部が向いている側に存在する物体までの距離を計測するので、段差の計測を正確に行うことができる。
【0027】
(3)上記態様において、前記制御回路は、
前記第1距離と前記第2距離との差が前記第1所定値未満である場合は、前記第1距離が計測された時の前記ロボットの旋回角度の方向には段差が無いことを示す情報を前記メモリに記憶させてもよい。
【0028】
本態様によれば、第1距離と第2距離との差が第1所定値未満である場合は、第1距離が計測された時のロボットの旋回角度の方向には段差が無いことを示す情報がメモリに記憶されるので、該当する旋回角度の方向には段差がないものとしてロボットに管理させることができる。
【0029】
(4)上記態様において、前記制御回路は、
前記ジャイロセンサーが検知した前記ロボットの揺れの値が所定期間変動していない場合は、前記ロボットが平面に置かれたと判断し、
前記第2駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記重りの回転を停止させ、
前記ロボットの前進及び後進を停止させた状態で前記重りの回転を停止させたときの旋回角度を第1旋回角度とした場合、前記第1旋回角度から所定旋回単位角度をなす次の第2旋回角度まで前記ロボットを旋回させて前記第2旋回角度の方向において段差の有無を判断する際、
まず、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を前進させ、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第1側とは異なる第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記第2旋回角度まで前記ロボットを旋回させ、
次に、前記第1駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測してもよい。
【0030】
本態様によれば、ロボットが平面に置かれると、ロボットは、姿勢が通常時の状態に戻された上で停止された状態になる。そして、その場旋回処理が繰り返されて、ロボットは第1旋回角度から第2旋回角度まで旋回される。そして、第2旋回角度の方向において、距離センサーが所定角度ずつ回転する毎に距離計測が行われ、段差の有無が検出される。
【0031】
そのため、本態様は、第1旋回方向のみならず第2旋回方向においても段差の有無及び段差までの距離を検出し、ロボットに管理させることができる。また、本態様は、複数の第2旋回方向における段差の有無及び段差までの距離を検出することで、複数の方位における段差の有無及び段差までの距離を検出し、ロボットに管理させることができる。
【0032】
(5)上記態様において、前記制御回路は、
前記ロボットが平面に置かれたと判断し、前記ロボットの前進及び後進を停止させた状態で前記重りの回転を停止させたときの旋回角度を前記第1旋回角度とした場合、前記ロボットが前記第1旋回角度から360度旋回するまで、前記所定旋回単位角度で前記段差の有無を判断する処理を継続してもよい。
【0033】
本態様によれば、ロボットが平面に置かれると、第1旋回角度から360度旋回するまで、所定角度単位で段差の有無を判断する処理が継続されるので、ロボットを中心に360度の範囲における段差の有無を判断し、ロボットに管理させることができる。
【0034】
(6)上記態様において、前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記取得された映像に人物が含まれていないと判断し、且つ、前記取得された音に前記人物の音声が含まれていないと判断した場合であって、前記360度のいずれの方向にも前記段差がある場合、
前記ロボットの位置から最も遠い段差の有る方向に、前記ロボットの位置から前記最も遠い段差までの距離より短い距離だけ前記メイン筐体を回転させて前進させてもよい。
【0035】
ロボットの周囲に人物がいなければ、人物の方向を考慮せずに、ロボットを最も落下の可能性が低い方向に移動させるのがよいと考えられる。本態様では、カメラ及びマイクを用いてロボットの周囲に人物がいないと判断された場合であって、ロボットを中心に360度のいずれの方向にも段差があると判断された場合、ロボットの位置から最も遠い段差の方向に対して、段差までの距離よりも短い距離だけロボットが移動される。そのため、可能な限りロボットの移動距離を確保しつつロボットの段差からの落下を防止できる。
【0036】
(7)本開示の更に別の一態様は、球体の第1側部と前記第1側部に対向する第2側部とをカットした球帯状のメイン筐体と、
前記第1側部に対応する第1球冠部と、
前記第2側部に対応する第2球冠部と、
前記第1球冠部と前記第2球冠部とを連結するシャフトと、
前記シャフトにアームを介して取り付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記メイン筐体の内部に設けられ前記シャフトと直交する重りの軸を中心に回転する重りと、
前記シャフトの回転により前記第1球冠部及び前記第2球冠部を回転させる第1駆動機構と、
前記第1駆動機構から独立し、前記シャフトを中心に前記メイン筐体を回転させる第2駆動機構と、
前記重りの軸を回転させる重り駆動機構と、
前記第1球冠部又は前記第2球冠部に設けられ前記表示部が向いている側に向けられた距離センサーと、
前記シャフトを含む平面に垂直な軸を中心とする前記ロボットの旋回角度を計測し、また、前記ロボットの揺れを検知するジャイロセンサーと、
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、
メモリと、
制御回路と、を備え、
前記制御回路は、
前記カメラにより取得された映像に人物が含まれていると判断された場合、または、前記マイクにより取得された音に前記人物の音声が含まれていると判断された場合は、
まず、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を前進させ、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第1側とは異なる第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記人物が存在する方向に対応する所定の旋回角度まで前記ロボットを旋回させ、
次に、前記第1駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第1距離と次に計測された第2距離との差が所定値以上である場合は、前記第1距離が計測された時の前記ロボットの旋回角度の方向において前記第1距離先に、段差が有ると判断し、
次に、前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させる、ものである。
【0037】
本態様によれば、カメラ及びマイクのいずれか1又は複数を用いて、周囲に人物の存在有無が判断される。そして、本態様では、周囲に人物が存在することが判断された場合、その場旋回処理によって人物が存在する方向にロボットが旋回され、距離センサーが所定角度ずつ回転されることで段差の有無と段差までの距離とが検出され、検出された段差までの距離より短い距離だけロボットが移動される。
【0038】
そのため、本態様はロボットが段差から落下することを回避しつつ、人物に向けてロボットを移動させることができる。
【0039】
(8)上記態様において、前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記段差の有る方向に前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させた後、前記カメラにより取得された映像に人物が含まれているかを判断し、または、前記マイクにより取得された音に前記人物の音声が含まれているかを判断し、
前記取得された映像に前記人物が含まれていると判断された場合、または、前記取得された音に前記人物の音声が含まれていると判断された場合、
まず、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を前進させ、前記第2駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第1側とは異なる第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第2駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記人物が存在する方向に対応する所定の旋回角度まで前記ロボットを旋回させ、
次に、前記第1駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第3距離と次に計測された第4距離との差が所定値以上である場合は、前記第3距離が計測された時の前記ロボットの旋回角度の方向において前記第3距離先に、段差が有ると判断し、
次に、前記第3距離より短い距離だけ前記メイン筐体を回転させて前進させてもよい。
【0040】
本態様では、ロボットを段差の有る方向に第1距離より短い距離だけ移動させた後、カメラ及びマイクのいずれか1又は複数を用いて、周囲に存在する人物の有無が判断される。そして、人物が存在する判断されると、本態様では、その場旋回処理によって人物が存在する方向にロボットが旋回され、距離センサーが所定角度ずつ回転されることで段差の有無と段差までの距離とが検出され、検出された段差までの距離より短い距離だけロボットが移動される。
【0041】
そのため、本態様は、ロボットが段差から落下することを回避しつつ、人物に向けてロボットを移動させることができる。
【0042】
(9)上記態様において、前記制御回路は、
前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させた後所定期間以内に前記マイクから取得された音に、前記人物が前記ロボットに指示する音声が含まれているかを判断し、
前記取得された音に前記人物が前記ロボットに指示する音声が含まれていると判断された場合は、前記指示に対応するタスクを実行してもよい。
【0043】
本態様によれば、人物に向けてロボットを移動させた後、所定期間以内に人物がロボットに指示する音声を発話した場合、その指示に対応するタスクが実行される。そのため、本態様は、人物がロボットに対してタスクの実行を指示しているにも拘わらず、その指示を無視してロボットが走行を継続するような事態を回避できる。
【0044】
(10)上記態様において、前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記360度のいずれの方向にも段差がない場合において、前記取得された映像に人物が含まれていないと判断し、且つ、前記取得された音に前記人物の音声が含まれていないと判断した場合、前記距離センサーを用いて前記メイン筐体を回転させて前進させる方向に障害物があるかを判断し、
前記メイン筐体を回転させて前進させる方向に障害物があると判断した場合、前記ロボットから前記障害物までの距離が第2所定値未満かを判断し、
前記ロボットから前記障害物までの距離が前記第2所定値未満である場合、前記第2駆動機構を制御して前記ロボットを前進させる第1速度より遅い第2速度に減速させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して前記第1側に前記重りを傾けることによって、前記ロボットを第1旋回半径よりも大きい第2旋回半径で旋回させ、
前記第1旋回半径は、前記ロボットが前記第1旋回角度から360度旋回するまで、前記所定旋回角度単位で前記段差の有無を判断する処理を行ったときの前記ロボットの旋回半径であってもよい。
【0045】
本態様によれば、ロボットの周囲360度のいずれの方向にも段差がなく、且つ、周囲に人物も存在しなかった場合、前方に障害物が存在するか否かが判断される。そして、本態様では、前方に障害物が存在すると判断された場合、ロボットが前進するときの速度である第1速度よりも遅い第2速度に減速された状態で重りが第1側に傾けられる。これにより、ロボットは、その場旋回のときの第1旋回半径よりも大きな第2旋回半径で障害物を迂回することができる。また、ロボットは、第1速度よりも遅い第2速度で障害物を迂回するため、旋回半径が過大になることを防止できる。
【0046】
(11)上記態様において、前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記360度のいずれの方向にも段差がない場合において、前記取得された映像に人物が含まれていると判断し、または、前記取得された音に前記人物の音声が含まれていると判断した場合、
前記人物が存在する方向に、前記第2駆動機構を制御して前記ロボットを前進させる第1速度で前記ロボットを前進させてもよい。
【0047】
本態様によれば、周囲360度の方向に段差はないが人物が存在する状況下では、人物が存在する方向にロボットを走行させることができ、例えば、ロボットが人物になついているような演出を醸し出すことができる。
【0048】
(12)上記態様において、前記制御回路は、
前記第1距離より短い距離だけ前記メイン筐体を回転させて前進させた後所定期間以内に前記マイクから取得された音に、前記人物が前記ロボットに指示する音声が含まれているかを判断し、
前記取得された音に前記人物が前記ロボットに指示する音声が含まれていると判断された場合は、前記指示に対応するタスクを実行してもよい。
【0049】
本態様によれば、人物に向けてロボットを移動させた後、所定期間以内に人物がロボットに指示する音声を発話した場合、その指示に対応するタスクが実行される。そのため、本態様は、人物がロボットに対してタスクの実行を指示しているにも拘わらず、その指示を無視してロボットが走行を継続するような事態を回避できる。
【0050】
(13)上記態様において、前記制御回路は、
前記メイン筐体の回転を停止させる停止制御量に従って前記第2駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で第1回転制御量に従って前記重り駆動機構を制御して前記第1側に前記重りを傾け、前記第1側に前記重りを傾けた状態で前記メイン筐体を回転させる第1加速制御量に従って前記第2駆動機構を制御して前記ロボットを前進させ、前記第2駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記第1回転制御量と逆方向の制御量である第2回転制御量に従って前記重り駆動機構を制御して前記表示部が向いている方向に対して前記第2側に前記重りを傾け、前記第2側に前記重りを傾けた状態で前記第1加速制御量と同一制御量の第2加速制御量に従って前記第2駆動機構を制御して前記ロボットを後進させてもよい。
【0051】
本態様は、その場旋回処理の一例である。
【0052】
(14)上記態様において、前記制御回路は、
前記第2速度で前記ロボットを前進させる減速制御量に従って前記第2駆動機構を制御して前記ロボットを前進させ、
第1回転制御量に従って前記重り駆動機構を制御して前記第1側に前記重りを傾け、
前記第1回転制御量は、前記メイン筐体の回転を停止させる停止制御量に従って前記第2駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記第1側に前記重りを傾ける回転制御量であってもよい。
【0053】
本態様は、ロボットを第1側に旋回走行させるときの制御の一例である。
【0054】
(実施の形態)
以下、本発明の各実施の形態について、図面を参照しながら説明する。尚、各図面において、同じ構成要素については同じ符号が用いられている。
【0055】
(全体構成)
図1Aは、本開示の実施の形態に係るロボット1の外観斜視図である。図1Bは、本開示の実施の形態に係るロボット1の外観正面図である。ロボット1は、図1A、及び図1Bに示すように、球帯状のメイン筐体101、第1球冠部102、及び第2球冠部103を備える。メイン筐体101、第1球冠部102、及び第2球冠部103は全体として球体を構成する。即ち、ロボット1は、球体形状を有する。また、ロボット1は、図1Aに示すように、第1球冠部102にカメラ104を備え、第2球冠部103に距離センサー105を備える。カメラ104は、光軸が例えばロボット1の正面を向くように第1球冠部102に設けられ、ロボット1の周辺環境の映像を取得する。また、距離センサー105は、光軸が例えばロボット1の正面を向くように第2球冠部103に取り付けられ、ロボット1の前方に位置する物体までの距離情報を取得する。
【0056】
また、ロボット1は、図1Aに示すように、第1球冠部102にマイク106とスピーカ107とを備える。マイク106は、ロボット1の周辺環境の音を取得する。また、スピーカ107は、ロボット1の音声情報を出力する。尚、本態様において、ロボット1は、第1球冠部102にカメラ104を、第2球冠部103に距離センサー105を備えるが、これに限られるものではなく、第1球冠部102、及び第2球冠部103の少なくともいずれか一方にカメラ104と距離センサー105とを備えればよい。本態様では、ロボット1は、第1球冠部102にマイク106とスピーカ107とを備えるが、これに限られるものではなく、第1球冠部102及び第2球冠部103の少なくともいずれか一方にマイク106とスピーカ107とを備えればよい。
【0057】
図2は、本開示の実施の形態に係るロボット1の内部斜視図である。図2に示すように、ロボット1は、メイン筐体101の内部に、第1表示部108、第2表示部109、及び第3表示部110を備える。第1表示部108、第2表示部109、及び第3表示部110は、固定板金111に備え付けられている。また、固定板金111は、第1アーム112及び第2アーム113を介してシャフト115(図3)に取り付けられている。図3は、本開示の実施の形態に係るロボット1の内部背面図である。図3に示すように第1アーム112及び第2アーム113は、シャフト115と直交する方向にシャフト115からロボット1の正面に延びるようにシャフト115に取り付けられている。第1表示部108、第2表示部109、及び第3表示部110は、例えば、複数の発光ダイオードにより構成される。第1表示部108、第2表示部109、及び第3表示部110は、ロボット1の表情の表示情報を表示する。具体的には、第1表示部108、第2表示部109、及び第3表示部110は、前記複数の発光ダイオードの点灯を個別に制御することにより、図1A及び図1Bに示すように、ロボット1の顔の一部、例えば、目や口を表示する。図2の例では、第1表示部108がロボット1を正面から見て左目の画像を表示し、第2表示部109がロボット1を正面から見て右目の画像を表示し、第3表示部110が口の画像を表示している。そして、左目、右目、口の画像は、透明又は半透明の部材からなるメイン筐体101を透過し、外部に放射されている。
【0058】
なお、第1アーム112及び第2アーム113はロボット1の正面に延びるようにシャフト115に取り付けられている。そのため、第1表示部108及び第2表示部109が向いている方向、すなわち、表示部が向いている方向は正面方向に相当する。
【0059】
図3に示すように、ロボット1は、メイン筐体101の内部の下方に重り114を備える。このため、ロボット1の重心は、メイン筐体101の中心から下方に位置する。これにより、ロボット1の動作を安定させることができる。また、図3は、シャフト115を回転させる第1駆動機構203(図11)、メイン筐体101を回転させる第2駆動機構204(図11)、及びロボット1の重心を移動させる重り駆動機構205(図11)を示す図である。
【0060】
図3において、シャフト115は、ロボット1の中心に位置し、ロボット1の中心軸となる。図4は、本開示の実施の形態に係るロボットの第1球冠部102及び第2球冠部103の連結状態を示す内部背面図である。図4において、第1球冠部102及び第2球冠部103はシャフト115によって連結されている。一方、シャフト115とメイン筐体101は固定されていない。従って、シャフト115を回転させると、シャフト115に連結された第1球冠部102及び第2球冠部103は、シャフト115に同期して回転するが、メイン筐体101は回転しない。
【0061】
また、図3において、第2駆動機構204(図11)は、メイン筐体101に固定された第1ギア116、第1ギア116と噛み合う第2ギア117、第2ギア117に連結された第1モータ118、及び第1モータ118を固定するフレーム119を備える。フレーム119はシャフト115に吊り下げられているため、シャフト115が回転することがあっても、フレーム119は回転しない。また、フレーム119は、フレーム119の回転量を検出するジャイロセンサー155を備える。尚、本態様において、第1ギア116の中心とシャフト115の中心とは一致している。第2駆動機構204(図11)の動作の詳細は後述する。
【0062】
次に重り駆動機構205(図11)について図3、及び図5を用いて説明する。図5は、図3におけるロボット1のAA断面図である。なお、AA断面とは、B視(又はC視)と直交する平面であって、ロボット1の中心を通る平面でロボット1を切断したときの断面である。
【0063】
図3及び図5に示すように、重り駆動機構205(図11)は、重り114の一端を支持する第3アーム123、重り114の他端を支持する第4アーム124、及び第4アーム124に連結された第3モータ125を備える。尚、本態様においては、重り駆動機構205(図11)は、フレーム119に対して回転自由な状態で取り付けられている。従って、第3モータ125を駆動しても、それに連動してフレーム119は回転しない。
【0064】
詳細には、第3アーム123は、上端に重り軸123aが取り付けられ、重り軸123aを介して、フレーム119に回転自由に取り付けられている。第4アーム124は上端に重り軸124aが取り付けられ、重り軸124aを介して、フレーム119に回転自由に取り付けられている。
【0065】
重り軸123a及び重り軸124aは、シャフト115を通る鉛直面に対して直交するようにフレーム119に対して一直線上に取り付けられている。
【0066】
より詳細には、重り軸123aは、シャフト115側の一端がフレーム119に形成された孔に回転自由に挿入されている。重り軸124aは、シャフト115側の一端がフレーム119に形成された孔に回転自由に挿入され、第3モータ125と連結されている。重り114は、例えば円筒状であり、長手方向が重り軸123a及び重り軸124aと平行になるように第3アーム123の下端と第4アーム124の下端とにより挟持されている。これにより、重り114は、重り軸123a,124a回り、すなわち、ロール軸回りに回転可能となるように、フレーム119に取り付けられている。重り駆動機構205(図11)の動作の詳細は後述する。
【0067】
次に、第1駆動機構203(図11)について図3及び図6Aを用いて説明する。図6Aは、図3のB視におけるロボット1の内部側面図である。なお、B視は、背面から正面を見て左方向からロボット1の側面を見た方向を指す。また、C視は、背面から正面を見て右方向からロボット1の側面を見た方向を指す。図3及び図6Aに示すように、第1駆動機構203(図11)は、フレーム119に固定された第2モータ121、第2モータ121と連結された第3ギア126、第3ギア126とシャフト115に固定された第4ギア127とを同期させる駆動ベルト122を備える。第1駆動機構203(図11)の動作の詳細は後述する。
【0068】
ロボット1は、図3に図示しないが、制御回路200(図11)、を備える。制御回路200は、ロボット1の各種動作を制御する。制御回路200(図11)の詳細は後述する。
【0069】
次に第1駆動機構203(図11)の動作の詳細について図6A図6B、及び図6Cを参照して説明する。
【0070】
図6Bは、図3のB視における、本開示の実施の形態に係るロボット1の第1表示部108、第2表示部109、及び第3表示部110が上方に傾いた状態を示す内部側面図である。図6Cは、図3のB視における、本開示の実施の形態に係るロボット1の第1表示部108、第2表示部109、及び第3表示部110が下方に傾いた状態を示す内部側面図である。
【0071】
図6Aに示すように、第1表示部108、第2表示部109、及び第3表示部110は、デフォルト位置において、ロボット1の正面を向いている。第2モータ121(図3)を駆動すると、第2モータ121に連結された第3ギア126が回転する。その動力が駆動ベルト122を介して第4ギア127に伝達され、第4ギア127が固定されたシャフト115は第2モータ121の駆動に同期して回転する。ここで、図2に示すように、固定板金111は、第1アーム112及び第2アーム113を介してシャフト115に連結されている。また、第1球冠部102及び第2球冠部103はシャフト115により連結されている(図4)。このため、シャフト115の回転、即ち、第1球冠部102及び第2球冠部103の回転により、固定板金111に備え付けえられた第1表示部108、第2表示部109、及び第3表示部110もシャフト115に連動して回転する。
【0072】
図6Bに示すように、上述のデフォルト位置から、矢印128及び矢印129に示す方向にシャフト115を回転させると、第1表示部108、第2表示部109(図2)及び第3表示部110は、矢印130が示す上方に傾く。ここで、矢印128及び129に示す方向は、B視(図3)において、シャフト115回りに時計回りの方向を指す。矢印130が示す上方とは、B視(図3)において、シャフト115回りに時計回りの方向を指す。
【0073】
また、図6Bに図示していないが、シャフト115と同期して回転する第1球冠部102(図1B)及び第2球冠部103(図1B)も同様に矢印130が示す上方に傾く。即ち、第1球冠部102(図1B)及び第2球冠部103(図1B)に備え付けられたカメラ104及び距離センサー105の光軸も矢印130が示す上方に傾く。
【0074】
一方、図6Cに示すように、上述のデフォルト位置から、矢印131に示す第3ギア126回りに反時計回りの方向及び矢印132に示す第4ギア127回りに反時計回りの方向にシャフト115を回転させると、第1表示部108、第2表示部109(図2)及び第3表示部110は、矢印133が示すように下方に傾く。ここで、矢印133が示す下方とは、B視(図3)において、シャフト115回りに反時計回りの方向を指す。また、図6Cに図示していないが、シャフト115と同期して回転する第1球冠部102(図1B)及び第2球冠部103(図1B)も同様に矢印133が示す下方に傾く。即ち、第1球冠部102(図1B)及び第2球冠部103(図1B)に備え付けられたカメラ104及び距離センサー105の光軸も矢印133が示す下方に傾く。
【0075】
次に第2駆動機構204(図11)の動作の詳細について図7A、及び図7Bを参照して説明する。
【0076】
図7Aは、図3のC視における、本開示の実施の形態に係るロボット1の第2駆動機構204(図11)を示す側面図である。図7Bは、図3のC視におけるロボット1の直進動作を表す側面図である。
【0077】
図7Aにおいて、第1モータ118(図3)を駆動すると、第1モータ118に連結された第2ギア117が回転する。そして、その動力が第2ギア117に噛み合う第1ギア116に伝達される。これにより、第1ギア116が固定されたメイン筐体101は第1モータ118の駆動に同期して回転する。
【0078】
図7Bにおいて、第1モータ118(図3)を矢印134の方向に回転させると、第2ギア117に噛み合う第1ギア116は矢印135の方向に回転する。ここで、矢印134の方向はC視(図3)において第2ギア117回りに時計回りの方向を指す。また、矢印135の方向は、C視(図3)においてシャフト115回りに反時計回りの方向を指す。そして、第1ギア116が固定されたメイン筐体101は矢印136の方向に回転する。ここで、矢印136の方向は、C視(図3)においてシャフト115回りに反時計回りの方向を指す。これにより、ロボット1は前進する。また、矢印134とは逆方向に第1モータ118を回転させると、メイン筐体101は矢印136の方向に対して反対回りの方向に回転するので、ロボット1は後進する。このように、ロボット1は、第2駆動機構204(図11)において、第1モータ118の回転方向を切り替えることにより、前後のいずれの方向にも移動できる。
【0079】
次に、重り駆動機構205(図11)の動作の詳細について図8A及び図8Bを参照して説明する。
【0080】
図8Aは、図3において、ロボット1の重り114が左方寄りに位置しているときのロボット1の姿勢を示す内部背面図である。図8Bは、図3において、ロボット1の重り114が右方寄りに位置しているときのロボット1の姿勢を示す内部背面図である。
【0081】
図8Aに示すように、第3モータ125(図5)を駆動することにより、重り114を中央線C8から矢印137が示す左方に移動させると、ロボット1の姿勢は矢印138が示す方向に傾く。ここで、中央線C8は、メイン筐体101の上側の頂点と下側の頂点とを通る線を指す。また、矢印137が示す左方は、ロボット1を背面から正面に見て時計回りの方向を指す。また、矢印138が示す方向は、地面とロボット1との接点を中心に反時計回りの方向を指す。
【0082】
これとは逆方向に第3モータ125(図5)を駆動することにより、図8Bに示すように、重り114を中央線C8から矢印139が示す右方に移動させると、ロボット1の姿勢は矢印140が示す方向に傾く。ここで、矢印139が示す右方は、ロボット1を背面から正面に見て反時計回りの方向を指す。また、矢印140が示す方向は、地面とロボット1との接点を中心に時計回りの方向を指す。なお、図3に示すように重り114が右方及び左方に傾けられておらず、第3アーム123及び第4アーム124が鉛直方向を向いている場合の重り114の位置を初期位置と呼ぶ。
【0083】
次に第2駆動機構204(図11)の動作と重り駆動機構205(図11)の動作とが同時に駆動している状態について図8A及び図8Bを参照して説明する。
【0084】
図8Aに示すように、ロボット1の姿勢が矢印138の示す方向に傾いているときに、第1モータ118がロボット1の進行方向に移動するように駆動した場合、ロボット1は、上面視において左方に旋回移動する。また、図8Bに示すように、ロボット1の姿勢が矢印140の示す方向に傾いているときに、第1モータ118がロボット1の進行方向に移動するように駆動した場合、ロボット1は、上面視において右方に旋回移動する。
【0085】
以上のように、ロボット1の走行方向は、重り駆動機構205(図11)による重り114の左方または右方への切り替えと、第2駆動機構204(図11)によるメイン筐体101の前進または後進動作とを組み合わせることにより、左右の方向へロボット1を旋回移動させることができる。
【0086】
次に、走行開始時のロボット1の姿勢について図9を参照して説明する。
【0087】
図9は、メイン筐体101が図7Bに示す矢印136の方向に回転を始めるまでのロボット1の姿勢を示す図である。メイン筐体101は、第2駆動機構204(図11)が駆動することで発生する力が、床面143の摩擦等の外的要因による力よりも大きい場合に、矢印136(図7B)の方向に回転を始める。また、メイン筐体101は、第2駆動機構204(図11)が駆動することで発生する力が、床面143の摩擦等の外的要因による力よりも小さい場合に、回転を始めることは無い。このとき、第1ギア116は、メイン筐体101に固定されているため、メイン筐体101が回転しない場合は、第1ギア116も回転することは無い。図9において、メイン筐体101が回転しない場合、第1モータ118を矢印134の方向に回転させると、第2ギア117は、噛み合う第1ギア116の歯に沿って移動する。第2ギア117及び第1モータ118は、フレーム119(図3)に固定されているため、フレーム119(図3)、及びフレーム119(図3)に固定されている重り駆動機構205(図11)及びジャイロセンサー155(図3)とともに矢印144の方向へ回転する。ここで、矢印144の方向は、C視(図3)においてシャフト115回りに時計回りの方向を指す。
【0088】
これにより、メイン筐体101は、ロボット1が走行を開始するまでの間、外的要因による力の影響によりピッチ角が増大していくのである。また、ジャイロセンサー155は、フレーム119に取り付けられており、メイン筐体101のピッチ角の増大に伴ってフレーム119もピッチ角が増大する。そのため、ジャイロセンサー155はメイン筐体101のピッチ方向の角度を検出できる。
【0089】
次に、図10を参照しつつ、本開示の実施の形態に係るロボット1が適用されたロボットシステム1200の全体構成の一例について説明する。図10は、本開示の実施の形態に係るロボット1が適用されたロボットシステム1200の全体構成の一例を示す図である。ロボットシステム1200は、クラウドサーバ2、携帯端末3、及びロボット1を備える。ロボット1は例えばWifi(登録商標)の通信を介してインターネットと接続し、クラウドサーバ2と接続する。また、ロボット1は例えばWifi(登録商標)の通信を介して携帯端末3と接続する。ユーザ1201は例えば、子供であり、ユーザ1202,1203は、例えば、その子供の両親である。
【0090】
ロボット1は、例えば、携帯端末3からある絵本を子供に読み聞かせる指示があったとすると、その絵本の朗読を開始し、子供に読み聞かせる。ロボット1は、例えば、絵本の読み聞かせ中に子供から何らかの質問を受け付けると、その質問をクラウドサーバ2に送り、その質問に対する回答をクラウドサーバ2から受信し、回答を示す音声を発話する。
【0091】
このように、ユーザ1201~1203は、ロボット1をペットのように取り扱い、ロボット1との触れ合いを通じて、言語学習をすることができる。
【0092】
(ブロック図)
次に、図11を参照しつつ、本開示の実施の形態に係るロボット1の内部回路の詳細について説明する。図11は、本開示の実施の形態に係るロボット1を示すブロック図である。
【0093】
図11に示すように、ロボット1は、制御回路200、第1駆動機構203、第1駆動機構制御部207、第2駆動機構204、第2駆動機構制御部208、重り駆動機構205、重り駆動機構制御部209、電源206、電源制御部210、マイク106、カメラ104、ジャイロセンサー155、距離センサー105、及び加速度センサー120を備える。
【0094】
制御回路200は、プロセッサ201及びメモリ202を備える。プロセッサ201は、例えば、CPU、FPGA、及びASICのいずれか1以上で構成され、主制御部211、音声認識処理部212、顔検出処理部213、ジャイロ処理部214、距離センサー処理部215、及び加速度センサー処理部216を備える。メモリ202は、例えば、書き換え可能な不揮発性メモリで構成され、段差情報管理部218を備える。
【0095】
主制御部211は、人物の音声の認識結果を音声認識処理部212から取得する。主制御部211は、人物の顔の認識結果を顔検出処理部213から取得する。主制御部211は、ロボット1の姿勢を示すジャイロセンサー155の計測値をジャイロ処理部214から取得する。主制御部211は、ロボット1の前方に位置する物体までの距離を示す距離センサー105の計測値を距離センサー処理部215から取得する。主制御部211は、ロボット1の加速度を示す加速度センサー120の計測値を加速度センサー処理部216から取得する。主制御部211は、電源206が充電状態にあるか否かを示す充電中フラグと、電源206の残容量を電源制御部210から取得する。
【0096】
主制御部211は、音声認識処理部212、顔検出処理部213、ジャイロ処理部214、距離センサー処理部215、加速度センサー処理部216、及び電源制御部210から取得した情報を基にロボット1の制御コマンドを生成し、第1駆動機構制御部207、第2駆動機構制御部208、及び重り駆動機構制御部209に出力する。制御コマンドの詳細は後述する。
【0097】
音声認識処理部212は、マイク106が取得した音声データから人物の音声の有無を認識し、音声認識結果を管理する。ここで、音声認識処理部212は、ロボット1を使用することが予め定められた1又は複数の人物の音声の特徴量と、各人物の識別子とが対応付けられた音声識別テーブルを備えている。そして、音声認識処理部212は、マイク106が取得した音声データから抽出した音声の特徴量と、音声識別テーブルに記憶された各人物の音声の特徴量との一致度をそれぞれ算出する。そして、音声認識処理部212は、音声識別テーブルに記憶された人物のうち、一致度が所定の閾値より高く且つ最大の音声の特徴量を持つ人物をマイク106が取得した音声データに含まれる音声を発話した人物であると認識する。そして、音声認識処理部212は、認識した人物の識別子を例えば認識時刻と対応付けたデータを人物の音声の認識結果として、主制御部211に出力する。なお、音声の特徴量としては、例えば、声紋データが採用できる。
【0098】
顔検出処理部213は、カメラ104が取得した画像データに基づいてロボット1の前方に存在する人物を認識する。ここで、顔検出処理部213は、ロボット1を使用することが予め定められた1又は複数の人物の顔の特徴量と、各人物の識別子とが対応付けられた顔識別テーブルを備えている。そして、顔検出処理部213は、カメラ104が取得した画像データから抽出した1又は複数の顔の特徴量と、顔識別テーブルに記憶された各人物の顔の特徴量との一致度をそれぞれ算出する。そして、顔検出処理部213は、画像データに含まれるそれぞれの人物について、顔識別テーブルに記憶された人物のうち、特徴量の一致度が所定の閾値より高く且つ最大となる人物を、該当する人物として認識する。なお、顔の特徴量としては、顔における目、鼻、及び口の相対的な位置、並びに顔の輪郭等が採用できる。そして、顔検出処理部213は、画像データに含まれる各人物の顔の位置に人物の識別子をタグ付けした画像データを人物の顔の認識結果として、主制御部211に出力する。
【0099】
ジャイロ処理部214は、ジャイロセンサー155が所定のサンプリング周期で計測した計測値を逐次取得し、主制御部211に逐次出力する。
【0100】
ジャイロセンサー155は、例えば、ロール角、ピッチ角、及びヨー角の3成分の角度を計測するジャイロセンサーで構成される。ここで、図2に示すように、ロール角はX軸回りの角度を指し、ピッチ角はY軸回りの角度を指し、ヨー角はZ軸回りの角度を指す。X軸はロール軸であり、ロボット1の正面方向に向かう軸である。Y軸はピッチ軸であり、ロボット1の左右方向に向かう軸である。Z軸はヨー軸であり、ロボット1の上下方向に向かう軸である。なお、X軸、Y軸、Z軸はそれぞれ直交する。
【0101】
距離センサー処理部215は、距離センサー105が所定のサンプリング周期で計測した計測値を逐次取得し、主制御部211に逐次出力する。
【0102】
距離センサー105は、例えば、赤外線を前方の物体に照射して、その光が戻ってくるまでの時間を計測することで、物体までの距離を計測する赤外線距離センサーで構成されている。なお、距離センサー105は、例えば、ロボット1の前方の周囲環境の距離分布を計測する距離画像センサーで構成されてもよいし、ステレオカメラで構成されてもよい。
【0103】
加速度センサー処理部216は、加速度センサー120が所定のサンプリング周期で計測した計測値を逐次取得し、主制御部211に逐次出力する。
【0104】
加速度センサー120は、例えば、図2に示すX軸、Y軸、及びZ軸の3つの加速度成分を計測する3軸の加速度センサーで構成されている。
【0105】
第1駆動機構制御部207は、例えば、第1駆動機構203を構成する第2モータ121を制御する制御回路で構成され、主制御部211から送信される制御コマンドに従って第1駆動機構203を駆動する。第1駆動機構203は、上述した、第1球冠部102及び第2球冠部103を連結するシャフト115(図3)、シャフト115に取り付けられた第4ギア127(図6A)、第4ギア127に取り付けられた駆動ベルト122(図6A)、駆動ベルト122に動力を伝達する第3ギア126(図6A)、第3ギア126に連結された第2モータ121(図3)、及び第2モータ121を固定するフレーム119(図3)により構成される。第1駆動機構203は、シャフト115の回転を司る機構であり、シャフト115を回転させることで、第1球冠部102、第2球冠部103、第1表示部108、第2表示部109、及び第3表示部110をピッチ方向に回転させる。また、このピッチ方向の回転に伴って距離センサー105及びカメラ104の光軸もピッチ方向に回転する。
【0106】
第2駆動機構制御部208は、例えば、第2駆動機構204を構成する第1モータ118を制御する制御回路で構成され、主制御部211から出力される制御コマンドに従って第2駆動機構204を駆動する。第2駆動機構204は、メイン筐体101に固定された第1ギア116(図7A)、第1ギア116と噛み合う第2ギア117(図7A)、及び第2ギア117に連結された第1モータ118(図3)により構成される。第2駆動機構204は、メイン筐体101の回転を司る機構であり、メイン筐体101を回転させることで、ロボットを移動させる。
【0107】
重り駆動機構制御部209は、例えば、重り駆動機構205を構成する第3モータ125を制御する制御回路で構成され、主制御部211から送信される制御コマンドに従って、重り駆動機構205を駆動する。重り駆動機構205は、重り114の一端を支持する第3アーム123(図5)、重り114の他端を支持する第4アーム124、第4アーム124に重り軸124aを介して連結された第3モータ125(図5)により構成される。重り駆動機構205は、重り軸123a,124a回りの重り114の回転を司る機構であり、重り軸123a,124aを回転させることで、重り114を左方又は右方(ロール方向)に傾ける。
【0108】
電源制御部210は、電源206が充電中か否かを示す充電中フラグと電源206の残容量とを管理する。電源制御部210は、主制御部211に充電中フラグと残容量とを出力する。さらに、電源制御部210は、ロボット1が充電器に接続されている場合は、充電器から供給される電力を電源206に蓄積させる。
【0109】
電源206は、リチウムイオン電池等の二次電池で構成され、ロボット1の電力源を構成する。
【0110】
メモリ202は、段差情報管理部218を備える。段差情報管理部218は、ロボット1の周囲にある段差までの距離を示す段差情報を記憶する。ここで、段差情報は、例えば、図14に示す段差情報テーブルT14により構成される。段差情報テーブルT14の詳細については後述する。
【0111】
(段差検知処理)
図12は、本開示の実施の形態に係るロボット1が採用する段差検知処理を説明する模式図である。ロボット1は、平板な走行面1204上に位置している。ロボット1の左斜め前方には、走行面1204によりも低所側に沈んだ段差1205がある。
【0112】
ロボット1は、重り軸123a,124aに対して重り114を左右に回転させることなく、Z軸を走行面1204に対して垂直方向に向けた状態で静止している。この状態で、第1駆動機構制御部207は、主制御部211の制御の下、シャフト115をY軸回りに所定の単位ピッチ角ずつ回転させる。これにより、第1球冠部102及び第2球冠部103がシャフト115の回転と連動してY軸回りに単位ピッチ角ずつ回転し、第2球冠部103に取り付けられた距離センサー105がY軸回りに単位ピッチ角ずつ回転する。ここで、鉛直方向に対する距離センサー105の光軸L121の角度をαとする。そして、距離センサー105は、例えば、角度αが増大するように光軸L121の向きが変化されるものとする。すなわち、距離センサー105は、シャフト115を中心として、下方向から上方向に光軸L121の向きが変化されるものとする。
【0113】
この場合、光軸L121が走行面1204と交差している間は、距離センサー105と走行面1204との光軸L121上の距離が徐々に増大していくため、距離センサー105の計測値は徐々に増大する。したがって、距離センサー105の計測値はさほど変化しない。
【0114】
一方、角度αを増大させていくと光軸L121はやがて段差1205の上を通過する。この場合、光軸L121は段差1205の先にある低所部分(図略)と交差するので、距離センサー105の計測値は大幅に増大する。したがって、距離センサー105の計測値は大幅に変化する。
【0115】
そこで、主制御部211は、光軸L121の向きを単位ピッチ角ずつ変化させたときの距離センサー105の計測値をモニタし、直近に計測された距離センサー105の計測値である第1距離と、今回計測された距離センサー105の計測値である第2距離との差分距離を算出する。そして、主制御部211は、算出した差分距離が予め定められた第1所定値以上であれば、第1距離が計測された時のロボット1の正面の方向(ロボット1の現在の旋回角度の方向)に段差があると判定する。一方、主制御部211は、算出した差分距離が第1所定値未満であれば、ロボット1の正面の方向に段差はないと判定する。
【0116】
そして、主制御部211は、段差の有無の判定結果と段差までの距離とを段差情報テーブルT14(図14)に記憶させる。ここで、第1所定値としては、例えば、光軸L121が走行面1204と交差した状態から走行面1204と交差していない状態にまで変化したときに想定される差分距離又はその差分距離に一定のマージンを加えた値が採用される。
【0117】
なお、段差を検知するという観点からすると、光軸L121の向きは水平方向に向く程度で十分である。そこで、光軸L121の向きを単位ピッチ角ずつ変化させるときの角度αの上限値としては、少なくとも90度が採用される。また、光軸L121の向きを単位ピッチ角ずつ変化させるときの角度αの下限値としては、0度、5度、10度、又は15度というような0度に多少のマージンを加えた値が採用される。
【0118】
また、光軸L121の向きを単位ピッチ角ずつ変化させるときの角度αの分解能としては、ロボット1が故障する可能性が高い段差のうち高低差が最小の段差を検知することが可能な値が採用される。一例として角度αの分解能は、1度、5度、又は10度である。
【0119】
(段差情報テーブル)
図13は、段差情報テーブルT14を作成する際のロボット1の動作を示す図である。図13では、ロボット1は、上面視において、前方に障害物(壁等)1304、左方に段差1301、後方に段差1302、右方に段差1303がある走行面1204上のある位置においてZ軸を走行面1204と直交する方向に向けた状態で静止している。
【0120】
そして、主制御部211は、第2駆動機構制御部208を制御して、ロボット1を後述するその場旋回させ、旋回差分角度θが45度になる毎に、距離センサー105の光軸L121の向きを変化させて距離センサー105の計測値をモニタすることでロボット1の前方に段差があるか否かを判定し、判定結果を段差情報テーブルT14に記憶させる。
【0121】
図14は、段差情報テーブルT14のデータ構成の一例を示す図である。段差情報テーブルT14は、1つの旋回差分角度θに1つのレコードが割り付けられたデータベースであり、旋回差分角度θ、距離、及び段差を対応付けて記憶する。
【0122】
旋回差分角度θとは、ロボット1の初期旋回角度を基準としたときのロボット1の旋回角度を指す。ロボット1の旋回角度とは、Z軸回りのロボット1の角度、すなわち、ロボット1のヨー角を表す。初期旋回角度は、例えば、段差情報テーブルT14の作成直前において、ジャイロセンサー155から出力されるヨー角の計測値が採用される。ここでは、旋回差分角度θは例えば度の単位で表されるがこれは一例であり、ラジアンの単位で表されてもよい。
【0123】
距離は、段差が検知された場合は、距離センサー105から段差までの距離を示し、段差が検知されなかった場合は、距離センサー105から前方にある物体までの距離を指す。物体としては、壁等の障害物及び人物が含まれる。ここでは、距離は例えばcmの単位で表される。なお、段差又は物体までの距離として距離センサー105の計測値をそのまま採用すると、距離センサー105の計測値が、段差又は物体までのロボット1の実際の走行距離よりも大きな値をとる可能性が高くなる。これは、段差又は物体までの距離を計測したときに得られる距離センサー105の計測値は、距離センサー105の光軸が走行面1204と平行でない場合に計測された計測値であることが多いからである。そこで、主制御部211は、距離センサー105から段差又は物体までの距離を下記のように算出してもよい。図12を参照する。距離センサー105の計測値を|L121|とし、段差又は物体までの距離をDとすると、主制御部211は、式(1)の演算により得られる距離Dを距離センサー105から段差又は物体までの距離として算出すればよい。
【0124】
D=|L121|×sinα (1)
なお、角度αは、距離センサー105の光軸の角度であるため、主制御部211はシャフト115の回転量から角度αの値を特定できる。図14に参照を戻す。段差情報テーブルT14において、段差がある場合は「1」の数値が割り付けられ、段差がない場合は「0」の数値が割り付けられる。
【0125】
図13の例では、ロボット1の正面方向(X軸方向)が障害物(壁等)1304と直交するときのロボット1の旋回角度が初期旋回角度とされている。なお、ロボット1の旋回角度が初期旋回角度にある場合、旋回差分角度θは0度となる。
【0126】
まず、主制御部211は、旋回差分角度θ=0度の状態において、図12で説明したように、距離センサー105の光軸L121の向きを単位ピッチ角ずつ変化させて第1距離と第2距離との差分距離を算出し、差分距離が第1所定値以上であるか否かを判定する。図13の例では、旋回差分角度θ=0度の場合、ロボット1の正面前方には障害物(壁等)1304があるので、差分距離は第1所定値未満となる。そのため、主制御部211は、旋回差分角度θ=0において、段差はないと判定する。また、主制御部211は、段差がないので、距離センサー105の計測値の最大値を特定し、特定した計測値に式(1)の演算を実行して得られた距離Dを、旋回差分角度θ=0での物体までの距離D(0)として算出する。ここでは、距離D(0)として30cmが算出されている。
【0127】
したがって、図14に示すように、段差情報テーブルT14には、旋回差分角度θ=0度のレコードにおいて、「距離」=30cm、「段差」=0が登録される。
【0128】
次に、主制御部211は、第2駆動機構制御部208を制御してロボット1をその場旋回させて、ロボット1の正面を旋回差分角度θ=45度の向きに向ける。そして、主制御部211は、旋回差分角度θ=0度の場合と同様にして、距離センサー105の計測値から段差の有無を判定する。ここでは、ロボット1の正面前方には障害物(壁等)1304があるので、段差はないと判定される。また、主制御部211は、旋回差分角度θ=0度の場合と同様にして、旋回差分角度θ=45度における物体までの距離D(45)を算出する。ここでは、距離D(45)として130cmが算出される。
【0129】
したがって、図14に示すように、段差情報テーブルT14には、旋回差分角度θ=45度のレコードにおいて、「距離」=130cm、「段差」=0が登録される。
【0130】
次に、主制御部211は、第2駆動機構制御部208を制御してロボット1をその場旋回させて、ロボット1の正面を旋回差分角度θ=90度の向きに向ける。そして、主制御部211は、旋回差分角度θ=0度の場合と同様にして、距離センサー105の計測値から段差の有無を判定する。ここでは、ロボット1の正面には、段差1303があるので、第1距離と第2距離との差分距離が第1所定値以上になり、段差があると判定される。また、主制御部211は、第1距離を用いて段差までの距離D(90)を算出するが、第1距離は、距離センサー105の計測値であるので、式(1)の演算を実行して距離D(90)を算出する。ここでは、距離D(90)は120cmと算出される。
【0131】
したがって、図14に示すように、段差情報テーブルT14には、旋回差分角度θ=90度のレコードにおいて、「距離」=120cm、「段差」=1が登録される。
【0132】
以後、旋回差分角度θ=135度、180度、225度、270度、315度のそれぞれについても旋回差分角度θ=0度の場合と同様にして段差の有無と、段差又は物体までの距離Dとが算出される。
【0133】
ここでは、旋回差分角度θ=135度、180度、225度、及び270度のそれぞれにおいて、ロボット1の正面前方には段差があるので、第1距離と第2距離との差分距離は第1所定値以上となり、段差があると判定される。また、それぞれの旋回差分角度θにおける距離Dは、D(135)=150cm、D(180)=50cm、D(225)=60cm、D(270)=25cmと算出されている。
【0134】
したがって、図14に示す段差情報テーブルT14には、旋回差分角度θ=135度、180度、225度、及び270度のそれぞれのレコードにおいて、上記の距離D(135)~D(270)で示す距離Dの算出結果が登録され、「段差」=1が登録される。
【0135】
旋回差分角度θ=315度では、ロボット1の正面には障害物(壁等)1304があり、物体までの距離が35cmと算出されている。そのため、図14に示す段差情報テーブルT14には、旋回差分角度θ=315度のレコードにおいて、「距離」=35cm、「段差」=0が登録される。
【0136】
以上のようにして、段差情報テーブルT14が作成される。ここで、段差情報テーブルT14には、所定の旋回差分角度θ毎の段差の有無と段差又は物体までの距離とが登録されている。そのため、主制御部211は、周囲のどの方向にどの程度の距離だけ離れて段差があるかを判定することができる。そのため、主制御部211は、段差から落下しないようにロボット1を走行制御することができる。
【0137】
なお、図14の例では、旋回差分角度θの分解能は45度に設定されているが、これは一例であり、45度よりも小さい角度(例えば、40度、35度、30度、又は25度等)が採用されてもよいし、45度よりも大きい角度(例えば、50度、55度、又は60度等)が採用されてもよい。段差情報テーブルT14において、旋回差分角度θ=0度は第1旋回角度の一例に相当し、旋回差分角度θ=45度、90度、・・・、315度はそれぞれ第2旋回角度の一例に相当する。
【0138】
(その場旋回処理)
図8Aで説明したように、ロボット1は、重り軸123a,124aに対して重り114を左方に回転させた状態で、第1モータ118を前進方向に回転させると、左方に旋回移動する。同様に、ロボット1は、重り軸123a,124aに対して重り114を右方に回転させた状態で、第1モータ118を前進方向に回転させると、右方に旋回する。
【0139】
以下、これらの左方への旋回と右方への旋回とを総称して「通常旋回」と記述する。通常旋回をすることで、ロボット1は前方の物体との衝突を回避して走行することができる。しかし、通常旋回を行ったときのロボット1の旋回半径(第2旋回半径)は大きいので、例えば、ロボット1が机の角のような場所で、段差情報テーブルT14を作成するために通常旋回を行うと、ロボット1が机から落下する可能性がある。
【0140】
そこで、本開示では、ロボット1は、通常旋回よりも小さな旋回半径(第1旋回半径)で旋回するその場旋回を行うことで、このような落下を防止している。
【0141】
図15は、その場旋回処理を実行したときのロボット1の状態を示す図である。図15において、「その場旋回行動状態」は、その場旋回処理を実行したときのロボット1の状態を分類したものである。その場旋回行動状態は「1」から「4」で示す4つの状態がある。その場旋回処理において、ロボット1は、「1」から「4」で示されるその場旋回状態をこの順番にとる。
【0142】
「重り駆動機構に設定する制御量」は、その場旋回処理を実行するときの重り駆動機構205に対する制御量を示す。ここでは、「重り駆動機構に設定する制御量」として「右回転制御量」(第1回転制御量の一例)と「左回転制御量」(第2回転制御量の一例)との2種類の制御量がある。
【0143】
「右回転制御量」は、重り軸123a,124aに対して重り114を右側に回転させる制御量であり、「左回転制御量」は、重り軸123a,124aに対して重り114を左側に回転させる制御量である。なお、重り軸123a,124aに対して重り114を右側に回転させるとは、後方から前方に見て重り114をX軸回りに反時計回りに所定角度だけ、回転させることを指し、重り軸123a,124aに対して重り114を左側に回転させるとは、後方から前方に見て重り114をX軸回りに時計回りに所定角度だけ、回転させることを指す。
【0144】
「第2駆動機構に設定する制御量」は、その場旋回処理を実行するときの第2駆動機構204に対する制御量を指す。ここでは、「第2駆動機構に設定する制御量」として、「停止制御量」、「前進方向への加速制御量」(第1加速制御量の一例)、及び「後進方向への加速制御量」(第2加速制御量の一例)の3つの制御量がある。
【0145】
「停止制御量」は第2駆動機構204を構成する第1モータ118の回転を停止させる制御量である。「前進方向への加速制御量」は、ロボット1の前進方向の速度を所定の加速度で増大させる制御量である。「後進方向への加速制御量」は、ロボット1の後進方向の速度を所定の加速度で増大させる制御量である。
【0146】
まず、主制御部211は、「停止制御量」を第2駆動機構制御部208に出力し、メイン筐体101の前進及び後進を停止させた状態で、「右回転制御量」を重り駆動機構制御部209に出力し、ロボット1をその場旋回状態「1」にする。これにより、「ロボットの状態」の欄で示されるように、重り114は、後方から前方に見て、Z軸に対する角度が矢印151で示す角度だけ右側に傾く。その結果、後方から前方に見て、ロボット1は、重心が右側に移動し、Z軸が鉛直方向DHに対して矢印151で示す角度だけ右側に傾く。その場旋回状態「1」は、ジャイロセンサー155のロール角の計測値をモニタすることにより、ロボット1が実際に右側に所定角度傾いたことが主制御部211によって確認される又は確認されてから一定期間経過するまで継続される。
【0147】
次に、主制御部211は、「右回転制御量」を重り駆動機構制御部209に出力した状態で、「前進方向への加速制御量」を第2駆動機構制御部208に出力し、ロボット1をその場旋回状態「2」にする。これにより、「ロボットの状態」の欄で示されるように、ロボット1は、Z軸を鉛直方向DHに対して右側に傾けた状態で前進する。その結果、ロボット1は矢印152に示すように上側から見て右方に前方旋回する。その場旋回状態「2」は、第1モータ118が備えるロータリーエンコーダの計測値をモニタすることにより、第1モータ118が実際に回転したことが主制御部211によって確認される又は確認されてから一定期間経過するまで継続される。
【0148】
次に、主制御部211は、「停止制御量」を第2駆動機構制御部208に出力し、メイン筐体101の前進及び後進を停止させた状態で、「左回転制御量」を重り駆動機構制御部209に出力し、ロボット1をその場旋回状態「3」にする。これにより、「ロボットの状態」の欄で示されるように、重り114は、後方から前方に見て、Z軸に対する角度が矢印153で示す角度だけ左側に傾く。その結果、後方から前方に見て、ロボット1は、重心が左側に移動し、Z軸が鉛直方向DHに対して矢印153で示す角度だけ左側に傾く。その場旋回状態「3」は、ジャイロセンサー155のロール角の計測値をモニタすることにより、ロボット1が実際に左側に所定角度傾いたことが主制御部211によって確認されるまで又は確認されてから一定期間経過する継続される。
【0149】
次に、主制御部211は、「左回転制御量」を重り駆動機構制御部209に出力した状態で、「後進方向への加速制御量」を第2駆動機構制御部208に出力し、ロボット1をその場旋回状態「4」にする。これにより、「ロボットの状態」の欄で示されるように、ロボット1は、Z軸を鉛直方向DHに対して左側に傾けた状態で後進する。その結果、ロボット1は矢印154に示すように上側から見て左方に後方旋回する。その場旋回状態「4」は、第1モータ118が備えるロータリーエンコーダの計測値をモニタすることにより、第1モータ118が実際に回転したことが主制御部211によって確認される又は確認されてから一定期間経過するまで継続される。
【0150】
主制御部211は、その場旋回状態「1」~「4」を1サイクルのその場旋回動作とし、ジャイロセンサー155のヨー角の計測値をモニタすることで、旋回差分角度θが旋回単位角度(ここでは、45度)になるまで、その場旋回動作をサイクリックに実行する。そして、主制御部211は、旋回差分角度θが旋回単位角度になると、図12で説明した段差の有無を判断する処理を実行し、判断結果を段差情報テーブルT14に登録する。
【0151】
このように、その場旋回は、右方への前方旋回と左方への後方旋回とを小刻みに繰り返す旋回であるため、通常旋回に比べて旋回半径を小さくすることができる。その結果、ロボット1は、移動量を可能な限り短くしつつ、周囲の段差の有無を判断することができ、机の角のような周囲が段差で取り囲まれたような場所においても、段差から落下することなく旋回することができる。
【0152】
(進行方向の決定)
ロボット1は、その場旋回処理を行って段差情報テーブルT14を作成すると、進行方向を決定し、決定した方向に移動する。
【0153】
図16は、周囲に存在する人物が検知されなかった場合において、ロボット1の進行方向が決定される処理を説明する図である。図16の上図は、図13と同じである。このとき、主制御部211は、ロボット1にその場旋回を実行させ、段差情報テーブルT14を作成する。但し、このとき、主制御部211は、ロボット1の周囲に人物が存在しなかったので、その場旋回での旋回範囲を示す段差検知範囲を360度に設定する。以下、360度に設定された段差検知範囲をR16の符号を付して表す。これにより、主制御部211は、段差検知範囲R16内において、ロボット1を旋回単位角度ずつ旋回させて、段差の有無を判断する処理を実行し、判断結果を段差情報テーブルT14に登録させる。
【0154】
段差情報テーブルT14を作成すると、次に、主制御部211は、ロボット1の進行方向を決定する処理を実行する。ここでは、図16の中央図に示すように、段差情報テーブルT14に登録された段差検知範囲R16内での距離のうち最大の距離の方向がロボット1の進行方向として決定される。図14の例では、旋回差分角度θ=135度の方向の距離が150cmであり、最大であるので、主制御部211は、旋回差分角度θ=135度の方向をロボット1の進行方向として決定する。そして、主制御部211は、ロボット1をその場旋回させることで、ロボット1の正面を旋回差分角度θ=135度の方向に旋回させる。詳細には、主制御部211は、ジャイロセンサー155のヨー角の計測値をモニタしながら、ロボット1の正面が旋回差分角度θ=135度の方向になるまで、ロボット1をその場旋回させる。
【0155】
次に、主制御部211は、ロボット1の移動距離を決定する。ここで、主制御部211は、例えば、図16の下図に示すように、ロボット1の現在位置から段差又は物体までの距離Dに対して所定の係数kを乗じた値(=D・k)をロボット1の移動距離として決定すればよい。ここで、kとしては0より大きく1未満の値が採用できる。図13の右図の例では、係数kは例えば0.5に設定されている。そのため、ロボット1の移動距離は段差1303までの距離D(135)=150cmに係数kを乗じた75cm(=k・D(135))に決定される。
【0156】
そして、主制御部211は、現在位置から決定した移動距離だけロボット1を第1速度で前進させるための等速制御量を第2駆動機構制御部208に出力する。これにより、第1モータ118が前進方向に回転してメイン筐体101が回転し、ロボット1は決定した移動距離だけ移動する。ロボット1は決定した移動距離だけ移動すると、その場で停止する。
【0157】
なお、主制御部211は、加速度センサー120のX軸方向の計測値を用いてロボット1の現在の移動距離を算出することで、残距離を算出すればよい。また、主制御部211は、加速度センサー120のX軸方向の計測値を用いてロボット1の現在の走行速度を算出すればよい。
【0158】
本開示のロボット1は、ペットのように自律的に移動して、人物に愛玩されることを主眼としている。そのため、ロボット1の周囲に人物が存在するにも拘わらず、人物の存在を無視してロボット1を自律走行させてしまうと、人物のロボット1への愛着が低下する可能性がある。人物のロボット1への愛着を増大させるためには、人物が周囲に存在する場合、人物に向かってロボット1を移動させることが効果的である。但し、人物の方向に段差があるとロボット1が段差から落下する可能性があるので、単純に人物に向かってロボット1を移動させるわけにはいかない。
【0159】
そこで、本開示は、周囲に人物が存在する場合、以下のようにしてロボット1の進行方向を決定する。図17は、周囲に存在する人物が検知された場合において、ロボット1の進行方向が決定される処理を説明する図である。
【0160】
図17の上図に示すように、主制御部211は、ロボット1の周囲に人物1701を検知した場合、人物1701を含む一定範囲に段差検知範囲R17を設定する。ここで、段差検知範囲R17は、例えば、ロボット1から人物1701の方向D17を中心として、プラスマイナス角度βの範囲に設定される。ここで、角度βとしては、例えば、ロボット1を人物1701の側に向けて移動させることを考慮して、45度程度の値が採用されるがこれは一例である。
【0161】
そして、主制御部211は、段差検知範囲R17内において、ロボット1を、旋回単位角度ずつ旋回させて、段差の有無を判断する処理を実行し、判断結果を段差情報テーブルT14に登録させる。この場合、段差情報テーブルT14には、ロボット1の周囲、360度の範囲ではなく、プラスマイナス角度βの段差検知範囲R17内において旋回差分角度θ毎の段差の有無と段差までの距離とが登録される。
【0162】
段差情報テーブルT14の作成が終了すると、次に、主制御部211は、進行方向を決定する処理を実行する。ここでは、図17の中央図に示すように、段差情報テーブルT14に登録された段差検知範囲R17内での距離のうち、最大の距離の方向がロボット1の進行方向として決定される。そして、主制御部211は、ロボット1をその場旋回させることで、ロボット1の正面を段差検知範囲R17内で最大の距離の方向に向ける。
【0163】
次に、主制御部211は、ロボット1の移動距離を決定する。ここで、段差検知範囲R17内での最大の距離をDとすると、主制御部211は、図17の下図に示すように、距離Dに係数kを乗じた値(=k・D)を移動距離として決定する。そして、主制御部211は、図16で説明した方法と同様の手法を用いて、ロボット1を決定した移動距離だけ移動させる。
【0164】
このように、本開示では、ロボット1の移動先に段差があるとしても、段差までの距離Dに係数kが乗じられて移動距離が算出されているので、ロボット1が段差から落下することを防止できる。また、人物を検知した場合は人物を中心に一定範囲の領域が段差検知範囲R17として設定されるので、段差からの落下を防止しつつロボット1を人物に向けて走行させることができる。
【0165】
(フローチャート)
図18は、本開示の実施の形態に係るロボット1の処理を示すフローチャートである。まず、主制御部211は、ロボット1が走行面に置かれたか否かを検知する(S101)。ここで、主制御部211は、ジャイロセンサー155の計測値が一定期間、ロボット1が揺れていないことを示す値を示す場合、ロボット1が走行面に置かれたことを検知すればよい。詳細には、主制御部211は、ジャイロセンサー155のロー角、ピッチ角、及びヨー角の3つの計測値が、一定期間、ロボット1が揺れていないことを示す所定の範囲内の値に収束している場合、ロボット1が走行面に置かれたと判定すればよい。一方、主制御部211は、ジャイロセンサー155のロー角、ピッチ角、及びヨー角の3つの計測値のうち、少なくとも1つが、一定期間、所定の範囲内に収束していない場合、ロボット1は、走行面に置かれていないと判定すればよい。
【0166】
ロボット1が走行面に置かれたことが検知された場合(S101でYES)、主制御部211は、段差検知範囲を360度に設定する(S102)。一方、ロボット1が走行面に置かれたことが検知されていない場合(S101でNO)、ロボット1は例えば、人物によって抱っこされている可能性が高いので、処理は終了される。
【0167】
次に、主制御部211は、段差検知処理を実行する(S103)。段差検知処理の詳細は、図21を用いて後述する。
【0168】
次に、段差検知処理の処理結果がロボット1の周囲360度のいずれの方向にも段差がないことを示せば(S104でNO)、処理は図19のS201に進む。一方、段差検知処理の処理結果がロボット1の周囲360度のいずれかの方向に段差があることを示せば(S104でYES)、主制御部211は、ロボット1の周囲に人物が存在するか否かを検知する(S105)。
【0169】
ここで、主制御部211は、マイク106が取得した音声データに上述の音声識別テーブルに記憶されたいずれか1の人物の音声が含まれているか否かを判定する。そして、主制御部211は、前記人物の音声が含まれていると判定した場合、前記人物の顔の特徴量を上述の顔識別テーブルから読み出す。そして、主制御部211は、読み出した顔の特徴量を用いて、カメラ104が取得した画像データに前記人物の顔が含まれているか否かを判定する。そして、主制御部211は、前記画像データに前記人物の顔が含まれていると判定した場合、人物が検出できたと判定すればよい。
【0170】
なお、主制御部211は、マイク106が取得した音声データに前記人物の音声が含まれていると判定した場合、更に、その音声の内容を解析し、音声の内容に前記人物がロボット1を呼び寄せる所定のキーワードが含まれていることを条件に画像データを用いて前記人物の顔を検出する処理を実行してもよい。
【0171】
また、ここでは、主制御部211は、音声データと画像データとの両方を用いて人物の有無を検知したが、これは一例であり、音声データと画像データとのいずれか一方を用いて人物の有無を検知してもよい。
【0172】
S105において、人物を検知できなかった場合(S105でNO)、ロボット1を人物に向けて走行させる必要がないので、主制御部211は、段差検知範囲を360度に設定する(S106)。一方、人物を検知できた場合(S105でYES)、ロボット1を人物に向けて走行させるために、処理は図20のS301に進む。
【0173】
次に、主制御部211は、メモリ202に段差情報テーブルT14が存在しているか否かを判定する(S107)。メモリ202に段差情報テーブルT14が存在していれば(S107でYES)、主制御部211は、進行方向決定処理を実行する(S108)。一方、メモリ202に段差情報テーブルT14が存在していなければ(S107でNO)、主制御部211は、段差検知処理を実行する(S109)。進行方向決定処理の詳細は、図23を用いて後述する。また、段差検知処理の詳細は、図21を用いて後述する。
【0174】
なお、段差情報テーブルT14は、段差検知処理が行われる都度作成され、進行方向決定処理が終了される都度削除される。したがって、ロボット1が走行面に置かれた直後のS107では、S103の段差検知処理により段差情報テーブルT14が作成されているので、YESと判定される。
【0175】
次に、主制御部211は、進行方向決定処理が終了したので、初期旋回角度情報を削除する(S110)。なお、初期旋回角度情報は、旋回差分角度θの基準となる初期旋回角度を示す情報であり、段差検知処理が行われる都度設定され、進行方向決定処理が行われる都度削除される。
【0176】
次に、主制御部211は、進行方向決定処理が終了したので、段差情報テーブルT14をメモリ202から削除し(S111)、処理をS105に戻す。
【0177】
図18のフローを概観すると、走行面にロボット1が置かれると、段差検知範囲が360度に設定され、段差検知処理(S103)が行われて段差情報テーブルT14が作成される。そして、周囲に段差があり、人物いなければ、進行方向決定処理(S108)が実行されて移動方向及び移動距離が決定され、決定された移動方向に決定された移動距離だけロボット1は移動する。以後、周囲に人物が検出されない限り、S105~S111の処理が繰り返され、ロボット1は移動を繰り返す。
【0178】
図19は、図18において周囲に段差がないと判定されたときの(S104でNO)続きのフローチャートである。まず、主制御部211は、ロボット1の周囲に人物が存在するか否かを検知する(S201)。S201の処理の詳細はS105と同じであるため、説明を省く。
【0179】
S201において、人物を検知できなかった場合(S201でNO)、主制御部211は前方に障害物があるか否かを検知する(S202)。障害物を検知した場合(S202でYES)、主制御部211は、距離センサー105の計測値から障害物までの距離を取得し、障害物までの距離が第2所定値未満であるか否かを判定する(S203)。
【0180】
障害物までの距離が第2所定値未満であれば(S203でYES)、障害物との衝突を回避するために、主制御部211は、ロボット1を通常旋回させる通常旋回コマンドを出力し(S204)、処理をS201に戻す。第2所定値としては、例えば、これ以上、障害物との距離が短くなると、通常旋回ではロボット1が障害物と衝突する可能性が高くなる距離が採用される。
【0181】
ここで、主制御部211は、ロボット1を右方に通常旋回させるのであれば、図15で示した右回転制御量を重り駆動機構制御部209に出力して、ロボット1のZ軸を鉛直方向に対して右方に傾斜させた状態にする。そして、主制御部211は、ロボット1をこの状態にしつつ、ロボット1の走行速度を前進走行時の上限速度である第1速度よりも低い第2速度に減速させる減速制御量を第2駆動機構制御部208に出力する。この場合、通常旋回コマンドは、右回転制御量及び減速制御量で構成される。これにより、ロボット1は右方に旋回して障害物をよけることができる。
【0182】
ここでは、ロボット1は右方に旋回させるとして説明したが、左方に旋回させてもよい。この場合、主制御部211は、重り駆動機構制御部209に対して、右回転制御量の代わりに左回転制御量を出力すればよい。
【0183】
一方、S202で障害物を検知しなければ(S202でNO)、主制御部211は、等速制御量を第2駆動機構制御部208に出力し(S205)、処理をS201に戻す。これにより、ロボット1の走行は継続される。
【0184】
また、S203で障害物までの距離が第2所定値以上であれば(S203でNO)、主制御部211は、処理をS202に戻す。すなわち、主制御部211は、S202で障害物を検知した場合、障害物までの距離が第2所定値未満になるのを待ってからロボット1を旋回させる。
【0185】
S201で人物を検知した場合(S201でYES)、主制御部211は、人検知情報をメモリ202に記憶させることで、人検知情報を設定する(S206)。人検知情報は、図23に示す進行方向決定処理において、段差検知範囲から距離の最大値を取得する際にその段差検知範囲が360度に設定されているのか、又は、人物を含む一定範囲内に設定されているのかを判別するために使用される。
【0186】
次に、主制御部211は、人物の方向にロボット1を第1速度で前進させるための等速制御量を第2駆動機構制御部208に出力する(S207)。これにより、ロボット1は人物に向けて前進する。
【0187】
次に、主制御部211は、人物に向けてロボット1の前進を開始させてから所定時間以内に人物からタスク実行指示があったか否かを判定する(S208)。
【0188】
タスクとしては、例えば、ジャンケンゲーム又は本の読み聞かせといった、人物がロボット1と遊ぶタスクが採用される。
【0189】
ここで、人物は、「ジャンケンゲームをしよう」又は「絵本を読んで」といった音声によりタスク実行指示を行えばよい。例えば、主制御部211は、S207で人物に向けてロボット1の前進を開始させてから所定時間以内にマイク106が取得した音声データに、該当する人物からタスク実行指示を示す所定のキーワードが含まれていれば、人物からタスク実行指示があったと判定すればよい。
【0190】
S208において、人物からタスクの実行指示があれば(S208でYES)、主制御部211は、現在、メモリ202に記憶されている、初期旋回角度情報、段差情報テーブルT14を削除する(S210、S211)。
【0191】
一方、人物からタスクの実行指示がなければ(S208でNO)、主制御部211は、人検知情報を削除し(S209)、処理をS201に戻す。
【0192】
S212において、主制御部211は、人物が指示したタスクを実行する(S212)。例えば、ジャンケンゲームを実行するのであれば、主制御部211は、スピーカ107から人物にジャンケンを促す音声を出力し、カメラ104が取得した画像データから人物が出した手の形状を認識する等の処理を行って、人物とロボットとのジャンケンの勝敗を決定し、勝敗の結果を示す音声メッセージをスピーカ107から出力すればよい。
【0193】
次に、主制御部211は、人検知情報をメモリ202から削除し(S213)、処理を終了する。
【0194】
図19のフローを概観すると、人物及び障害物を検知しなければ(S201でNO且つS202でNO)、ロボット1は前進を継続する(S205)。障害物を検知すれば(S202でYES)、通常旋回により障害物をよけるというようにして自律走行を行う(S204)。また、人物が検知されると(S201でYES)、ロボット1は、人物に向けて前進し(S207)、人物からタスクの実行指示があれば、タスクを実行する(S212)。これにより、あたかも人物になついているかのようにロボット1を振る舞わせることができ、人物のロボット1に対する愛着を増すことができる。
【0195】
図20は、図18において人物が検知されたときの(S105でYES)続きのフローチャートである。まず、主制御部211は、人物が検知されたので、人検知情報を設定する(S301)。
【0196】
次に、主制御部211は、人物を含む一定範囲に段差検知範囲を設定する(S302)。次に、主制御部211は、メモリ202に段差情報テーブルT14が存在すれば(S303でYES)、処理をS304に進める。
【0197】
一方、主制御部211は、メモリ202に段差情報テーブルT14が存在しなければ(S303でNO)、段差検知処理を実行し(S305)、処理をS304に進める。これにより、人物を含む一定範囲に設定された段差検知範囲内でロボット1はその場旋回を行い段差情報テーブルT14を作成する。
【0198】
次に、主制御部211は、進行方向決定処理を実行し(S304)、処理をS306に進める。これにより、人物を含む一定範囲に設定された段差検知範囲内で例えば障害物又は段差までの距離が最大の距離の方向に、前記最大の距離に基づいて決定された移動距離だけロボット1が移動される。
【0199】
S306では、主制御部211は、進行方向決定処理が終了したので、初期旋回角度情報及び段差情報テーブルT14をメモリ202から削除する(S306、S307)。
【0200】
次に、主制御部211は、人検知情報を設定してから所定時間以内に人物からタスクの実行指示が行われたか否かを判定する(S308)。タスクの実行指示が行われた場合(S308でYES)、主制御部211はタスクを実行し(S310)、人検知情報をメモリ202から削除し(S311)、処理を終了する。一方、タスクの実行指示がなければ(S308でNO)、主制御部211は、人検知情報をメモリ202から削除する(S309)。S309が終了すると、処理は、図18のS105に戻り、人物の有無が検知される。
【0201】
図20のフローを概観すると、人物を含む一定範囲に設定された段差検知範囲内において障害物又は段差までの距離が最大の方向にロボット1が移動され、人物からタスクの実行指示があれば、ロボット1によってタスクが実行される。ここで、段差検知範囲は人物を含む一定範囲に設定されているので、ロボット1は人物に向けて移動することになる。そのため、ロボット1に対するタスクの実行指示を人物が行い易くなる環境を提供できる。
【0202】
図21は、段差検知処理の詳細を示すフローチャートである。まず、主制御部211は、停止制御量を第2駆動機構制御部208に出力する(S401)。これにより、ロボット1は停止される。
【0203】
次に、主制御部211は、初期旋回角度情報がメモリ202に記憶されていなければ(S402でNO)、ジャイロセンサー155から現在の旋回角度を取得し、取得した旋回角度を初期旋回角度情報として設定し(S404)、処理をS403に進める。
【0204】
一方、初期旋回角度情報がメモリ202に記憶されていれば(S402でYES)、S404が実行されずに処理がS403に進む。
【0205】
次に、主制御部211は、ジャイロセンサー155から現在の旋回角度を取得し、取得した旋回角度と初期旋回角度との差分を算出することで旋回差分角度θを取得する(S403)。
【0206】
次に、主制御部211は、旋回差分角度θが段差検知範囲の上限角度以上であるか否かを判定する(S405)。ここで、段差検知範囲が360度に設定されていれば上限角度は360度であり、段差検知範囲が人物を含む一定範囲に設定されていれば、一定範囲の上限角度となる。
【0207】
S405において、旋回差分角度θが段差検知範囲の上限角度以上であれば(S405でYES)、段差検知処理は終了される。一方、旋回差分角度θが段差検知範囲の上限角度未満であれば(S405でNO)、主制御部211は、距離センサー105の光軸を単位ピッチ角回転させるコマンドを第1駆動機構制御部207に出力する(S406)。これにより、距離センサー105の光軸はY軸回りに単位ピッチ角変化する。ここで、主制御部211は、距離センサー105の光軸の角度α(図12参照)が所定の下限値から所定の上限値の範囲で単位ピッチ角ずつ増大させていくものとする。但し、これは一例であり、距離センサー105の光軸の角度αは上限値から下限値に向けて単位ピッチ角ずつ減少されてもよい。或いは、角度αは、上限値から下限値までの間の所定のデフォルト値から、まず、上限値まで単位ピッチ角ずつ増大されていき、上限値に到達すると、下限値に設定され、下限値からデフォルト値まで単位ピッチ角ずつ増大されてもよい。
【0208】
次に、主制御部211は、直近に計測された距離センサー105の計測値である第1距離と、今回計測された距離センサー105の計測値である第2距離との差分距離を算出し、差分距離が第1所定値以上であるか否かを判定する(S407)。
【0209】
差分距離が第1所定値以上であれば(S407でYES)、主制御部211は、第1距離が計測された時のロボット1の正面方向に段差があると判定する(S409)。
【0210】
次に、主制御部211は、第1距離に対して式(1)の演算を行い距離D(θ)を算出し、距離D(θ)を段差までの距離として取得し(S411)、距離D(θ)を現在の旋回差分角度θと対応付けて段差情報テーブルT14に登録する(S413)。このとき、段差があったので、段差情報テーブルT14には「段差」=1の情報も登録される。
【0211】
一方、差分距離が第1所定値未満であれば(S407でNO)、主制御部211は、距離センサー105の光軸の制御が終了したか否かを判定する(S408)。ここで、主制御部211は、例えば、距離センサー105の光軸の角度αが所定の上限値に到達した場合、光軸の制御が終了したと判定すればよい。
【0212】
距離センサー105の光軸の制御が終了したと判定した場合(S408でYES)、主制御部211は、現在の旋回差分角度θの方向において段差はなかったと判定する(S410)。
【0213】
次に、主制御部211は、距離センサー105の光軸を下限値から下限値まで単位ピッチ角ずつ変化させたときの距離センサー105が計測した距離の最大値を取得する(S412)。
【0214】
次に、主制御部211は、S412で取得した距離の最大値に対して式(1)の演算を行い距離D(θ)を算出し、距離D(θ)を現在の旋回差分角度θと対応付けて段差情報テーブルT14に登録する(S413)。このとき、段差がなかったので、段差情報テーブルT14には「段差」=0の情報も登録される。
【0215】
次に、主制御部211は、旋回方向を所定方向に設定する(S414)。S414の処理は、1回の段差検知処理において、ロボット1の旋回方向を一定の方向に固定するために設けられている。そのため、1回の段差検知処理において、ロボット1が例えば時計回り(右回り)に旋回されるのであれば、S414において旋回方向は右回りに固定され、ロボット1が例えば反時計回り(左回り)に旋回されるのであれば、S414において旋回方向は左回りに固定される。
【0216】
次に、主制御部211は、旋回単位角度を所定値に設定する(S415)。図13に示すように、旋回単位角度が例えば45度であるとすると、S415において旋回単位角度は45度に設定される。
【0217】
次に、主制御部211は、その場旋回処理前の旋回角度をジャイロセンサー155から取得する(S416)。ここでは、ジャイロセンサー155のヨー角の計測値がその場旋回処理前の旋回角度として取得される。
【0218】
次に、主制御部211は、その場旋回処理を実行する(S417)。その場旋回処理の詳細は図22を用いて後述する。
【0219】
次に、主制御部211は、その場旋回処理後の旋回角度をジャイロセンサー155から取得する(S418)。次に、主制御部211は、その場旋回処理前後の旋回角度の差分、すなわち、S416で取得した旋回角度とS418で取得した旋回角度との差分を取得する(S419)。
【0220】
次に、主制御部211は、S419で取得した旋回角度の差分が旋回単位角度未満であれば(S420でNO)、処理をS417に戻し、再度、その場旋回処理を行う(S417)。
【0221】
一方、主制御部211は、S419で取得した旋回角度の差分が旋回単位角度以上であれば(S420でYES)、ロボット1は旋回単位角度、旋回できたので、この旋回角度の方向での段差の有無を検知するために、処理をS401に戻す。
【0222】
S417~S420の処理が繰り返されることで、ロボット1は旋回単位角度分、旋回する。
【0223】
図21のフローを概観すると、まず、初期旋回角度において、距離センサー105の光軸が単位ピッチ角ずつ回転されて段差の有無が検知される。そして、ロボット1は旋回単位角度旋回され、距離センサー105の光軸が単位ピッチ角ずつ回転されて段差の有無が検知される。以後、旋回差分角度θが段差検知範囲の上限角度になるまで、ロボット1が旋回単位角度ずつ旋回されて段差の有無が検知される。
【0224】
図22は、その場旋回処理の詳細を示すフローチャートである。まず、主制御部211は、停止制御量を第2駆動機構制御部208に出力し、右回転制御量を重り駆動機構制御部209に出力する(S501)。これにより、図15に示すように、ロボット1は、その場旋回行動状態「1」の状態になる。
【0225】
次に、主制御部211は、ジャイロセンサー155のロール角の計測値をモニタし、ロボット1が実際に右側に所定角度傾いたか否かを検知する(S502)。そして、ロボット1が実際に右側に所定角度傾いたことを検知できなかった場合(S502でNO)、主制御部211は、処理をS501に戻す。一方、ロボット1が実際に右側に所定角度傾いたことを検知できた場合(S502でYES)、主制御部211は、処理をS503に進める。すなわち、ロボット1が実際に右側に所定角度傾くことが確認されるまで、S501、S502の処理が継続される。
【0226】
次に、主制御部211は、右回転制御量を重り駆動機構制御部209に出力し、前進方向への加速制御量を第2駆動機構制御部208に出力する(S503)。これにより、図15に示すように、ロボット1は、その場旋回行動状態「2」の状態になる。
【0227】
次に、主制御部211は、第1モータ118が備えるロータリエンコーダの計測値をモニタし、ロボット1が実際に前進を開始したか否かを検知する(S504)。そして、ロボット1が実際に前進を開始したことを検知できなかった場合(S504でNO)、主制御部211は、処理をS503に戻す。一方、ロボット1が実際に前進を開始したことを検知できた場合(S504でYES)、主制御部211は、処理をS505に進める。すなわち、ロボット1が実際に前進を開始したことが確認されるまで、S503、S504の処理が継続される。
【0228】
次に、主制御部211は、停止制御量を第2駆動機構制御部208に出力し(S505)、左回転制御量を重り駆動機構制御部209に出力する(S506)。これにより、図15に示すように、ロボット1は、その場旋回行動状態「3」の状態になる。
【0229】
次に、主制御部211は、ジャイロセンサー155のロール角の計測値をモニタし、ロボット1が実際に左側に所定角度傾いたか否かを検知する(S507)。そして、ロボット1が実際に左側に所定角度傾いたことを検知できなかった場合(S507でNO)、主制御部211は、処理をS506に戻す。一方、ロボット1が実際に左側に所定角度傾いたことを検知できた場合(S507でYES)、主制御部211は、処理をS508に進める。すなわち、ロボット1が実際に左側に所定角度傾くことが確認されるまで、S506、S507の処理が継続される。
【0230】
次に、主制御部211は、左回転制御量を重り駆動機構制御部209に出力し、後進方向への加速制御量を第2駆動機構制御部208に出力する(S508)。これにより、図15に示すように、ロボット1は、その場旋回行動状態「4」の状態になる。
【0231】
次に、主制御部211は、第1モータ118が備えるロータリエンコーダの計測値をモニタし、ロボット1が実際に後進を開始したか否かを検知する(S509)。そして、ロボット1が実際に後進を開始したことを検知できなかった場合(S509でNO)、主制御部211は、処理をS508に戻す。一方、ロボット1が実際に後進を開始したことを検知できた場合(S509でYES)、主制御部211は、処理をS510に進める。すなわち、ロボット1が実際に後進を開始したことが確認されるまで、S508、S509の処理が継続される。
【0232】
次に、主制御部211は、停止制御量を第2駆動機構制御部208に出力する(S510)。これにより、ロボット1の後進が停止される。
【0233】
図22のフローが繰り返されることで、ロボット1はその場旋回を繰り返し、旋回単位角度分の旋回を実現する。
【0234】
図23は、進行方向決定処理の詳細を示すフローチャートである。まず、主制御部211は、人検出情報がメモリ202に存在するか否かを判定する(S601)。人検出情報が存在しなければ(S601でNO)、主制御部211は、360度に設定された段差検知範囲内の下で作成された段差情報テーブルT14の中から距離の最大値を取得する(S602)。一方、人検出情報が存在すれば(S601でYES)、人物を含む一定範囲に設定された段差検知範囲の下で作成された段差情報テーブルT14の中から距離の最大値を取得し(S603)、人検出情報をメモリ202から削除し(S604)、処理をS605に進める。
【0235】
次に、主制御部211は、S602又はS603で取得した距離の最大値に対応する旋回差分角度θの方向をロボット1の目標旋回角度として設定する(S605)。
【0236】
次に、主制御部211は、ジャイロセンサー155のヨー角の計測値からロボット1の現在の旋回角度を取得する(S606)。次に、主制御部211は、S605で設定した目標旋回角度とS606で取得した現在の旋回角度との差分を移動旋回角度として設定する(S607)。
【0237】
次に、主制御部211は、その場旋回処理前の旋回角度をジャイロセンサー155から取得する(S608)。ここでは、ジャイロセンサー155のヨー角の計測値がその場旋回処理前の旋回角度として取得される。
【0238】
次に、主制御部211は、その場旋回処理を実行する(S609)。その場旋回処理の詳細は図22を用いて上述した。
【0239】
次に、主制御部211は、その場旋回処理後の旋回角度をジャイロセンサー155から取得する(S610)。次に、主制御部211は、その場旋回処理前後の旋回角度の差分、すなわち、S608で取得した旋回角度とS610で取得した旋回角度との差分を取得する(S611)。
【0240】
次に、主制御部211は、S611で取得した旋回角度の差分が移動旋回角度未満であれば(S612でNO)、処理をS609に戻し、再度、その場旋回処理を行う(S609)。
【0241】
一方、主制御部211は、S611で取得した旋回角度の差分が移動旋回角度以上であれば(S612でYES)、ロボット1は移動旋回角度、旋回できたので、移動距離を設定する(S613)。ここで、主制御部211は、例えば、S602又はS603で取得した距離の最大値に係数k(例えば、0.5)を乗じた値を移動距離として設定すればよい。
【0242】
次に、主制御部211は、設定した移動距離分、ロボット1を第1速度で前進させる等速制御量を第2駆動機構制御部208に出力し(S614)、処理を終了する。これにより、ロボット1は、S602又はS603で取得された距離の最大値の方向に向けて移動距離分、第1速度で移動される。
【0243】
S609~S612の処理が繰り返されることで、ロボット1は移動旋回角度分、旋回する。
【0244】
このように、本実施の形態に係るロボット1によれば、距離センサー105が単位ピッチ角度ずつ回転する毎に表示部が向いている側、すなわち、ロボット1の前方に存在する物体までの距離が計測され、先に計測された第1距離と次に計測された第2距離との差が第1所定値以上である場合は、第1距離が計測された時のロボットの旋回角度の方向において第1距離先に、段差が有ることを示す情報がメモリ202に記憶される。
【0245】
そのため、本実施の形態は、第1球冠部102及び第2球冠部103をピッチ方向に回転させることに連動して距離センサー105の光軸を変更させることができるという球体ロボットの特性を利用して段差を検出することができる。
【0246】
また、本実施の形態は、段差の有る方向にメイン筐体101を回転させる際、その場旋回処理によって、段差の有る方向にロボット1を旋回させる。
【0247】
そのため、本実施の形態は、通常旋回時よりも小さな旋回半径でロボットを旋回させて、ロボット1を段差の有る方向に向けることができる。その結果、本実施の形態は、例えば、机の角というようなロボット1が落下する危険性の高い箇所であっても、小さな旋回半径でロボット1を旋回させて、旋回時にロボット1が落下することを防止できる。
【0248】
更に、本実施の形態は、段差の有る方向にロボット1を移動させる際、段差までの距離である第1距離より短い距離だけメイン筐体101を回転させて前進させるため、移動先の前方に有る段差からロボット1が落下することを防止できる。
【0249】
なお、本開示は下記の変形例を採用できる。
【0250】
(1)図23のS605では、段差情報テーブルT14において距離が最も遠い方向がロボット1の目標旋回角度として決定されているが、このとき、主制御部211は、段差の有る方向よりも段差の無い方向を優先して進行方向を決定してもよい。例えば、段差情報テーブルT14において、段差の有る方向と段差の無い方向とのそれぞれに距離の最大値として同一の値が登録されていたとする。この場合、主制御部211は、段差の無い方向をロボット1の進行方向として決定すればよい。ここで、段差の無い方向の先には壁等の障害物があることが想定される。したがって、段差の無い方向にロボット1の進行方向を決定することで、段差からロボット1が落下する事態を回避できる。
【0251】
(2)図23のS605において、主制御部211は、段差情報テーブルT14に登録された距離のうち、最も短い距離に対応する方向以外の方向の中からロボット1の目標旋回角度を決定してもよい。この場合、主制御部211は、段差情報テーブルT14に登録された距離のうち、最も短い距離以外の距離に対応する旋回差分角度θの中からランダムに1の旋回差分角度θを決定し、決定した旋回差分角度θの方向をロボット1の目標旋回角度として決定すればよい。
【0252】
この変形例においても、主制御部211は、段差が有る方向よりも段差が無い方向を優先して目標旋回角度を決定してもよい。例えば、主制御部211は、段差情報テーブルT14において、段差の有る方向の抽選確率を段差の無い方向の抽選確率よりも低く設定して、ランダムに目標旋回角度を決定すればよい。
【0253】
(3)図23のS605において、主制御部211は、段差情報テーブルT14に登録された距離のうち、所定距離以上の距離に対応する方向の中からロボット1の目標旋回角度を決定してもよい。この場合、主制御部211は、段差情報テーブルT14に登録された距離のうち、所定距離以上の距離に対応する旋回差分角度θの中からランダムに1の旋回差分角度θを決定し、決定した旋回差分角度θの方向をロボット1の目標旋回角度として決定すればよい。なお、所定距離としては、例えば、50cmが採用できる。
【0254】
この変形例においても、主制御部211は、段差が有る方向よりも段差が無い方向を優先して目標旋回角度を決定してもよい。例えば、主制御部211は、段差情報テーブルT14において、段差の有る方向の抽選確率を段差の無い方向の抽選確率よりも低く設定して、ランダムに目標旋回角度を決定すればよい。
【0255】
(4)図23のS605において、主制御部211は、段差情報テーブルT14に登録された距離のうち、所定距離以下の距離に対応する方向以外の方向の中からロボット1の目標旋回角度を決定してもよい。この場合、主制御部211は、段差情報テーブルT14に登録された距離のうち、所定距離以下の距離に対応する旋回差分角度θの中からランダムに1の旋回差分角度θを決定し、決定した旋回差分角度θの方向をロボット1の目標旋回角度として決定すればよい。なお、所定距離としては、例えば、30cmが採用できる。
【0256】
この変形例においても、主制御部211は、段差が有る方向よりも段差が無い方向を優先して目標旋回角度を決定してもよい。例えば、主制御部211は、段差情報テーブルT14において、段差の有る方向の抽選確率を段差の無い方向の抽選確率よりも低く設定して、ランダムに目標旋回角度を決定すればよい。
【0257】
(5)(1)の変形例において、段差の有る方向よりも段差の無い方向(ここでは、壁等の障害物の方向)を優先して目標旋回角度を決定するに際し、主制御部211は下記の手法を採用してもよい。すなわち、主制御部211は、段差までの距離に対して重み値W1を乗じた第1演算値と、壁を含む障害物までの距離に対して重み値W2を乗じた第2演算値とを算出する。但し、W1+W2=1であり、W1<W2である。そして、主制御部211は、第1演算値と第2演算値とのうち値が最大の演算値に対応する旋回差分角度θを目標旋回角度として設定すればよい。この変形例では、W1<W2に設定されているため、壁等の障害物の方向が段差の方向よりも優先的に目標旋回角度として設定されることができる。その結果、ロボット1は、段差に進む確率が低くなり、ロボット1の段差からの落下をより抑制できる。
【0258】
(6)図23のS605において、主制御部211は、段差情報テーブルT14に登録された距離のうち、段差のない方向、すなわち、壁等の障害物が有る方向の距離の中からロボット1の目標旋回角度を決定してもよい。この場合、主制御部211は、段差情報テーブルT14に登録された距離のうち、「段差」=0の距離の中から最大の距離を決定し、決定した最大の距離に対応する方向を目標旋回角度として決定すればよい。
【0259】
(7)図18のフローチャートでは、ロボットが走行面に置かれたことを条件に処理が開始されているが(S101)、本開示はこれに限定されず、ロボット1が停止したときを条件に処理が開始されてもよい。この場合、本開示は、ロボット1が停止したときに、段差検知処理を開始し、段差のある方向を検知すると、ロボット1を段差のある方向に移動させればよい。この場合、本開示は、段差情報テーブルT14において、段差までの距離が最大の旋回差分角度θの方向を目標旋回角度として設定し、目標旋回角度の方向にロボット1を段差までの距離よりも短い距離だけ移動させればよい。これにより、ロボット1が段差から落下することを防止できる。
【0260】
(8)図21に示す段差検知処理では、旋回単位角度ごとに段差の有無が検知されているが、本開示はこれに限定されず、ロボット1の正面方向に対してのみ段差の有無が検知されてもよい。この場合、本開示は、段差までの距離が所定距離未満であれば、旋回単位角度だけ旋回して段差の有無を検知し、段差までの距離が所定距離以上であれば、段差の方向に段差までの距離より短い距離だけロボット1を移動させればよい。一方、ロボット1の正面方向に対して段差を検知しなかった場合、本開示は、正面方向に壁等の障害物があると判定し、障害物までの距離よりも短い距離だけロボット1を前進させればよい。
【0261】
(9)図14に示す段差情報テーブルT14において全ての方向に段差があることを示す情報が登録され、且つ、カメラ104が取得した画像データ及びマイク106が取得した音声データから人物の存在が検知できなかった場合、本開示は、ロボット1の位置から最も遠い段差の方向に、その段差までの距離よりも短い距離だけロボット1を移動させてもよい。この場合、ロボット1が机のような周囲が段差で取り囲まれた物体の上に載置された場合において、ロボット1の段差からの落下を防止しつつ、可能な限りロボット1の走行を継続させることができる。
【0262】
(10)図18のフローチャートでは、ロボットが走行面に置かれたことを条件に処理が開始されているが(S101)、本開示はこれに限定されず、カメラ104が取得した画像データ及びマイク106が取得した音声データから人物を検知できた場合に実行されてもよい。この場合、本開示は、その場旋回処理を行ってロボット1の正面を人物の方向に向け、段差検知処理を実行し、段差を検知した場合、人物の方向に段差までの距離よりも短い距離だけロボット1を移動させればよい。
【産業上の利用可能性】
【0263】
本開示によるロボットは、段差からの落下を防止することができるので、段差の多い環境下である家庭内で使用されるロボットとして有用である。
【符号の説明】
【0264】
1 ロボット
101 メイン筐体
102 第1球冠部
103 第2球冠部
104 カメラ
105 距離センサー
106 マイク
107 スピーカ
108 第1表示部
109 第2表示部
110 第3表示部
114 重り
115 シャフト
116 第1ギア
117 第2ギア
118 第1モータ
120 加速度センサー
121 第2モータ
122 駆動ベルト
123 第3アーム
123a 重り軸
124 第4アーム
124a 重り軸
125 第3モータ
126 第3ギア
127 第4ギア
155 ジャイロセンサー
200 制御回路
201 プロセッサ
202 メモリ
203 第1駆動機構
204 第2駆動機構
205 重り駆動機構
206 電源
207 第1駆動機構制御部
208 第2駆動機構制御部
209 重り駆動機構制御部
210 電源制御部
211 主制御部
212 音声認識処理部
213 顔検出処理部
214 ジャイロ処理部
215 距離センサー処理部
216 加速度センサー処理部
218 段差情報管理部
T14 段差情報テーブル
θ 旋回差分角度
図1A
図1B
図2
図3
図4
図5
図6A
図6B
図6C
図7A
図7B
図8A
図8B
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23