(57)【要約】【課題】球冠部をピッチ方向に回転させることに連動して距離センサーの光軸を変更させることができるという球体ロボットの特性を利用して段差を検出し、検出した段差に球体ロボットが落下しないように、球体ロボットを走行させる。【解決手段】ロボットは、前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、先に計測された第１距離と次に計測された第２距離との差が第１所定値以上である場合は、前記第１距離が計測された時の前記ロボットの旋回角度の方向において前記第１距離先に、段差が有ることを示す情報を前記メモリに記憶し、前記段差の有る方向に前記メイン筐体を回転させる際、まず、その場旋回処理を行い、次に、前記段差の有る方向に前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させる。【選択図】図１２
2019057203.tif 000002
【特許請求の範囲】
【請求項１】
球体の第１側部と前記第１側部に対向する第２側部とをカットした球帯状のメイン筐体と、
前記第１側部に対応する第１球冠部と、
前記第２側部に対応する第２球冠部と、
前記第１球冠部と前記第２球冠部とを連結するシャフトと、
前記シャフトにアームを介して取り付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記メイン筐体の内部に設けられ前記シャフトと直交する重りの軸を中心に回転する重りと、
前記シャフトの回転により前記第１球冠部及び前記第２球冠部を回転させる第１駆動機構と、
前記第１駆動機構から独立し、前記シャフトを中心に前記メイン筐体を回転させる第２駆動機構と、
前記重りの軸回りに前記重りを回転させる重り駆動機構と、
前記第１球冠部又は前記第２球冠部に設けられ前記表示部が向いている側に向けられた距離センサーと、
前記シャフトを含む平面に垂直な軸を中心とする前記ロボットの旋回角度を計測し、また、前記ロボットの揺れを検知するジャイロセンサーと、
メモリと、
制御回路と、を備え、
前記制御回路は、
前記第１駆動機構を制御して、前記距離センサーを、前記シャフトを中心として所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第１距離と次に計測された第２距離との差が第１所定値以上である場合は、前記第１距離が計測された時の前記ロボットの旋回角度の方向において前記第１距離先に、段差が有ることを示す情報を前記メモリに記憶し、
前記段差の有る方向に前記メイン筐体を回転させる際、
まず、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を前進させ、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第１側とは異なる第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記段差の有る方向に前記ロボットを旋回させ、
次に、前記段差の有る方向に前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させる、
ロボット。
【請求項２】
前記制御回路は、
前記ジャイロセンサーが検知した前記ロボットの揺れの値が所定期間変動していない場合は、前記ロボットが平面に置かれたと判断し、
前記第２駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記重りの回転を停止させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測する、
請求項１記載のロボット。
【請求項３】
前記制御回路は、
前記第１距離と前記第２距離との差が前記第１所定値未満である場合は、前記第１距離が計測された時の前記ロボットの旋回角度の方向には段差が無いことを示す情報を前記メモリに記憶する、
請求項１記載のロボット。
【請求項４】
前記制御回路は、
前記ジャイロセンサーが検知した前記ロボットの揺れの値が所定期間変動していない場合は、前記ロボットが平面に置かれたと判断し、
前記第２駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記重りの回転を停止させ、
前記ロボットの前進及び後進を停止させた状態で前記重りの回転を停止させたときの旋回角度を第１旋回角度とした場合、前記第１旋回角度から所定旋回単位角度をなす次の第２旋回角度まで前記ロボットを旋回させて前記第２旋回角度の方向において段差の有無を判断する際、
まず、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を前進させ、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第１側とは異なる第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記第２旋回角度まで前記ロボットを旋回させ、
次に、前記第１駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測する、
請求項１記載のロボット。
【請求項５】
前記制御回路は、
前記ロボットが平面に置かれたと判断し、前記ロボットの前進及び後進を停止させた状態で前記重りの回転を停止させたときの旋回角度を前記第１旋回角度とした場合、前記ロボットが前記第１旋回角度から３６０度旋回するまで、前記所定旋回単位角度で前記段差の有無を判断する処理を継続する、
請求項４記載のロボット。
【請求項６】
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記取得された映像に人物が含まれていないと判断し、且つ、前記取得された音に前記人物の音声が含まれていないと判断した場合であって、前記３６０度のいずれの方向にも前記段差がある場合、
前記ロボットの位置から最も遠い段差の有る方向に、前記ロボットの位置から前記最も遠い段差までの距離より短い距離だけ前記メイン筐体を回転させて前進させる、
請求項５記載のロボット。
【請求項７】
球体の第１側部と前記第１側部に対向する第２側部とをカットした球帯状のメイン筐体と、
前記第１側部に対応する第１球冠部と、
前記第２側部に対応する第２球冠部と、
前記第１球冠部と前記第２球冠部とを連結するシャフトと、
前記シャフトにアームを介して取り付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記メイン筐体の内部に設けられ前記シャフトと直交する重りの軸を中心に回転する重りと、
前記シャフトの回転により前記第１球冠部及び前記第２球冠部を回転させる第１駆動機構と、
前記第１駆動機構から独立し、前記シャフトを中心に前記メイン筐体を回転させる第２駆動機構と、
前記重りの軸を回転させる重り駆動機構と、
前記第１球冠部又は前記第２球冠部に設けられ前記表示部が向いている側に向けられた距離センサーと、
前記シャフトを含む平面に垂直な軸を中心とする前記ロボットの旋回角度を計測し、また、前記ロボットの揺れを検知するジャイロセンサーと、
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、
メモリと、
制御回路と、を備え、
前記制御回路は、
前記カメラにより取得された映像に人物が含まれていると判断された場合、または、前記マイクにより取得された音に前記人物の音声が含まれていると判断された場合は、
まず、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を前進させ、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第１側とは異なる第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記人物が存在する方向に対応する所定の旋回角度まで前記ロボットを旋回させ、
次に、前記第１駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第１距離と次に計測された第２距離との差が所定値以上である場合は、前記第１距離が計測された時の前記ロボットの旋回角度の方向において前記第１距離先に、段差が有ると判断し、
次に、前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させる、
ロボット。
【請求項８】
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記段差の有る方向に前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させた後、前記カメラにより取得された映像に人物が含まれているかを判断し、または、前記マイクにより取得された音に前記人物の音声が含まれているかを判断し、
前記取得された映像に前記人物が含まれていると判断された場合、または、前記取得された音に前記人物の音声が含まれていると判断された場合、
まず、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を前進させ、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第１側とは異なる第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記人物が存在する方向に対応する所定の旋回角度まで前記ロボットを旋回させ、
次に、前記第１駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第３距離と次に計測された第４距離との差が所定値以上である場合は、前記第３距離が計測された時の前記ロボットの旋回角度の方向において前記第３距離先に、段差が有ると判断し、
次に、前記第３距離より短い距離だけ前記メイン筐体を回転させて前進させる、
請求項１記載のロボット。
【請求項９】
前記制御回路は、
前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させた後所定期間以内に前記マイクから取得された音に、前記人物が前記ロボットに指示する音声が含まれているかを判断し、
前記取得された音に前記人物が前記ロボットに指示する音声が含まれていると判断された場合は、前記指示に対応するタスクを実行する、
請求項７記載のロボット。
【請求項１０】
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記３６０度のいずれの方向にも段差がない場合において、前記取得された映像に人物が含まれていないと判断し、且つ、前記取得された音に前記人物の音声が含まれていないと判断した場合、前記距離センサーを用いて前記メイン筐体を回転させて前進させる方向に障害物があるかを判断し、
前記メイン筐体を回転させて前進させる方向に障害物があると判断した場合、前記ロボットから前記障害物までの距離が第２所定値未満かを判断し、
前記ロボットから前記障害物までの距離が前記第２所定値未満である場合、前記第２駆動機構を制御して前記ロボットを前進させる第１速度より遅い第２速度に減速させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して前記第１側に前記重りを傾けることによって、前記ロボットを第１旋回半径よりも大きい第２旋回半径で旋回させ、
前記第１旋回半径は、前記ロボットが前記第１旋回角度から３６０度旋回するまで、前記所定旋回単位角度で前記段差の有無を判断する処理を行ったときの前記ロボットの旋回半径である、
請求項５記載のロボット。
【請求項１１】
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記３６０度のいずれの方向にも段差がない場合において、前記取得された映像に人物が含まれていると判断し、または、前記取得された音に前記人物の音声が含まれていると判断した場合、
前記人物が存在する方向に、前記第２駆動機構を制御して前記ロボットを前進させる第１速度で前記ロボットを前進させる、
請求項５記載のロボット。
【請求項１２】
前記制御回路は、
前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させた後所定期間以内に前記マイクから取得された音に、前記人物が前記ロボットに指示する音声が含まれているかを判断し、
前記取得された音に前記人物が前記ロボットに指示する音声が含まれていると判断された場合は、前記指示に対応するタスクを実行する、
請求項１１記載のロボット。
【請求項１３】
前記制御回路は、
前記メイン筐体の回転を停止させる停止制御量に従って前記第２駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で第１回転制御量に従って前記重り駆動機構を制御して前記第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記メイン筐体を回転させる第１加速制御量に従って前記第２駆動機構を制御して前記ロボットを前進させ、前記第２駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記第１回転制御量と逆方向の制御量である第２回転制御量に従って前記重り駆動機構を制御して前記表示部が向いている方向に対して前記第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第１加速制御量と同一制御量の第２加速制御量に従って前記第２駆動機構を制御して前記ロボットを後進させる、
請求項１記載のロボット。
【請求項１４】
前記制御回路は、
前記第２速度で前記ロボットを前進させる減速制御量に従って前記第２駆動機構を制御して前記ロボットを前進させ、
第１回転制御量に従って前記重り駆動機構を制御して前記第１側に前記重りを傾け、
前記第１回転制御量は、前記メイン筐体の回転を停止させる停止制御量に従って前記第２駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記第１側に前記重りを傾ける回転制御量である、
請求項１０記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ロボットに関する。
【背景技術】
【０００２】
特許文献１は、走行方向前方にある測距対象物までの距離を測距する測距センサーを用いて、走行面よりも下にある凹みを検出し、検出した凹みに侵入しないようにロボットを制御する技術を開示する。
【０００３】
特許文献２は、自律移動装置の落下を防止するために、気圧センサーで計測された計測データと基準気圧との差から算出した自律移動装置と床面との高度差、又は自律移動装置を床面から持ち上げたときの加速度センサーの計測データを二重積分することで算出した高度差を自律移動装置と床面との高度差として取得し、取得した高度差が所定値以上であれば、自律移動装置をその場でのみ回転させる技術を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２１６２５号公報
【特許文献２】特開２０１７−１０２５３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記従来技術は更なる改良が必要であった。
【課題を解決するための手段】
【０００６】
本開示の一態様に係るロボットは、球体の第１側部と前記第１側部に対向する第２側部とをカットした球帯状のメイン筐体と、
前記第１側部に対応する第１球冠部と、
前記第２側部に対応する第２球冠部と、
前記第１球冠部と前記第２球冠部とを連結するシャフトと、
前記シャフトにアームを介して取り付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記メイン筐体の内部に設けられ前記シャフトと直交する重りの軸を中心に回転する重りと、
前記シャフトの回転により前記第１球冠部及び前記第２球冠部を回転させる第１駆動機構と、
前記第１駆動機構から独立し、前記シャフトを中心に前記メイン筐体を回転させる第２駆動機構と、
前記重りの軸回りに前記重りを回転させる重り駆動機構と、
前記第１球冠部又は前記第２球冠部に設けられ前記表示部が向いている側に向けられた距離センサーと、
前記シャフトを含む平面に垂直な軸を中心とする前記ロボットの旋回角度を計測し、また、前記ロボットの揺れを検知するジャイロセンサーと、
メモリと、
制御回路と、を備え、
前記制御回路は、
前記第１駆動機構を制御して、前記距離センサーを、前記シャフトを中心として所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第１距離と次に計測された第２距離との差が第１所定値以上である場合は、前記第１距離が計測された時の前記ロボットの旋回角度の方向において前記第１距離先に、段差が有ることを示す情報を前記メモリに記憶し、
前記段差の有る方向に前記メイン筐体を回転させる際、
まず、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を前進させ、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第１側とは異なる第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記段差の有る方向に前記ロボットを旋回させ、
次に、前記段差の有る方向に前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させる、ものである。
【発明の効果】
【０００７】
本開示によれば更なる改善を図ることができる。
【図面の簡単な説明】
【０００８】
【図１Ａ】本開示の実施の形態に係るロボットの外観斜視図である。
【図１Ｂ】本開示の実施の形態に係るロボットの外観正面図である。
【図２】本開示の実施の形態に係るロボットの内部斜視図である。
【図３】本開示の実施の形態に係るロボットの内部背面図である。
【図４】本開示の実施の形態に係るロボットの第１球冠部及び第２球冠部の連結状態を示す内部背面図である。
【図５】図３におけるロボットのＡＡ断面図である。
【図６Ａ】図３のＢ視におけるロボットの内部側面図である。
【図６Ｂ】図３のＢ視における、本開示の実施の形態に係るロボットの第１表示部、第２表示部、及び第３表示部が後方に傾いた状態を示す内部側面図である。
【図６Ｃ】図３のＢ視における、本開示の実施の形態に係るロボットの第１表示部、第２表示部、及び第３表示部が前方に傾いた状態を示す内部側面図である。
【図７Ａ】図３のＣ視における、本開示の実施の形態に係るロボットの第２駆動機構を示す側面図である。
【図７Ｂ】図３のＣ視におけるロボットの直進動作を表す側面図である。
【図８Ａ】図３において、ロボットの重りが左方寄りに位置しているときのロボットの姿勢を示す内部背面図である。
【図８Ｂ】図３において、ロボットの重りが右方寄りに位置しているときのロボットの姿勢を示す内部背面図である。
【図９】メイン筐体が図７Ｂに示す矢印１３６の方向に回転を始めるまでのロボットの姿勢を示す図である。
【図１０】本開示の実施の形態に係るロボットが適用されたロボットシステムの全体構成の一例を示す図である。
【図１１】本開示の実施の形態に係るロボットを示すブロック図である。
【図１２】本開示の実施の形態に係るロボットが採用する段差検知処理を説明する模式図である。
【図１３】段差情報テーブルを作成する際のロボットの動作を示す図である。
【図１４】段差情報テーブルのデータ構成の一例を示す図である。
【図１５】その場旋回処理を実行したときのロボットの状態を示す図である。
【図１６】周囲に存在する人物が検知されなかった場合において、ロボットの進行方向が決定される処理を説明する図である。
【図１７】周囲に存在する人物が検知された場合において、ロボットの進行方向が決定される処理を説明する図である。
【図１８】本開示の実施の形態に係るロボットの処理を示すフローチャートである。
【図１９】図１８において周囲に段差がないと判定されたときの（Ｓ１０４でＮＯ）続きのフローチャートである。
【図２０】図１８において人物が検知されたときの（Ｓ１０５でＹＥＳ）続きのフローチャートである。
【図２１】段差検知処理の詳細を示すフローチャートである。
【図２２】その場旋回処理の詳細を示すフローチャートである。
【図２３】進行方向決定処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【０００９】
（本開示にかかる一態様を発明するに至った経緯）
まず、本発明者は、球体状の筐体を備え、この筐体を回転させることで家庭内等の室内で自律的に移動する球体ロボットを検討している。
【００１０】
このような、球体ロボットは、机等の高所に置かれた場合、高所から落下して故障する危険性があるので、高所からの落下を未然に防ぐ必要がある。そのためには、球体ロボットは、走行面からの高低差が急激に変化する段差を検出し、段差を避けて走行する必要がある。
【００１１】
ここで、段差からの落下を防止するために、段差の方向に球体ロボットを移動させることを一律に禁止してしまうと、机のようや周囲が全て段差で取り囲まれているような高所において球体ロボットを移動させることができないという問題が生じる。
【００１２】
球体ロボットを、常時、移動させると、ロボットをペットのように振る舞わせることができ、ユーザに対する球体ロボットへの愛着が増すと考えられる。したがって、球体ロボットの自律的な移動は可能な限り制限しない方がよい。そのためには、周囲が段差で取り囲まれている場合であっても、極力危険性の低い方位に球体ロボットを旋回させ、その方向に走行させる必要がある。
【００１３】
本発明者が研究対象とする球体ロボットは、一対の球冠部と、一対の球冠部を連結するシャフトと、シャフトに取り付けられた表示部と、シャフト回りに回転可能に取り付けられたメイン筐体とを備え、メイン筐体をシャフト回りに回転させることで、地面に対して走行するように構成されている。一方、球体ロボットは、シャフトを回転させると、それと連動して表示部及び一対の球冠部がピッチ方向に連動して回転する。これにより、球体ロボットは、表示部のシャフト回りの向きを変更させることが可能となる。ここで、一対の球冠部には、球体ロボットの正面に存在する物体までの距離を計測する距離センサーが設けられている。また、表示部にはロボットの表情を示す目及び口の画像が表示される。そのため、球体ロボットは、一対の球冠部をシャフト回りに回転させることで、目及び口の画像の方向及び距離センサーの光軸の方向を変更することができる。
【００１４】
そこで、本発明者は、ある場所で球体ロボットを静止させた状態で、シャフト回りに距離センサーの光軸の方向を変化させながら、距離センサーの計測値をモニタすると、段差がある箇所では、距離センサーの計測値に急激な変化が現れるとの知見を得た。例えば、距離センサーの光軸を床面に向け、シャフト回りの角度を徐々に増大させていくと、段差のある箇所までは距離センサーの計測値は徐々に増大していくが、段差のある箇所に到達すると、距離センサーの計測値はそれまでの測定値に対して急激に増大するとの知見を得た。
【００１５】
特許文献１は、測距センサーを用いて凹みを検出する技術を開示するが、測距センサーは、清掃ロボットが清掃対象とする床面から垂直に所定距離離間した位置に配置され、且つ、水平よりも下向きに取り付けられているとの記載があるに留まり、光軸がピッチ方向に変更可能に取り付けられているとの記載はない。また、特許文献１は、測距センサーの座標値と床面の方程式とを用いて凹みを検出しているため、複雑な演算が必要であり、処理ステップが嵩むという課題がある。
【００１６】
特許文献２は、加速度センサー又は気圧センサーにより高度差を検出しており、距離センサーについての開示はないので、距離センサーの光軸をピッチ方向に回転させて高度差を検出するとの技術思想はない。
【００１７】
以上により、特許文献１，２には、本発明者の知見は何ら考慮されていない。
【００１８】
本開示は、球冠部をピッチ方向に回転させることに連動して距離センサーの光軸を変更させることができるという球体ロボットの特性を利用して段差を検出し、検出した段差に球体ロボットが落下しないように、球体ロボットを走行させる技術を提供することである。
【００１９】
（１）本開示の一態様にかかるロボットは、球体の第１側部と前記第１側部に対向する第２側部とをカットした球帯状のメイン筐体と、
前記第１側部に対応する第１球冠部と、
前記第２側部に対応する第２球冠部と、
前記第１球冠部と前記第２球冠部とを連結するシャフトと、
前記シャフトにアームを介して取り付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記メイン筐体の内部に設けられ前記シャフトと直交する重りの軸を中心に回転する重りと、
前記シャフトの回転により前記第１球冠部及び前記第２球冠部を回転させる第１駆動機構と、
前記第１駆動機構から独立し、前記シャフトを中心に前記メイン筐体を回転させる第２駆動機構と、
前記重りの軸回りに前記重りを回転させる重り駆動機構と、
前記第１球冠部又は前記第２球冠部に設けられ前記表示部が向いている側に向けられた距離センサーと、
前記シャフトを含む平面に垂直な軸を中心とする前記ロボットの旋回角度を計測し、また、前記ロボットの揺れを検知するジャイロセンサーと、
メモリと、
制御回路と、を備え、
前記制御回路は、
前記第１駆動機構を制御して、前記距離センサーを、前記シャフトを中心として所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第１距離と次に計測された第２距離との差が第１所定値以上である場合は、前記第１距離が計測された時の前記ロボットの旋回角度の方向において前記第１距離先に、段差が有ることを示す情報を前記メモリに記憶し、
前記段差の有る方向に前記メイン筐体を回転させる際、
まず、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を前進させ、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第１側とは異なる第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記段差の有る方向に前記ロボットを旋回させ、
次に、前記段差の有る方向に前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させる、ものである。
【００２０】
本態様によれば、距離センサーが所定角度ずつ回転する毎に表示部が向いている側に存在する物体までの距離が計測され、先に計測された第１距離と次に計測された第２距離との差が第１所定値以上である場合は、第１距離が計測された時のロボットの旋回角度の方向において第１距離先に、段差が有ることを示す情報がメモリに記憶される。
【００２１】
そのため、本態様は、球冠部をピッチ方向に回転させることに連動して距離センサーの光軸を変更させることができるという球体ロボットの特性を利用して段差を検出することができる。
【００２２】
また、本態様は、段差の有る方向に前記メイン筐体を回転させる際、メイン筐体の回転を停止させた状態で重り駆動機構を制御して表示部が向いている方向に対して右側又は左側の第１側に前記重りを傾け、第１側に前記重りを傾けた状態で第２駆動機構を制御してメイン筐体を前進させ、且つ、メイン筐体の回転を停止させた状態で第１側とは異なる第２側に重りを傾け、第２側に重りを傾けた状態で第２駆動機構を制御してメイン筐体を後進させる動作を所定回数繰り返して、段差の有る方向にロボットを旋回させる。
【００２３】
そのため、本態様は、通常の旋回時よりも小さな旋回半径でロボットを旋回させて、ロボットを段差の有る方向に向けることができる。その結果、本態様は、例えば、机の角というようなロボットが落下する危険性の高い箇所であっても、小さな旋回半径でロボットを旋回させて、旋回時にロボットが落下することを防止できる。以下、この旋回半径の小さな旋回をその場旋回と呼び、その処理をその場旋回処理と呼ぶ。
【００２４】
更に、本態様は、段差の有る方向にロボットを移動させる際、段差までの距離である第１距離より短い距離だけメイン筐体を回転させて前進させるため、移動先の前方に有る段差からロボットが落下することを防止できる。
【００２５】
（２）上記態様において、前記制御回路は、
前記ジャイロセンサーが検知した前記ロボットの揺れの値が所定期間変動していない場合は、前記ロボットが平面に置かれたと判断し、
前記第２駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記重りの回転を停止させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測してもよい。
【００２６】
本態様によれば、ロボットが平面に置かれると、ロボットの前進及び後進を停止させた状態で重りの回転が停止される。これにより、ロボットは、左又は右に傾いていない通常時の姿勢に戻された状態で停止した状態となる。本態様は、この状態において、距離センサーが所定角度ずつ回転する毎に表示部が向いている側に存在する物体までの距離を計測するので、段差の計測を正確に行うことができる。
【００２７】
（３）上記態様において、前記制御回路は、
前記第１距離と前記第２距離との差が前記第１所定値未満である場合は、前記第１距離が計測された時の前記ロボットの旋回角度の方向には段差が無いことを示す情報を前記メモリに記憶させてもよい。
【００２８】
本態様によれば、第１距離と第２距離との差が第１所定値未満である場合は、第１距離が計測された時のロボットの旋回角度の方向には段差が無いことを示す情報がメモリに記憶されるので、該当する旋回角度の方向には段差がないものとしてロボットに管理させることができる。
【００２９】
（４）上記態様において、前記制御回路は、
前記ジャイロセンサーが検知した前記ロボットの揺れの値が所定期間変動していない場合は、前記ロボットが平面に置かれたと判断し、
前記第２駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記重りの回転を停止させ、
前記ロボットの前進及び後進を停止させた状態で前記重りの回転を停止させたときの旋回角度を第１旋回角度とした場合、前記第１旋回角度から所定旋回単位角度をなす次の第２旋回角度まで前記ロボットを旋回させて前記第２旋回角度の方向において段差の有無を判断する際、
まず、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を前進させ、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第１側とは異なる第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記第２旋回角度まで前記ロボットを旋回させ、
次に、前記第１駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測してもよい。
【００３０】
本態様によれば、ロボットが平面に置かれると、ロボットは、姿勢が通常時の状態に戻された上で停止された状態になる。そして、その場旋回処理が繰り返されて、ロボットは第１旋回角度から第２旋回角度まで旋回される。そして、第２旋回角度の方向において、距離センサーが所定角度ずつ回転する毎に距離計測が行われ、段差の有無が検出される。
【００３１】
そのため、本態様は、第１旋回方向のみならず第２旋回方向においても段差の有無及び段差までの距離を検出し、ロボットに管理させることができる。また、本態様は、複数の第２旋回方向における段差の有無及び段差までの距離を検出することで、複数の方位における段差の有無及び段差までの距離を検出し、ロボットに管理させることができる。
【００３２】
（５）上記態様において、前記制御回路は、
前記ロボットが平面に置かれたと判断し、前記ロボットの前進及び後進を停止させた状態で前記重りの回転を停止させたときの旋回角度を前記第１旋回角度とした場合、前記ロボットが前記第１旋回角度から３６０度旋回するまで、前記所定旋回単位角度で前記段差の有無を判断する処理を継続してもよい。
【００３３】
本態様によれば、ロボットが平面に置かれると、第１旋回角度から３６０度旋回するまで、所定角度単位で段差の有無を判断する処理が継続されるので、ロボットを中心に３６０度の範囲における段差の有無を判断し、ロボットに管理させることができる。
【００３４】
（６）上記態様において、前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記取得された映像に人物が含まれていないと判断し、且つ、前記取得された音に前記人物の音声が含まれていないと判断した場合であって、前記３６０度のいずれの方向にも前記段差がある場合、
前記ロボットの位置から最も遠い段差の有る方向に、前記ロボットの位置から前記最も遠い段差までの距離より短い距離だけ前記メイン筐体を回転させて前進させてもよい。
【００３５】
ロボットの周囲に人物がいなければ、人物の方向を考慮せずに、ロボットを最も落下の可能性が低い方向に移動させるのがよいと考えられる。本態様では、カメラ及びマイクを用いてロボットの周囲に人物がいないと判断された場合であって、ロボットを中心に３６０度のいずれの方向にも段差があると判断された場合、ロボットの位置から最も遠い段差の方向に対して、段差までの距離よりも短い距離だけロボットが移動される。そのため、可能な限りロボットの移動距離を確保しつつロボットの段差からの落下を防止できる。
【００３６】
（７）本開示の更に別の一態様は、球体の第１側部と前記第１側部に対向する第２側部とをカットした球帯状のメイン筐体と、
前記第１側部に対応する第１球冠部と、
前記第２側部に対応する第２球冠部と、
前記第１球冠部と前記第２球冠部とを連結するシャフトと、
前記シャフトにアームを介して取り付けられた、少なくともロボットの顔の一部を表示する表示部と、
前記メイン筐体の内部に設けられ前記シャフトと直交する重りの軸を中心に回転する重りと、
前記シャフトの回転により前記第１球冠部及び前記第２球冠部を回転させる第１駆動機構と、
前記第１駆動機構から独立し、前記シャフトを中心に前記メイン筐体を回転させる第２駆動機構と、
前記重りの軸を回転させる重り駆動機構と、
前記第１球冠部又は前記第２球冠部に設けられ前記表示部が向いている側に向けられた距離センサーと、
前記シャフトを含む平面に垂直な軸を中心とする前記ロボットの旋回角度を計測し、また、前記ロボットの揺れを検知するジャイロセンサーと、
前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、
メモリと、
制御回路と、を備え、
前記制御回路は、
前記カメラにより取得された映像に人物が含まれていると判断された場合、または、前記マイクにより取得された音に前記人物の音声が含まれていると判断された場合は、
まず、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を前進させ、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第１側とは異なる第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記人物が存在する方向に対応する所定の旋回角度まで前記ロボットを旋回させ、
次に、前記第１駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第１距離と次に計測された第２距離との差が所定値以上である場合は、前記第１距離が計測された時の前記ロボットの旋回角度の方向において前記第１距離先に、段差が有ると判断し、
次に、前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させる、ものである。
【００３７】
本態様によれば、カメラ及びマイクのいずれか１又は複数を用いて、周囲に人物の存在有無が判断される。そして、本態様では、周囲に人物が存在することが判断された場合、その場旋回処理によって人物が存在する方向にロボットが旋回され、距離センサーが所定角度ずつ回転されることで段差の有無と段差までの距離とが検出され、検出された段差までの距離より短い距離だけロボットが移動される。
【００３８】
そのため、本態様はロボットが段差から落下することを回避しつつ、人物に向けてロボットを移動させることができる。
【００３９】
（８）上記態様において、前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記段差の有る方向に前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させた後、前記カメラにより取得された映像に人物が含まれているかを判断し、または、前記マイクにより取得された音に前記人物の音声が含まれているかを判断し、
前記取得された映像に前記人物が含まれていると判断された場合、または、前記取得された音に前記人物の音声が含まれていると判断された場合、
まず、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して右側又は左側の第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を前進させ、前記第２駆動機構を制御して前記メイン筐体の回転を停止させた状態で前記第１側とは異なる第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第２駆動機構を制御して前記メイン筐体を後進させる動作を所定回数繰り返して、前記人物が存在する方向に対応する所定の旋回角度まで前記ロボットを旋回させ、
次に、前記第１駆動機構を制御して、前記距離センサーを、前記シャフトを中心として前記所定角度ずつ上方向及び下方向の少なくとも一方に回転させ、
前記距離センサーが前記所定角度ずつ回転する毎に前記表示部が向いている側に存在する物体までの距離を計測し、
先に計測された第３距離と次に計測された第４距離との差が所定値以上である場合は、前記第３距離が計測された時の前記ロボットの旋回角度の方向において前記第３距離先に、段差が有ると判断し、
次に、前記第３距離より短い距離だけ前記メイン筐体を回転させて前進させてもよい。
【００４０】
本態様では、ロボットを段差の有る方向に第１距離より短い距離だけ移動させた後、カメラ及びマイクのいずれか１又は複数を用いて、周囲に存在する人物の有無が判断される。そして、人物が存在する判断されると、本態様では、その場旋回処理によって人物が存在する方向にロボットが旋回され、距離センサーが所定角度ずつ回転されることで段差の有無と段差までの距離とが検出され、検出された段差までの距離より短い距離だけロボットが移動される。
【００４１】
そのため、本態様は、ロボットが段差から落下することを回避しつつ、人物に向けてロボットを移動させることができる。
【００４２】
（９）上記態様において、前記制御回路は、
前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させた後所定期間以内に前記マイクから取得された音に、前記人物が前記ロボットに指示する音声が含まれているかを判断し、
前記取得された音に前記人物が前記ロボットに指示する音声が含まれていると判断された場合は、前記指示に対応するタスクを実行してもよい。
【００４３】
本態様によれば、人物に向けてロボットを移動させた後、所定期間以内に人物がロボットに指示する音声を発話した場合、その指示に対応するタスクが実行される。そのため、本態様は、人物がロボットに対してタスクの実行を指示しているにも拘わらず、その指示を無視してロボットが走行を継続するような事態を回避できる。
【００４４】
（１０）上記態様において、前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記３６０度のいずれの方向にも段差がない場合において、前記取得された映像に人物が含まれていないと判断し、且つ、前記取得された音に前記人物の音声が含まれていないと判断した場合、前記距離センサーを用いて前記メイン筐体を回転させて前進させる方向に障害物があるかを判断し、
前記メイン筐体を回転させて前進させる方向に障害物があると判断した場合、前記ロボットから前記障害物までの距離が第２所定値未満かを判断し、
前記ロボットから前記障害物までの距離が前記第２所定値未満である場合、前記第２駆動機構を制御して前記ロボットを前進させる第１速度より遅い第２速度に減速させた状態で前記重り駆動機構を制御して前記表示部が向いている方向に対して前記第１側に前記重りを傾けることによって、前記ロボットを第１旋回半径よりも大きい第２旋回半径で旋回させ、
前記第１旋回半径は、前記ロボットが前記第１旋回角度から３６０度旋回するまで、前記所定旋回角度単位で前記段差の有無を判断する処理を行ったときの前記ロボットの旋回半径であってもよい。
【００４５】
本態様によれば、ロボットの周囲３６０度のいずれの方向にも段差がなく、且つ、周囲に人物も存在しなかった場合、前方に障害物が存在するか否かが判断される。そして、本態様では、前方に障害物が存在すると判断された場合、ロボットが前進するときの速度である第１速度よりも遅い第２速度に減速された状態で重りが第１側に傾けられる。これにより、ロボットは、その場旋回のときの第１旋回半径よりも大きな第２旋回半径で障害物を迂回することができる。また、ロボットは、第１速度よりも遅い第２速度で障害物を迂回するため、旋回半径が過大になることを防止できる。
【００４６】
（１１）上記態様において、前記ロボット周辺の映像を取得するカメラと、
前記ロボット周辺の音を取得するマイクと、を備え、
前記制御回路は、
前記３６０度のいずれの方向にも段差がない場合において、前記取得された映像に人物が含まれていると判断し、または、前記取得された音に前記人物の音声が含まれていると判断した場合、
前記人物が存在する方向に、前記第２駆動機構を制御して前記ロボットを前進させる第１速度で前記ロボットを前進させてもよい。
【００４７】
本態様によれば、周囲３６０度の方向に段差はないが人物が存在する状況下では、人物が存在する方向にロボットを走行させることができ、例えば、ロボットが人物になついているような演出を醸し出すことができる。
【００４８】
（１２）上記態様において、前記制御回路は、
前記第１距離より短い距離だけ前記メイン筐体を回転させて前進させた後所定期間以内に前記マイクから取得された音に、前記人物が前記ロボットに指示する音声が含まれているかを判断し、
前記取得された音に前記人物が前記ロボットに指示する音声が含まれていると判断された場合は、前記指示に対応するタスクを実行してもよい。
【００４９】
本態様によれば、人物に向けてロボットを移動させた後、所定期間以内に人物がロボットに指示する音声を発話した場合、その指示に対応するタスクが実行される。そのため、本態様は、人物がロボットに対してタスクの実行を指示しているにも拘わらず、その指示を無視してロボットが走行を継続するような事態を回避できる。
【００５０】
（１３）上記態様において、前記制御回路は、
前記メイン筐体の回転を停止させる停止制御量に従って前記第２駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で第１回転制御量に従って前記重り駆動機構を制御して前記第１側に前記重りを傾け、前記第１側に前記重りを傾けた状態で前記メイン筐体を回転させる第１加速制御量に従って前記第２駆動機構を制御して前記ロボットを前進させ、前記第２駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記第１回転制御量と逆方向の制御量である第２回転制御量に従って前記重り駆動機構を制御して前記表示部が向いている方向に対して前記第２側に前記重りを傾け、前記第２側に前記重りを傾けた状態で前記第１加速制御量と同一制御量の第２加速制御量に従って前記第２駆動機構を制御して前記ロボットを後進させてもよい。
【００５１】
本態様は、その場旋回処理の一例である。
【００５２】
（１４）上記態様において、前記制御回路は、
前記第２速度で前記ロボットを前進させる減速制御量に従って前記第２駆動機構を制御して前記ロボットを前進させ、
第１回転制御量に従って前記重り駆動機構を制御して前記第１側に前記重りを傾け、
前記第１回転制御量は、前記メイン筐体の回転を停止させる停止制御量に従って前記第２駆動機構を制御して前記ロボットの前進及び後進を停止させた状態で前記重り駆動機構を制御して前記第１側に前記重りを傾ける回転制御量であってもよい。
【００５３】
本態様は、ロボットを第１側に旋回走行させるときの制御の一例である。
【００５４】
（実施の形態）
以下、本発明の各実施の形態について、図面を参照しながら説明する。尚、各図面において、同じ構成要素については同じ符号が用いられている。
【００５５】
（全体構成）
図１Ａは、本開示の実施の形態に係るロボット１の外観斜視図である。図１Ｂは、本開示の実施の形態に係るロボット１の外観正面図である。ロボット１は、図１Ａ、及び図１Ｂに示すように、球帯状のメイン筐体１０１、第１球冠部１０２、及び第２球冠部１０３を備える。メイン筐体１０１、第１球冠部１０２、及び第２球冠部１０３は全体として球体を構成する。即ち、ロボット１は、球体形状を有する。また、ロボット１は、図１Ａに示すように、第１球冠部１０２にカメラ１０４を備え、第２球冠部１０３に距離センサー１０５を備える。カメラ１０４は、光軸が例えばロボット１の正面を向くように第１球冠部１０２に設けられ、ロボット１の周辺環境の映像を取得する。また、距離センサー１０５は、光軸が例えばロボット１の正面を向くように第２球冠部１０３に取り付けられ、ロボット１の前方に位置する物体までの距離情報を取得する。
【００５６】
また、ロボット１は、図１Ａに示すように、第１球冠部１０２にマイク１０６とスピーカ１０７とを備える。マイク１０６は、ロボット１の周辺環境の音を取得する。また、スピーカ１０７は、ロボット１の音声情報を出力する。尚、本態様において、ロボット１は、第１球冠部１０２にカメラ１０４を、第２球冠部１０３に距離センサー１０５を備えるが、これに限られるものではなく、第１球冠部１０２、及び第２球冠部１０３の少なくともいずれか一方にカメラ１０４と距離センサー１０５とを備えればよい。本態様では、ロボット１は、第１球冠部１０２にマイク１０６とスピーカ１０７とを備えるが、これに限られるものではなく、第１球冠部１０２及び第２球冠部１０３の少なくともいずれか一方にマイク１０６とスピーカ１０７とを備えればよい。
【００５７】
図２は、本開示の実施の形態に係るロボット１の内部斜視図である。図２に示すように、ロボット１は、メイン筐体１０１の内部に、第１表示部１０８、第２表示部１０９、及び第３表示部１１０を備える。第１表示部１０８、第２表示部１０９、及び第３表示部１１０は、固定板金１１１に備え付けられている。また、固定板金１１１は、第１アーム１１２及び第２アーム１１３を介してシャフト１１５（図３）に取り付けられている。図３は、本開示の実施の形態に係るロボット１の内部背面図である。図３に示すように第１アーム１１２及び第２アーム１１３は、シャフト１１５と直行する方向にシャフト１１５からロボット１の正面に延びるようにシャフト１１５に取り付けられている。第１表示部１０８、第２表示部１０９、及び第３表示部１１０は、例えば、複数の発光ダイオードにより構成される。第１表示部１０８、第２表示部１０９、及び第３表示部１１０は、ロボット１の表情の表示情報を表示する。具体的には、第１表示部１０８、第２表示部１０９、及び第３表示部１１０は、前記複数の発光ダイオードの点灯を個別に制御することにより、図１Ａ及び図１Ｂに示すように、ロボット１の顔の一部、例えば、目や口を表示する。図２の例では、第１表示部１０８がロボット１を正面から見て左目の画像を表示し、第２表示部１０９がロボット１を正面から見て右目の画像を表示し、第３表示部１１０が口の画像を表示している。そして、左目、右目、口の画像は、透明又は半透明の部材からなるメイン筐体１０１を透過し、外部に放射されている。
【００５８】
なお、第１アーム１１２及び第２アーム１１３はロボット１の正面に延びるようにシャフト１１５に取り付けられている。そのため、第１表示部１０８及び第２表示部１０９が向いている方向、すなわち、表示部が向いている方向は正面方向に相当する。
【００５９】
図３に示すように、ロボット１は、メイン筐体１０１の内部の下方に重り１１４を備える。このため、ロボット１の重心は、メイン筐体１０１の中心から下方に位置する。これにより、ロボット１の動作を安定させることができる。また、図３は、シャフト１１５を回転させる第１駆動機構２０３（図１１）、メイン筐体１０１を回転させる第２駆動機構２０４（図１１）、及びロボット１の重心を移動させる重り駆動機構２０５（図１１）を示す図である。
【００６０】
図３において、シャフト１１５は、ロボット１の中心に位置し、ロボット１の中心軸となる。図４は、本開示の実施の形態に係るロボットの第１球冠部１０２及び第２球冠部１０３の連結状態を示す内部背面図である。図４において、第１球冠部１０２及び第２球冠部１０３はシャフト１１５によって連結されている。一方、シャフト１１５とメイン筐体１０１は固定されていない。従って、シャフト１１５を回転させると、シャフト１１５に連結された第１球冠部１０２及び第２球冠部１０３は、シャフト１１５に同期して回転するが、メイン筐体１０１は回転しない。
【００６１】
また、図３において、第２駆動機構２０４（図１１）は、メイン筐体１０１に固定された第１ギア１１６、第１ギア１１６と噛み合う第２ギア１１７、第２ギア１１７に連結された第１モータ１１８、及び第１モータ１１８を固定するフレーム１１９を備える。フレーム１１９はシャフト１１５に吊り下げられているため、シャフト１１５が回転することがあっても、フレーム１１９は回転しない。また、フレーム１１９は、フレーム１１９の回転量を検出するジャイロセンサー１５５を備える。尚、本態様において、第１ギア１１６の中心とシャフト１１５の中心とは一致している。第２駆動機構２０４（図１１）の動作の詳細は後述する。
【００６２】
次に重り駆動機構２０５（図１１）について図３、及び図５を用いて説明する。図５は、図３におけるロボット１のＡＡ断面図である。なお、ＡＡ断面とは、Ｂ視（又はＣ視）と直交する平面であって、ロボット１の中心を通る平面でロボット１を切断したときの断面である。
【００６３】
図３及び図５に示すように、重り駆動機構２０５（図１１）は、重り１１４の一端を支持する第３アーム１２３、重り１１４の他端を支持する第４アーム１２４、及び第４アーム１２４に連結された第３モータ１２５を備える。尚、本態様においては、重り駆動機構２０５（図１１）は、フレーム１１９に対して回転自由な状態で取り付けられている。従って、第３モータ１２５を駆動しても、それに連動してフレーム１１９は回転しない。
【００６４】
詳細には、第３アーム１２３は、上端に重り軸１２３ａが取り付けられ、重り軸１２３ａを介して、フレーム１１９に回転自由に取り付けられている。第４アーム１２４は上端に重り軸１２４ａが取り付けられ、重り軸１２４ａを介して、フレーム１１９に回転自由に取り付けられている。
【００６５】
重り軸１２３ａ及び重り軸１２４ａは、シャフト１１５を通る鉛直面に対して直交するようにフレーム１１９に対して一直線上に取り付けられている。
【００６６】
より詳細には、重り軸１２３ａは、シャフト１１５側の一端がフレーム１１９に形成された孔に回転自由に挿入されている。重り軸１２４ａは、シャフト１１５側の一端がフレーム１１９に形成された孔に回転自由に挿入され、第３モータ１２５と連結されている。重り１１４は、例えば円筒状であり、長手方向が重り軸１２３ａ及び重り軸１２４ａと平行になるように第３アーム１２３の下端と第４アーム１２４の下端とにより挟持されている。これにより、重り１１４は、重り軸１２３ａ，１２４ａ回り、すなわち、ロール軸回りに回転可能となるように、フレーム１１９に取り付けられている。重り駆動機構２０５（図１１）の動作の詳細は後述する。
【００６７】
次に、第１駆動機構２０３（図１１）について図３及び図６Ａを用いて説明する。図６Ａは、図３のＢ視におけるロボット１の内部側面図である。なお、Ｂ視は、背面から正面を見て左方向からロボット１の側面を見た方向を指す。また、Ｃ視は、背面から正面を見て右方向からロボット１の側面を見た方向を指す。図３及び図６Ａに示すように、第１駆動機構２０３（図１１）は、フレーム１１９に固定された第２モータ１２１、第２モータ１２１と連結された第３ギア１２６、第３ギア１２６とシャフト１１５に固定された第４ギア１２７とを同期させる駆動ベルト１２２を備える。第１駆動機構２０３（図１１）の動作の詳細は後述する。
【００６８】
ロボット１は、図３に図示しないが、制御回路２００（図１１）、を備える。制御回路２００は、ロボット１の各種動作を制御する。制御回路２００（図１１）の詳細は後述する。
【００６９】
次に第１駆動機構２０３（図１１）の動作の詳細について図６Ａ、図６Ｂ、及び図６Ｃを参照して説明する。
【００７０】
図６Ｂは、図３のＢ視における、本開示の実施の形態に係るロボット１の第１表示部１０８、第２表示部１０９、及び第３表示部１１０が上方に傾いた状態を示す内部側面図である。図６Ｃは、図３のＢ視における、本開示の実施の形態に係るロボット１の第１表示部１０８、第２表示部１０９、及び第３表示部１１０が下方に傾いた状態を示す内部側面図である。
【００７１】
図６Ａに示すように、第１表示部１０８、第２表示部１０９、及び第３表示部１１０は、デフォルト位置において、ロボット１の正面を向いている。第２モータ１２１（図３）を駆動すると、第２モータ１２１に連結された第３ギア１２６が回転する。その動力が駆動ベルト１２２を介して第４ギア１２７に伝達され、第４ギア１２７が固定されたシャフト１１５は第２モータ１２１の駆動に同期して回転する。ここで、図２に示すように、固定板金１１１は、第１アーム１１２及び第２アーム１１３を介してシャフト１１５に連結されている。また、第１球冠部１０２及び第２球冠部１０３はシャフト１１５により連結されている（図４）。このため、シャフト１１５の回転、即ち、第１球冠部１０２及び第２球冠部１０３の回転により、固定板金１１１に備え付けえられた第１表示部１０８、第２表示部１０９、及び第３表示部１１０もシャフト１１５に連動して回転する。
【００７２】
図６Ｂに示すように、上述のデフォルト位置から、矢印１２８及び矢印１２９に示す方向にシャフト１１５を回転させると、第１表示部１０８、第２表示部１０９（図２）及び第３表示部１１０は、矢印１３０が示す上方に傾く。ここで、矢印１２８及び１２９に示す方向は、Ｂ視（図３）において、シャフト１１５回りに時計回りの方向を指す。矢印１３０が示す上方とは、Ｂ視（図３）において、シャフト１１５回りに時計回りの方向を指す。
【００７３】
また、図６Ｂに図示していないが、シャフト１１５と同期して回転する第１球冠部１０２（図１Ｂ）及び第２球冠部１０３（図１Ｂ）も同様に矢印１３０が示す上方に傾く。即ち、第１球冠部１０２（図１Ｂ）及び第２球冠部１０３（図１Ｂ）に備え付けられたカメラ１０４及び距離センサー１０５の光軸も矢印１３０が示す上方に傾く。
【００７４】
一方、図６Ｃに示すように、上述のデフォルト位置から、矢印１３１に示す第３ギア１２６回りに反時計回りの方向及び矢印１３２に示す第４ギア１２７回りに反時計回りの方向にシャフト１１５を回転させると、第１表示部１０８、第２表示部１０９（図２）及び第３表示部１１０は、矢印１３３が示すように下方に傾く。ここで、矢印１３３が示す下方とは、Ｂ視（図３）において、シャフト１１５回りに反時計回りの方向を指す。また、図６Ｃに図示していないが、シャフト１１５と同期して回転する第１球冠部１０２（図１Ｂ）及び第２球冠部１０３（図１Ｂ）も同様に矢印１３３が示す下方に傾く。即ち、第１球冠部１０２（図１Ｂ）及び第２球冠部１０３（図１Ｂ）に備え付けられたカメラ１０４及び距離センサー１０５の光軸も矢印１３３が示す下方に傾く。
【００７５】
次に第２駆動機構２０４（図１１）の動作の詳細について図７Ａ、及び図７Ｂを参照して説明する。
【００７６】
図７Ａは、図３のＣ視における、本開示の実施の形態に係るロボット１の第２駆動機構２０４（図１１）を示す側面図である。図７Ｂは、図３のＣ視におけるロボット１の直進動作を表す側面図である。
【００７７】
図７Ａにおいて、第１モータ１１８（図３）を駆動すると、第１モータ１１８に連結された第２ギア１１７が回転する。そして、その動力が第２ギア１１７に噛み合う第１ギア１１６に伝達される。これにより、第１ギア１１６が固定されたメイン筐体１０１は第１モータ１１８の駆動に同期して回転する。
【００７８】
図７Ｂにおいて、第１モータ１１８（図３）を矢印１３４の方向に回転させると、第２ギア１１７に噛み合う第１ギア１１６は矢印１３５の方向に回転する。ここで、矢印１３４の方向はＣ視（図３）において第２ギア１１７回りに時計回りの方向を指す。また、矢印１３５の方向は、Ｃ視（図３）においてシャフト１１５回りに反時計回りの方向を指す。そして、第１ギア１１６が固定されたメイン筐体１０１は矢印１３６の方向に回転する。ここで、矢印１３６の方向は、Ｃ視（図３）においてシャフト１１５回りに反時計回りの方向を指す。これにより、ロボット１は前進する。また、矢印１３４とは逆方向に第１モータ１１８を回転させると、メイン筐体１０１は矢印１３６の方向に対して反対回りの方向に回転するので、ロボット１は後進する。このように、ロボット１は、第２駆動機構２０４（図１１）において、第１モータ１１８の回転方向を切り替えることにより、前後のいずれの方向にも移動できる。
【００７９】
次に、重り駆動機構２０５（図１１）の動作の詳細について図８Ａ及び図８Ｂを参照して説明する。
【００８０】
図８Ａは、図３において、ロボット１の重り１１４が左方寄りに位置しているときのロボット１の姿勢を示す内部背面図である。図８Ｂは、図３において、ロボット１の重り１１４が右方寄りに位置しているときのロボット１の姿勢を示す内部背面図である。
【００８１】
図８Ａに示すように、第３モータ１２５（図５）を駆動することにより、重り１１４を中央線Ｃ８から矢印１３７が示す左方に移動させると、ロボット１の姿勢は矢印１３８が示す方向に傾く。ここで、中央線Ｃ８は、メイン筐体１０１の上側の頂点と下側の頂点とを通る線を指す。また、矢印１３７が示す左方は、ロボット１を背面から正面に見て時計回りの方向を指す。また、矢印１３８が示す方向は、地面とロボット１との接点を中心に反時計回りの方向を指す。
【００８２】
これとは逆方向に第３モータ１２５（図５）を駆動することにより、図８Ｂに示すように、重り１１４を中央線Ｃ８から矢印１３９が示す右方に移動させると、ロボット１の姿勢は矢印１４０が示す方向に傾く。ここで、矢印１３９が示す右方は、ロボット１を背面から正面に見て反時計回りの方向を指す。また、矢印１４０が示す方向は、地面とロボット１との接点を中心に時計回りの方向を指す。なお、図３に示すように重り１１４が右方及び左方に傾けられておらず、第３アーム１２３及び第４アーム１２４が鉛直方向を向いている場合の重り１１４の位置を初期位置と呼ぶ。
【００８３】
次に第２駆動機構２０４（図１１）の動作と重り駆動機構２０５（図１１）の動作とが同時に駆動している状態について図８Ａ及び図８Ｂを参照して説明する。
【００８４】
図８Ａに示すように、ロボット１の姿勢が矢印１３８の示す方向に傾いているときに、第１モータ１１８がロボット１の進行方向に移動するように駆動した場合、ロボット１は、上面視において左方に旋回移動する。また、図８Ｂに示すように、ロボット１の姿勢が矢印１４０の示す方向に傾いているときに、第１モータ１１８がロボット１の進行方向に移動するように駆動した場合、ロボット１は、上面視において右方に旋回移動する。
【００８５】
以上のように、ロボット１の走行方向は、重り駆動機構２０５（図１１）による重り１１４の左方または右方への切り替えと、第２駆動機構２０４（図１１）によるメイン筐体１０１の前進または後進動作とを組み合わせることにより、左右の方向へロボット１を旋回移動させることができる。
【００８６】
次に、走行開始時のロボット１の姿勢について図９を参照して説明する。
【００８７】
図９は、メイン筐体１０１が図７Ｂに示す矢印１３６の方向に回転を始めるまでのロボット１の姿勢を示す図である。メイン筐体１０１は、第２駆動機構２０４（図１１）が駆動することで発生する力が、床面１４３の摩擦等の外的要因による力よりも大きい場合に、矢印１３６（図７Ｂ）の方向に回転を始める。また、メイン筐体１０１は、第２駆動機構２０４（図１１）が駆動することで発生する力が、床面１４３の摩擦等の外的要因による力よりも小さい場合に、回転を始めることは無い。このとき、第１ギア１１６は、メイン筐体１０１に固定されているため、メイン筐体１０１が回転しない場合は、第１ギア１１６も回転することは無い。図９において、メイン筐体１０１が回転しない場合、第１モータ１１８を矢印１３４の方向に回転させると、第２ギア１１７は、噛み合う第１ギア１１６の歯に沿って移動する。第２ギア１１７及び第１モータ１１８は、フレーム１１９（図３）に固定されているため、フレーム１１９（図３）、及びフレーム１１９（図３）に固定されている重り駆動機構２０５（図１１）及びジャイロセンサー１５５（図３）とともに矢印１４４の方向へ回転する。ここで、矢印１４４の方向は、Ｃ視（図３）においてシャフト１１５回りに時計回りの方向を指す。
【００８８】
これにより、メイン筐体１０１は、ロボット１が走行を開始するまでの間、外的要因による力の影響によりピッチ角が増大していくのである。また、ジャイロセンサー１５５は、フレーム１１９に取り付けられており、メイン筐体１０１のピッチ角の増大に伴ってフレーム１１９もピッチ角が増大する。そのため、ジャイロセンサー１５５はメイン筐体１０１のピッチ方向の角度を検出できる。
【００８９】
次に、図１０を参照しつつ、本開示の実施の形態に係るロボット１が適用されたロボットシステム１２００の全体構成の一例について説明する。図１０は、本開示の実施の形態に係るロボット１が適用されたロボットシステム１２００の全体構成の一例を示す図である。ロボットシステム１２００は、クラウドサーバ２、携帯端末３、及びロボット１を備える。ロボット１は例えばＷｉｆｉ（登録商標）の通信を介してインターネットと接続し、クラウドサーバ２と接続する。また、ロボット１は例えばＷｉｆｉ（登録商標）の通信を介して携帯端末３と接続する。ユーザ１２０１は例えば、子供であり、ユーザ１２０２，１２０３は、例えば、その子供の両親である。
【００９０】
ロボット１は、例えば、携帯端末３からある絵本を子供に読み聞かせる指示があったとすると、その絵本の朗読を開始し、子供に読み聞かせる。ロボット１は、例えば、絵本の読み聞かせ中に子供から何らかの質問を受け付けると、その質問をクラウドサーバ２に送り、その質問に対する回答をクラウドサーバ２から受信し、回答を示す音声を発話する。
【００９１】
このように、ユーザ１２０１〜１２０３は、ロボット１をペットのように取り扱い、ロボット１との触れ合いを通じて、言語学習をすることができる。
【００９２】
（ブロック図）
次に、図１１を参照しつつ、本開示の実施の形態に係るロボット１の内部回路の詳細について説明する。図１１は、本開示の実施の形態に係るロボット１を示すブロック図である。
【００９３】
図１１に示すように、ロボット１は、制御回路２００、第１駆動機構２０３、第１駆動機構制御部２０７、第２駆動機構２０４、第２駆動機構制御部２０８、重り駆動機構２０５、重り駆動機構制御部２０９、電源２０６、電源制御部２１０、マイク１０６、カメラ１０４、ジャイロセンサー１５５、距離センサー１０５、及び加速度センサー１２０を備える。
【００９４】
制御回路２００は、プロセッサ２０１及びメモリ２０２を備える。プロセッサ２０１は、例えば、ＣＰＵ、ＦＰＧＡ、及びＡＳＩＣのいずれか１以上で構成され、主制御部２１１、音声認識処理部２１２、顔検出処理部２１３、ジャイロ処理部２１４、距離センサー処理部２１５、及び加速度センサー処理部２１６を備える。メモリ２０２は、例えば、書き換え可能な不揮発性メモリで構成され、段差情報管理部２１８を備える。
【００９５】
主制御部２１１は、人物の音声の認識結果を音声認識処理部２１２から取得する。主制御部２１１は、人物の顔の認識結果を顔検出処理部２１３から取得する。主制御部２１１は、ロボット１の姿勢を示すジャイロセンサー１５５の計測値をジャイロ処理部２１４から取得する。主制御部２１１は、ロボット１の前方に位置する物体までの距離を示す距離センサー１０５の計測値を距離センサー処理部２１５から取得する。主制御部２１１は、ロボット１の加速度を示す加速度センサー１２０の計測値を加速度センサー処理部２１６から取得する。主制御部２１１は、電源２０６が充電状態にあるか否かを示す充電中フラグと、電源２０６の残容量を電源制御部２１０から取得する。
【００９６】
主制御部２１１は、音声認識処理部２１２、顔検出処理部２１３、ジャイロ処理部２１４、距離センサー処理部２１５、加速度センサー処理部２１６、及び電源制御部２１０から取得した情報を基にロボット１の制御コマンドを生成し、第１駆動機構制御部２０７、第２駆動機構制御部２０８、及び重り駆動機構制御部２０９に出力する。制御コマンドの詳細は後述する。
【００９７】
音声認識処理部２１２は、マイク１０６が取得した音声データから人物の音声の有無を認識し、音声認識結果を管理する。ここで、音声認識処理部２１２は、ロボット１を使用することが予め定められた１又は複数の人物の音声の特徴量と、各人物の識別子とが対応付けられた音声識別テーブルを備えている。そして、音声認識処理部２１２は、マイク１０６が取得した音声データから抽出した音声の特徴量と、音声識別テーブルに記憶された各人物の音声の特徴量との一致度をそれぞれ算出する。そして、音声認識処理部２１２は、音声識別テーブルに記憶された人物のうち、一致度が所定の閾値より高く且つ最大の音声の特徴量を持つ人物をマイク１０６が取得した音声データに含まれる音声を発話した人物であると認識する。そして、音声認識処理部２１２は、認識した人物の識別子を例えば認識時刻と対応付けたデータを人物の音声の認識結果として、主制御部２１１に出力する。なお、音声の特徴量としては、例えば、声紋データが採用できる。
【００９８】
顔検出処理部２１３は、カメラ１０４が取得した画像データに基づいてロボット１の前方に存在する人物を認識する。ここで、顔検出処理部２１３は、ロボット１を使用することが予め定められた１又は複数の人物の顔の特徴量と、各人物の識別子とが対応付けられた顔識別テーブルを備えている。そして、顔検出処理部２１３は、カメラ１０４が取得した画像データから抽出した１又は複数の顔の特徴量と、顔識別テーブルに記憶された各人物の顔の特徴量との一致度をそれぞれ算出する。そして、顔検出処理部２１３は、画像データに含まれるそれぞれの人物について、顔識別テーブルに記憶された人物のうち、特徴量の一致度が所定の閾値より高く且つ最大となる人物を、該当する人物として認識する。なお、顔の特徴量としては、顔における目、鼻、及び口の相対的な位置、並びに顔の輪郭等が採用できる。そして、顔検出処理部２１３は、画像データに含まれる各人物の顔の位置に人物の識別子をタグ付けした画像データを人物の顔の認識結果として、主制御部２１１に出力する。
【００９９】
ジャイロ処理部２１４は、ジャイロセンサー１５５が所定のサンプリング周期で計測した計測値を逐次取得し、主制御部２１１に逐次出力する。
【０１００】
ジャイロセンサー１５５は、例えば、ロール角、ピッチ角、及びヨー角の３成分の角度を計測するジャイロセンサーで構成される。ここで、図２に示すように、ロール角はＸ軸回りの角度を指し、ピッチ角はＹ軸回りの角度を指し、ヨー角はＺ軸回りの角度を指す。Ｘ軸はロール軸であり、ロボット１の正面方向に向かう軸である。Ｙ軸はピッチ軸であり、ロボット１の左右方向に向かう軸である。Ｚ軸はヨー軸であり、ロボット１の上下方向に向かう軸である。なお、Ｘ軸、Ｙ軸、Ｚ軸はそれぞれ直交する。
【０１０１】
距離センサー処理部２１５は、距離センサー１０５が所定のサンプリング周期で計測した計測値を逐次取得し、主制御部２１１に逐次出力する。
【０１０２】
距離センサー１０５は、例えば、赤外線を前方の物体に照射して、その光が戻ってくるまでの時間を計測することで、物体までの距離を計測する赤外線距離センサーで構成されている。なお、距離センサー１０５は、例えば、ロボット１の前方の周囲環境の距離分布を計測する距離画像センサーで構成されてもよいし、ステレオカメラで構成されてもよい。
【０１０３】
加速度センサー処理部２１６は、加速度センサー１２０が所定のサンプリング周期で計測した計測値を逐次取得し、主制御部２１１に逐次出力する。
【０１０４】
加速度センサー１２０は、例えば、図２に示すＸ軸、Ｙ軸、及びＺ軸の３つの加速度成分を計測する３軸の加速度センサーで構成されている。
【０１０５】
第１駆動機構制御部２０７は、例えば、第１駆動機構２０３を構成する第２モータ１２１を制御する制御回路で構成され、主制御部２１１から送信される制御コマンドに従って第１駆動機構２０３を駆動する。第１駆動機構２０３は、上述した、第１球冠部１０２及び第２球冠部１０３を連結するシャフト１１５（図３）、シャフト１１５に取り付けられた第４ギア１２７（図６Ａ）、第４ギア１２７に取り付けられた駆動ベルト１２２（図６Ａ）、駆動ベルト１２２に動力を伝達する第３ギア１２６（図６Ａ）、第３ギア１２６に連結された第２モータ１２１（図３）、及び第２モータ１２１を固定するフレーム１１９（図３）により構成される。第１駆動機構２０３は、シャフト１１５の回転を司る機構であり、シャフト１１５を回転させることで、第１球冠部１０２、第２球冠部１０３、第１表示部１０８、第２表示部１０９、及び第３表示部１１０をピッチ方向に回転させる。また、このピッチ方向の回転に伴って距離センサー１０５及びカメラ１０４の光軸もピッチ方向に回転する。
【０１０６】
第２駆動機構制御部２０８は、例えば、第２駆動機構２０４を構成する第１モータ１１８を制御する制御回路で構成され、主制御部２１１から出力される制御コマンドに従って第２駆動機構２０４を駆動する。第２駆動機構２０４は、メイン筐体１０１に固定された第１ギア１１６（図７Ａ）、第１ギア１１６と噛み合う第２ギア１１７（図７Ａ）、及び第２ギア１１７に連結された第１モータ１１８（図３）により構成される。第２駆動機構２０４は、メイン筐体１０１の回転を司る機構であり、メイン筐体１０１を回転させることで、ロボットを移動させる。
【０１０７】
重り駆動機構制御部２０９は、例えば、重り駆動機構２０５を構成する第３モータ１２５を制御する制御回路で構成され、主制御部２１１から送信される制御コマンドに従って、重り駆動機構２０５を駆動する。重り駆動機構２０５は、重り１１４の一端を支持する第３アーム１２３（図５）、重り１１４の他端を支持する第４アーム１２４、第４アーム１２４に重り軸１２４ａを介して連結された第３モータ１２５（図５）により構成される。重り駆動機構２０５は、重り軸１２３ａ，１２４ａ回りの重り１１４の回転を司る機構であり、重り軸１２３ａ，１２４ａを回転させることで、重り１１４を左方又は右方（ロール方向）に傾ける。
【０１０８】
電源制御部２１０は、電源２０６が充電中か否かを示す充電中フラグと電源２０６の残容量とを管理する。電源制御部２１０は、主制御部２１１に充電中フラグと残容量とを出力する。さらに、電源制御部２１０は、ロボット１が充電器に接続されている場合は、充電器から供給される電力を電源２０６に蓄積させる。
【０１０９】
電源２０６は、リチウムイオン電池等の二次電池で構成され、ロボット１の電力源を構成する。
【０１１０】
メモリ２０２は、段差情報管理部２１８を備える。段差情報管理部２１８は、ロボット１の周囲にある段差までの距離を示す段差情報を記憶する。ここで、段差情報は、例えば、図１４に示す段差情報テーブルＴ１４により構成される。段差情報テーブルＴ１４の詳細については後述する。
【０１１１】
（段差検知処理）
図１２は、本開示の実施の形態に係るロボット１が採用する段差検知処理を説明する模式図である。ロボット１は、平板な走行面１２０４上に位置している。ロボット１の左斜め前方には、走行面１２０４によりも低所側に沈んだ段差１２０５がある。
【０１１２】
ロボット１は、重り軸１２３ａ，１２４ａに対して重り１１４を左右に回転させることなく、Ｚ軸を走行面１２０４に対して垂直方向に向けた状態で静止している。この状態で、第１駆動機構制御部２０７は、主制御部２１１の制御の下、シャフト１１５をＹ軸回りに所定の単位ピッチ角ずつ回転させる。これにより、第１球冠部１０２及び第２球冠部１０３がシャフト１１５の回転と連動してＹ軸回りに単位ピッチ角ずつ回転し、第２球冠部１０３に取り付けられた距離センサー１０５がＹ軸回りに単位ピッチ角ずつ回転する。ここで、鉛直方向に対する距離センサー１０５の光軸Ｌ１２１の角度をαとする。そして、距離センサー１０５は、例えば、角度αが増大するように光軸Ｌ１２１の向きが変化されるものとする。すなわち、距離センサー１０５は、シャフト１１５を中心として、下方向から上方向に光軸Ｌ１２１の向きが変化されるものとする。
【０１１３】
この場合、光軸Ｌ１２１が走行面１２０４と交差している間は、距離センサー１０５と走行面１２０４との光軸Ｌ１２１上の距離が徐々に増大していくため、距離センサー１０５の計測値は徐々に増大する。したがって、距離センサー１０５の計測値はさほど変化しない。
【０１１４】
一方、角度αを増大させていくと光軸Ｌ１２１はやがて段差１２０５の上を通過する。この場合、光軸Ｌ１２１は段差１２０５の先にある低所部分（図略）と交差するので、距離センサー１０５の計測値は大幅に増大する。したがって、距離センサー１０５の計測値は大幅に変化する。
【０１１５】
そこで、主制御部２１１は、光軸Ｌ１２１の向きを単位ピッチ角ずつ変化させたときの距離センサー１０５の計測値をモニタし、直近に計測された距離センサー１０５の計測値である第１距離と、今回計測された距離センサー１０５の計測値である第２距離との差分距離を算出する。そして、主制御部２１１は、算出した差分距離が予め定められた第１所定値以上であれば、第１距離が計測された時のロボット１の正面の方向（ロボット１の現在の旋回角度の方向）に段差があると判定する。一方、主制御部２１１は、算出した差分距離が第１所定値未満であれば、ロボット１の正面の方向に段差はないと判定する。
【０１１６】
そして、主制御部２１１は、段差の有無の判定結果と段差までの距離とを段差情報テーブルＴ１４（図１４）に記憶させる。ここで、第１所定値としては、例えば、光軸Ｌ１２１が走行面１２０４と交差した状態から走行面１２０４と交差していない状態にまで変化したときに想定される差分距離又はその差分距離に一定のマージンを加えた値が採用される。
【０１１７】
なお、段差を検知するという観点からすると、光軸Ｌ１２１の向きは水平方向に向く程度で十分である。そこで、光軸Ｌ１２１の向きを単位ピッチ角ずつ変化させるときの角度αの上限値としては、少なくとも９０度が採用される。また、光軸Ｌ１２１の向きを単位ピッチ角ずつ変化させるときの角度αの下限値としては、０度、５度、１０度、又は１５度というような０度に多少のマージンを加えた値が採用される。
【０１１８】
また、光軸Ｌ１２１の向きを単位ピッチ角ずつ変化させるときの角度αの分解能としては、ロボット１が故障する可能性が高い段差のうち高低差が最小の段差を検知することが可能な値が採用される。一例として角度αの分解能は、１度、５度、又は１０度である。
【０１１９】
（段差情報テーブル）
図１３は、段差情報テーブルＴ１４を作成する際のロボット１の動作を示す図である。図１３では、ロボット１は、上面視において、前方に障害物（壁等）１３０４、左方に段差１３０１、後方に段差１３０２、右方に段差１３０３がある走行面１２０４上のある位置においてＺ軸を走行面１２０４と直交する方向に向けた状態で静止している。
【０１２０】
そして、主制御部２１１は、第２駆動機構制御部２０８を制御して、ロボット１を後述するその場旋回させ、旋回差分角度θが４５度になる毎に、距離センサー１０５の光軸Ｌ１２１の向きを変化させて距離センサー１０５の計測値をモニタすることでロボット１の前方に段差があるか否かを判定し、判定結果を段差情報テーブルＴ１４に記憶させる。
【０１２１】
図１４は、段差情報テーブルＴ１４のデータ構成の一例を示す図である。段差情報テーブルＴ１４は、１つの旋回差分角度θに１つのレコードが割り付けられたデータベースであり、旋回差分角度θ、距離、及び段差を対応付けて記憶する。
【０１２２】
旋回差分角度θとは、ロボット１の初期旋回角度を基準としたときのロボット１の旋回角度を指す。ロボット１の旋回角度とは、Ｚ軸回りのロボット１の角度、すなわち、ロボット１のヨー角を表す。初期旋回角度は、例えば、段差情報テーブルＴ１４の作成直前において、ジャイロセンサー１５５から出力されるヨー角の計測値が採用される。ここでは、旋回差分角度θは例えば度の単位で表されるがこれは一例であり、ラジアンの単位で表されてもよい。
【０１２３】
距離は、段差が検知された場合は、距離センサー１０５から段差までの距離を示し、段差が検知されなかった場合は、距離センサー１０５から前方にある物体までの距離を指す。物体としては、壁等の障害物及び人物が含まれる。ここでは、距離は例えばｃｍの単位で表される。なお、段差又は物体までの距離として距離センサー１０５の計測値をそのまま採用すると、距離センサー１０５の計測値が、段差又は物体までのロボット１の実際の走行距離よりも大きな値をとる可能性が高くなる。これは、段差又は物体までの距離を計測したときに得られる距離センサー１０５の計測値は、距離センサー１０５の光軸が走行面１２０４と平行でない場合に計測された計測値であることが多いからである。そこで、主制御部２１１は、距離センサー１０５から段差又は物体までの距離を下記のように算出してもよい。図１２を参照する。距離センサー１０５の計測値を｜Ｌ１２１｜とし、段差又は物体までの距離をＤとすると、主制御部２１１は、式（１）の演算により得られる距離Ｄを距離センサー１０５から段差又は物体までの距離として算出すればよい。
【０１２４】
Ｄ＝｜Ｌ１２１｜×ｓｉｎα      （１）
なお、角度αは、距離センサー１０５の光軸の角度であるため、主制御部２１１はシャフト１１５の回転量から角度αの値を特定できる。図１４に参照を戻す。段差情報テーブルＴ１４において、段差がある場合は「１」の数値が割り付けられ、段差がない場合は「０」の数値が割り付けられる。
【０１２５】
図１３の例では、ロボット１の正面方向（Ｘ軸方向）が障害物（壁等）１３０４と直交するときのロボット１の旋回角度が初期旋回角度とされている。なお、ロボット１の旋回角度が初期旋回角度にある場合、旋回差分角度θは０度となる。
【０１２６】
まず、主制御部２１１は、旋回差分角度θ＝０度の状態において、図１２で説明したように、距離センサー１０５の光軸Ｌ１２１の向きを単位ピッチ角ずつ変化させて第１距離と第２距離との差分距離を算出し、差分距離が第１所定値以上であるか否かを判定する。図１３の例では、旋回差分角度θ＝０度の場合、ロボット１の正面前方には障害物（壁等）１３０４があるので、差分距離は第１所定値未満となる。そのため、主制御部２１１は、旋回差分角度θ＝０において、段差はないと判定する。また、主制御部２１１は、段差がないので、距離センサー１０５の計測値の最大値を特定し、特定した計測値に式（１）の演算を実行して得られた距離Ｄを、旋回差分角度θ＝０での物体までの距離Ｄ（０）として算出する。ここでは、距離Ｄ（０）として３０ｃｍが算出されている。
【０１２７】
したがって、図１４に示すように、段差情報テーブルＴ１４には、旋回差分角度θ＝０度のレコードにおいて、「距離」＝３０ｃｍ、「段差」＝０が登録される。
【０１２８】
次に、主制御部２１１は、第２駆動機構制御部２０８を制御してロボット１をその場旋回させて、ロボット１の正面を旋回差分角度θ＝４５度の向きに向ける。そして、主制御部２１１は、旋回差分角度θ＝０度の場合と同様にして、距離センサー１０５の計測値から段差の有無を判定する。ここでは、ロボット１の正面前方には障害物（壁等）１３０４があるので、段差はないと判定される。また、主制御部２１１は、旋回差分角度θ＝０度の場合と同様にして、旋回差分角度θ＝４５度における物体までの距離Ｄ（４５）を算出する。ここでは、距離Ｄ（４５）として１３０ｃｍが算出される。
【０１２９】
したがって、図１４に示すように、段差情報テーブルＴ１４には、旋回差分角度θ＝４５度のレコードにおいて、「距離」＝１３０ｃｍ、「段差」＝０が登録される。
【０１３０】
次に、主制御部２１１は、第２駆動機構制御部２０８を制御してロボット１をその場旋回させて、ロボット１の正面を旋回差分角度θ＝９０度の向きに向ける。そして、主制御部２１１は、旋回差分角度θ＝０度の場合と同様にして、距離センサー１０５の計測値から段差の有無を判定する。ここでは、ロボット１の正面には、段差１３０３があるので、第１距離と第２距離との差分距離が第１所定値以上になり、段差があると判定される。また、主制御部２１１は、第１距離を用いて段差までの距離Ｄ（９０）を算出するが、第１距離は、距離センサー１０５の計測値であるので、式（１）の演算を実行して距離Ｄ（９０）を算出する。ここでは、距離Ｄ（９０）は１２０ｃｍと算出される。
【０１３１】
したがって、図１４に示すように、段差情報テーブルＴ１４には、旋回差分角度θ＝９０度のレコードにおいて、「距離」＝１２０ｃｍ、「段差」＝１が登録される。
【０１３２】
以後、旋回差分角度θ＝１３５度、１８０度、２２５度、２７０度、３１５度のそれぞれについても旋回差分角度θ＝０度の場合と同様にして段差の有無と、段差又は物体までの距離Ｄとが算出される。
【０１３３】
ここでは、旋回差分角度θ＝１３５度、１８０度、２２５度、及び２７０度のそれぞれにおいて、ロボット１の正面前方には段差があるので、第１距離と第２距離との差分距離は第１所定値以上となり、段差があると判定される。また、それぞれの旋回差分角度θにおける距離Ｄは、Ｄ（１３５）＝１５０ｃｍ、Ｄ（１８０）＝５０ｃｍ、Ｄ（２２５）＝６０ｃｍ、Ｄ（２７０）＝２５ｃｍと算出されている。
【０１３４】
したがって、図１４に示す段差情報テーブルＴ１４には、旋回差分角度θ＝１３５度、１８０度、２２５度、及び２７０度のそれぞれのレコードにおいて、上記の距離Ｄ（１３５）〜Ｄ（２７０）で示す距離Ｄの算出結果が登録され、「段差」＝１が登録される。
【０１３５】
旋回差分角度θ＝３１５度では、ロボット１の正面には障害物（壁等）１３０４があり、物体までの距離が３５ｃｍと算出されている。そのため、図１４に示す段差情報テーブルＴ１４には、旋回差分角度θ＝３１５度のレコードにおいて、「距離」＝３５ｃｍ、「段差」＝０が登録される。
【０１３６】
以上のようにして、段差情報テーブルＴ１４が作成される。ここで、段差情報テーブルＴ１４には、所定の旋回差分角度θ毎の段差の有無と段差又は物体までの距離とが登録されている。そのため、主制御部２１１は、周囲のどの方向にどの程度の距離だけ離れて段差があるかを判定することができる。そのため、主制御部２１１は、段差から落下しないようにロボット１を走行制御することができる。
【０１３７】
なお、図１４の例では、旋回差分角度θの分解能は４５度に設定されているが、これは一例であり、４５度よりも小さい角度（例えば、４０度、３５度、３０度、又は２５度等）が採用されてもよいし、４５度よりも大きい角度（例えば、５０度、５５度、又は６０度等）が採用されてもよい。段差情報テーブルＴ１４において、旋回差分角度θ＝０度は第１旋回角度の一例に相当し、旋回差分角度θ＝４５度、９０度、・・・、３１５度はそれぞれ第２旋回角度の一例に相当する。
【０１３８】
（その場旋回処理）
図８Ａで説明したように、ロボット１は、重り軸１２３ａ，１２４ａに対して重り１１４を左方に回転させた状態で、第１モータ１１８を前進方向に回転させると、左方に旋回移動する。同様に、ロボット１は、重り軸１２３ａ，１２４ａに対して重り１１４を右方に回転させた状態で、第１モータ１１８を前進方向に回転させると、右方に旋回する。
【０１３９】
以下、これらの左方への旋回と右方への旋回とを総称して「通常旋回」と記述する。通常旋回をすることで、ロボット１は前方の物体との衝突を回避して走行することができる。しかし、通常旋回を行ったときのロボット１の旋回半径（第２旋回半径）は大きいので、例えば、ロボット１が机の角のような場所で、段差情報テーブルＴ１４を作成するために通常旋回を行うと、ロボット１が机から落下する可能性がある。
【０１４０】
そこで、本開示では、ロボット１は、通常旋回よりも小さな旋回半径（第１旋回半径）で旋回するその場旋回を行うことで、このような落下を防止している。
【０１４１】
図１５は、その場旋回処理を実行したときのロボット１の状態を示す図である。図１５において、「その場旋回行動状態」は、その場旋回処理を実行したときのロボット１の状態を分類したものである。その場旋回行動状態は「１」から「４」で示す４つの状態がある。その場旋回処理において、ロボット１は、「１」から「４」で示されるその場旋回状態をこの順番にとる。
【０１４２】
「重り駆動機構に設定する制御量」は、その場旋回処理を実行するときの重り駆動機構２０５に対する制御量を示す。ここでは、「重り駆動機構に設定する制御量」として「右回転制御量」（第１回転制御量の一例）と「左回転制御量」（第２回転制御量の一例）との２種類の制御量がある。
【０１４３】
「右回転制御量」は、重り軸１２３ａ，１２４ａに対して重り１１４を右側に回転させる制御量であり、「左回転制御量」は、重り軸１２３ａ，１２４ａに対して重り１１４を左側に回転させる制御量である。なお、重り軸１２３ａ，１２４ａに対して重り１１４を右側に回転させるとは、後方から前方に見て重り１１４をＸ軸回りに反時計回りに所定角度だけ、回転させることを指し、重り軸１２３ａ，１２４ａに対して重り１１４を左側に回転させるとは、後方から前方に見て重り１１４をＸ軸回りに時計回りに所定角度だけ、回転させることを指す。
【０１４４】
「第２駆動機構に設定する制御量」は、その場旋回処理を実行するときの第２駆動機構２０４に対する制御量を指す。ここでは、「第２駆動機構に設定する制御量」として、「停止制御量」、「前進方向への加速制御量」（第１加速制御量の一例）、及び「後進方向への加速制御量」（第２加速制御量の一例）の３つの制御量がある。
【０１４５】
「停止制御量」は第２駆動機構２０４を構成する第１モータ１１８の回転を停止させる制御量である。「前進方向への加速制御量」は、ロボット１の前進方向の速度を所定の加速度で増大させる制御量である。「後進方向への加速制御量」は、ロボット１の後進方向の速度を所定の加速度で増大させる制御量である。
【０１４６】
まず、主制御部２１１は、「停止制御量」を第２駆動機構制御部２０８に出力し、メイン筐体１０１の前進及び後進を停止させた状態で、「右回転制御量」を重り駆動機構制御部２０９に出力し、ロボット１をその場旋回状態「１」にする。これにより、「ロボットの状態」の欄で示されるように、重り１１４は、後方から前方に見て、Ｚ軸に対する角度が矢印１５１で示す角度だけ右側に傾く。その結果、後方から前方に見て、ロボット１は、重心が右側に移動し、Ｚ軸が鉛直方向ＤＨに対して矢印１５１で示す角度だけ右側に傾く。その場旋回状態「１」は、ジャイロセンサー１５５のロール角の計測値をモニタすることにより、ロボット１が実際に右側に所定角度傾いたことが主制御部２１１によって確認される又は確認されてから一定期間経過するまで継続される。
【０１４７】
次に、主制御部２１１は、「右回転制御量」を重り駆動機構制御部２０９に出力した状態で、「前進方向への加速制御量」を第２駆動機構制御部２０８に出力し、ロボット１をその場旋回状態「２」にする。これにより、「ロボットの状態」の欄で示されるように、ロボット１は、Ｚ軸を鉛直方向ＤＨに対して右側に傾けた状態で前進する。その結果、ロボット１は矢印１５２に示すように上側から見て右方に前方旋回する。その場旋回状態「２」は、第１モータ１１８が備えるロータリーエンコーダの計測値をモニタすることにより、第１モータ１１８が実際に回転したことが主制御部２１１によって確認される又は確認されてから一定期間経過するまで継続される。
【０１４８】
次に、主制御部２１１は、「停止制御量」を第２駆動機構制御部２０８に出力し、メイン筐体１０１の前進及び後進を停止させた状態で、「左回転制御量」を重り駆動機構制御部２０９に出力し、ロボット１をその場旋回状態「３」にする。これにより、「ロボットの状態」の欄で示されるように、重り１１４は、後方から前方に見て、Ｚ軸に対する角度が矢印１５３で示す角度だけ左側に傾く。その結果、後方から前方に見て、ロボット１は、重心が左側に移動し、Ｚ軸が鉛直方向ＤＨに対して矢印１５３で示す角度だけ左側に傾く。その場旋回状態「３」は、ジャイロセンサー１５５のロール角の計測値をモニタすることにより、ロボット１が実際に左側に所定角度傾いたことが主制御部２１１によって確認されるまで又は確認されてから一定期間経過する継続される。
【０１４９】
次に、主制御部２１１は、「左回転制御量」を重り駆動機構制御部２０９に出力した状態で、「後進方向への加速制御量」を第２駆動機構制御部２０８に出力し、ロボット１をその場旋回状態「４」にする。これにより、「ロボットの状態」の欄で示されるように、ロボット１は、Ｚ軸を鉛直方向ＤＨに対して左側に傾けた状態で後進する。その結果、ロボット１は矢印１５４に示すように上側から見て左方に後方旋回する。その場旋回状態「４」は、第１モータ１１８が備えるロータリーエンコーダの計測値をモニタすることにより、第１モータ１１８が実際に回転したことが主制御部２１１によって確認される又は確認されてから一定期間経過するまで継続される。
【０１５０】
主制御部２１１は、その場旋回状態「１」〜「４」を１サイクルのその場旋回動作とし、ジャイロセンサー１５５のヨー角の計測値をモニタすることで、旋回差分角度θが旋回単位角度（ここでは、４５度）になるまで、その場旋回動作をサイクリックに実行する。そして、主制御部２１１は、旋回差分角度θが旋回単位角度になると、図１２で説明した段差の有無を判断する処理を実行し、判断結果を段差情報テーブルＴ１４に登録する。
【０１５１】
このように、その場旋回は、右方への前方旋回と左方への後方旋回とを小刻みに繰り返す旋回であるため、通常旋回に比べて旋回半径を小さくすることができる。その結果、ロボット１は、移動量を可能な限り短くしつつ、周囲の段差の有無を判断することができ、机の角のような周囲が段差で取り囲まれたような場所においても、段差から落下することなく旋回することができる。
【０１５２】
（進行方向の決定）
ロボット１は、その場旋回処理を行って段差情報テーブルＴ１４を作成すると、進行方向を決定し、決定した方向に移動する。
【０１５３】
図１６は、周囲に存在する人物が検知されなかった場合において、ロボット１の進行方向が決定される処理を説明する図である。図１６の上図は、図１３と同じである。このとき、主制御部２１１は、ロボット１にその場旋回を実行させ、段差情報テーブルＴ１４を作成する。但し、このとき、主制御部２１１は、ロボット１の周囲に人物が存在しなかったので、その場旋回での旋回範囲を示す段差検知範囲を３６０度に設定する。以下、３６０度に設定された段差検知範囲をＲ１６の符号を付して表す。これにより、主制御部２１１は、段差検知範囲Ｒ１６内において、ロボット１を旋回単位角度ずつ旋回させて、段差の有無を判断する処理を実行し、判断結果を段差情報テーブルＴ１４に登録させる。
【０１５４】
段差情報テーブルＴ１４を作成すると、次に、主制御部２１１は、ロボット１の進行方向を決定する処理を実行する。ここでは、図１６の中央図に示すように、段差情報テーブルＴ１４に登録された段差検知範囲Ｒ１６内での距離のうち最大の距離の方向がロボット１の進行方向として決定される。図１４の例では、旋回差分角度θ＝１３５度の方向の距離が１５０ｃｍであり、最大であるので、主制御部２１１は、旋回差分角度θ＝１３５度の方向をロボット１の進行方向として決定する。そして、主制御部２１１は、ロボット１をその場旋回させることで、ロボット１の正面を旋回差分角度θ＝１３５度の方向に旋回させる。詳細には、主制御部２１１は、ジャイロセンサー１５５のヨー角の計測値をモニタしながら、ロボット１の正面が旋回差分角度θ＝１３５度の方向になるまで、ロボット１をその場旋回させる。
【０１５５】
次に、主制御部２１１は、ロボット１の移動距離を決定する。ここで、主制御部２１１は、例えば、図１６の下図に示すように、ロボット１の現在位置から段差又は物体までの距離Ｄに対して所定の係数ｋを乗じた値（＝Ｄ・ｋ）をロボット１の移動距離として決定すればよい。ここで、ｋとしては０より大きく１未満の値が採用できる。図１３の右図の例では、係数ｋは例えば０．５に設定されている。そのため、ロボット１の移動距離は段差１３０３までの距離Ｄ（１３５）＝１５０ｃｍに係数ｋを乗じた７５ｃｍ（＝ｋ・Ｄ（１３５））に決定される。
【０１５６】
そして、主制御部２１１は、現在位置から決定した移動距離だけロボット１を第１速度で前進させるための等速制御量を第２駆動機構制御部２０８に出力する。これにより、第１モータ１１８が前進方向に回転してメイン筐体１０１が回転し、ロボット１は決定した移動距離だけ移動する。ロボット１は決定した移動距離だけ移動すると、その場で停止する。
【０１５７】
なお、主制御部２１１は、加速度センサー１２０のＸ軸方向の計測値を用いてロボット１の現在の移動距離を算出することで、残距離を算出すればよい。また、主制御部２１１は、加速度センサー１２０のＸ軸方向の計測値を用いてロボット１の現在の走行速度を算出すればよい。
【０１５８】
本開示のロボット１は、ペットのように自律的に移動して、人物に愛玩されることを主眼としている。そのため、ロボット１の周囲に人物が存在するにも拘わらず、人物の存在を無視してロボット１を自律走行させてしまうと、人物のロボット１への愛着が低下する可能性がある。人物のロボット１への愛着を増大させるためには、人物が周囲に存在する場合、人物に向かってロボット１を移動させることが効果的である。但し、人物の方向に段差があるとロボット１が段差から落下する可能性があるので、単純に人物に向かってロボット１を移動させるわけにはいかない。
【０１５９】
そこで、本開示は、周囲に人物が存在する場合、以下のようにしてロボット１の進行方向を決定する。図１７は、周囲に存在する人物が検知された場合において、ロボット１の進行方向が決定される処理を説明する図である。
【０１６０】
図１７の上図に示すように、主制御部２１１は、ロボット１の周囲に人物１７０１を検知した場合、人物１７０１を含む一定範囲に段差検知範囲Ｒ１７を設定する。ここで、段差検知範囲Ｒ１７は、例えば、ロボット１から人物１７０１の方向Ｄ１７を中心として、プラスマイナス角度βの範囲に設定される。ここで、角度βとしては、例えば、ロボット１を人物１７０１の側に向けて移動させることを考慮して、４５度程度の値が採用されるがこれは一例である。
【０１６１】
そして、主制御部２１１は、段差検知範囲Ｒ１７内において、ロボット１を、旋回単位角度ずつ旋回させて、段差の有無を判断する処理を実行し、判断結果を段差情報テーブルＴ１４に登録させる。この場合、段差情報テーブルＴ１４には、ロボット１の周囲、３６０度の範囲ではなく、プラスマイナス角度βの段差検知範囲Ｒ１７内において旋回差分角度θ毎の段差の有無と段差までの距離とが登録される。
【０１６２】
段差情報テーブルＴ１４の作成が終了すると、次に、主制御部２１１は、進行方向を決定する処理を実行する。ここでは、図１６の中央図に示すように、段差情報テーブルＴ１４に登録された段差検知範囲Ｒ１７内での距離のうち、最大の距離の方向がロボット１の進行方向として決定される。そして、主制御部２１１は、ロボット１をその場旋回させることで、ロボット１の正面を段差検知範囲Ｒ１７内で最大の距離の方向に向ける。
【０１６３】
次に、主制御部２１１は、ロボット１の移動距離を決定する。ここで、段差検知範囲Ｒ１７内での最大の距離をＤとすると、主制御部２１１は、図１７の下図に示すように、距離Ｄに係数ｋを乗じた値（＝ｋ・Ｄ）を移動距離として決定する。そして、主制御部２１１は、図１６で説明した方法と同様の手法を用いて、ロボット１を決定した移動距離だけ移動させる。
【０１６４】
このように、本開示では、ロボット１の移動先に段差があるとしても、段差までの距離Ｄに係数ｋが乗じられて移動距離が算出されているので、ロボット１が段差から落下することを防止できる。また、人物を検知した場合は人物を中心に一定範囲の領域が段差検知範囲Ｒ１７として設定されるので、段差からの落下を防止しつつロボット１を人物に向けて走行させることができる。
【０１６５】
（フローチャート）
図１８は、本開示の実施の形態に係るロボット１の処理を示すフローチャートである。まず、主制御部２１１は、ロボット１が走行面に置かれたか否かを検知する（Ｓ１０１）。ここで、主制御部２１１は、ジャイロセンサー１５５の計測値が一定期間、ロボット１が揺れていないことを示す値を示す場合、ロボット１が走行面に置かれたことを検知すればよい。詳細には、主制御部２１１は、ジャイロセンサー１５５のロー角、ピッチ角、及びヨー角の３つの計測値が、一定期間、ロボット１が揺れていないことを示す所定の範囲内の値に収束している場合、ロボット１が走行面に置かれたと判定すればよい。一方、主制御部２１１は、ジャイロセンサー１５５のロー角、ピッチ角、及びヨー角の３つの計測値のうち、少なくとも１つが、一定期間、所定の範囲内に収束していない場合、ロボット１は、走行面に置かれていないと判定すればよい。
【０１６６】
ロボット１が走行面に置かれたことが検知された場合（Ｓ１０１でＹＥＳ）、主制御部２１１は、段差検知範囲を３６０度に設定する（Ｓ１０２）。一方、ロボット１が走行面に置かれたことが検知されていない場合（Ｓ１０１でＮＯ）、ロボット１は例えば、人物によって抱っこされている可能性が高いので、処理は終了される。
【０１６７】
次に、主制御部２１１は、段差検知処理を実行する（Ｓ１０３）。段差検知処理の詳細は、図２１を用いて後述する。
【０１６８】
次に、段差検知処理の処理結果がロボット１の周囲３６０度のいずれの方向にも段差がないことを示せば（Ｓ１０４でＮＯ）、処理は図１９のＳ２０１に進む。一方、段差検知処理の処理結果がロボット１の周囲３６０度のいずれかの方向に段差があることを示せば（Ｓ１０４でＹＥＳ）、主制御部２１１は、ロボット１の周囲に人物が存在するか否かを検知する（Ｓ１０５）。
【０１６９】
ここで、主制御部２１１は、マイク１０６が取得した音声データに上述の音声識別テーブルに記憶されたいずれか１の人物の音声が含まれているか否かを判定する。そして、主制御部２１１は、前記人物の音声が含まれていると判定した場合、前記人物の顔の特徴量を上述の顔識別テーブルから読み出す。そして、主制御部２１１は、読み出した顔の特徴量を用いて、カメラ１０４が取得した画像データに前記人物の顔が含まれているか否かを判定する。そして、主制御部２１１は、前記画像データに前記人物の顔が含まれていると判定した場合、人物が検出できたと判定すればよい。
【０１７０】
なお、主制御部２１１は、マイク１０６が取得した音声データに前記人物の音声が含まれていると判定した場合、更に、その音声の内容を解析し、音声の内容に前記人物がロボット１を呼び寄せる所定のキーワードが含まれていることを条件に画像データを用いて前記人物の顔を検出する処理を実行してもよい。
【０１７１】
また、ここでは、主制御部２１１は、音声データと画像データとの両方を用いて人物の有無を検知したが、これは一例であり、音声データと画像データとのいずれか一方を用いて人物の有無を検知してもよい。
【０１７２】
Ｓ１０５において、人物を検知できなかった場合（Ｓ１０５でＮＯ）、ロボット１を人物に向けて走行させる必要がないので、主制御部２１１は、段差検知範囲を３６０度に設定する（Ｓ１０６）。一方、人物を検知できた場合（Ｓ１０５でＹＥＳ）、ロボット１を人物に向けて走行させるために、処理は図２０のＳ３０１に進む。
【０１７３】
次に、主制御部２１１は、メモリ２０２に段差情報テーブルＴ１４が存在しているか否かを判定する（Ｓ１０７）。メモリ２０２に段差情報テーブルＴ１４が存在していれば（Ｓ１０７でＹＥＳ）、主制御部２１１は、進行方向決定処理を実行する（Ｓ１０８）。一方、メモリ２０２に段差情報テーブルＴ１４が存在していなければ（Ｓ１０７でＮＯ）、主制御部２１１は、段差検知処理を実行する（Ｓ１０９）。進行方向決定処理の詳細は、図２４を用いて後述する。また、段差検知処理の詳細は、図２１を用いて後述する。
【０１７４】
なお、段差情報テーブルＴ１４は、段差検知処理が行われる都度作成され、進行方向決定処理が終了される都度削除される。したがって、ロボット１が走行面に置かれた直後のＳ１０７では、Ｓ１０３の段差検知処理により段差情報テーブルＴ１４が作成されているので、ＹＥＳと判定される。
【０１７５】
次に、主制御部２１１は、進行方向決定処理が終了したので、初期旋回角度情報を削除する（Ｓ１１０）。なお、初期旋回角度情報は、旋回差分角度θの基準となる初期旋回角度を示す情報であり、段差検知処理が行われる都度設定され、進行方向決定処理が行われる都度削除される。
【０１７６】
次に、主制御部２１１は、進行方向決定処理が終了したので、段差情報テーブルＴ１４をメモリ２０２から削除し（Ｓ１１１）、処理をＳ１０５に戻す。
【０１７７】
図１８のフローを概観すると、走行面にロボット１が置かれると、段差検知範囲が３６０度に設定され、段差検知処理（Ｓ１０３）が行われて段差情報テーブルＴ１４が作成される。そして、周囲に段差がなく人物もいなければ、進行方向決定処理（Ｓ１０８）が実行されて移動方向及び移動距離が決定され、決定された移動方向に決定された移動距離だけロボット１は移動する。以後、周囲に人物及び段差が検出されない限り、Ｓ１０５〜Ｓ１１１の処理が繰り返され、ロボット１は移動を繰り返す。
【０１７８】
図１９は、図１８において周囲に段差がないと判定されたときの（Ｓ１０４でＮＯ）続きのフローチャートである。まず、主制御部２１１は、ロボット１の周囲に人物が存在するか否かを検知する（Ｓ２０１）。Ｓ２０１の処理の詳細はＳ１０５と同じであるため、説明を省く。
【０１７９】
Ｓ２０１において、人物を検知できなかった場合（Ｓ２０１でＮＯ）、主制御部２１１は前方に障害物があるか否かを検知する（Ｓ２０２）。障害物を検知した場合（Ｓ２０２でＹＥＳ）、主制御部２１１は、距離センサー１０５の計測値から障害物までの距離を取得し、障害物までの距離が第２所定値未満であるか否かを判定する（Ｓ２０３）。
【０１８０】
障害物までの距離が第２所定値未満であれば（Ｓ２０３でＹＥＳ）、障害物との衝突を回避するために、主制御部２１１は、ロボット１を通常旋回させる通常旋回コマンドを出力し（Ｓ２０４）、処理をＳ２０１に戻す。第２所定値としては、例えば、これ以上、障害物との距離が短くなると、通常旋回ではロボット１が障害物と衝突する可能性が高くなる距離が採用される。
【０１８１】
ここで、主制御部２１１は、ロボット１を右方に通常旋回させるのであれば、図１５で示した右回転制御量を重り駆動機構制御部２０９に出力して、ロボット１のＺ軸を鉛直方向に対して右方に傾斜させた状態にする。そして、主制御部２１１は、ロボット１をこの状態にしつつ、ロボット１の走行速度を前進走行時の上限速度である第１速度よりも低い第２速度に減速させる減速制御量を第２駆動機構制御部２０８に出力する。この場合、通常旋回コマンドは、右回転制御量及び減速制御量で構成される。これにより、ロボット１は右方に旋回して障害物をよけることができる。
【０１８２】
ここでは、ロボット１は右方に旋回させるとして説明したが、左方に旋回させてもよい。この場合、主制御部２１１は、重り駆動機構制御部２０９に対して、右回転制御量の変わりに左回転制御量を出力すればよい。
【０１８３】
一方、Ｓ２０２で障害物を検知しなければ（Ｓ２０２でＮＯ）、主制御部２１１は、等速制御量を第２駆動機構制御部２０８に出力し（Ｓ２０５）、処理をＳ２０１に戻す。これにより、ロボット１の走行は継続される。
【０１８４】
また、Ｓ２０３で障害物までの距離が第２所定値以上であれば（Ｓ２０３でＮＯ）、主制御部２１１は、処理をＳ２０２に戻す。すなわち、主制御部２１１は、Ｓ２０２で障害物を検知した場合、障害物までの距離が第２所定値未満になるのを待ってからロボット１を旋回させる。
【０１８５】
Ｓ２０１で人物を検知した場合（Ｓ２０１でＹＥＳ）、主制御部２１１は、人検知情報をメモリ２０２に記憶させることで、人検知情報を設定する（Ｓ２０６）。人検知情報は、図２４に示す進行方向決定処理において、段差検知範囲から距離の最大値を取得する際にその段差検知範囲が３６０度に設定されているのか、又は、人物を含む一定範囲内に設定されているのかを判別するために使用される。
【０１８６】
次に、主制御部２１１は、人物の方向にロボット１を第１速度で前進させるための等速制御量を第２駆動機構制御部２０８に出力する（Ｓ２０７）。これにより、ロボット１は人物に向けて前進する。
【０１８７】
次に、主制御部２１１は、人物に向けてロボット１の前進を開始させてから所定時間以内に人物からタスク実行指示があったか否かを判定する（Ｓ２０８）。
【０１８８】
タスクとしては、例えば、ジャンケンゲーム又は本の読み聞かせといった、人物がロボット１と遊ぶタスクが採用される。
【０１８９】
ここで、人物は、「ジャンケンゲームをしよう」又は「絵本を読んで」といった音声によりタスク実行指示を行えばよい。例えば、主制御部２１１は、Ｓ２０７で人物に向けてロボット１の前進を開始させてから所定時間以内にマイク１０６が取得した音声データに、該当する人物からタスク実行指示を示す所定のキーワードが含まれていれば、人物からタスク実行指示があったと判定すればよい。
【０１９０】
Ｓ２０８において、人物からタスクの実行指示があれば（Ｓ２０８でＹＥＳ）、主制御部２１１は、現在、メモリ２０２に記憶されている、初期旋回角度情報、段差情報テーブルＴ１４を削除する（Ｓ２１０、Ｓ２１１）。
【０１９１】
一方、人物からタスクの実行指示がなければ（Ｓ２０８でＮＯ）、主制御部２１１は、人検知情報を削除し（Ｓ２０９）、処理をＳ２０１に戻す。
【０１９２】
Ｓ２１２において、主制御部２１１は、人物が指示したタスクを実行する（Ｓ２１２）。例えば、ジャンケンゲームを実行するのであれば、主制御部２１１は、スピーカ１０７から人物にジャンケンを促す音声を出力し、カメラ１０４が取得した画像データから人物が出した手の形状を認識する等の処理を行って、人物とロボットとのジャンケンの勝敗を決定し、勝敗の結果を示す音声メッセージをスピーカ１０７から出力すればよい。
【０１９３】
次に、主制御部２１１は、人検知情報をメモリ２０２から削除し（Ｓ２１３）、処理を終了する。
【０１９４】
図１９のフローを概観すると、人物及び障害物を検知しなければ（Ｓ２０１でＮＯ且つＳ２０２でＮＯ）、ロボット１は前進を継続する（Ｓ２０５）。障害物を検知すれば（Ｓ２０２でＹＥＳ）、通常旋回により障害物をよけるというようにして自律走行を行う（Ｓ２０４）。また、人物が検知されると（Ｓ２０１でＹＥＳ）、ロボット１は、人物に向けて前進し（Ｓ２０７）、人物からタスクの実行指示があれば、タスクを実行する（Ｓ２１２）。これにより、あたかも人物になついているかのようにロボット１を振る舞わせることができ、人物のロボット１に対する愛着を増すことができる。
【０１９５】
図２０は、図１８において人物が検知されたときの（Ｓ１０５でＹＥＳ）続きのフローチャートである。まず、主制御部２１１は、人物が検知されたので、人検知情報を設定する（Ｓ３０１）。
【０１９６】
次に、主制御部２１１は、人物を含む一定範囲に段差検知範囲を設定する（Ｓ３０２）。次に、主制御部２１１は、メモリ２０２に段差情報テーブルＴ１４が存在すれば（Ｓ３０３でＹＥＳ）、処理をＳ３０４に進める。
【０１９７】
一方、主制御部２１１は、メモリ２０２に段差情報テーブルＴ１４が存在しなければ（Ｓ３０３でＮＯ）、段差検知処理を実行し（Ｓ３０５）、処理をＳ３０４に進める。これにより、人物を含む一定範囲に設定された段差検知範囲内でロボット１はその場旋回を行い段差情報テーブルＴ１４を作成する。
【０１９８】
次に、主制御部２１１は、進行方向決定処理を実行し（Ｓ３０４）、処理をＳ３０６に進める。これにより、人物を含む一定範囲に設定された段差検知範囲内で例えば障害物又は段差までの距離が最大の距離の方向に、前記最大の距離に基づいて決定された移動距離だけロボット１が移動される。
【０１９９】
Ｓ３０６では、主制御部２１１は、進行方向決定処理が終了したので、初期旋回角度情報及び段差情報テーブルＴ１４をメモリ２０２から削除する（Ｓ３０６、Ｓ３０７）。
【０２００】
次に、主制御部２１１は、人検知情報を設定してから所定時間以内に人物からタスクの実行指示が行われたか否かを判定する（Ｓ３０８）。タスクの実行指示が行われた場合（Ｓ３０８でＹＥＳ）、主制御部２１１はタスクを実行し（Ｓ３１０）、人検知情報をメモリ２０２から削除し（Ｓ３１１）、処理を終了する。一方、タスクの実行指示がなければ（Ｓ３０８でＮＯ）、主制御部２１１は、人検知情報をメモリ２０２から削除する（Ｓ３０９）。Ｓ３０９が終了すると、処理は、図１８のＳ１０５に戻り、人物の有無が検知される。
【０２０１】
図２０のフローを概観すると、人物を含む一定範囲に設定された段差検知範囲内において障害物又は段差までの距離が最大の方向にロボット１が移動され、人物からタスクの実行指示があれば、ロボット１によってタスクが実行される。ここで、段差検知範囲は人物を含む一定範囲に設定されているので、ロボット１は人物に向けて移動することになる。そのため、ロボット１に対するタスクの実行指示を人物が行い易くなる環境を提供できる。
【０２０２】
図２１は、段差検知処理の詳細を示すフローチャートである。まず、主制御部２１１は、停止制御量を第２駆動機構制御部２０８に出力する（Ｓ４０１）。これにより、ロボット１は停止される。
【０２０３】
次に、主制御部２１１は、初期旋回角度情報がメモリ２０２に記憶されていなければ（Ｓ４０２でＮＯ）、ジャイロセンサー１５５から現在の旋回角度を取得し、取得した旋回角度を初期旋回角度情報として設定し（Ｓ４０４）、処理をＳ４０３に進める。
【０２０４】
一方、初期旋回角度情報がメモリ２０２に記憶されていれば（Ｓ４０２でＹＥＳ）、Ｓ４０４が実行されずに処理がＳ４０３に進む。
【０２０５】
次に、主制御部２１１は、ジャイロセンサー１５５から現在の旋回角度を取得し、取得した旋回角度と初期旋回角度との差分を算出することで旋回差分角度θを取得する（Ｓ４０３）。
【０２０６】
次に、主制御部２１１は、旋回差分角度θが段差検知範囲の上限角度以上であるか否かを判定する（Ｓ４０５）。ここで、段差検知範囲が３６０度に設定されていれば上限角度は３６０度であり、段差検知範囲が人物を含む一定範囲に設定されていれば、一定範囲の上限角度となる。
【０２０７】
Ｓ４０５において、旋回差分角度θが段差検知範囲の上限角度以上であれば（Ｓ４０５でＹＥＳ）、段差検知処理は終了される。一方、旋回差分角度θが段差検知範囲の上限角度未満であれば（Ｓ４０５でＮＯ）、主制御部２１１は、距離センサー１０５の光軸を単位ピッチ角回転させるコマンドを第１駆動機構制御部２０７に出力する（Ｓ４０６）。これにより、距離センサー１０５の光軸はＹ軸回りに単位ピッチ角変化する。ここで、主制御部２１１は、距離センサー１０５の光軸の角度α（図１２参照）が所定の下限値から所定の上限値の範囲で単位ピッチ角ずつ増大させていくものとする。但し、これは一例であり、距離センサー１０５の光軸の角度αは上限値から下限値に向けて単位ピッチ角ずつ減少されてもよい。或いは、角度αは、上限値から下限値までの間の所定のデフォルト値から、まず、上限値まで単位ピッチ角ずつ増大されていき、上限値に到達すると、下限値に設定され、下限値からデフォルト値まで単位ピッチ角ずつ増大されてもよい。
【０２０８】
次に、主制御部２１１は、直近に計測された距離センサー１０５の計測値である第１距離と、今回計測された距離センサー１０５の計測値である第２距離との差分距離を算出し、差分距離が第１所定値以上であるか否かを判定する（Ｓ４０７）。
【０２０９】
差分距離が第１所定値以上であれば（Ｓ４０７でＹＥＳ）、主制御部２１１は、第１距離が計測された時のロボット１の正面方向に段差があると判定する（Ｓ４０９）。
【０２１０】
次に、主制御部２１１は、第１距離に対して式（１）の演算を行い距離Ｄ（θ）を算出し、距離Ｄ（θ）を段差までの距離として取得し（Ｓ４１１）、距離Ｄ（θ）を現在の旋回差分角度θと対応付けて段差情報テーブルＴ１４に登録する（Ｓ４１３）。このとき、段差があったので、段差情報テーブルＴ１４には「段差」＝１の情報も登録される。
【０２１１】
一方、差分距離が第１所定値未満であれば（Ｓ４０７でＮＯ）、主制御部２１１は、距離センサー１０５の光軸の制御が終了したか否かを判定する（Ｓ４０８）。ここで、主制御部２１１は、例えば、距離センサー１０５の光軸の角度αが所定の上限値に到達した場合、光軸の制御が終了したと判定すればよい。
【０２１２】
距離センサー１０５の光軸の制御が終了したと判定した場合（Ｓ４０８でＹＥＳ）、主制御部２１１は、現在の旋回差分角度θの方向において段差はなかったと判定する（Ｓ４１０）。
【０２１３】
次に、主制御部２１１は、距離センサー１０５の光軸を下限値から下限値まで単位ピッチ角ずつ変化させたときの距離センサー１０５が計測した距離の最大値を取得する（Ｓ４１２）。
【０２１４】
次に、主制御部２１１は、Ｓ４１２で取得した距離の最大値に対して式（１）の演算を行い距離Ｄ（θ）を算出し、距離Ｄ（θ）を現在の旋回差分角度θと対応付けて段差情報テーブルＴ１４に登録する（Ｓ４１３）。このとき、段差がなかったので、段差情報テーブルＴ１４には「段差」＝０の情報も登録される。
【０２１５】
次に、主制御部２１１は、旋回方向を所定方向に設定する（Ｓ４１４）。Ｓ４１４の処理は、１回の段差検知処理において、ロボット１の旋回方向を一定の方向に固定するために設けられている。そのため、１回の段差検知処理において、ロボット１が例えば時計回り（右回り）に旋回されるのであれば、Ｓ４１４において旋回方向は右回りに固定され、ロボット１が例えば反時計回り（左回り）に旋回されるのであれば、Ｓ４１４において旋回方向は左回りに固定される。
【０２１６】
次に、主制御部２１１は、旋回単位角度を所定値に設定する（Ｓ４１５）。図１３に示すように、旋回単位角度が例えば４５度であるとすると、Ｓ４１５において旋回単位角度は４５度に設定される。
【０２１７】
次に、主制御部２１１は、その場旋回処理前の旋回角度をジャイロセンサー１５５から取得する（Ｓ４１６）。ここでは、ジャイロセンサー１５５のヨー角の計測値がその場旋回処理前の旋回角度として取得される。
【０２１８】
次に、主制御部２１１は、その場旋回処理を実行する（Ｓ４１７）。その場旋回処理の詳細は図２２を用いて後述する。
【０２１９】
次に、主制御部２１１は、その場旋回処理後の旋回角度をジャイロセンサー１５５から取得する（Ｓ４１８）。次に、主制御部２１１は、その場旋回処理前後の旋回角度の差分、すなわち、Ｓ４１６で取得した旋回角度とＳ４１８で取得した旋回角度との差分を取得する（Ｓ４１９）。
【０２２０】
次に、主制御部２１１は、Ｓ４１９で取得した旋回角度の差分が旋回単位角度未満であれば（Ｓ４２０でＮＯ）、処理をＳ４１７に戻し、再度、その場旋回処理を行う（Ｓ４１７）。
【０２２１】
一方、主制御部２１１は、Ｓ４１９で取得した旋回角度の差分が旋回単位角度以上であれば（Ｓ４２０でＹＥＳ）、ロボット１は旋回単位角度、旋回できたので、この旋回角度の方向での段差の有無を検知するために、処理をＳ４０１に戻す。
【０２２２】
Ｓ４１７〜Ｓ４２０の処理が繰り返されることで、ロボット１は旋回単位角度分、旋回する。
【０２２３】
図２１のフローを概観すると、まず、初期旋回角度において、距離センサー１０５の光軸が単位ピッチ角ずつ回転されて段差の有無が検知される。そして、ロボット１は旋回単位角度旋回され、距離センサー１０５の光軸が単位ピッチ角ずつ回転されて段差の有無が検知される。以後、旋回差分角度θが段差検知範囲の上限角度になるまで、ロボット１が旋回単位角度ずつ旋回されて段差の有無が検知される。
【０２２４】
図２２は、その場旋回処理の詳細を示すフローチャートである。まず、主制御部２１１は、停止制御量を第２駆動機構制御部２０８に出力し、右回転制御量を重り駆動機構制御部２０９に出力する（Ｓ５０１）。これにより、図１５に示すように、ロボット１は、その場旋回行動状態「１」の状態になる。
【０２２５】
次に、主制御部２１１は、ジャイロセンサー１５５のロール角の計測値をモニタし、ロボット１が実際に右側に所定角度傾いたか否かを検知する（Ｓ５０２）。そして、ロボット１が実際に右側に所定角度傾いたことを検知できなかった場合（Ｓ５０２でＮＯ）、主制御部２１１は、処理をＳ５０１に戻す。一方、ロボット１が実際に右側に所定角度傾いたこをと検知できた場合（Ｓ５０２でＹＥＳ）、主制御部２１１は、処理をＳ５０３に進める。すなわち、ロボット１が実際に右側に所定角度傾くことが確認されるまで、Ｓ５０１、Ｓ５０２の処理が継続される。
【０２２６】
次に、主制御部２１１は、右回転制御量を重り駆動機構制御部２０９に出力し、前進方向への加速制御量を第２駆動機構制御部２０８に出力する（Ｓ５０３）。これにより、図１５に示すように、ロボット１は、その場旋回行動状態「２」の状態になる。
【０２２７】
次に、主制御部２１１は、第１モータ１１８が備えるロータリエンコーダの計測値をモニタし、ロボット１が実際に前進を開始したか否かを検知する（Ｓ５０４）。そして、ロボット１が実際に前進を開始したことを検知できなかった場合（Ｓ５０４でＮＯ）、主制御部２１１は、処理をＳ５０３に戻す。一方、ロボット１が実際に前進を開始したことを検知できた場合（Ｓ５０４でＹＥＳ）、主制御部２１１は、処理をＳ５０５に進める。すなわち、ロボット１が実際に前進を開始したことが確認されるまで、Ｓ５０３、Ｓ５０４の処理が継続される。
【０２２８】
次に、主制御部２１１は、停止制御量を第２駆動機構制御部２０８に出力し（Ｓ５０５）、左回転制御量を重り駆動機構制御部２０９に出力する（Ｓ５０６）。これにより、図１５に示すように、ロボット１は、その場旋回行動状態「３」の状態になる。
【０２２９】
次に、主制御部２１１は、ジャイロセンサー１５５のロール角の計測値をモニタし、ロボット１が実際に左側に所定角度傾いたか否かを検知する（Ｓ５０７）。そして、ロボット１が実際に左側に所定角度傾いたことを検知できなかった場合（Ｓ５０７でＮＯ）、主制御部２１１は、処理をＳ５０６に戻す。一方、ロボット１が実際に左側に所定角度傾いたこをと検知できた場合（Ｓ５０７でＹＥＳ）、主制御部２１１は、処理をＳ５０８に進める。すなわち、ロボット１が実際に左側に所定角度傾くことが確認されるまで、Ｓ５０６、Ｓ５０７の処理が継続される。
【０２３０】
次に、主制御部２１１は、左回転制御量を重り駆動機構制御部２０９に出力し、後進方向への加速制御量を第２駆動機構制御部２０８に出力する（Ｓ５０８）。これにより、図１５に示すように、ロボット１は、その場旋回行動状態「４」の状態になる。
【０２３１】
次に、主制御部２１１は、第１モータ１１８が備えるロータリエンコーダの計測値をモニタし、ロボット１が実際に後進を開始したか否かを検知する（Ｓ５０９）。そして、ロボット１が実際に後進を開始したことを検知できなかった場合（Ｓ５０９でＮＯ）、主制御部２１１は、処理をＳ５０８に戻す。一方、ロボット１が実際に後進を開始したことを検知できた場合（Ｓ５０９でＹＥＳ）、主制御部２１１は、処理をＳ５１０に進める。すなわち、ロボット１が実際に後進を開始したことが確認されるまで、Ｓ５０８、Ｓ５０９の処理が継続される。
【０２３２】
次に、主制御部２１１は、停止制御量を第２駆動機構制御部２０８に出力する（Ｓ５１０）。これにより、ロボット１の後進が停止される。
【０２３３】
図２２のフローが繰り返されることで、ロボット１はその場旋回を繰り返し、旋回単位角度分の旋回を実現する。
【０２３４】
図２３は、進行方向決定処理の詳細を示すフローチャートである。まず、主制御部２１１は、人検出情報がメモリ２０２に存在するか否かを判定する（Ｓ６０１）。人検出情報が存在しなければ（Ｓ６０１でＮＯ）、主制御部２１１は、３６０度に設定された段差検知範囲内の下で作成された段差情報テーブルＴ１４の中から距離の最大値を取得する（Ｓ６０２）。一方、人検出情報が存在すれば（Ｓ６０１でＹＥＳ）、人物を含む一定範囲に設定された段差検知範囲の下で作成された段差情報テーブルＴ１４の中から距離の最大値を取得し（Ｓ６０３）、人検出情報をメモリ２０２から削除し（Ｓ６０４）、処理をＳ６０５に進める。
【０２３５】
次に、主制御部２１１は、Ｓ６０２又はＳ６０３で取得した距離の最大値に対応する旋回差分角度θの方向をロボット１の目標旋回角度として設定する（Ｓ６０５）。
【０２３６】
次に、主制御部２１１は、ジャイロセンサー１５５のヨー角の計測値からロボット１の現在の旋回角度を取得する（Ｓ６０６）。次に、主制御部２１１は、Ｓ６０５で設定した目標旋回角度とＳ６０６で取得した現在の旋回角度との差分を移動旋回角度として設定する（Ｓ６０７）。
【０２３７】
次に、主制御部２１１は、その場旋回処理前の旋回角度をジャイロセンサー１５５から取得する（Ｓ６０８）。ここでは、ジャイロセンサー１５５のヨー角の計測値がその場旋回処理前の旋回角度として取得される。
【０２３８】
次に、主制御部２１１は、その場旋回処理を実行する（Ｓ６０９）。その場旋回処理の詳細は図２２を用いて上述した。
【０２３９】
次に、主制御部２１１は、その場旋回処理後の旋回角度をジャイロセンサー１５５から取得する（Ｓ６１０）。次に、主制御部２１１は、その場旋回処理前後の旋回角度の差分、すなわち、Ｓ６０８で取得した旋回角度とＳ６１０で取得した旋回角度との差分を取得する（Ｓ６１１）。
【０２４０】
次に、主制御部２１１は、Ｓ６１１で取得した旋回角度の差分が移動旋回角度未満であれば（Ｓ６１２でＮＯ）、処理をＳ６０９に戻し、再度、その場旋回処理を行う（Ｓ６０９）。
【０２４１】
一方、主制御部２１１は、Ｓ６１１で取得した旋回角度の差分が移動旋回角度以上であれば（Ｓ６１２でＹＥＳ）、ロボット１は移動旋回角度、旋回できたので、移動距離を設定する（Ｓ６１３）。ここで、主制御部２１１は、例えば、Ｓ６０２又はＳ６０３で取得した距離の最大値に係数ｋ（例えば、０．５）を乗じた値を移動距離として設定すればよい。
【０２４２】
次に、主制御部２１１は、設定した移動距離分、ロボット１を第１速度で前進させる等速制御量を第２駆動機構制御部２０８に出力し（Ｓ６１４）、処理を終了する。これにより、ロボット１は、Ｓ６０２又はＳ６０３で取得された距離の最大値の方向に向けて移動距離分、第１速度で移動される。
【０２４３】
Ｓ６０９〜Ｓ６１２の処理が繰り返されることで、ロボット１は移動旋回角度分、旋回する。
【０２４４】
このように、本実施の形態に係るロボット１によれば、距離センサー１０５が単位ピッチ角度ずつ回転する毎に表示部が向いている側、すなわち、ロボット１の前方に存在する物体までの距離が計測され、先に計測された第１距離と次に計測された第２距離との差が第１所定値以上である場合は、第１距離が計測された時のロボットの旋回角度の方向において第１距離先に、段差が有ることを示す情報がメモリ２０２に記憶される。
【０２４５】
そのため、本実施の形態は、第１球冠部１０２及び第２球冠部１０３をピッチ方向に回転させることに連動して距離センサー１０５の光軸を変更させることができるという球体ロボットの特性を利用して段差を検出することができる。
【０２４６】
また、本実施の形態は、段差の有る方向にメイン筐体１０１を回転させる際、その場旋回処理によって、段差の有る方向にロボット１を旋回させる。
【０２４７】
そのため、本実施の形態は、通常旋回時よりも小さな旋回半径でロボットを旋回させて、ロボット１を段差の有る方向に向けることができる。その結果、本実施の形態は、例えば、机の角というようなロボット１が落下する危険性の高い箇所であっても、小さな旋回半径でロボット１を旋回させて、旋回時にロボット１が落下することを防止できる。
【０２４８】
更に、本実施の形態は、段差の有る方向にロボット１を移動させる際、段差までの距離である第１距離より短い距離だけメイン筐体１０１を回転させて前進させるため、移動先の前方に有る段差からロボット１が落下することを防止できる。
【０２４９】
なお、本開示は下記の変形例を採用できる。
【０２５０】
（１）図２３のＳ６０５では、段差情報テーブルＴ１４において距離が最も遠い方向がロボット１の目標旋回角度として決定されているが、このとき、主制御部２１１は、段差の有る方向よりも段差の無い方向を優先して進行方向を決定してもよい。例えば、段差情報テーブルＴ１４において、段差の有る方向と段差の無い方向とのそれぞれに距離の最大値として同一の値が登録されていたとする。この場合、主制御部２１１は、段差の無い方向をロボット１の進行方向として決定すればよい。ここで、段差の無い方向の先には壁等の障害物があることが想定される。したがって、段差の無い方向にロボット１の進行方向を決定することで、段差からロボット１が落下する事態を回避できる。
【０２５１】
（２）図２３のＳ６０５において、主制御部２１１は、段差情報テーブルＴ１４に登録された距離のうち、最も短い距離に対応する方向以外の方向の中からロボット１の目標旋回角度を決定してもよい。この場合、主制御部２１１は、段差情報テーブルＴ１４に登録された距離のうち、最も短い距離以外の距離に対応する旋回差分角度θの中からランダムに１の旋回差分角度θを決定し、決定した旋回差分角度θの方向をロボット１の目標旋回角度として決定すればよい。
【０２５２】
この変形例においても、主制御部２１１は、段差が有る方向よりも段差が無い方向を優先して目標旋回角度を決定してもよい。例えば、主制御部２１１は、段差情報テーブルＴ１４において、段差の有る方向の抽選確率を段差の無い方向の抽選確率よりも低く設定して、ランダムに目標旋回角度を決定すればよい。
【０２５３】
（３）図２３のＳ６０５において、主制御部２１１は、段差情報テーブルＴ１４に登録された距離のうち、所定距離以上の距離に対応する方向の中からロボット１の目標旋回角度を決定してもよい。この場合、主制御部２１１は、段差情報テーブルＴ１４に登録された距離のうち、所定距離以上の距離に対応する旋回差分角度θの中からランダムに１の旋回差分角度θを決定し、決定した旋回差分角度θの方向をロボット１の目標旋回角度として決定すればよい。なお、所定距離としては、例えば、５０ｃｍが採用できる。
【０２５４】
この変形例においても、主制御部２１１は、段差が有る方向よりも段差が無い方向を優先して目標旋回角度を決定してもよい。例えば、主制御部２１１は、段差情報テーブルＴ１４において、段差の有る方向の抽選確率を段差の無い方向の抽選確率よりも低く設定して、ランダムに目標旋回角度を決定すればよい。
【０２５５】
（４）図２３のＳ６０５において、主制御部２１１は、段差情報テーブルＴ１４に登録された距離のうち、所定距離以下の距離に対応する方向以外の方向の中からロボット１の目標旋回角度を決定してもよい。この場合、主制御部２１１は、段差情報テーブルＴ１４に登録された距離のうち、所定距離以下の距離に対応する旋回差分角度θの中からランダムに１の旋回差分角度θを決定し、決定した旋回差分角度θの方向をロボット１の目標旋回角度として決定すればよい。なお、所定距離としては、例えば、３０ｃｍが採用できる。
【０２５６】
この変形例においても、主制御部２１１は、段差が有る方向よりも段差が無い方向を優先して目標旋回角度を決定してもよい。例えば、主制御部２１１は、段差情報テーブルＴ１４において、段差の有る方向の抽選確率を段差の無い方向の抽選確率よりも低く設定して、ランダムに目標旋回角度を決定すればよい。
【０２５７】
（５）（１）の変形例において、段差の有る方向よりも段差の無い方向（ここでは、壁等の障害物の方向）を優先して目標旋回角度を決定するに際し、主制御部２１１は下記の手法を採用してもよい。すなわち、主制御部２１１は、段差までの距離に対して重み値Ｗ１を乗じた第１演算値と、壁を含む障害物までの距離に対して重み値Ｗ２を乗じた第２演算値とを算出する。但し、Ｗ１＋Ｗ２＝１であり、Ｗ１＜Ｗ２である。そして、主制御部２１１は、第１演算値と第２演算値とのうち値が最大の演算値に対応する旋回差分角度θを目標旋回角度として設定すればよい。この変形例では、Ｗ１＜Ｗ２に設定されているため、壁等の障害物の方向が段差の方向よりも優先的に目標旋回角度として設定されることができる。その結果、ロボット１は、段差に進む確率が低くなり、ロボット１の段差からの落下をより抑制できる。
【０２５８】
（６）図２３のＳ６０５において、主制御部２１１は、段差情報テーブルＴ１４に登録された距離のうち、段差のない方向、すなわち、壁等の障害物が有る方向の距離の中からロボット１の目標旋回角度を決定してもよい。この場合、主制御部２１１は、段差情報テーブルＴ１４に登録された距離のうち、「段差」＝０の距離の中から最大の距離を決定し、決定した最大の距離に対応する方向を目標旋回角度として決定すればよい。
【０２５９】
（７）図１８のフローチャートでは、ロボットが走行面に置かれたことを条件に処理が開始されているが（Ｓ１０１）、本開示はこれに限定されず、ロボット１が停止したときを条件に処理が開始されてもよい。この場合、本開示は、ロボット１が停止したときに、段差検知処理を開始し、段差のある方向を検知すると、ロボット１を段差のある方向に移動させればよい。この場合、本開示は、段差情報テーブルＴ１４において、段差までの距離が最大の旋回差分角度θの方向を目標旋回角度として設定し、目標旋回角度の方向にロボット１を段差までの距離よりも短い距離だけ移動させればよい。これにより、ロボット１が段差から落下することを防止できる。
【０２６０】
（８）図２１に示す段差検知処理では、旋回単位角度ごとに段差の有無が検知されているが、本開示はこれに限定されず、ロボット１の正面方向に対してのみ段差の有無が検知されてもよい。この場合、本開示は、段差までの距離が所定距離未満であれば、旋回単位角度だけ旋回して段差の有無を検知し、段差までの距離が所定距離以上であれば、段差の方向に段差までの距離より短い距離だけロボット１を移動させればよい。一方、ロボット１の正面方向に対して段差を検知しなかった場合、本開示は、正面方向に壁等の障害物があると判定し、障害物までの距離よりも短い距離だけロボット１を前進させればよい。
【０２６１】
（９）図１４に示す段差情報テーブルＴ１４において全ての方向に段差があることを示す情報が登録され、且つ、カメラ１０４が取得した画像データ及びマイク１０６が取得した音声データから人物の存在が検知できなかった場合、本開示は、ロボット１の位置から最も遠い段差の方向に、その段差までの距離よりも短い距離だけロボット１を移動させてもよい。この場合、ロボット１が机のような周囲が段差で取り囲まれた物体の上に載置された場合において、ロボット１の段差からの落下を防止しつつ、可能な限りロボット１の走行を継続させることができる。
【０２６２】
（１０）図１８のフローチャートでは、ロボットが走行面に置かれたことを条件に処理が開始されているが（Ｓ１０１）、本開示はこれに限定されず、カメラ１０４が取得した画像データ及びマイク１０６が取得した音声データから人物を検知できた場合に実行されてもよい。この場合、本開示は、その場旋回処理を行ってロボット１の正面を人物の方向に向け、段差検知処理を実行し、段差を検知した場合、人物の方向に段差までの距離よりも短い距離だけロボット１を移動させればよい。
【産業上の利用可能性】
【０２６３】
本開示によるロボットは、段差からの落下を防止することができるので、段差の多い環境下である家庭内で使用されるロボットとして有用である。
【符号の説明】
【０２６４】
１  ロボット
１０１  メイン筐体
１０２  第１球冠部
１０３  第２球冠部
１０４  カメラ
１０５  距離センサー
１０６  マイク
１０７  スピーカ
１０８  第１表示部
１０９  第２表示部
１１０  第３表示部
１１４  重り
１１５  シャフト
１１６  第１ギア
１１７  第２ギア
１１８  第１モータ
１２０  加速度センサー
１２１  第２モータ
１２２  駆動ベルト
１２３  第３アーム
１２３ａ  重り軸
１２４  第４アーム
１２４ａ  重り軸
１２５  第３モータ
１２６  第３ギア
１２７  第４ギア
１５５  ジャイロセンサー
２００  制御回路
２０１  プロセッサ
２０２  メモリ
２０３  第１駆動機構
２０４  第２駆動機構
２０５  重り駆動機構
２０６  電源
２０７  第１駆動機構制御部
２０８  第２駆動機構制御部
２０９  重り駆動機構制御部
２１０  電源制御部
２１１  主制御部
２１２  音声認識処理部
２１３  顔検出処理部
２１４  ジャイロ処理部
２１５  距離センサー処理部
２１６  加速度センサー処理部
２１８  段差情報管理部
Ｔ１４    段差情報テーブル
θ  旋回差分角度
【図１Ａ】
2019057203.tif 000003
【図１Ｂ】
2019057203.tif 000004
【図２】
2019057203.tif 000005
【図３】
2019057203.tif 000006
【図４】
2019057203.tif 000007
【図５】
2019057203.tif 000008
【図６Ａ】
2019057203.tif 000009
【図６Ｂ】
2019057203.tif 000010
【図６Ｃ】
2019057203.tif 000011
【図７Ａ】
2019057203.tif 000012
【図７Ｂ】
2019057203.tif 000013
【図８Ａ】
2019057203.tif 000014
【図８Ｂ】
2019057203.tif 000015
【図９】
2019057203.tif 000016
【図１０】
2019057203.tif 000017
【図１１】
2019057203.tif 000018
【図１２】
2019057203.tif 000019
【図１３】
2019057203.tif 000020
【図１４】
2019057203.tif 000021
【図１５】
2019057203.tif 000022
【図１６】
2019057203.tif 000023
【図１７】
2019057203.tif 000024
【図１８】
2019057203.tif 000025
【図１９】
2019057203.tif 000026
【図２０】
2019057203.tif 000027
【図２１】
2019057203.tif 000028
【図２２】
2019057203.tif 000029
【図２３】
2019057203.tif 000030