(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023006141
(43)【公開日】2023-01-18
(54)【発明の名称】自走式ロボット用プログラム
(51)【国際特許分類】
G05D 1/02 20200101AFI20230111BHJP
A47L 9/28 20060101ALI20230111BHJP
【FI】
G05D1/02 H
A47L9/28 E
【審査請求】未請求
【請求項の数】2
【出願形態】OL
(21)【出願番号】P 2021108572
(22)【出願日】2021-06-30
(71)【出願人】
【識別番号】000191353
【氏名又は名称】新明工業株式会社
(74)【代理人】
【識別番号】110000394
【氏名又は名称】弁理士法人岡田国際特許事務所
(72)【発明者】
【氏名】吉塚 卓穂
【テーマコード(参考)】
3B057
5H301
【Fターム(参考)】
3B057DA00
5H301AA01
5H301AA10
5H301CC03
5H301CC06
5H301CC10
5H301DD01
5H301GG06
5H301GG08
5H301GG09
5H301GG10
(57)【要約】
【課題】弁別が困難な小さいサイズの障害物を乗り越える機能を、自走式ロボットに実現させる。
【解決手段】自走式ロボット用プログラムは、自走式ロボットに、走行状態把握機能と、出力トルク把握機能と、障害物把握機能と、判定機能と、設定トルク変更機能と、を実現させる。走行状態把握機能では、自身が走行を行っているかを把握する。出力トルク把握機能では、出力トルクを経時的に把握する。障害物把握機能では、障害物の有無を把握する。判定機能では、出力トルクが設定トルクに基づく基準に照らして大であるかを判定する。設定トルク変更機能では、障害物が存在せず、走行していない状態が把握され、かつ出力トルクが上記基準に照らして大である状態が継続している場合に、設定トルクの値を大きくする。
【選択図】
図2
【特許請求の範囲】
【請求項1】
出力トルクが設定トルクよりも大とならないようにトルク制限を行うモーターアッセンブリと、当該モーターアッセンブリを駆動力源とした走行を実現させる走行ユニットと、前記走行の進行方向にある障害物を感知するセンサーとを備えた自走式ロボットに適用される自走式ロボット用プログラムであって、
前記自走式ロボットに、
自身が前記走行を行っているか否かを把握する走行状態把握機能と、
前記モーターアッセンブリの前記出力トルクを経時的に把握する出力トルク把握機能と、
前記障害物の有無を弁別して把握する障害物把握機能と、
前記出力トルク把握機能により把握される前記出力トルクが、前記設定トルクの値に基づいて設定される基準に照らして大であるか否かを判定する判定機能と、
前記障害物把握機能により把握される前記障害物が存在しないという第1の条件、
前記走行状態把握機能により前記走行が行われていない状態が把握されているという第2の条件、および、
前記出力トルクが前記基準に照らして大である旨の判定結果が前記判定機能により出されているという第3の条件、
の3つの条件がすべて満たされている状態が、第1の時間以上の時間継続している場合に、前記設定トルクの値をより大きな値に変更する設定トルク変更機能と、
を実現させる、自走式ロボット用プログラム。
【請求項2】
請求項1に記載された自走式ロボット用プログラムであって、
前記第1の条件、前記第2の条件、および、前記第3の条件、の3つの条件がすべて満たされている状態が、前記設定トルク変更機能が実現された後に第2の時間以上の時間継続している場合に、前記モーターアッセンブリを停止させる停止機能を前記自走式ロボットに実現させる、
自走式ロボット用プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、自走式ロボット用プログラムに関する。
【背景技術】
【0002】
従来、自ら走行経路の環境を把握しながら目的地に向かって走行する自走式ロボットが知られている。このような自走式ロボットにおいては、センサーにより障害物を感知し、その感知結果に基づいて走行の制御を行う自走式ロボット用プログラムを適用する技術が公知であった(例えば下記の特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記公知の技術では、センサーの分解能よりも粗いグリッドセルが複数集まった塊の形で障害物を抽出した障害物マップを作成し、この障害物マップを参照して自走式ロボットの走行を制御する。このため、上記公知の技術では、センサーによる弁別が困難な小さいサイズの障害物によって自走式ロボットの走行が阻害されることに対して対処することができなかった。
【0005】
本開示は、自走式ロボットの走行に際し、センサーによる弁別が困難な小さいサイズの障害物に対処してこの障害物を乗り越える機能を、自走式ロボットに実現させることを可能とするものである。
【課題を解決するための手段】
【0006】
本開示における1つの特徴によると、モーターアッセンブリと、走行ユニットと、センサーとを備えた自走式ロボットに適用される自走式ロボット用プログラムが適用される。ここで、モーターアッセンブリは、出力トルクが設定トルクよりも大とならないようにトルク制限を行うものである。また、走行ユニットは、モーターアッセンブリを駆動力源とした走行を実現させるものである。また、センサーは、上記走行の進行方向にある障害物を感知するものである。また、自走式ロボット用プログラムは、自走式ロボットに、後述する走行状態把握機能と、出力トルク把握機能と、障害物把握機能と、判定機能と、設定トルク変更機能と、を実現させる。ここで、走行状態把握機能は、自身が走行を行っているか否かを把握する機能である。また、出力トルク把握機能は、モーターアッセンブリの出力トルクを経時的に把握する機能である。また、障害物把握機能は、上記障害物の有無を弁別して把握する機能である。また、判定機能は、出力トルク把握機能により把握される出力トルクが、設定トルクの値に基づいて設定される基準に照らして大であるか否かを判定する機能である。また、設定トルク変更機能は、後述する第1の条件、第2の条件、および、第3の条件、の3つの条件がすべて満たされている状態が、第1の時間以上の時間継続している場合に、上記設定トルクの値をより大きな値に変更する機能である。ここで、第1の条件は、障害物把握機能により把握される上記障害物が存在しないという条件である。また、第2の条件は、走行状態把握機能により上記走行が行われていない状態が把握されているという条件である。また、第3の条件は、上記出力トルクが上記基準に照らして大である旨の判定結果が判定機能により出されているという条件である。
【0007】
上記の自走式ロボット用プログラムによれば、自走式ロボットは、その走行の進行方向に弁別された障害物がなく、モーターアッセンブリの出力トルクが大であるにもかかわらず自走式ロボットが走行しない状態が継続している場合に、モーターアッセンブリの出力トルクを通常時の設定トルクよりも大とすることができる。これにより、センサーによる弁別が困難な小さいサイズの障害物に対処してこの障害物を乗り越える機能を、自走式ロボットに実現させることができる。
【発明の効果】
【0008】
本開示によれば、センサーによる弁別が困難な小さいサイズの障害物に対処してこの障害物を乗り越える機能を、自走式ロボットに実現させることができる。
【図面の簡単な説明】
【0009】
【
図1】本開示の一実施形態にかかる自走式ロボット用プログラムが適用される自走式ロボット10を表した正面図である。
【
図2】本開示の一実施形態にかかる自走式ロボット用プログラムにより実行される一連のステップを表したフローチャートである。
【発明を実施するための形態】
【0010】
上記の自走式ロボット用プログラムは、モーターアッセンブリを停止させる停止機能を自走式ロボットに実現させるものであってもよい。ここで、上記停止機能によるモーターアッセンブリの停止は、上記第1の条件、第2の条件、および、第3の条件、の3つの条件がすべて満たされている状態が、設定トルク変更機能が実現された後に第2の時間以上の時間継続している場合に行われる。
【0011】
上記の自走式ロボット用プログラムによれば、自走式ロボットは、モーターアッセンブリの出力トルクを通常時の設定トルクよりも大としてもなお走行ができない場合に、モーターアッセンブリを停止させてエネルギーが無駄に消費されることをさけることができる。
【0012】
続いて、本開示の一実施形態にかかる自走式ロボット用プログラムが適用される自走式ロボット10の構成について、
図1を用いて説明する。この自走式ロボット10は、2つ1組の駆動輪11Aと、1つのキャスター11Bとからなる走行ユニット11を有し、この走行ユニット11により床90の上を自走する自走式ロボットである。本実施形態においては、自走式ロボット10は、その内部にバッテリー(図示省略)を備えて、このバッテリーが供給する電気エネルギーにより、自走式ロボット10が備える各構成を動作させる。また、床90は、その上に種々の大きさの障害物90Aが落ちている可能性のあるものである。
【0013】
自走式ロボット10は、走行ユニット11の駆動力源となるモーターアッセンブリ10Aを備えている。このモーターアッセンブリ10Aは、その出力トルクが設定トルクよりも大とならないよう、トルク制限を行うものである。本実施形態においては、モーターアッセンブリ10Aは、走行ユニット11の各駆動輪11Aに1つずつ設けられて、これら駆動輪11Aを別個に駆動させることができるように構成されている。また、各モーターアッセンブリ10Aは、これらモーターアッセンブリ10Aの外部にあるストレージ12Cにアクセスして設定トルクのデータを取得し、このデータをもって自身の設定トルクを上書きする動作を繰り返すように構成されている。また、各モーターアッセンブリ10Aは、上記ストレージ12Cにアクセスしてオン/オフの指令データを取得し、この指令データに従って駆動のオン/オフを切り替えるように構成されている。また、各モーターアッセンブリ10Aのうちの1つは、その出力トルクの瞬時値をストレージ12Cに出力するように構成されている。
【0014】
また、自走式ロボット10は、走行ユニット11およびモーターアッセンブリ10Aによる自走式ロボット10の自走を制御するコンピューターである制御装置12を備えている。この制御装置12には、ライダー12Aと、衝突センサー12Bと、ストレージ12Cと、が付設されている。本実施形態においては、制御装置12は、キャスター11Bに対して駆動輪11Aの組が位置される側(
図1では紙面手前側)を「前」として、自走式ロボット10における走行の進行方向がもっぱら前方となるように制御を行う。
【0015】
ライダー12Aは、自走式ロボット10における前側(自走式ロボット10における走行の進行方向。
図1では紙面手前側)の面に露出して設けられたセンサーである。このライダー12Aは、その前方のエリアに赤外線を照射しながら、このエリアから返ってくる赤外線を測定してこれを解析する。これにより、ライダー12Aは、自走式ロボット10の走行の進行方向における障害物90Aの有無を含む、上記エリアにおける障害物90Aの分布を感知する。本実施形態においては、ライダー12Aは、自走式ロボット10において走行ユニット11よりも上側(
図1では上側)となる位置に設けられて、その感知結果を経時的に制御装置12に出力するように構成されている。
【0016】
衝突センサー12Bは、自走式ロボット10における走行ユニット11およびモーターアッセンブリ10Aを前側から覆う板状のセンサーである。この衝突センサー12Bは、その板面に衝突する障害物90Aの有無を感知する。本実施形態においては、衝突センサー12Bは、障害物90Aの有無の感知結果を経時的に制御装置12に出力するように構成されている。
【0017】
ストレージ12Cには、複数のプログラムを互いに独立して動作させる機能を制御装置12に実現させるプログラムであるオペレーティングシステムが、コンピュータ読み取り可能に記録されている。本実施形態においては、オペレーティングシステムは、自走式ロボット10の電源スイッチ(図示省略)がオフの状態からオンの状態になると、制御装置12において自動的に実行される。そして、オペレーティングシステムは、ストレージ12Cにコンピュータ読み取り可能に記録されたプログラムのうち、前もって設定された所定のプログラムを呼び出して実行する呼び出し処理を、制御装置12に実行させる。また、オペレーティングシステムは、自走式ロボット10の電源スイッチがオンの状態からオフの状態になると、自身を除いた、制御装置12にて実行されているすべてのプログラムを強制終了させる処理を、制御装置12に実行させる。そして、オペレーティングシステムは、自身の終了処理および制御装置12のシャットダウン処理を、制御装置12に実行させる。
【0018】
また、ストレージ12Cには、本開示の一実施形態にかかる自走式ロボット用プログラム(以下、「制御プログラム」とも称する。)が、コンピュータ読み取り可能に記録されている。この制御プログラムは、オペレーティングシステムまたは後述する衝突回避プログラムの呼び出し処理によって制御装置12にて実行され、この制御装置12を、自走式ロボット10の自走を制御する制御手段として機能させる。
【0019】
また、ストレージ12Cには、衝突センサー12Bによって感知された、自走式ロボット10への障害物90Aの衝突に対応するための衝突対応プログラムが、コンピュータ読み取り可能に記録されている。この衝突対応プログラムは、上記制御プログラムの呼び出し処理(
図2のステップS130を参照)によって制御装置12にて実行され、上記制御プログラムから自走式ロボット10の自走の制御を引き継ぐ。そして、衝突対応プログラムは、自走式ロボット10の走行のスピードを落として自走式ロボット10を静止させ、しかるのちに自身の終了処理および自走式ロボット10の電源スイッチをオフの状態にする処理を、制御装置12に実行させる。
【0020】
また、ストレージ12Cには、ライダー12Aによって感知された障害物90Aとの衝突を回避するための衝突回避プログラムが、コンピュータ読み取り可能に記録されている。この衝突回避プログラムは、上記制御プログラムの呼び出し処理(
図2のステップS110を参照)によって制御装置12にて実行され、上記制御プログラムから自走式ロボット10の自走の制御を引き継ぐ。そして、衝突回避プログラムは、走行ユニット11の各駆動輪11Aの回転量を異ならせることによって自走式ロボット10の向きおよび走行の進行方向を変更し、もってライダー12Aによって感知された障害物90Aとの衝突を回避する処理を、制御装置12に実行させる。しかるのちに、衝突回避プログラムは、上記制御プログラムの呼び出し処理を行ってこの制御プログラムに自走式ロボット10の自走の制御を引き継がせ、自身を終了させる処理を、制御装置12に実行させる。
【0021】
また、ストレージ12Cには、自走式ロボット10の制御に必要となる種々のデータが、コンピュータ読み取りおよび書き換えのいずれもが可能な状態に記録されている。この種々のデータには、モーターアッセンブリ10Aにおける設定トルク(以下、「設定トルクB」とも称する。)のデータが含まれている。
【0022】
続いて、上記制御プログラムが、自走式ロボット10の制御装置12に実行させる一連の各ステップについて、
図2に示すフローチャートを用いて説明する。この一連の各ステップにおいて、制御装置12は、まず、
図2のステップS10を実行する。
【0023】
ステップS10において、制御装置12は、後述する各ステップを実行するために必要となる初期設定を行い、その処理をステップS20に進める。
【0024】
ここで、上記初期設定には、上記制御プログラムが上記衝突回避プログラムの呼び出し処理によって実行された場合における、自走式ロボット10の自走の制御を引き継ぐ処理が含まれる。また、上記初期設定には、設定トルクBの値を、ストレージ12Cに前もって記録された所定値に設定する処理が含まれる。
【0025】
ステップS20において、制御装置12は、様子見タイマー値Eの設定を行い、その処理をステップS30に進める。ここで、様子見タイマー値Eは、後述する加算タイマーCによる分岐(ステップS170)における、分岐のしきい値となる値であり、正の値として設定される。
【0026】
ステップS30において、制御装置12は、後述する減算タイマーAをその値が0となるように設定し、その処理をステップS40に進める。
【0027】
ステップS40において、制御装置12は、減算タイマーAの値が0よりも大きいか0以下であるかを判定する。この判定の結果が「0よりも大きい」である場合、制御装置12は、その処理をステップS60に進める。上記判定の結果が「0以下」である場合、制御装置12は、その処理をステップS50に進める。
【0028】
ステップS50において、制御装置12は、ストレージ12C内の設定トルクBの値をリセットし、もってこの値をステップS10の初期設定において設定された値にする。そして、制御装置12は、その処理をステップS70に進める。
【0029】
ステップS60において、制御装置12は、減算タイマーAの値を所定値だけ減らし、その処理をステップS70に進める。すなわち、減算タイマーAは、設定トルクBの値がステップS10の初期設定において設定された値と異なる場合に、この設定トルクBの値がリセットされることを猶予するためのカウンター変数として機能する。
【0030】
ステップS70において、制御装置12は、加算タイマーCを未定義の状態にし、その処理をステップS80に進める。ここで、加算タイマーCは、モーターアッセンブリ10Aにおける出力トルクが設定トルクB以上の値をとっている状態がどれだけ継続しているかを表すためのカウンター変数である。
【0031】
ステップS80において、制御装置12は、ライダー12Aからの出力を取得し、この出力をストレージ12Cに記憶させた上で解析する。これにより、制御装置12は、ライダー12Aが感知している障害物90Aの分布と、これら障害物90Aのうち自走式ロボット10の走行の進行方向にある障害物90Aの有無と、をそれぞれ弁別して把握する。そして、制御装置12は、その処理をステップS90に進める。ここで、ステップS80を実行する制御装置12の機能は、本開示における「障害物把握機能」に相当する。
【0032】
ステップS90において、制御装置12は、衝突センサー12Bからの出力を取得し、その取得結果に基づいて衝突センサー12Bが感知している障害物90Aの有無を弁別して把握する。そして、制御装置12は、その処理をステップS100に進める。ここで、ステップS90を実行する制御装置12の機能は、本開示における「障害物把握機能」に相当する。
【0033】
ステップS100において、制御装置12は、直近に実行したステップS80の処理結果に基づき、ライダー12Aが障害物90Aを感知したか感知していないかを判定する。この判定の結果が「感知した」である場合、制御装置12は、その処理をステップS110に進める。上記判定の結果が「感知していない」である場合、制御装置12は、その処理をステップS120に進める。
【0034】
ステップS110において、制御装置12は、上述した衝突回避プログラムの呼び出し処理を行い、この衝突回避プログラムに自走式ロボット10の自走の制御を引き継がせる。そして、制御装置12は、制御プログラムの終了処理を実行する。
【0035】
ステップS120において、制御装置12は、直近に実行したステップS90の処理結果に基づき、衝突センサー12Bが障害物90Aを感知したか感知していないかを判定する。この判定の結果が「感知した」である場合、制御装置12は、その処理をステップS130に進める。上記判定の結果が「感知していない」である場合、制御装置12は、その処理をステップS140に進める。
【0036】
ステップS130において、制御装置12は、上述した衝突対応プログラムの呼び出し処理を行い、この衝突対応プログラムに自走式ロボット10の自走の制御を引き継がせる。そして、制御装置12は、制御プログラムの終了処理を実行する。
【0037】
ステップS140において、制御装置12は、ストレージ12Cにアクセスして上述した指令データをオンの状態にし、もって各モーターアッセンブリ10Aの駆動をオンにする。そして、制御装置12は、その処理をステップS150に進める。なお、ステップS140において、指令データが既にオンの状態になっていた場合、制御装置12は、指令データをオンの状態に維持したまま、その処理をステップS150に進める。
【0038】
ステップS150において、制御装置12は、各モーターアッセンブリ10Aのうちの1つが、現時点においてストレージ12Cに出力している出力トルクの瞬時値を取得する。そして、制御装置12は、その処理をステップS160に進める。
【0039】
ステップS160において、制御装置12は、直前に実行されたステップS150において取得された出力トルクの値が、現時点で設定されている設定トルクBの値に基づいて設定される基準(本実施形態では設定トルクBの値そのもの)に照らして大であるか否かを判定する判定機能を実現させる。ここで、以下においては、出力トルクが上記基準に照らして大である旨の判定結果が判定機能により出されているという条件のことを、「第3の条件」とも称する。
【0040】
ステップS160において、第3の条件が満たされる(本実施形態では出力トルクの値が設定トルクBの値以上である)場合、制御装置12は、その処理をステップS170に進める。第3の条件が満たされない(本実施形態では出力トルクの値が設定トルクBの値未満である)場合、制御装置12は、その処理をステップS40に進める。
【0041】
ここで、ステップS40に処理を進めた制御装置12は、上記障害物把握機能により把握される障害物90Aが存在しないという条件(以下、「第1の条件」とも称する。)が満たされている限り、その処理がステップS160に至るものである。したがって、制御装置12は、第1の条件が満たされ、かつ第3の条件が満たされていない間、ステップS160の処理を繰り返し実行することとなる。これにより、自走式ロボット10の制御装置12においては、モーターアッセンブリ10Aの出力トルクを経時的に把握する出力トルク把握機能が実現される。なお、本実施形態においては、第1の条件は、「ライダー12Aまたは衝突センサー12Bのいずれもが障害物90Aを感知していない」という条件に言いかえることができるものである。
【0042】
ステップS170において、制御装置12は、加算タイマーCに基づく条件判断を行い、この条件判断の判断結果によって以降の処理のパターンを分岐させる。すなわち、制御装置12は、加算タイマーCが未定義の状態であるという条件が満たされる場合、その処理をステップS180に進める。また、制御装置12は、加算タイマーCが定義され、かつその値が様子見タイマー値E以上であるという条件が満たされる場合、その処理をステップS220に進める。また、制御装置12は、加算タイマーCが定義され、かつその値が様子見タイマー値E未満であるという条件(以下、「条件H」とも称する。)が満たされる場合、その処理をステップS210に進める。
【0043】
ステップS180において、制御装置12は、加算タイマーCをその値が0となるように定義し、その処理をステップS190に進める。
【0044】
ステップS190において、制御装置12は、直近に実行したステップS80にて把握した障害物90Aの分布を解析し、これら障害物90Aと自走式ロボット10との相対的な位置関係を把握する。続いて、制御装置12は、上記相対的な位置関係に基づき、自走式ロボット10の現在位置を表す位置情報を把握する。そして、制御装置12は、その処理をステップS200に進める。
【0045】
ステップS200において、制御装置12は、直前に実行したステップS190にて把握した位置情報をストレージ12Cにバックアップし、その処理をステップS80に進める。
【0046】
ここで、ステップS80に処理を進めた制御装置12は、上述もしたように、第1の条件および第3の条件の両条件が満たされている限り、その処理がステップS170に至るものである。したがって、ステップS180を実行した制御装置12は、第1の条件および第3の条件の両条件が満たされている限り、その処理がステップS210に至ることになる。
【0047】
ステップS210において、制御装置12は、加算タイマーCの値を所定値だけ増やし、その処理をステップS80に進める。
【0048】
ここで、ステップS80に処理を進めた制御装置12は、上述もしたように、第1の条件および第3の条件の両条件が満たされている限り、その処理がステップS170に至るものである。したがって、制御装置12は、第1の条件、第3の条件、および、条件Hの3つの条件がすべて満たされるまでの間、ステップS210の処理を繰り返し実行することとなる。これにより、制御装置12においては、自走式ロボット10の自走において第1の条件および第3の条件の両条件が満たされた場合に、現状を維持したまま待機を行う機能が実現される。なお、本実施形態においては、ステップS20において設定される様子見タイマー値Eの値と、ステップS210における加算タイマーCの値の増加量とは、上記待機が行われる時間(以下、「第1の時間」とも称する。)が約3[秒]となるように設定される。
【0049】
ステップS220において、制御装置12は、ライダー12Aからの出力を取得し、その取得結果に基づいて自走式ロボット10と各障害物90Aとの相対的な位置関係を弁別して把握する。そして、制御装置12は、その処理をステップS230に進める。
【0050】
ステップS230において、制御装置12は、直前に実行したステップS220にて把握した、自走式ロボット10と各障害物90Aとの相対的な位置関係に基づき、自走式ロボット10の現在位置を表す位置情報を把握する。そして、制御装置12は、その処理をステップS240に進める。
【0051】
ステップS240において、制御装置12は、直前に実行したステップS230にて把握した位置情報と、直近に実行したステップS200にてストレージ12Cにバックアップされた位置情報とを比較し、もって自走式ロボット10自身が走行を行っているか否かを把握する走行状態把握機能を実現させる。そして、制御装置12は、その処理をステップS250に進める。
【0052】
ステップS250において、制御装置12は、直前に実行されたステップS240の処理結果に基づき、上記第1の時間において自走式ロボット10が走行をしていたか否かを判定する。言いかえると、制御装置12は、自走式ロボット10が走行を行っていないという条件(以下、「第2の条件」とも称する。)が、上記第1の時間以上の時間継続して満たされているか否かを判定する。上記第1の時間において自走式ロボット10が走行をしている(すなわち第2の条件が満たされない)場合、制御装置12は、その処理をステップS260に進める。上記第1の時間において自走式ロボット10が走行をしていない(すなわち第2の条件が満たされている)場合、制御装置12は、その処理をステップS270に進める。
【0053】
ステップS260において、制御装置12は、ストレージ12C内の設定トルクBの値をより大きな値に変更し、その処理をステップS280に進める。本実施形態においては、ステップS260において、制御装置12は、ストレージ12C内の設定トルクBの値を、ステップS10の初期設定において設定された設定トルクBの値よりも大きな所定値Fにする処理を実行する。この所定値Fは、ステップS10の初期設定において設定される値である。
【0054】
ここで、ステップS260の処理は、第1の条件、第2の条件、および、第3の条件の3つの条件がすべて満たされている状態が、この状態が生起したタイミング(以下、「生起タイミング」とも称する。)から第1の時間以上の時間継続している場合に実行される処理である。したがって、ステップS260の処理は、この処理により設定トルクBの値がより大きくなる場合、本開示における「設定トルク変更機能」を実現する処理であるということができる。
【0055】
ステップS270において、制御装置12は、設定トルク変更機能により変更された設定トルクBのリセット(ステップS50を参照)が猶予されていることを示すフラグ(すなわちブーリアン(boolean)型の変数)であるフラグGをオフの状態にする。そして、制御装置12は、その処理をステップS30に進める。なお、ステップS270において、フラグGが既にオフの状態になっていた場合、制御装置12は、フラグGをオフの状態に維持したまま、その処理をステップS30に進める。
【0056】
ステップS280において、制御装置12は、減算タイマーAの値が0以下か0よりも大であるかを判定する。減算タイマーAの値が0よりも大である場合、制御装置12は、その処理をステップS40に進める。減算タイマーAの値が0以下である場合、制御装置12は、その処理をステップS290に進める。
【0057】
ステップS290において、制御装置12は、減算タイマーAの値を正の所定値に設定し、その処理をステップS300に進める。
【0058】
ステップS300において、制御装置12は、フラグGがオフの状態にあるかオンの状態にあるかを判定する。フラグGがオフの状態にある場合、制御装置12は、その処理をステップS310に進める。フラグGがオンの状態にある場合、制御装置12は、その処理をステップS320に進める。
【0059】
ステップS310において、制御装置12は、フラグGをオンの状態にし、その処理をステップS40に進める。これにより、制御装置12においては、設定トルク変更機能が実現された後に、変更された設定トルクBのリセット(ステップS50を参照)を猶予しながら制御を継続する機能が実現される。なお、本実施形態においては、ステップS290において設定される減算タイマーAの値と、ステップS60における減算タイマーAの値の減少量とは、上記猶予の時間(以下、「第2の時間」とも称する。)が約10[秒]となるように設定される。
【0060】
ステップS320において、制御装置12は、ストレージ12Cにアクセスして上述した指令データをオフの状態にし、もって各モーターアッセンブリ10Aの駆動をオフにする(すなわち各モーターアッセンブリ10Aを停止させる)。そして、制御装置12は、制御プログラムの終了処理を実行する。なお、ステップS320において、指令データが既にオフの状態になっていた場合、制御装置12は、指令データをオフの状態に維持したまま、制御プログラムの終了処理を実行する。
【0061】
ここで、ステップS320の処理は、上述した第1の条件、第2の条件、および、第3の条件の3つの条件がすべて満たされている状態が、生起タイミングから第1の時間が経過して設定トルク変更機能が実現された後に、第2の時間以上の時間継続している場合に実行される処理である。したがって、ステップS320の処理は、本開示における「停止機能」を実現する処理であるということができる。
【0062】
上述した制御プログラム(自走式ロボット用プログラム)によれば、自走式ロボット10は、その走行の進行方向に弁別された障害物90Aがなく、モーターアッセンブリ10Aの出力トルクが大であるにもかかわらず自走式ロボット10が走行しない状態が継続している場合に、モーターアッセンブリ10Aの出力トルクを通常時の設定トルクBよりも大とすることができる。これにより、ライダー12Aおよび衝突センサー12Bによる弁別が困難な小さいサイズの障害物90Aに対処してこの障害物90Aを乗り越える機能を、自走式ロボット10に実現させることができる。
【0063】
また、上述した制御プログラム(自走式ロボット用プログラム)によれば、自走式ロボット10は、モーターアッセンブリ10Aの出力トルクを通常時の設定トルクBよりも大としてもなお走行ができない場合に、モーターアッセンブリ10Aを停止させてエネルギーが無駄に消費されることをさけることができる。
【0064】
本開示は、上述した一実施形態で説明したものに限定されず、本開示の要旨を変更しない範囲で種々の変更、追加、削除が可能である。例えば、以下のような各種の形態を実施することができる。
【0065】
(1)判定機能において、出力トルクの値が大であるか否かを判定するための基準は、モーターアッセンブリにおける設定トルクの値そのものである必要はない。すなわち、判定機能において、出力トルクの値が大であるか否かを判定するための基準は、例えばモーターアッセンブリにおける設定トルクの値に1未満となる正の所定数をかけた値であってもよい。
【0066】
(2)設定トルク変更機能の処理は、現時点における設定トルクの値を所定値に変更する処理である必要はない。すなわち、設定トルク変更機能の処理を、現時点における設定トルクの値に正の加算値を加える処理とした変形例を考えることができる。この変形例においては、設定トルク変更機能の処理は、第1の条件、第2の条件、および、第3の条件、の3つの条件がすべて満たされている状態が継続する場合、生起タイミングから第1の時間が経過したタイミングからの経過時間(以下、「経過時間」とも称する。)が0以上第2の時間以下である間繰り返し実行される。すなわち、上記変形例によれば、自走式ロボットがモーターアッセンブリの設定トルクを大きくする設定トルク変更機能を実現する必要が生じた場合に、この設定トルクを徐々に増加させることで、自走式ロボットの動作をよりスムーズにすることができる。ここで、上記加算値は所定値であっても、上記経過時間の函数であってもよい。後者の場合、上記函数の設定により設定トルクの増加速度を調整し、もって自走式ロボットの動作をさらにスムーズにすることができる。
【0067】
(3)本開示にかかる自走式ロボット用プログラムは、障害物を感知するためのセンサーとしてライダーおよび衝突センサーを有する自走式ロボットに適用されるものに限定されない。すなわち、本開示にかかる自走式ロボット用プログラムは、例えばレーダー、超音波センサー、視覚センサー、またはサーマルカメラなど、自走式ロボットの走行の進行方向にある障害物を感知できる、適宜選択した種類のセンサーを有する自走式ロボットに適用することができる。
【符号の説明】
【0068】
10 自走式ロボット
10A モーターアッセンブリ
11 走行ユニット
11A 駆動輪
11B キャスター
12 制御装置
12A ライダー(センサー)
12B 衝突センサー(センサー)
12C ストレージ
90 床
90A 障害物