【課題】作業対象となる敷地の上部空間に張架されたガイドロープを画像認識して、当該ガイドロープに基づく所望の敷地に対して所望作業を遂行することが可能な、自走式作業車や各種作業車・ドローン等を提供することを目的とする。また、設置と撤収が極めて容易なガイドロープの張架となるので、好ましくは作業地が順次に移動していく場合であっても、その事前準備等が容易な自走式作業車や各種作業車・ドローン等を提供することを目的とする。
【解決手段】空中に張架されたガイドロープを含む画像を取得する撮像部と、当該取得した画像に含まれるガイドロープを識別する検出部と、識別されたガイドロープに基づいて、進行方向を制御する制御部と、を備える自走式作業車等とする。
【発明を実施するための形態】
【0013】
本実施形態で説明する自走式作業車は、典型的には自走式草刈機であって例えば太陽電池パネルが配置された敷設地等において、設置パネル間の比較的狭い線状(ライン状)の隙間地面に生えた雑草等を的確に除去することができるものである。当該設置パネル間の隙間地面は間隔が狭いので大型の指標や大型の機械・器具類を投入することはできないが、本実施形態ではガイドロープを張架するのみでよく、あとはガイドロープに沿って自走式の小型の草刈機が自ら走行しながら効率的に無駄なく草刈りを遂行することができる。なお、以下の説明においてガイドロープを適宜紐と称する場合もある。また、本実施形態で説明する自走式作業車は、典型例として自走式草刈機を示しているが自走式除雪作業機なども構成することもできる。本実施形態は、自走式作業車を典型例とする、各種作業車・ドローン等を含む自動進行作業装置に広く適用できるものとする。
【0014】
ガイドロープは、例えば測量用の軽量でピンク色蛍光ロープを利用することができ、軽量故に両端に支柱を立てるのみで長い間隔・距離であっても張架することが可能であるので張架作業の労力が少なくて済む。また、ピンク色の蛍光色のガイドロープは、当該ガイドロープを下方から撮像した場合の背景となる空の色、例えば快晴時の薄青色や雲の白灰色等、とは、画像処理(エッジ検出等)により比較的区別や識別が容易である。
【0015】
また、ガイドロープで一定の範囲を囲んでその中で自走式草刈機をランダムに走行させて、いわゆる自走式掃除機のように、くまなく除草作業させることも可能である。さらには、1回目の走行時にはガイドロープに沿ってこれを画像認識して自走させながらその時のGPSデータをその場取得して学習させておき、2回目以降からは学習したGPSデータに基づいて、例えばトレース走行・軌跡を走行させることも可能である。除草作業は必要に応じて年に数回程度は行う必要がある場合も多いので、このような場合には2回目以降のガイドロープ張架作業は不要とすることもできる。もちろん、ガイドロープと以前のGPSデータとを併用して、より精確な位置特定に基づいて除草作業を遂行してもよい。
【0016】
自動車において昨今はGPSの利用が普及しているが、上述のように本実施形態ではGPSをあくまで二次的に使用することでGPS精度の精度不足を補うことができる。自動車用GPSにおいては、その精度不足を道路地図と整合させることで(自動車は道路上以外を走行しないという基本的な前提のもとで)、位置特定を補正している。一方、自走式作業車は圃場や牧場、田畑、遊休地等を含めたいわゆる道路の存在しない場所を走行するので、自動車の場合のような地図整合による補正は不可能である。しかし、上述のように現実の除草位置においてその場で取得された初回GPSデータに基づいて、2回目以降のGPS座標指標として初回の軌跡を走行すればその精度は向上するものとなる。このような対応は、同一箇所を年に複数回(繁茂期では月に1回程度)自走草刈り等させる作業特有の環境から特に好ましいものとなる。例えばRTK(Real-Time Kinematic)を利用することによりGPS精度を向上させることもできる。
【0017】
さらに、本実施形態で説明する自走式作業車においては、好ましくは過去の動きをフィードバックして進行方向の判定制御を行うことで、曲がりすぎないように早めに曲がりを戻す等の修正制御を行うことが可能である。自走行制御に関する制御データや取得したGPSデータ等の走行データ蓄積は、自走式作業車自身に記憶しても良いし別途に設けたサーバに送信して記録しても良い。サーバに記録した場合には、自走式除草機は除草作業するGPS座標データや以前の走行制御データ、または、以前の当該データに基づいて修正された走行制御データを、必要に応じてサーバから受信したり指示を受けたりすることも可能である。そこで、以下図面に基づいてさらに詳細に説明する。以下の説明において典型例として自走式草刈機について説明しているが、自走式作業車の他にも種々の作業車やドローン等に対しても適用可能である。
【0018】
図1は本実施形態で説明する自走式草刈機100のハードウェア構成及びソフトウェア処理構成概要について説明する図であり、
図1(a)が自走式草刈機100のハードウェア構成概要を説明し、
図1(b)が自走式草刈機100の備えるマイクロコンピュータのプログラム機能概要を説明する図であり、
図1(c)が自走式草刈機100の走行制御処理等の流れを説明するフローチャートである。
【0019】
図1(a)において、自走式草刈機100は、右ハンドル140(1)と左ハンドル140(2)と、右ハンドル140(1)のレバー指示に基づいて制御される右モータ130(1)と左ハンドル140(2)のレバー指示に基づいて制御される左モータ130(2)と、を備える。(自走式草刈機100は元来レバーを握ると握った方向に進行(握った側の車輪の駆動が抑制される(または当該車輪に対し制動ブレーキがかかる))仕様の草刈機である)なお、自走式草刈機100を自走走行させるための駆動モータや駆動モータの出力を調整するアクセル等は図示していない。
【0020】
また、自走式草刈機100は、その前方上方に実装され、頭上方向を撮像可能なカメラモジュール110を備えており、カメラモジュール110により取得された画像はマイクロコンピュータ120で処理されて、自走制御の場合にはマイクロコンピュータ120から右モータ130(1)及び左モータ130(2)を制御するように指示される。ここで、作業者による右ハンドル140(1)と左ハンドル140(2)の操舵は、自走式草刈機100を自走走行させる場合には必要ないが、張架されたガイドロープの下の所定の作業開始位置にまでは、作業者が自走式草刈機100を操舵して移動してもよい。なお、マイクロコンピュータは、例えば画像処理用と、モータや通信等のその他制御用等と、で機能別等に分けて別途に二つ以上設ける構成としてもよい。
【0021】
また、カメラモジュール110は、自走式草刈機100上のガイドロープを撮影するためのカメラであって、マイクロコンピュータ120のプログラムから制御可能であり、撮影したカラー画像をマイクロコンピュータにて画像処理可能である。また、カメラモジュール110は、その取得画像中に当初は存在しなかったガイドロープであっても、自走式草刈機100の移動に伴ってその上方にガイドロープがきた場合には、ガイドロープを含む上方の新たな映像を取得することができる。また、マイクロコンピュータ120は、カメラモジュール110や右モータ130(1)及び左モータ130(2)を制御するように指示することができる。
【0022】
また、右モータ130(1)及び左モータ130(2)は、それぞれ右ハンドル140(1)と左ハンドル140(2)との各レバーを握ったのと同一の効果を得られるように、それぞれ右ハンドル140(1)と左ハンドル140(2)とに実装されるモータである。換言すれば、作業者がハンドルのレバーを握る操作で草刈機を任意方向に走行させることの代わりに、マイクロコンピュータ120の指示に基づいた右モータ130(1)及び左モータ130(2)の駆動によりレバー操作が為されるので、自走式草刈機100が指示された方向に自走するものとなる。
【0023】
また、
図1(b)において、マイクロコンピュータ120は、カメラモジュール110を制御するカメラ制御機能と、カメラモジュール110で取得された画像中からガイドロープを検出する紐検出機能と、右モータ130(1)及び左モータ130(2)を制御するモータ制御機能と、をプログラム制御によって備えるものとする。カメラ制御機能は、カメラモジュール110の各種設定変更や撮影処理を遂行するものであり、撮影は反芻して繰り返して例えば周期的に行われるものとする。また、取得された画像は紐検出機能で使用される。そして、紐検出機能では、取得された画像中からガイドロープを直線として例えばエッジ検出し、そのガイドロープの状態を数値化する。数値化されたガイドロープの状態は、モータ制御機能で使用される。また、モータ制御機能では、ガイドロープの状態を数値で受領して進行方向を判定し、右モータ130(1)及び左モータ130(2)へ指示を行うものとする。現実に張架されたガイドロープは一定程度の間隔に亘っているのである程度緩んで下方に凸の弧を描いていることもあるが、取得する画像ではその極一部のみであるため、処理上においては疑似直線として扱える。
【0024】
また、
図1(c)に示すように、上述のカメラ制御機能に基づいてS200のカメラ設定において、カメラモジュール110に対して撮影時の各種設定を行った上で、S210で撮影して画像を取得して取得した画像をメモリに保持する。また、上述の紐検出機能に基づいてS300の画像取得においてカメラモジュール110で取得されてメモリに保持された画像を受け取り、S310のカラーフィルタリングにおいて、ガイドロープの色をHSV色空間で表現した場合の各HSVの値の範囲を定義し、当該範囲外の色のピクセルをマスクする。
【0025】
また、S320のグレースケール変換において、直線(紐)検出の前処理として、カラーフィルタリング後の画像をグレースケールに変換する。次に、S330のエッジ抽出において、直線(紐)検出の前処理として、グレースケール変換後の画像からエッジを抽出する。続いて、S340の直線検出において、エッジ抽出後の画像に対して、直線を構成する要素を抽出する。例えば、ハフ変換のアルゴリズムを利用して直線を構成していると推測される要素群を抽出することにより、直線検出をすることもできる。仮に、直線が複数検出された場合には、直線の構成要素ピクセル数が最も多い直線を採用するものとする。そして、S350の直線(紐)情報計算において、検出した直線の状態を表現(数値化)するための直線(紐)情報として、例えば傾き、水平方向距離、垂直方向距離を算出する。ここで、数値化情報の各要素については後述において詳細に述べるものとしここでは説明を省略する。最後に、S360のモータ制御機能への情報伝達において、直線(紐)情報をモータ制御機能で利用できるように受け渡す。
【0026】
また、上述のモータ制御機能に基づいて、S400で取得した直線(紐)情報と、フィードバック情報とに基づいて、S410の進行方向判定において進行方向を判定する。S420のフィードバックでは、過去の進行方向判定の履歴をもとに蛇行を是正するための情報をS410の進行方向判定へフィードバックするものとする。そして、S430のモータ制御命令において、判定した進行方向へ進むために右モータ130(1)及び左モータ130(2)へ指示をする。
【0027】
ここで、本実施形態における特徴的技術事項として、紐色カラーフィルタリングと、直線(紐)情報を基にした進行方向判定と、蛇行抑制のための進行方向フィードバックと、を挙げることができる。まず、紐色カラーフィルタリングについて説明すると、紐検知機能にて撮影画像からトレースするガイドロープを直線として検出を行うものであるが、屋外で撮影した画像の場合、現実には電線などの画像内においてガイドロープと同形状の物体が存在する。これに対してエッジを基にした直線検知のみでは、トレースすべきガイドロープを検知できない懸念がある。
【0028】
このため、エッジを基にした直線検出を行う前処理として、紐の色(例えば蛍光ピンク色)をHSV色空間での値の範囲を定義し、その定義した紐の色と異なる色のピクセルをマスクする処理(紐色カラーフィルタリング)を行うことが好ましい。これにより紐の色で構成された直線を検知することの精度向上を実現することができる。また、取得した画像に太陽が映り込み、カメラモジュールに強い光が入射されると、シャッタースピードが高速になることで、画像上の紐の色が見かけ上変化することがある。そのため、画像のExif(デジタルカメラで撮影した画像データに、撮影条件に関する情報(メタデータ)を追加して保存できる画像ファイル形式の規格)から輝度値やホワイトバランスのゲイン値を取得し、その取得値次第で、カラーフィルタリングする際のHSV色空間の値の範囲を分ける処理をして、紐色カラーフィルタリングの精度が落ちないようにすることが好ましい。
【0029】
また、直線(紐)情報を基にした進行方向判定では、紐検知機能にて画像上の紐を直線として検知し、直線の状態を表現するための直線(紐)情報を計算する。直線(紐)情報は、傾き・水平方向距離・垂直方向距離の3つの値で構成されることができる。この情報を基に、モータ制御機能にて進行方向を判定するものとする。画像における直線(紐)・直線(紐)情報・自己位置・アクションを以下に説明する。
【0030】
図2乃至
図7は、自走式草刈機100と張架されたガイドロープ500との相対的位置関係に対する取得画像600中のガイドロープ510の検出位置、及びその場合の制御アクションの一例を説明する図である。
【0031】
図2(a)は、上空から見て張架されたガイドロープ500の左側から自走式草刈機100がガイドロープ500へ進行して接近する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図2(a)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角−n(但しnは数値)であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離はn(但しnは数値)であり、画像上辺におけるガイドロープ510と基準点との距離は−n(但しnは数値)である。ここで、上記直線情報の各nは単なる数字(number)を意味しそれぞれ互いに異なる数値であり得るものであり、同一数値を意味するものではない(以下同様)。そして、
図2(a)の直線情報に基づいて、この場合にはアクションとして前方への進行(Straight)となるように自走式草刈機100を自走制御する。
【0032】
また、
図2(b)は、上空から見て張架されたガイドロープ500の直下中央において自走式草刈機100がガイドロープ500と並行進行する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図2(b)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角0であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離は0であり、画像上辺におけるガイドロープ510と基準点との距離は0である。そして、
図2(b)の直線情報に基づいて、この場合にはアクションとして前方への進行(Straight)となるように自走式草刈機100を自走制御する。
【0033】
また、
図3(a)は、上空から見て張架されたガイドロープ500の右側から自走式草刈機100がガイドロープ500へ進行して逸脱する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図3(a)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角n(但しnは数値)であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離はNoneであり、画像上辺におけるガイドロープ510と基準点との距離は−n(但しnは数値)である。そして、
図3(a)の直線情報に基づいて、この場合にはアクションとして右方向への進行(Right)となるように自走式草刈機100を自走制御する。
【0034】
また、
図3(b)は、上空から見て張架されたガイドロープ500の左側において自走式草刈機100がガイドロープ500と並行進行する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図3(b)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角0であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離は∞であり、画像上辺におけるガイドロープ510と基準点との距離は−n(但しnは数値)である。そして、
図3(b)の直線情報に基づいて、この場合にはアクションとして右方向への進行(Right)となるように自走式草刈機100を自走制御する。
【0035】
また、
図4(a)は、上空から見て張架されたガイドロープ500の右側から自走式草刈機100がガイドロープ500下に侵入しようとする場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図4(a)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角−n(但しnは数値)であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離はn(但しnは数値)であり、画像上辺におけるガイドロープ510と基準点との距離は−n(但しnは数値)である。そして、
図4(a)の直線情報に基づいて、この場合にはアクションとして前方への前進進行(Straight)となるように自走式草刈機100を自走制御する。
【0036】
また、
図4(b)は、上空から見て張架されたガイドロープ500の右側から自走式草刈機100がガイドロープ500に到達した場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図4(b)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角−n(但しnは数値)であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離は0であり、画像上辺におけるガイドロープ510と基準点との距離は0である。そして、
図4(b)の直線情報に基づいて、この場合にはアクションとして左側方向への進行(Left)となるように自走式草刈機100を自走制御する。ここで、直線情報とは、取得画像600中に検知される直線の情報すなわちガイドロープ510の情報という意味である。
【0037】
また、
図5(a)は、上空から見て張架されたガイドロープ500の右側から自走式草刈機100がガイドロープ500を超えようとした場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図5(a)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角−n(但しnは数値)であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離はNoneであり、画像上辺におけるガイドロープ510と基準点との距離はn(但しnは数値)である。そして、
図5(a)の直線情報に基づいて、この場合にはアクションとして左側方向への進行(Left)となるように自走式草刈機100を自走制御する。
【0038】
また、
図5(b)は、上空から見て張架されたガイドロープ500の右側において自走式草刈機100がガイドロープ500と並進する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図5(b)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角0であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離は∞であり、画像上辺におけるガイドロープ510と基準点との距離はn(但しnは数値)である。そして、
図5(b)の直線情報に基づいて、この場合にはアクションとして左側方向への進行(Left)となるように自走式草刈機100を自走制御する。
【0039】
また、
図6(a)は、上空から見て張架されたガイドロープ500の右側から自走式草刈機100がガイドロープ500へと接近する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図6(a)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角n(但しnは数値)であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離はn(但しnは数値)であり、画像上辺におけるガイドロープ510と基準点との距離はn(但しnは数値)である(但し、上述のように各直線情報のnは便宜上同一のアルファベットnを用いているが互いに相異なる数値であってよい、本書面において全て同様)。そして、
図6(a)の直線情報に基づいて、この場合にはアクションとして前方方向への進行(Straight)となるように自走式草刈機100を自走制御する。
【0040】
また、
図6(b)は、上空から見て張架されたガイドロープ500の右側から自走式草刈機100がガイドロープ500へと到達する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図6(b)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角n(但しnは数値)であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離はn(但しnは数値)であり、画像上辺におけるガイドロープ510と基準点との距離は0である。そして、
図6(b)の直線情報に基づいて、この場合にはアクションとして右側方向への進行(Right)となるように自走式草刈機100を自走制御する。
【0041】
また、
図7(a)は、上空から見て張架されたガイドロープ500の右側から自走式草刈機100がガイドロープ500の右折張架地点へと到達する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図7(a)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角Noneであり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離はNoneであり、画像上辺におけるガイドロープ510と基準点との距離は−n(但しnは数値)である。そして、
図7(a)の直線情報に基づいて、この場合にはアクションとして右側方向への進行(Right)となるように自走式草刈機100を自走制御する。
【0042】
また、
図7(b)は、上空から見て張架されたガイドロープ500の右側から自走式草刈機100がガイドロープ500の左折張架地点へと到達する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図7(b)から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角Noneであり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離はNoneであり、画像上辺におけるガイドロープ510と基準点との距離はn(但しnは数値)である。そして、
図7(b)の直線情報に基づいて、この場合にはアクションとして左側方向への進行(Left)となるように自走式草刈機100を自走制御する。
【0043】
図2乃至
図7を用いた上述の説明においては、典型的なアクションとしてガイドロープの直下を自走するように制御する場合について説明しているが、これに限定されるものではなく、所定範囲を囲むように閉ループで設置されたガイドロープ内を任意ランダムに自走するように制御することもできる。また、過去の走行データや制御データ及びGPSデータ等を利用してフィードバックすることにより、蛇行を低減してより精確なトレース自走が可能となる。このように、自走式草刈機100または別途設けられたサーバを用いた学習機能を用いることで、同一箇所を複数回走行作業する場合等には、回を重ねるごとに精確さが増すものとでき、典型的にはAI(人口知能)を用いて経験則を用いた制御をすることもできる。例えば、地面の状況は平地に限られず斜面や凹凸がある場合もあるので、直進制御している場合でも自然に曲線走行してしまう場合もあるが、過去のデータをトレースした経験則等を用いることで、このような場合においても精確な直進制御が可能となる。また、
図8は、自走式草刈機100の一例を示す全体図である。
【0044】
(蛇行抑制のための進行方向フィードバック)
図2乃至
図7を用いた上述の説明において、アクションがRignt(右旋回)やLeft(左旋回)となった場合に、操舵に関するモータ制御機能は、次の紐(ガイドロープ)検知機能からの直線情報が来るまでの間、旋回する制御を継続するものとなる。現実の作業場における旋回する程度は、自走式作業車の個体差や走行環境によっても都度異なるものとなるので、過度に旋回されるものとなって、紐に対して意図とは逆方向へ逸脱してしまう場合も想定される。このようなことが複数回繰り返し発生すれば、意図するガイドロープに沿った走行とは異なり、蛇行走行となる懸念が生じる。このため、
図9に示すようなロジックで、一回の旋回指示により自走式作業車が旋回する度合いをその場で旋回しながら学習し、その情報を進行方向の判定にフィードバックすることで、過度な旋回による蛇行走行を回避・抑制することが好ましい。
図9は、過度な旋回による蛇行走行を抑制する制御のロジックを説明する図である。
【0045】
図9において、ステップS910の「学習」では、紐検知機能から直線(紐)情報が届く時間と、時間当たりの旋回する傾きについて、実測値からそれぞれの平均値を計算して学習データとして保存する。また、ステップS920の「蛇行抑制判定」では、右旋回や左旋回を示す直線(紐)情報を受け取った際に、その旋回を行うことを紐の逆方向へ逸脱する可能性があるか否かを学習データを基に判定する。さらに、ステップS930の「フィードバック」では、逆方向へ逸れる可能性があると判断された場合に、Right(右旋回)やLeft(左旋回)は取りやめて、Straight(直進)するように、モータ制御機能の進行方向判定に指示をする。ここで、上記実測値とは、カメラで取得した実測データ(定期的に取得した紐の角度情報)である。例えば、こちらの判定ロジックにて右と判定し、右に旋回中にカメラから取得された紐の角度情報から現実にどれくらい右に旋回できたかを、ここでの実測値と称する。また、右に旋回と判断し右旋回中にカメラから受信した紐の角度情報から旋回できてない(紐との角度が開く)と判断した場合は逸脱と判断する。例えばカメラからは非同期で、次々に画像が撮影されているものとできる。
【0046】
図10乃至
図12は、ガイドロープで囲まれた敷地内を自走式草刈機がランダムに自由走行する場合の制御について説明する図である。
図10(a)に示すように、ガイドロープ内をランダムに自走行する場合の方向制御は、取得画像中に直線(ガイドロープ)を検出したら当該画像中の直線の傾きから旋回方向を判断して旋回を開始する。ここで、仮に直線の傾きが無い場合には、ランダムで乱数的にまたは算出した方向に旋回方向を決定する。そして、旋回開始後は、取得画像中に直線を検出しなくなった時点で当該旋回走行を終了する。また、直線を飛び出して自走行しそうな場合には、取得画像中に検出される直線の座標を「線外飛び出し領域」として定義し、当該定義をその後の線外飛び出し判定に使用するものとする。直線内部の走行パターンは
図10(b)以降で説明するものとし、「線外飛び出し領域」については薄いグレーで示すものとする。また、自走行開始時のスタート地点は、ガイドロープ枠内(線内)であるものとし、撮像装置(カメラ)は自走式草刈機の真上ではなくやや前方に配向することにより、前方に存在するガイドロープの検出も可能にするものとする。
【0047】
まず、
図10(b)に示すように、ガイドロープ500に向かって垂直に自走式草刈機100が自走行している場合には、自走式草刈機100Aの位置における取得画像600A中にガイドロープ510を検出するので旋回を開始するものとし、旋回方向は左右どちらでも良いのでランダムに決定する。但し、
図10(b)では左旋回の場合を典型例として示している。そして、自走式草刈機100Bの位置及び100Cの位置において取得画像600B乃至600C中にガイドロープ510を検出するのでいずれも旋回を継続し、自走式草刈機100Dの位置において取得画像中にガイドロープ(直線)が検出されなくなったために旋回を終了する。なお、以下の
図11乃至
図12では、図中の符号は煩雑になるので記載を省略しているが
図10と同様である。
【0048】
また、
図11(a)に示すように、ガイドロープに対して斜めに向かって自走式草刈機が自走行している場合には、自走式草刈機がAの位置においてガイドロープを検出するので旋回を開始するものとし、旋回方向は検出された直線の傾きに基づいて旋回コストが低い方向に決定する。
図11(a)では左旋回のほうが旋回コストが低い(旋回が容易である)。そして、自走式草刈機がBの位置においても旋回を継続し、自走式草刈機がCの位置において取得画像中にガイドロープ(直線)が検出されなくなったために旋回を終了する。
【0049】
また、
図11(b)に示すように、ガイドロープの角部位に向かって自走式草刈機が自走行している場合には、自走式草刈機がAの位置においてガイドロープを検出するので旋回を開始するものとし、この場合には取得画像中に二本の直線が検出されるので長い方の直線を旋回方向の決定方向の判定に選択使用するものとし、選択した直線の傾きから旋回コストの低い方に旋回する。また、自走式草刈機がBの位置及びCの位置及びDの位置及びEの位置においていずれも旋回を継続するが、Cの位置及びDの位置では薄いグレーで示す線外飛び出し領域と直線が交差しているので、次の取得画像において仮に直線が検出されなかった場合には強制停止するものとする。また、自走式草刈機がFの位置において取得画像中にガイドロープ(直線)が検出されなくなったために旋回を終了する。
【0050】
また、
図12(a)に示すように、ガイドロープに向かって垂直方向から自走式草刈機が旋回しながら自走行しているが、旋回角度が浅くてガイドロープから逸脱する場合には強制停止するものとする。すなわち、自走式草刈機がAの位置においてガイドロープを検出するので旋回を開始するものとし、旋回方向は左右どちらでも良いのでランダムに決定する。但し、
図12(a)では左旋回の場合を典型例として示している。そして、自走式草刈機がBの位置において旋回を継続するが、薄いグレーで示す線外飛び出し領域と直線が交差しているので、次の取得画像において仮に直線が検出されなかった場合には強制停止するものとする。そして、自走式草刈機がCの位置において取得画像中にガイドロープ(直線)が検出されなくなったために強制停止する。
【0051】
また、
図12(b)に示すように、ガイドロープに向かって垂直方向から自走式草刈機が旋回しながら自走行しているが、旋回開始が遅れたためにガイドロープから逸脱する場合にも強制停止するものとする。すなわち、自走式草刈機がAの位置においてガイドロープを検出するので旋回を開始するものとするが、薄いグレーで示す線外飛び出し領域と直線が交差しているので、次の取得画像において仮に直線が検出されなかった場合には強制停止するものとする。そして、自走式草刈機がBの位置において取得画像中にガイドロープ(直線)が検出されなくなったために強制停止する。上述したような
図10乃至
図12で説明した自走行の制御ロジックは、あくまで具体的な一例であってこれに限定されるものではない。
【0052】
本発明の自走式作業車は、空中に張架されたガイドロープを含む画像を取得する撮像部と、当該取得した画像に含まれるガイドロープを識別する検出部と、識別されたガイドロープに基づいて、進行方向を制御する制御部と、を備えることを特徴とする。これにより、任意の屋外の圃場等であっても空中にガイドロープを張るのみにより、ロープを頼りに走行しながら自走式の作業車が作業を遂行するものとできる。
【0053】
草が生い茂っている圃場や太陽電池の敷設地等においては、それらが障害となって当該敷地内の自由な移動や指標の運搬は困難なことが多い。しかし、ガイドロープを張るのみであれば、ロープの支持棒とガイドロープとがあれば足り、支持棒は細い棒状体であるので比較的軽量かつ嵩張らないので運搬が容易である。ガイドロープは測量等でも利用される蛍光ピンクの細い軽量の紐を利用可能である。自走式作業車は、例えば自走式草刈機であってもよく、この場合には草を刈りたいライン状に沿ってガイドロープを張架することで、自走式草刈機が当該ガイドロープ直下を自ら走行しながら草刈りすることとなる。
【0054】
例えば、太陽光パネルの敷設地においてはパネル間に一定の隙間が形成されているが、当該隙間には太陽光が差し込むことから、時間の経過とともに雑草が生い茂る。生い茂った雑草は、そのまま成長すればいずれパネルをも覆い太陽光発電の発電効率を低下させることから定期的な草刈りが必要となる。しかし、当該隙間は、作業者が手作業や機械工具を用いて草刈り作業するにはかなり狭い場合もあり、また対象面積も大きいなど困難な作業となることも多い。
【0055】
このような場合であっても、当該隙間はライン状であることからガイドロープを空中に張架することは比較的容易であって、自走式草刈機をガイドロープ下に自走させることで容易に草刈りが可能となる。また、田畑等の所定面積の圃場周囲にガイドロープで囲った上で、その囲われた内部の圃場を自走式作業車で自走させて作業させることも可能である。この場合には、取得した画像中に認識されたガイドロープから逸脱しないように自走式作業車を制御(プログラムやシーケンス、アルゴリズム等で調整)するものとする。また、このような制御調整は、別途に設けたサーバにより判断して自走式作業車の操舵角度等を指示するものとしてもよい。
【0056】
また、本発明の自走式作業車は、好ましくは制御部が、ガイドロープに沿った進行方向に制御することを特徴とする。これにより、ガイドロープに沿った走行が可能となり、典型的には張架されたガイドロープの直下を自走式作業車が作業しながら走行するものとできる。
【0057】
また、本発明の自走式作業車は、好ましくは制御部が、ガイドロープで囲まれた範囲内から逸脱しないように進行方向を制御することを特徴とする。これにより、ライン状ではなく所定の面積を有する範囲内を自走式作業車に自走させて作業させることも可能となる。ガイドロープは柔軟性に富むとともに支持棒を適宜設置することで空中に自由に張架することが可能であることから、ガイドロープで囲まれる範囲は、矩形に限定されるものではなく、楕円形や三角形等任意の形状とできる。一般に、圃場や田畑、耕作地や放牧地、太陽光パネル発電敷設地等の屋外での作業する場所では、空中は開放されていることが多いことから、ガイドロープの張架の自由度は極めて高いものとなる。
【0058】
また、本発明の自走式作業車は、好ましくは制御部が、ガイドロープに基づいて初回に進行する場合にGPSデータを取得し、第2回目以降の走行時にはGPSデータに基づいて進行方向を制御することを特徴とする。例えば、GPSは補助的に使用することができる。同一の場所を同一要領により作業する場合には、最初の作業時に当該作業のGPS座標を取得して、例えばサーバに送信して記憶しておき、2回目の同一作業時等にはサーバから取得したGPS座標に基づいて自走するものとしてもよい。
【0059】
これにより、2回目以降の作業時にはガイドロープの張架を省略することもできるし、ガイドロープの張架による指標に加えてGPSデータも活用して、より精緻な作業を遂行するものとしてもよい。例えば太陽光パネル敷設地においては、パネル間の草刈りを年に数回程度は行う必要があるが、このような場合には同一場所を複数回自走式草刈機で作業させることとなるのでGPSデータの活用も有用である。初回の走行時には自ら走行しながらGPS実データを取得するので、極めて精度の高い現実的なGPS座標が得られるものとなる。
【0060】
また、本発明の自走式作業車は、さらに好ましくは制御部が、ガイドロープに基づいて進行する場合に、過去のデータを参照して当該データに基づいて進行方向を修正してフィードバック制御することを特徴とする。本発明の自走式作業車は、自走時の制御データと走行データを記録するものとできる。これにより、トレースモードでの走行中に現走行の操舵角度の制御に関する情報を学習しながら走行するものとし、当該学習した情報を基にして現在の制御アクション内容を差し替え変更するフィードバック制御としてもよい。また、例えば前回の走行時に例えば操舵角度が過大であったため曲がりすぎた等の学習機能に基づいて、次回の走行時には操舵角度を少し小さく制御する等のフィードバック制御を可能としてもよい。これにより、繰り返し自走する度に、蛇行走行の懸念が低減されるものとなり、次第に狙ったラインにピタリと沿った的確な自走が可能となる。例えば、トレースモードでの走行中に操舵角度を学習して、その走行中に学習情報を基にしてアクションを差し替えるというフィードバックとすることができる。
【0061】
また、本発明の自走式作業車は、さらに好ましくはガイドロープが屋外に設置された太陽光パネルの間隙に直線状に配置されたものであり、自走式作業車は太陽光パネルの間隙に生える雑草を除去する自走式草刈機であることを特徴とする。これにより、太陽光パネルのパネル間隙に生える雑草を、少ない労力で比較的容易に除去することが可能となる。
【0062】
また、本発明の自走式作業車は、さらに好ましくは撮像部が、自走式作業車の上部に搭載されて自走式作業車の上方を撮影することを特徴とする。自走式作業車の上部空間は比較的背景となる人工的物体及び自然物等が少ないので、ガイドロープの認識と判別には適しているものとなる。従って、より迅速に正確な判別と制御とが可能となる。また、仮に上空背景に電線等が多数張り巡らされているような場所であったとしても、本実施形態の自走式作業車によれば、当該電線とガイドロープとの判別は的確に為されるものとなる。
【0063】
また、本発明の自走式作業車は、さらに好ましくは取得したGPSデータが自走式作業車からサーバに送信されてサーバで記録され、第2回目以降の走行時にはサーバからダウンロードしたまたはマイクロコンピュータに保存されたGPSデータに基づいて、制御部が進行方向を制御することを特徴とする。これにより、ガイドロープの判別による制御に加えてGPSデータも活用できるので、さらに正確な制御が可能となる。また、ガイドロープを張架しなくても自走式作業車のみによって、以前に現実にその場取得したGPSデータに基づいた正確な制御が可能となる。一般に、圃場等においてはマップが存在せずそもそも道路も存在しない。このため、GPSデータとマップを照合して位置修正するような現状の自動車用ナビの手法は採用できない。しかし、過去にその場走行しながら現実に取得したGPSデータに基づいて、第二回目以降の走行を行うことにより、走行位置制御の制度は大きく向上するものとできる。
【0064】
また、本発明の自走式作業車は、さらに好ましくは過去のデータがサーバに記録されており、制御部は、サーバからダウンロードした過去のデータに基づいてフィードバック制御することを特徴とする。このため、自走式作業車は、制御データやガイドロープ判別データや取得したGPSデータ等の各種データを、自身で記録せずにサーバに送信してサーバで記録し管理するものとしてもよい。自走式作業車は、必要な時にサーバから必要なデータをダウンロードして、またはサーバからの指示に基づいて、走行制御を行うものとできる。過去の走行履歴に基づいて、現在の走行制御を修正できるので、より正確で的確な走行制御が可能となる。また、自走式作業車は、個々に走行速度や操舵角、車輪の径や溝の特性等、走行性能やその特徴が異なる場合もあるが、過去の履歴データを蓄積していくことにより、個々の特徴に基づいた制御も可能となる。
【0065】
また、本発明の自走式作業車の制御方法は、空中に張架されたガイドロープを含む画像を撮像部で取得する工程と、当該取得した画像に含まれるガイドロープを検出部で識別する工程と、識別されたガイドロープに基づいて制御部が進行方向を制御する工程と、を有することを特徴とする。これにより、任意に張架されたガイドロープの位置に基づいて自走式作業車が作業をしながら自ら走行するものとし、極めて少ない労力での作業が可能となる。
【0066】
(改良バージョン水糸検出方法、ドローンや各種車両等でも可能)
上述したような色フィルタやエッジ処理等を用いた紐抽出とする紐検出処理に代えて、例えば画像全体または画像の一部に分割(例えば5×5)してAI(人工知能)による画像処理(典型的には畳み込みニューラルネットワーク(CNN:Convolutional Neural Network))を用いることにより、紐抽出を行う本実施形態の方法について以下に説明する。ここで、従来良く知られている畳み込みニューラルネットワークは、画像全体の中から特定の目的とする形状(ペットボトルやコップ等)等を抽出するために用いられることが知られているが、本実施形態では、取得画像中の紐(ガイドロープ)の形状は直線であったり直角曲折であったり湾曲したりと種々のバリエーション態様となるので形状には着目せず、色のみに着目したAI処理とするものである。これにより、形状等処理にかかるAI処理負担がかからないので、処理速度が大きく向上して極めて迅速な紐抽出処理が可能となる。また、後半においては独自ネットワーク2としてCNNを用いずにいきなり全結合処理する方法についても説明する。このような処理は形状を考慮せずに紐に対応する色を判別することのみに特化することにより可能となるものである。
【0067】
図13は、本実施形態にかかる改良バージョンの水糸検出方法にかかるフローチャートである。この方法は、自動草刈機に限定されるものではなく、ドローンや農業機械以外の各種車両等においても適用可能である。
図13は、第二の実施形態の自走式草刈機の走行制御処理等の流れを説明するフローチャートである。既に説明している上述の実施例との共通部分については可能な限り説明を省略し、
図1(c)に示すフローチャートとの相違点を中心に以下に説明するものとする。この実施例では、
図1(c)のステップS310乃至S330に代えて紐ピクセル推論によりガイドロープや水糸等を検出する。
【0068】
図14に説明するように紐ピクセル推論は、畳み込みニューラルネットワークを用いて、画像上の各ピクセルが紐を構成する画素かどうか推論を行う。紐を構成するピクセルである場合には白、その他画素は黒として、直線検出の前処理画像を生成する。このため、
図14に示すようにステップS340の直線検出は、紐ピクセル推論後の画像に対して直線検出をするものとする。
【0069】
また、第二の実施形態では
図15に示すように、(1)畳み込みニューラルネットワーク、(2)直線(紐)情報を基にした進行方向の判定、(3)蛇行制御のための進行方向フィードバック、を特徴とするものである。そこで、
図16乃至
図20を用いて畳み込みニューラルネットワークについてさらの詳細に説明する。
【0070】
図16において、屋外で撮影した画像から紐を検出するには以下のような課題が発生する。(1)電線など類似の形状の物の誤検知、(2)太陽光が光源となる場合のガイド紐の映り方の変化、(3)レンズの色収差による色のにじみ、(4)隣接するイメージセンサの干渉による色のにじみ、等である。
【0071】
これらにより、紐ピクセルは画像データ上で、一定の画素値ではなくなるため、紐ピクセルがどのような画素値を取るかを人手によりパターン化して定義・抽出することは困難である。このため、ディープラーニング分野において、画像の物体認識等に用いられる畳み込みニューラルネットワークを第二の実施形態では応用することとした。畳み込みニューラルネットワークとは、技術要素の名称であり、具体的なネットワーク構造は様々なモデルが提案さているが、今回は繰り返しの検証によって、良好な紐検出精度を得られたネットワーク構造を独自のモデル(以降、独自モデル)として作成して使用することとした。このような独自モデルは、公知の各処理要素の最適な組み合わせによる処理である。畳み込みニューラルネットワークを以下において適宜、畳み込みまたは畳み込み処理と略称する。
【0072】
独自モデルで、上記課題にあるような様々な状況下の紐ピクセルを大量に学習させておき、未知画像データに対して推論を実施して紐ピクセルかどうかの判定をするようにした。推論では、紐ピクセルかどうかが、数値で表現されるため、教師データに完全に一致しなくとも、近い値であれば紐ピクセルとして判定することができる。これは、紐ピクセルが一定の値を取る、という事を前提としないため、柔軟な判定ができるメリットがある。
【0073】
このような独自モデルでは、判定対象の1ピクセル(以下、注目ピクセル)を紐ピクセルかどうか判定するために、注目ピクセル周辺の5×5のピクセル群を参考にして推論するようなネットワーク構造としていることを特徴としている。ここで、畳み込み処理とは、画像処理や数学演算分野において既に広く知られている技術であるのでここで詳述を避けるが、画像処理を実行するときに最も頻繁に用いられる計算のひとつであり、数学的にはもとの関数とたたみ込む関数との積の積分で表されるものであるが、ディジタル信号においては掛け算と足し算のみで容易に表現することができるとされている。(参考URL:https://www.clg.niigata-u.ac.jp/~medimg/practice_medical_imaging/imgproc_scion/4filter/index.htm)
【0074】
また、際(エッジ画素)の処理の有無については、
図17に示すように、際の処理をしないと5×5の画像に対して3×3のフィルタを適用すると、3×3の画像ができることとなる。このため、元画像と同じサイズの結果が必要な場合は元画像の際の部分を拡張して処理する。拡張する場合は、
図17に例示するように隣り合ったセルと同等の値がその外側にあると考えて処理するのが一般的である。
【0075】
第二の実施形態の独自ネットワークでは、
図19に示すように畳み込み処理の後に、全結合の処理を遂行する。全結合とは
図18に示すように、いわゆるニューラルネットワークの事を意味するものであり、畳み込みが、あるピクセルとその周辺(フィルタサイズによる)の画素値しか計算に入れないのに対して、全結合では全てのピクセルの値を計算に含めることから、全結合と称されているものです。(参考URL:https://www.procrasist.com/entry/16-neural-net)
【0076】
図19において、独自ネットワーク1の特徴として、全結合時の入力が1×1なので高速になる反面、畳み込み処理が必須なので、畳み込みがフィルタ数によって処理負荷が大きくなる懸念がある。入力を3×3等にする場合には際の処理を行わないので必然的に畳み込みは1段しかできないものとなる。
【0077】
図19に示すように、独自ネットワーク1では、まず畳み込み処理を遂行する。1段目の畳み込み5×5の画像を処理する。3×3フィルタサイズで画像の際は処理しないので、3×3のデータができる。次に、2段目の畳み込み3×3の画像を処理する。3×3フィルタサイズで画像の際は処理しないので、1×1のデータができる。さらに、
図19において全結合処理を2段階に亘って遂行した後に、紐を示す画素であるか否か判定処理をする。
なお、3×3フィルタサイズの場合に5×5からスタートした場合は、2段の畳み込みにしてもよく、3×3からスタートした場合は1段の畳み込みにしかできない。この開始のピクセル群と、畳み込みの段数とは原則的には任意(処理能力との兼ね合い等によってある程度の制限はある)である。また、畳み込みのフィルタも任意である。例えば、5×5のピクセル群のフィルタ3×3で2段の畳み込みは任意であり、5×5のピクセル群で、5×5フィルタで1段の畳み込みとしてもよい。また、利用するコンピュータの処理能力によっては、5×5のピクセルで、3×3のフィルタで2段の畳み込みが処理精度と処理速度とがちょうどマッチングする場合もある。フィルタはn×n(nは任意の整数)フィルタとしてもよい。
5×5から開始して、フィルタが5×5ならおのずと1段で処理が完了する。この場合の特徴点としては、際の処理はしないで、畳み込みの処理をするたびに、ピクセル群は小さくしていくことにより、処理を軽くしていく点にある。
また、当該図に示すように、全結合は1×1の入力なので、学習時は5×5のデータで処理しても、全画像の入力が可能になる。入力のニューロン数も1×1で処理が高速になる。なお、さらに厳密には、フィルタ数分それぞれあるのでニューロン数としては、1×1×フィルタ数となる。フィルタ数は任意(チューニングにより決定します)である。このフィルタ数は過剰に多いと処理に相応の時間要することになるが、しかし多いほうが精度が上がるというわけではない。全結合も2段になっているがこれは任意となる。判定処理については、例えば紐である確率が90%以上であると判定された場合に紐であると判断してもよい。
【0078】
また、
図20に示すように独自ネットワーク2では、畳み込み処理は必須ではないので、処理を高速化することを優先する場合には、畳み込み処理を行わなくても良いが、そのトレードオフとして紐検出精度が下がる傾向にある。このため、事前の学習時においても、学習後の現実の運用時においても5×5等のサイズに予め画像を分割しておく必要がある。
【0079】
図20において、独自ネットワーク2では、まず畳み込み処理を遂行してもよい。1段目の畳み込み5×5の画像を処理する。3×3フィルタサイズで画像の際(外周縁部)も処理するので、5×5のデータができる。次に、2段目の畳み込み5×5の画像を処理する。3×3フィルタサイズで画像の際も処理するので、5×5のデータができる。さらに、
図20において全結合処理の1段階目は5×5で処理し、2段階目の全結合処理において、学習時も運用時も5×5の画像に分割して処理するものとするが、5×5のサイズなので比較的迅速な処理が可能となる。
【0080】
次に、
図21乃至
図34を用いて本実施形態における場合の現実の紐検出判断及び進行制御について、
図2乃至7に説明した技術事項との相違点についてのみ説明する。以下にいて特に説明がない部分の紐検出及び進行制御等については
図2乃至
図7を用いて説明した技術事項及び/または当業者に公知の技術思想を任意に採用して適用することができる。
図21乃至
図34は、第二の実施形態の自走式草刈機と張架されたガイドロープとの相対的位置関係に対する取得画像中のガイドロープの検出位置、及びその場合の制御アクションの一例を説明する図である。
【0081】
図21において、取得画像における上辺の左右方向の中心を基準点(図の黒丸印)とした場合に、基準点のやや左側からさらに左に向けて下方向に紐(ガイドロープ)が検出されている場合を示している。この場合には、水平方向底辺距離として−nとの変数が与えられる。水平方向底辺距離とは、
図21に示すように、その時点の随時取得画像の底辺側における紐の位置と基準点との左右方向(水平方向)における距離nを示し左方向がマイナスで右方向がプラスであるとしている(以下同様)。
図21におけるその他の制御等は
図2(a)と同様であるのでここでは説明を省略する。
【0082】
図22においては、水平方向底辺距離として0との変数が与えられる。
図22におけるその他の制御等は
図2(b)と同様であるのでここでは説明を省略する。また、
図23においては、水平方向底辺距離としてnとの変数が与えられる。
図23におけるその他の制御等は
図3(a)と同様であるのでここでは説明を省略する。また、
図24においては、水平方向底辺距離として−nとの変数が与えられる。
図24におけるその他の制御等は
図3(b)と同様であるのでここでは説明を省略する。
【0083】
また、
図25においては、水平方向底辺距離として−nとの変数が与えられる。
図25は、上空から見て張架されたガイドロープ500のやや中央左側において自走式草刈機100がガイドロープ500と並行進行する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図25から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角0であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離は∞であり、画像上辺におけるガイドロープ510と基準点との水平距離は−n(但しnは数値)で、水平方向底辺距離として−nである。そして、
図25の直線情報に基づいて、この場合にはアクションとして直進方向へ進行(Straight)となるように自走式草刈機100を自走制御する。
図25の直進制御については本実施形態に特有の制御であり、紐に沿った向きにおいて紐に寄り添う程度のズレの場合には紐に近づこうとする進行制御とはせずに、紐に平行にそのまま直進するように制御するものとする。
【0084】
また、
図26においては、水平方向底辺距離として−nとの変数が与えられる。
図26におけるその他の制御等は
図4(a)と同様であるのでここでは説明を省略する。また、
図27においては、水平方向底辺距離として−nとの変数が与えられる。
図27におけるその他の制御等は
図4(b)と同様であるのでここでは説明を省略する。また、
図28においては、水平方向底辺距離としてnとの変数が与えられる。
図28におけるその他の制御等は
図5(a)と同様であるのでここでは説明を省略する。
【0085】
また、
図29においては、水平方向底辺距離としてnとの変数が与えられる。
図29におけるその他の制御等は
図5(b)と同様であるのでここでは説明を省略する。
【0086】
また、
図30においては、水平方向底辺距離としてnとの変数が与えられる。
図30は、上空から見て張架されたガイドロープ500のやや中央右側において自走式草刈機100がガイドロープ500と並行進行する場合に、カメラモジュール110での取得画像600中に検知されたガイドロープ510の配置関係と直線情報、及びアクションを説明する図である。
図30から理解できるように、この場合には直線情報の傾きは取得画像600中のガイドロープ510と画像垂直ラインとの為す角0であり、ガイドロープ510の延長線が画像上辺中央(基準点)での垂線と交わる点の当該画像上辺からの距離である垂直方向距離は∞であり、画像上辺におけるガイドロープ510と基準点との水平距離はn(但しnは数値)で、水平方向底辺距離としてnである。そして、
図30の直線情報に基づいて、この場合にはアクションとして直進方向へ進行(Straight)となるように自走式草刈機100を自走制御する。
図30の直進制御については本実施形態に特有の制御であり、紐に沿った向きにおいて紐に寄り添う程度のズレの場合には紐に近づこうとする進行制御とはせずに、紐に平行にそのまま直進するように制御するものとする。この点において、
図25と
図30の各場合において共に直進制御となる。
【0087】
また、
図31においては、水平方向底辺距離としてnとの変数が与えられる。
図31におけるその他の制御等は
図6(a)と同様であるのでここでは説明を省略する。また、
図32においては、水平方向底辺距離としてnとの変数が与えられる。
図32におけるその他の制御等は
図6(b)と同様であるのでここでは説明を省略する。
【0088】
図33と
図34とは、対象エリア領域を囲んでいる紐(ガイドロープ)の角に作業車が差し掛かった場合について説明する図である。いずれの場合においても取得画像中には直角方向に配向された二方向のガイドロープが視認されるものである。この場合には、当該ガイドロープが画面外縁と交わる点のうち、取得画像底辺の中央から最も遠い点を通るガイドロープを抽出してこれを次に進行方向を示す紐であると認識するものとする。
図33においては、傾きはnか−nであり、水平方向底辺距離としてNoneとの変数が与えられる。
図33におけるその他の制御等は
図7(a)と同様であるのでここでは説明を省略する。また、
図34においては、傾きはnか−nであり、水平方向底辺距離としてNoneとの変数が与えられる。
図34におけるその他の制御等は
図7(b)と同様であるのでここでは説明を省略する。
【0089】
次に、
図35においては、
図33と
図34の態様を含むガイドロープ曲がり角付近における作業車の進行方向制御について詳細に説明する図である。取得画像中に検出されたガイドロープが曲折する場合においては
図35のように車両等の進行方向を制御することができる。すなわち、曲がり角においては、当該の曲がり角に至るまで進んできた紐(旧紐)と、曲がり角を曲がった先の紐(新紐/角の先に進行するべき方向を示す紐)の、2本の紐が画像上に存在することがある。このような二本の紐は典型的には直角を形成して取得画像中に認識される。そして、どちらの紐情報を採用して進行方向を決めるかは、当該作業車等がその曲がり角を無事にうまく曲がれるか否かの重要な判断を伴うものとなる。
【0090】
たとえば、最も長く映っている紐を進行方向を示す紐として採用するとした場合、
図35の上段に示す例では、新紐を採用しLeft(左方向へ転回)指示としたいが、旧紐を採用することで、Straight(直進)指示となってしまう。これについては、
図35下段に示すロジックにて、可能な限り新紐を採用するように工夫するものとする。1、検出した直線それぞれの画像中における端点(例えば、外縁との交点)の座標を取得する。2、取得した端点座標のうち、画像の底辺左右中点座標より最も離れた端点座標(P)を求める。3、当該求めたPを持つ直線を新紐と判断し、作業車が進むべき進行方向を示す紐として採用する。上記第二の実施形態で説明を省略したその他の技術事項については、当初に説明している第一の実施形態等の技術思想や処理を適宜採用できるものとする。
【0091】
(ガイドロープ(水糸・紐)検知の詳細)
学習方法として、5×5で学習する場合は、学習画像をあらかじめ5×5のピクセルに分割し、必要な結果に応じて、5×5の画像を振り分けておく。たとえば、結果は紐・紐に似ているもの、紐とは関係ないものの3つに分類する場合は、学習データもそれぞれ3つに分け、推論の結果は紐、紐に似ているもの、紐とは関係ないものそれぞれに属する確率が3つ取得できる。紐、紐以外の2つに分類する場合は、学習データもそれぞれ2つに分け、推論の結果は紐、紐以外それぞれに属する確率が2つ取得できる。また、効果的な学習方法としては、1)紐と誤検知した画像を用意、2)もしくは、紐を検知しなかった画像を用意、3)推論済みの白黒画像と、現画像を用意、4)画像の任意のピクセルを選択すると5×5の画像が振り分けられるツールを使い、上記の白黒画像から検知しなかった部分や、誤検知した部分を選択して、ただしい分類に振り分けて再度学習を行う。これにより、誤った判断をしたピクセル群のみを再度、学習させることができる。
【0092】
(紐トレース制御(画像データ))
本願出願時点において発明者が利用しているネットワーク構成は、下記表1のようになる。
【0094】
5×5で学習する場合は、学習画像をあらかじめ5×5のピクセルに分割する。必要な結果に応じて、5×5の画像を振り分けておく。たとえば、結果は紐、紐に似ているもの、紐とは関係ないもの3つに分ける場合はそれぞれ分けて、結果も3つ取得する。(2つ分類で行うことも可能)。学習パラメータは、バッチサイズ: 100、エポック数 : 65、正解クラス : 2、ドロップアウト率 : 0.5、学習率 : 0.001、最急降下法のオプティマイザ : AdamOptimizerとしてもよい。
【0095】
ここで、用語の説明と、パラメータの詳細を下記に示す。
Padding無し
畳み込みにおいて際の処理をしないこと
エポック数
学習サイクルの数で、紐の検知においては40から80ぐらい。多いと過学習ぎみになる傾向。
活性化関数
紐検知においては、Leaky ReLU を用いている。ReLUよりは少々よい成績となっている。
正解クラス
推論したあとに分類されるクラス数。2は紐 or 紐以外。3は紐 or 紐っぽい or 紐ではない。2つに分類した方が成績が良い場合には2つにする。
【0096】
(特徴的技術事項)
1)ガイド紐を利用した制御
a)通常移動体を線に沿って制御する場合は地面に線を引くが本発明では上空に線(ガイドロープや水糸やガイド紐等)を張ることに特徴がある。雑草が生い茂っている土地等を想定しているため、ガイド紐は上空に張ることを想定した。
b)上空に線を張った場合は、電線や屋根などの直線を有する物体が多いため、画像認識において、誤検知が多くなる。本発明はAIを用いて迅速かつ正確にガイド紐を検出するのが特徴である。
c)また、空中に紐の直線と誤検知されるような物が多い環境でも正確にガイド紐を検出できると、例えばドローンなどで上空を飛ぶものも制御する事が可能になる。ドローンなどから地上のガイド紐を検知する場合も屋根や電線などとガイド紐の様なものが多いため本発明が適用できると考えられる。
2)AIを用いたガイド紐の検出
a)一般的にAIでは物体の検出や、道路と建物などの大きいものを検出するのが現在の一般的な利用方法である。また、エッジコンピュータ上で高速に処理する必要があるため、公知の技術を工夫する必要がある。
b)本発明は、ガイド紐を高速に検知するため画像を小さく分割して分割した単位で一斉にバッチ処理することで高速に演算するのが特徴である。
c)また、さらに迅速かつ正確に推論するために2つのネットワークを考案して、状況によりどちらかを選択して利用する。
【0097】
上述した実施形態で説明した自走式草刈機や自走式作業車等は、実施形態での個別説明に限定されるものではなく、本発明の範囲内かつ自明な範囲内で自由にその構成や動作や制御方法を変更し、公知の技術を含めて適宜組み合わせ適用して実現することが可能である。また、活性化関数は日々に新規改良されたものが随時出現しているが、上記本願発明の課題を解決し、作用・効果を達成・獲得できる範囲内で任意の関数を適用し、任意のパラメータを採用することができる。