本開示をその実施の形態を示す図面を参照して具体的に説明する。以下の実施の形態の説明では、収穫装置の対象の果物又は野菜の具体例として、ミニトマトを挙げる。しかしながら収穫装置の収穫対象は、対象の特性に合わせた処理を除いてはミニトマトに限られないことは勿論であり、他の果物又は野菜に代替される場合、以下の説明においてミニトマトは、対象の果物又は野菜に読み替えて解釈されるべきである。
(実施の形態1)
図1は、実施の形態1の収穫装置1の概要図である。収穫装置1は、走行台11と走行台11に取り付けられたアーム機構(マニピュレータ)12、2つのカメラ13,14、及びTOF(Time Of Flight)カメラを制御する制御部を備える。図1の概要図では、走行台11は栽培環境の地面又は床面に、株が植えられた畝に沿って敷設されたレール上を走行する。走行台11はレールを挟む駆動輪111を備え、走行台11内部に設けられている制御部の制御によって走行する。走行台11の走行形態は多様な形態が適用できる。例えば走行台11は、レールを介さず地面又は床面を走行してもよいし、栽培環境に配備された温湯管をレールとして走行してもよい。
走行台11には、アーム機構12が水平方向に回転可能に軸支されている。アーム機構12は、高さ方向が可動である。アーム機構12の先端にはエンドエフェクタ(実施の形態1ではミニトマト用のハンド、以下、ハンドという)121が取り付けられている。走行台11には、ハンド121で収穫されたミニトマトが収容されるカゴ112が取り付けられている。アーム機構12は、制御部10からの制御によって駆動し、ハンド121による摘果を実行する。ハンド121は、鋏状であってもよい。
2つのカメラ13,14の内、1つのカメラ13はアーム機構12の基部に、横向き、即ち走行台11の走行方向に直交する向きにミニトマトの株を撮像できるように設けられている。カメラ13は、アーム機構12が高さ方向に移動する際に、一体に高さが変動するようにしてある。カメラ14は、ハンド121の軸を軸支する関節部に、ハンド121の捕捉対象に常に向かうように設けられている。カメラ13,14はいずれもカラーの映像素子を用いる。カメラ13,14には夫々、照明131,141が備えられている。照明131,141は、処理部100の指示に従って点灯/消灯する。本実施の形態ではカメラ13,14はTOFカメラ15を含めて3台用いる例を挙げるが、カメラ14の1台を異なる角度で用いる例であってもよい。
TOFカメラ15は、対象物との距離を測定するデバイスである。TOFカメラ15は赤外線、レーザ、及び光電素子等を用いた変位センサ、測距センサ等を用いる。TOFカメラ15は例えばカメラ14と同様にハンド121の関節部に備えられている。TOFカメラ15は他の箇所に固定されていてもよい。
収穫装置1の構造は、図1に示した例に限られないことは勿論である。走行台11自体が上下に移動するように構成されていてもよい。走行台11に、アーム機構12の台座を上下させるスタッカクレーン状の稼働部を設けてもよい。
図2は、収穫装置1の導線を示す概要図である。図2は、ミニトマトが植えられた畑を上方から見た図である。実施の形態1の収穫装置1は、ミニトマトの株が並ぶ畝2つの間を1往復するように走行することを1つの作業単位とし、図中の符号Sで示した箇所をスタート地点として処理を開始し、符号Gで示した箇所をゴール地点とする。収穫装置1は、走行台11の移動を開始してカメラ13でミニトマトの株を鉛直方向又は水平方向に沿って撮像し、カメラ13で撮像した撮像データからミニトマトの実部分を房単位で検出する。実部分が検出される都度、制御部10は適期であると判断される実毎に、ハンド121のカメラ14で撮像される画像を基に、アーム機構12及びハンド121を制御する。収穫装置1は、株を撮像しつつ収穫を実行していく。
本実施の形態1では、収穫装置1は、撮像範囲をミニトマトの株の高さの内の上部半分と限るなどの設定が予め可能である。これにより例えば、作業者が手作業で収穫しつつ、収穫装置1は手が届きづらい高さにある実に絞って収穫することも可能である。
このような収穫装置1による自動収穫処理を実現するための構成及び詳細処理について説明する。図3は、収穫装置1の制御部10の構成を示すブロック図である。制御部10は、処理部100、記憶部101、入出力部103及び操作部104を備える。
処理部100は、CPU(Central Processing Unit)及び/又はGPU(Graphics Processing Unit)、タイマー、RAM(Random Access Memory)を含む。処理部100は、PLC(Programmable Logic Controller )を用いてもよい。処理部100は、記憶部101に記憶されている制御プログラム1P及び設定情報102に基づき、後述の処理を実行する。
記憶部101は、フラッシュメモリ等の不揮発性メモリを用いる。記憶部101には、制御プログラム1P及び設定情報102が記憶されている。制御プログラム1Pは、コンピュータから読み取り可能な記憶媒体9に記憶されていた制御プログラム9PをCPUが読み出してメモリに記憶したものであってもよい。
処理部100の記憶部101に記憶されている設定情報102は、収穫範囲、操作部104のスイッチ情報と切替内容との対応付けを含む。収穫範囲は、例えば「日中運転」が操作部104で選択されている場合は高さとして記憶されており、「夜間運転」が選択されている場合は、範囲なし(全て)として記憶されている。設定情報102には、後述する処理のオプションが含まれる。オプションは例えばカメラ13,14,15の設定(数及び種類)である。オプションは他の例では、ミニトマトの収穫方法の設定(房優先か、又は走査方向順)である。
設定情報102は、カメラ13の画角に対応する走行台11の移動ピッチを含む。移動ピッチは、カメラ13の画角に対応する長さよりも短く設定されている。すなわち、走行台11が移動ピッチ分進む毎にカメラ13で撮像される範囲が一部重複するようにしてある。
設定情報102は、熟度を判定するための画素値の範囲を含む。例えば、熟度0~10%の画素値範囲、10%から20%の画素値範囲、…、70%~80%の画素値範囲、80%~90%の画素値範囲、90%~100%の画素値範囲として記憶される。10%毎ではなく、5%毎、また0%~70%は10%毎、80%以上は5%毎と異なる区切り方で記憶されていてもよい。色成分ごとの画素値から熟度を求める関数が記憶されていてもよい。画素値の範囲は、対象となるミニトマトの品種別であってもよい。処理部100は、対象のミニトマト別に異なる画素値範囲を読み出して後述の熟度の判定に使用してもよい。これらの画素値範囲は、予め、制御プログラム1Pと共に記憶される。画素値範囲は、書き換え可能であってよい。設定情報102には、熟度の判定用に、対象となるミニトマトの見本画像が含まれてもよい。処理部100は、見本画像の色成分ごとの画素値を決定し、決定した画素値よりも濃い(画素値が低い)画素値を持つ実部分を熟していると判定してもよい。
設定情報102は、「日中運転」であるか、又は「夜間運転」であるかを判断するための情報を含んでもよい。「日中運転」又は「夜間運転」の開始時刻及び終了時刻を記憶しておき、処理部100が処理開始時の時刻によって「日中運転」であるか、「夜間運転」であるかを判断してもよい。月日によって時刻は異なるから、収穫装置1が使用される地域及びカレンダーに対応付けて設定された時刻が記憶されていてもよい。
入出力部103は、制御部10の制御対象との接続インタフェースである。入出力部103は、PLCのマイクロプロセッサのI/Oであってよい。入出力部103は、走行台11の駆動輪111のモータの駆動部110、アーム機構12に含まれる各モータ、シリンダ等に対応する複数の駆動部120、カメラ13,14,15と接続されている。処理部100は、入出力部103を介して駆動部110へ制御信号を出力し、駆動部110からモータ出力パルスカウント、等のフィードバックを受ける。処理部100は、入出力部103を介して駆動部120へ制御信号を出力する。処理部100は、入出力部103を介してカメラ13,14,15から各画像信号を取得することができる。処理部100は、カメラ13,14,15から静止画像の画像信号を取得してもよいし、映像からキャプチャしたフレーム画像の画像信号を取得してもよい。
操作部104は、切替スイッチであって例えばトグルスイッチ及び押しボタン式スイッチを含む。操作部104は制御部10が収容される走行台11の筐体から露出しており、ユーザからの操作を受け付ける。操作部104では例えば押しボタン式スイッチで運転開始及び運転停止の操作を受け付ける。操作部104では、例えば「日中運転」及び「夜間運転」の切り替えが可能である。処理部100は、操作部104のスイッチ状態に応じて処理を実行する。
このように構成される収穫装置1による収穫動作を説明する。図4-図13は、処理部100による制御処理手順の一例を示すフローチャートである。処理部100は、運転開始を操作部104で受け付けた後、作業単位毎に以下の処理を実行する。
処理部100は、操作部104にて「日中運転」及び「夜間運転」のいずれかに対応するスイッチ状態を取得する(ステップS101)。
処理部100は、アーム機構12及びハンド121を原点ポジションにリセットし(ステップS102)、走行台11を移動させる処理を実行する(ステップS103)。処理部100は、走行台11を停止させ(ステップS104)、カメラ13から画像データを取得する処理を実行する(ステップS105)。
処理部100は、ステップS105で取得した画像データに対して画像処理を実行し(ステップS106)、画像処理後の画像データに基づいてアーム機構12によって収穫すべき対象が存在するか否かを判断する(ステップS107)。
ステップS107にて存在すると判断された場合(S107:YES)、処理部100は、画像処理後の画像データに対し、画素値及び距離データを取得する処理を実行する(ステップS108)。処理部100は、取得した画素値及び距離データに基づき、存在する収穫対象に対して収穫可否、並びに、収穫可の場合のアーム機構12及びハンド121の収穫動作の決定処理を実行する(ステップS109)。
ステップS109にて収穫可と決定されたか否かを判断し(ステップS110)、収穫可と決定されたと判断された場合(S110:YES)、処理部100は、ステップS109で決定された収穫動作で収穫対象に対する収穫処理を実行し(ステップS111)、ステップS105へ処理を戻す。
ステップS107にて存在しないと判断された場合(S107:NO)、又はステップS110で収穫不可と判断された場合(S111:NO)、処理部100は、処理をステップS112へ進める。
ステップS112において処理部100は、アーム機構12の高さを変更する処理を実行する(ステップS112)。ステップS112においてアーム機構12及びハンド121はステップS102によって原点にリセットされているので、所定の高さ間隔で少しずつ高さを変更していく。
処理部100は、ステップS112の高さの変更処理で、高さ上限を超過したか否かを判断する(ステップS113)。高さが上限を超過していないと判断された場合(S113:NO)、処理部100は、処理をステップS105へ戻す。
ステップS113で上限を超過したと判断された場合(S113:YES)、処理部100は、1畝目の収穫中であるか否かを判断する(ステップS114)。1畝目の収穫中であると判断された場合(S114:YES)、1畝目の収穫を完了したか否かを判断する(ステップS115)。
ステップS115にて1畝目の収穫を完了していないと判断した場合(S115:NO)、処理部100は、位置データをフィードバックする処理を実行してから(ステップS116)、処理をステップS102へ戻す。ステップS116の位置データのフィードバックは、走行台11のレール上の位置を決定するためのデータの送信であり、例えばモータのパルスカウントの出力である。収穫動作の反動で走行台11が若干動いた場合であっても、収穫動作後にステップS116で位置をフィードバックするため、次の移動処理の精度が向上する。
ステップS115にて、1畝目の収穫を完了したと判断された場合(S115:YES)、処理部100は、走行台11を反転(又はUターン)させる処理を実行し(ステップS117)、2畝目の収穫を開始して(ステップS118)、処理をステップS102へ戻す。
ステップS114で1畝目の収穫中でないと判断された場合(S114:NO)、2畝目の収穫中であるから、2畝目の収穫を終了したか否かを判断する(ステップS119)。2畝目の収穫を完了していないと判断した場合(S119:NO)、位置データをフィードバックする処理を実行してから(S116)、処理をステップS102へ戻す。
ステップS121で2畝目の収穫を完了したと判断された場合(S119:YES)、処理部100は、一作業単位の処理を終了する。
なおステップS112の高さの変更処理、及びステップS113の上限を超過したか否かの判断は必須ではなく、設定された高さを収穫していき、手作業で機械的に高さを変更してから図4及び図5のフローチャートに示した処理手順を実行するようにしてもよい。
図4及び図5のフローチャートに示した処理手順の内のステップS112-S119の終了判断に関する処理は、作業単位の設定に応じて変更可能である。
図6は、処理部100による移動処理手順の一例を示すフローチャートである。図5のフローチャートは、図4及び図5のフローチャートに示した処理手順の内、ステップS103の走行台11の移動処理の詳細に対応する。
処理部100は、走行台11の駆動輪111を駆動させる信号を入出力部から出力する(ステップS301)。このとき処理部100は、設定情報102に記憶されているカメラ13の画角以下に対応する所定の移動ピッチ分進むように駆動部110へ制御信号を出力する。
処理部100は、移動完了の確認が必要か否かを判断する(ステップS302)。必要でないと判断された場合(S302:NO)、処理部100は移動処理を終了し、処理をステップS104へ戻す。
移動完了の確認が必要であると判断された場合(S302:YES)、処理部100は、走行台11の位置情報を取得し(ステップS303)、指定位置に到達しているか否かを判断する(ステップS304)。
指定位置に到達していると判断された場合(S304:YES)、処理部100は、後述のエラーカウントをリセットして(ステップS305)、移動処理を終了し、処理をステップS104へ戻す。
指定位置に到達していないと判断された場合(S304:NO)、処理部100は、エラーカウントを所定単位で加算し(ステップS306)、エラーカウントの値が所定値以上であるか否かを判断する(ステップS307)。
エラーカウントの値が所定値以上であると判断された場合(S307:YES)、エラー処理を実行して(ステップS308)、収穫装置1の処理を終了する。ステップS308のエラー処理は、後述のステップS1012及び図12のフローチャートで説明する。
エラーカウントの値が所定値未満であると判断された場合(S307:NO)、処理部100は、目標の位置へ移動するように制御信号を駆動部へ出力し(ステップS309)、ステップS303へ戻す。ステップS309において処理部100は、ステップS303で取得した位置情報に基づく現在位置と、指定位置との差分に対応する向き及び距離に基づいて制御信号を出力する。
図7は、処理部100による画像データ取得の処理手順の一例を示すフローチャートである。図7のフローチャートは、図4及び図5のフローチャートに示した処理手順の内、ステップS105の画像データの取得処理の詳細に対応する。
処理部100は、撮像のタイミングが夜間であるかを判断する(ステップS501)。ステップS501において処理部100は、操作部104のスイッチ状態が「夜間運転」であるか否かによって判断する。ステップS501の処理は、照度センサを用いた自動的な判断処理に代替可能である。ステップS501の処理は、処理部100内蔵のタイマーを用い、時刻に基づいて夜間であるか否かを判断する処理に代替可能である。
夜間でない、すなわち日中であると判断された場合(S501:NO)、処理部100は、カメラ13にて撮像を実行して撮像画像の画像データを取得し(ステップS502)、画像データ取得処理を終了し、処理をステップS106へ戻す。
ステップS502における画像データの取得は、ステップS502でカメラ13を起動して静止画像を取得することで実現されてもよいし、カメラ13から常に出力されている映像信号からフレーム画像をキャプチャすることで実現されてもよい。
夜間であると判断された場合(S501:YES)、処理部100は、照明131を点灯させ(ステップS503)、カメラ13にて撮像を実行して撮像画像の画像データを取得する(ステップS504)。処理部100は、照明131を消灯させ(ステップS505)、画像データ取得処理を終了し、処理をステップS106へ戻す。
図7のフローチャートで示した通り、収穫装置1では、「日中運転」であるか「夜間運転」であるかの切り替えに応じた異なる処理が実行される。これにより、収穫装置1は、後述する画像処理と合わせて、昼夜を問わない運転が可能である。
図8は、処理部100による画像データに対する画像処理手順の一例を示すフローチャートである。図8のフローチャートは、図4及び図5のフローチャートに示した処理手順の内、ステップS106の画像処理の詳細に対応する。
処理部100は、対象の画像データの撮像のタイミングが日中であるか否かを判断する(ステップS601)。処理部100は、ステップS601において処理部100は、操作部104のスイッチ状態が「夜間運転」であるか否かによって判断する。処理部100は、ステップS105の画像データの取得処理におけるステップS501の判断結果を記憶しておき、その判断結果を参照してもよい。処理部100は、ステップS601において時刻、又は照度センサを用いて判断してもよい。
日中であると判断された場合(S601:YES)、処理部100は、画像データの画像に対し、日中の環境光の変動を吸収して一律に画素値に基づく判断を行なうための処理を実行する(ステップS602)。ステップS602の処理は、環境光によらない恒常的な値とするための色恒常性処理ともいう。なおここでいう環境光は、処理部100にとって制御外の光源からの光を意味し、日光のみならず、人工的に照射されている光も含む。人工的に照射されている光の場合、日中であるか否かは、当該人工の光が照射されているか否かに代替される。
ステップS602において処理部100は例えば、色成分又は輝度別に、具体的にはRGB別に、画素値の平均値が所定値となるように全画素の画素値を補正する。処理部100は、画素値の特徴を求め、色相を変換する処理を実行してもよい。この場合、天候によって緑色が強調されやすい、赤色が強調されやすいといった場合があるので、これらを相殺するような値へ変換するとよい。ステップS602の処理はそのほか、環境光に左右されない画素値とするための公知の画像処理方法に代替されてよい。他の例において収穫装置1は、カメラ13又はカメラ14によってカラーチャートと共に対象を撮像し、ステップS602において、カラーチャートが写っている部分の画素値を用いて補正してもよい。
ステップS601において日中でない(夜間である)と判断された場合(S601:NO)、処理部100は、照明131を点灯させて撮像された画像であるため、ステップS602の処理をスキップして処理をステップS603へ進める。
処理部100は、実部分の検出処理を実行する(ステップS603)。ステップS603において処理部100は、第1の方法として、ディープラーニングによる方法で検出する。第1の方法では、記憶部101には、画像が入力された場合にその画像に写っているミニトマトの実の画像内における位置及び範囲、並びに実である確度のデータを出力するようにSSD(Single Shot MultiBox Detector)等の手法で学習済みの学習モデルの定義データが記憶されている。第1の方法では処理部100は、S603において、画像データの画像を学習モデルに入力し、学習モデルから出力される確度が所定値以上である位置及び範囲を、実が写っている範囲として検出する。学習モデルは、形状のみについて学習されてあるものを用いてもよい。この場合、検出された実部分の範囲における色(RGB)成分ごと画素値によって熟しているかいるかを判定してもよい。
ステップS603において処理部100は、第2の方法として、カラーマッチングによってミニトマトを検出する。第2の方法では、処理部100は、記憶部101の設定情報02に記憶してある実部分と判断するための画素値(RGB成分)の範囲、及び形状のパターンとのマッチングによって、ミニトマトが写っている位置及び範囲を検出する。
処理部100は、画像内で検出された実部分の画像内における位置及び範囲のデータを、各実部分を識別するデータに対応付けて一時的に記憶する(ステップS604)。ステップS604において処理部100は、房として実部分を検出できた場合、いずれの房に属する実であるかを判別できるように、識別データを対応付けて記憶するとよい。
処理部100は、実部分それぞれについて、対応する範囲の画素値(RGB成分)に基づいて熟度を判定する(ステップS605)。処理部100は、判定した熟度を各範囲の識別データに対応付けて記憶し(ステップS606)、画像処理を終了し、処理をステップS107へ戻す。
処理部100は、ステップS603にて、画素値に基づくマッチングを行なう第3の方法に基づく検出処理を実行している場合には、ステップS605の熟度の判断は行なわなくてもよい。また、それ以外であっても、処理部100が、ステップS605の熟度の判断をスキップするように設定されていてもよい。
処理部100は、ステップS605の熟度判定において、赤外線を照射する光源及び反射光を受光するユニットを用い、反射光のスペクトル分布によって熟度を判定してもよい。処理部100は、ステップS605の処理を画像に対する処理で行なわず、ハンド121に設けられた測距センサを用い、三次元的に形状を認識し、形状が所定の形状(例えば球、楕円体、長球等)であるか否かによって熟度を判定してもよい。ミニトマトの品種によって、熟度の判定は異なり、所定の形状も異なる。
処理部100は、ステップS605の熟度判定において、学習モデルを用いて判定してもよい。学習モデルは、実部分の撮像画像を入力した場合に熟度を出力するように、熟度が既知の実を撮像した撮像画像を用いて学習される。学習モデルを用いた判定方法では、日中の日照の相違によって差異が生まれる画像であっても、画素値に対するマッチングよりも検出精度の向上が見込まれる。
図8のフローチャートに示した処理手順によって、処理部100は、実部分が検出された場合には、実部分の画像内における位置及び範囲のデータが、各実部分を識別するデータに対応付けて記憶される。したがって、次のステップS107において処理部100は、実部分の位置及び範囲のデータが記憶されているか否かで判断することができる。
なお図8のフローチャートに示した処理手順では、ステップS601において、日中であると判断された場合のみ、ステップS602の処理を実行することとした。しかしながら、ステップS601の処理に関わらず、照明を点灯させて撮像した画像データに対しても、ステップS602の画像処理を実行してもよい。
図9は、処理部100による画素値及び距離データ取得の処理手順の一例を示すフローチャートである。図9のフローチャートは、図4及び図5のフローチャートに示した処理手順の内、ステップS108の処理の詳細に対応する。
処理部100は、カメラ13,14,15の設定に基づいてステレオビジョンを使用するか否かを判断する(ステップS801)。ステップS801において処理部100は、カメラ14の有無、TOFカメラ15の有無によってステレオビジョンを用いるか否かを判断する。処理部100は、TOFカメラ15がある場合にはステレオビジョンを使用しないと判断し、1台のカメラ13のみ備えられている場合にもステレオビジョンを使用しないと判断する。処理部100は、カメラ14のみを用いる場合には、ハンド121を動かしてステレオビジョンを使用すると判断する。その他カメラ13,14の構成に応じて判断するとよい。
ステップS801にてステレオビジョンを使用すると判断された場合(S801:YES)、カメラ13,14の2台を用いるか否かを判断する(ステップS802)。2台を用いると判断された場合(S802:YES)、処理部100は2台のカメラ13,14で撮像を実行し(ステップS803)、2台のカメラから得られる画像に写る同一対象物との角度によって距離を算出する(ステップS804)。処理部100は、算出した距離に基づいてアーム機構12及びハンド121の原点に基づく座標を、画像における座標に合わせる(ステップS805)。処理部100は、画像における色又は輝度の成分ごとの画素値を取得する(ステップS806)。処理部100は、画素値及び距離データ取得の処理を終了し、処理をステップS109へ戻す。
カメラ13,14の2台を用いないと判断された場合(S802:NO)、処理部100は、カメラ14が設けられたハンド121を原点と所定位置まで動かしたところとで2回撮像を実行し(ステップS807)、2回の撮像で得られる画像に写る同一対象物との角度によって距離を算出する(ステップS808)。処理部100は、ステップS808で算出した距離を用いてステップS805及びステップS806の処理を実行する。
ステップS801においてステレオビジョンを使用しないと判断された場合(S801:NO)、設定情報102に基づいてTOFカメラ15の有無を判断する(ステップS809)。TOFカメラ15があると判断された場合(S809:YES)、処理部100は、TOFカメラ15によって距離を決定し(ステップS810)、ステップS810で算出した距離を用いてステップS805及びステップS806の処理を実行する。
ステップS809にてTOFカメラ15が無いと判断された場合(S809:NO)、処理部100は、TOFカメラ15に代替して他の距離センサを用いて距離を取得し(ステップS811)、得られた距離を用いてステップS805及びステップS806の処理を実行するとよい。
TOFカメラ15がないと判断された場合(S809:NO)、処理部100は、ステップS811における距離の取得に代替して以下の処理を実行し、画素値及び距離データ取得の処理を終了し、処理をステップS109へ戻してもよい。距離の取得に代替して処理部100は、予め設定情報102として記憶されている画像内における対象物の位置と、アーム機構12の原点からの距離との対応付け又は関係式に基づき、画像内における対象物の位置から、アーム機構12の原点を基準とした対象物の座標を特定する。
図9のフローチャートに示した処理手順により、画像に写っている1又は複数のミニトマトの実部分について、画像における位置と、アーム機構12の原点に基づく座標との対応付けがされる。実部分には、ステップS107によって各実部分を識別するデータが付与されているから、処理部100は、識別するデータによって識別される実部分それぞれの、アーム機構12の原点に基づく座標を特定できる。
図10は、処理部100による収穫可否及び収穫動作決定処理手順の一例を示すフローチャートである。図10のフローチャートは、図4及び図5のフローチャートに示した処理手順の内、ステップS109の判断処理の詳細に対応する。
処理部100は、画像から検出された1又は複数の実部分の内、未収穫で残されており、最も手前にある実部分を、収穫対象に仮決定する(ステップS901)。処理部100は、仮決定した実部分以外に、画像から検出された実部分が存在するか否かを判断する(ステップS902)。
ほかに実部分が存在すると判断された場合(S902:YES)、処理部100は、ステップS901で仮決定した実部分と、他の実部分とでステップS108の処理によって特定されている座標の内、絶対値が小さいすなわち距離が短い方の実部分を、収穫対象に決定する(ステップS903)。処理部100は、処理を次のステップS905へ進める。
ほかに実部分が存在しないと判断された場合(S902:NO)、処理部100は、ステップS901で仮決定した実部分を収穫対象に決定し(ステップS904)、処理を次のステップS905へ進める。
処理部100は、収穫対象に決定した実部分の手前に障害物があるか否かを、画像に基づき判断する(ステップS905)。障害物があると判断された場合(S905:YES)、障害物を回避できるか否かを、画像に基づき判断する(ステップS906)。
障害物を回避できると判断された場合(S906:YES)、処理部100は、収穫対象の実部分を収穫可と決定する(ステップS907)。処理部100は、障害物を回避したアーム機構12及びハンド121の移動ルートを決定し(ステップS908)、収穫姿勢を決定し(ステップS909)、決定処理を終了し、処理をステップS105へ進める。
ステップS905にて障害物がないと判断された場合(S905:NO)、処理部100は、処理をステップS907へ進める。
ステップS906で障害物を回避できないと判断された場合(S906:NO)、処理部100は、収穫不可と決定し(ステップS910)、判断対象の実部分を識別するデータに対応付けて収穫対象外として記憶する(ステップS911)。収穫対象外として記憶した実部分の周囲に、対応する実よりも収穫装置1から遠い側の実の実部分が検出されているか否かを判断する(ステップS912)。検出されていると判断された場合(S912:YES)、処理部100は、検出されている実部分を、同様に収穫対象外として記憶し(ステップS913)、処理をステップS901へ戻す。なおステップS911-S913の処理によって、画像内で検出された実部分がすべて収穫対象外となり、収穫対象が残っていない場合、処理部100は、収穫不可と決定し(ステップS910)、決定処理を終了し、処理をステップS111へ進める。
ステップS912で奥に実がないと判断された場合(S912:NO)、処理部100は処理をステップS901へ戻す。
図10のフローチャートに示した処理手順にしたがって、収穫装置1は、撮像されている範囲で、より近いものから収穫していく。ミニトマトの場合、房で実るので、障害物がある場合にはまとめて収穫対象から外すことになる。採り逃しがあることを許容し、短時間でより多く収穫して単位時間あたりの収穫数をできる限り多くすることが可能となる。
なお図10のフローチャートに示した処理手順において、ステップS902の他の実部分が存在するか否かの判断では、所定距離以上離れている遠くの実については「他の実」から除外する。所定距離は、栽培されている場所に応じて設定情報102に記憶されている距離である。所定距離は、畝のピッチを2で除算した長さよりも長い。所定距離は、アーム機構12の稼働範囲であってもよい。
図11は、収穫処理手順の一例を示すフローチャートである。図11のフローチャートは、図4及び図5のフローチャートに示した処理手順のステップS110の収穫処理の詳細に対応する。
処理部100は、収穫可とされた実部分に対応する実に対し、決定された移動ルート及び収穫姿勢に基づきアーム機構12の動作を指示する制御信号を駆動部120へ出力する(ステップS1001)。
処理部100は、動作が完了したか否かを判断する(ステップS1002)。動作が完了したと判断された場合(S1002:YES)、処理部100は、詳細データ(同一の対象について異なるデータ)が必要であるか否かを判断する(ステップS1003)。ステップS1003において処理部100は、詳細データが必要であるか否かについて例えば、収穫可否及び収穫動作決定処理にて、障害物ありと判断されている場合に、詳細データが必要であると判断する。その他、処理部100は、実同士が重なっている場合、実に葉が重なっている場合、軸が手前である場合など、画素値範囲に基づいて、詳細データが必要であると判断する。処理部100は、対象の実の位置データの取得に不足があり位置を確定できない場合も詳細データが必要であると判断するとよい。
詳細データが必要であると判断された場合(S1003:YES)、処理部100は、TOFカメラ15又はカメラ14を用いてハンド121からの距離を測定する(ステップS1004)。処理部100は、ミニトマトの房、軸、ヘタ、及び実のいずれかを認識、つまり、ハンド121の形態に応じて、ハンド121の収穫動作を決める部分の認識処理を実行する(ステップS1005)。
詳細データが必要でないと判断された場合(S1003:NO)、処理部100は、処理をステップS1010のハンドの動作に進める。
ステップS1005において処理部100は、ハンド121に設けられているカメラ14で撮像を実行し、撮像によって得られた画像データに対し、ステップS602の光量の変動を吸収するための画像処理、処理後の画像から色又は輝度の画素値に基づいて、画像における房、軸、ヘタ及び実の範囲夫々を抽出する処理を実行する。ステップS1005において処理部100は、撮像を実行し、画像データに対してミニトマトの画像によって各部を認識するように学習された学習モデルを使用して認識してもよい。
処理部100は、認識処理の結果得られた房、軸、ヘタ及び実の範囲の画像内における位置に基づき、ハンド121のポジションを基準としたアーム機構12及びハンド121を動かすための房、軸、ヘタ及び実の位置(座標)を決定する(ステップS1006)。ステップS1006において処理部100は、ステップS805の座標合わせと同様の処理を実行する。
処理部100は、認識結果に基づいてアーム機構12及びハンド121の収穫姿勢を再決定する(ステップS1007)。処理部100は、詳細な認識処理に基づいて再決定した収穫姿勢に基づいてアーム機構12の動作を指示する信号を出力し(ステップS1008)、動作が完了したか否かを判断する(ステップS1009)。
動作が完了したと判断された場合(S1009:YES)、処理部100は、ハンド121による収穫動作を実行する(ステップS1010)。処理部100は、動作が完了したか否かを再度判断し(ステップS1011)、完了したと判断された場合(S1011:YES)、収穫対象の実部分の識別データに対応付けて収穫完了を記憶し(ステップS1013)、収穫処理を終了し、処理をステップS111へ進める。
ステップS1002、ステップS1009、及びステップS1011にて動作が完了していない判断された場合(S1002:NO、S1009:NO、S1011:NO)、処理部100は、エラー処理を実行し(ステップS1012)、収穫装置1を停止させるか、又は、処理をステップS1001へ戻す。
ステップS1003で詳細データが必要でないと判断された場合(S1003:NO)、処理部100は、処理をそのままステップS1010へ進める。
図11のフローチャートに示した処理手順によって、実際の収穫処理が実行される。ハンド121に設けられたカメラ14を用いるなどして房単位でミニトマトを確実に収穫することができる。図11のフローチャートに示した処理手順では、詳細データが必要な場合のみにハンド121のカメラ14で撮像を実行した。つまり、ステップS105でカメラ13を用いて撮像処理を実行して熟度を判定しているにも拘わらず、処理部100は、必要な場合は重ねてカメラ14を用いて近接して撮像し、詳細に判定及び決定を実行する。アーム機構12に対して固定されたカメラ13にて撮像された画像による簡易な判定であっても十分な場合、例えば障害物がない場合には、詳細なデータなしに収穫が実行される。すべての実に対して、ハンド121に設けられたカメラ14で近接して撮像し、詳細に実、軸、房、ヘタを認識するのでは、効率的な収穫が期待できない。本開示の収穫装置1では、敢えて2段階で詳細データが必要な場合のみに近接させることが可能なカメラ14を用いた認識処理を実行する。
図11のフローチャートに示した処理手順によって収穫処理が実行されると(S1011:YES)、処理部100は、図4のフローチャートに示したステップS105へ処理を戻し、画像データを取得する処理を実行する(S105)。処理部100はここで、収穫対象としていた実を写した実部分が、実の収穫によって消失しているか否かを確認し、消失している場合には収穫成功、消失していない場合には収穫失敗と認識する。処理部100は、収穫失敗であった実部分に対しては、再度収穫対象と決定しないようにする。
図12は、エラー処理手順の一例を示すフローチャートである。図12のフローチャートは、図11のフローチャートに示したステップS1012の処理手順の詳細に対応する。
処理部100は、図12のフローチャートの処理を開始した起因がモータへの過負荷であるか否かを判断する(ステップS1201)。過負荷でないと判断された場合(S1201:NO)、処理部100は、エラーカウントが所定値以上であるか否かを判断する(ステップS1202)。
エラーカウントが所定値未満であると判断された場合(S1202:NO)、処理部100は、エラーカウントをリセットし(ステップS1203)、アーム機構12を原点復帰させ(ステップS1204)、復帰が完了したか否かを判断する(ステップS1205)。復帰が完了したと判断された場合(S1205:YES)、処理部100は、ハンド121を原点復帰させ(ステップS1206)、復帰が完了したか否かを判断する(ステップS1207)。復帰が完了したと判断された場合(S1207:YES)、処理部100はエラー処理を完了し、処理を図11のフローチャートのステップS1001へ戻す。
ステップS1205及びステップS1207にて復帰が完了しないと判断された場合(S1205:NO、S1207:NO)、処理部100は、処理をステップS1201へ戻す。
ステップS1202においてエラーカウントが所定値以上であると判断された場合(S1202:YES)、処理部100は、収穫装置1を停止させ(ステップS1208)、処理を終了する。
ステップS1201において過負荷であると判断された場合(S1201:YES)、処理部100は、収穫装置1を停止させ(S1208)、処理を終了する。
図13は、アーム機構12の高さ変更処理手順の一例を示すフローチャートである。図13のフローチャートは、図4及び図5のフローチャートに示したステップS112の処理の詳細に対応する。
処理部100は、カメラ13と共にアーム機構12の高さを仮決定する(ステップS1301)。処理部100は、カメラ13の撮像範囲における高さに対応する小さいピッチで少しずつ高くしていくように仮決定する。
処理部100は、仮決定した高さが収穫範囲内であるか否かを判断する(ステップS1302)。収穫範囲内であると判断された場合(S1302:YES)、処理部100は、仮決定した高さへ、カメラ13と共にアーム機構12の高さを変更し(ステップS1303)、処理を図4及び図5のフローチャートにおけるステップS113へ戻す。
ステップS1302において収穫範囲は、設定情報102に記憶されている高さの情報である。設定情報102は、アーム機構12の高さの上限の設定も含められる。
処理部100は、ステップS1302で収穫範囲外であると判断された場合(S1302:NO)、仮決定した高さは上限を超過するか否かを判断する(ステップS1304)。上限を超過しないと判断された場合(S1304:NO)、処理部100は処理をステップS1301へ戻す。
上限を超過すると判断された場合(ステップS1304:YES)、処理部100は、処理を次のステップS113へ戻し、高さ上限を超過したと判断され(S113:YES)、次の処理へ処理を進める。
ステップS1302の判断処理で基準とする収穫範囲は、上述したように予め作成されて記憶部101に設定情報102として記憶されている。これに限らず収穫範囲は、処理部100によって自動的に作成されてもよい。この場合、処理部100は、作業単位毎、走行台11に移動の都度に、高さを変更させたカメラ13で撮像した撮像画像に、収穫対象の実部分が存在するか否かを走行台11の位置及び高さに対応付けて記憶しておく。処理部100は、記憶しておいた情報に基づいて収穫対象の実が存在しない高さを学習し、その高さ以上を除外した収穫範囲を作成して記憶する。処理部100は、走行台11の移動の処理(図6)においても、収穫範囲内にあるか否かの判断を加えてもよい。
図4のフローチャートに示した処理手順で処理部100は、ステップS105で取得した画像データから、ステップS106-S109で決定した収穫対象に対してステップS111で収穫処理を実行する都度、再度ステップS105に処理を戻すこととした。これにより、収穫動作の都度、ミニトマトの房、軸等が動いたとしても再度撮像することでその時点でのミニトマトの株の状態に応じた適切な動作が可能である。
図4-図13のフローチャートに示した処理手順に基づく収穫装置1によるミニトマトの収穫について具体例を挙げて説明する。
図14は、カメラ13で撮像された画像例を示す。図14において画像は線図によって簡略化して示されている。図4のフローチャートのステップS103及びステップS105の処理によって撮像された画像には、図14に示すように、ミニトマトの房が2つ、写っている。
図15は、収穫装置1の処理部100による処理の結果を示す図である。図15の図は、図14の画像の線図に重畳して、処理の結果を線図で示している。図15中、太線の矩形で囲まれた実部分に対応する実は収穫可と決定され、ハッチングの矩形で囲まれた実部分に対応する実は収穫不可と決定されている。
図15で示すように、画像に写っている2つのミニトマトの房の内、一方の房については、実部分は熟していると判定されて収穫処理が実行される。他方の房の実の一部については手前に太い茎が存在しているため、障害物があると判断され、周辺の実がまとめて収穫不可と決定されている。
上述のように、収穫装置1は、撮像タイミングが日中であるのか、夜間であるのかに応じた撮像を実行しつつ、また、収穫の都度にアーム機構及びハンドを原点にリセットすることなく収穫を実行していく。これにより、日照の変動による影響を低減して収穫の可否を決定しながら、効率的に多くの実を収穫していくことが可能になる。
房ごとにまとめて収穫するのか、距離の近さで収穫するのかは、設定情報102にて設定することが可能である。房ごとの収穫にするためには、最初に最も手前の実を収穫対象として決定した後、最初の手前の実から所定の距離以内に存在する実に対応する実部分を優先的に次の収穫対象として決定するとよい。最も手前の実から収穫することにより、アーム機構12及びハンド121が動く際に障害になる物が最も少なく、対象物が意図せず移動する可能性が低いからである。
実施の形態1において収穫装置1は、ミニトマトの実が複数写っている場合、カメラ13によって撮像されている範囲で、最も手前の実部分を収穫対象として決定した(S901)。しかしながら、収穫順序はこれに限られない。図10のフローチャートに示した処理手順の内、ステップS901及びS903において距離が短い方の実部分を収穫対象に決定することに代替して、処理部100は、撮像されている範囲内で上の方の実部分を収穫対象に決定してもよい。処理部100は、撮像されている範囲内で、画像における右又は左の方(走行台11の進行方向における手前)から、走行台11の進行方向に沿って順に収穫するように収穫対象に決定してもよい。進行方向に沿って順に収穫することによって、1回の収穫処理で収穫に失敗したとしても、走行台11を逆方向に戻すことなく、次の機会で収穫できる可能性が高く、効率的に多くの実を収穫することが期待できる。
処理部100は、ミニトマトの実が複数写っている場合、カメラ13によって撮像されている範囲における各房の中心を算出し、中心から最も外側に位置する実部分を優先して収穫してもよい。密集している場合に、端から収穫することによって中央の果実を採集し易くなる可能性がある。距離の近いもの、画像における上下、左右、端等、いずれの実部分を優先して収穫するかは設定情報102にて、収穫装置1毎にその構造に応じて設定してあるとよい。状況に応じて設定内容が変更可能であってもよい。処理部100は、熟度の高い方を優先して収穫対象に決定してもよい。これにより、商品価値が高いものから収穫することができる。熟度の判定基準を複数段階に設定し、異なる最も熟度が高い範囲の実部分と、次の段階の範囲の実部分とをカゴ112内で仕分けしてもよい。
図10のフローチャートに示した処理手順の内、ステップS905において障害物ありと判断された場合、以後同じ房内においては最も手前の実部分を収穫対象とするのではなく、処理部100は、上から、下から、左から又は右から、と優先順位の基準を変更してもよい。つまり障害物がある場合には他のアプローチを試すことにより、効率的に収穫することが期待される。
(実施の形態2)
実施の形態1で収穫装置1は、収穫動作の都度に画像データを再度取得してミニトマトの株、軸、実の状態を確認してから次の収穫動作のためのルート及び収穫姿勢を決定して収穫処理を実行した。実施の形態2で収穫装置1は、1回の撮像に対して複数の実に対して続けて収穫動作を実行する。実施の形態2では、ステップS108の画素値及び距離データの取得処理において、画像に写っている複数の実それぞれに対して距離を算出し、画像内での実の識別データに対応付けて距離を算出する。
実施の形態2における収穫装置1の構成は、詳細な処理手順以外は、実施の形態1と同様である。実施の形態2の収穫装置1は、実施の形態1にて説明した図4及び図5のフローチャートの処理手順を実行する。ただし、実施の形態2では例えば、図4及び図5のフローチャートにおけるステップS109及びステップS110の処理手順を以下に示す処理手順に代替することで、1回の撮像に対して複数の実の収穫を実現する。以下の処理はあくまで例示であって、手順の入れ替え、組み合わせの変更によって他の手順によって複数の実の収穫を実行してよい。
図16は、実施の形態2における収穫可否及び収穫動作決定処理手順の一例を示すフローチャートである。図16のフローチャートは、図4及び図5のフローチャートに示した処理手順のステップS109の詳細に対応する。図16のフローチャートに示した処理手順の内、実施の形態1の図10のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
処理部100は、撮像画像に写っていて距離を算出できた実の内、画像内における横方向又は縦方向に順に、収穫対象に仮決定する(ステップ921)。
処理部100は、仮決定した収穫対象に対して障害物があるか否かを判断し(S905)、障害物があると判断された場合(S905:YES)、回避可能か否かを判断する(S906)。回避不可と判断された場合(S906:NO)、処理部100はステップS910へ処理を進め、ステップS911-S913の処理を実行する。
障害物がないと判断された場合(S905:NO)、又は障害物があると判断されても(S905:YES)、回避可能であると判断された場合(S906:YES)、処理部100は、ミニトマトにおいては、異なる房の実部分、又は異なる株の実部分が、画像内で他に存在するか否かを判断する(ステップS922)。異なる房の実部分、又は異なる株の実部分が他に存在すると判断された場合(S922:YES)、異なる房若しくは株をまたいで収穫する設定であるか、又は同一の房若しくは株内を優先して収穫するかの設定に応じて、複数の実部分を収穫対象として決定する(ステップS923)。ステップS923の設定は、設定情報102として決定されている。
処理部100は、複数の実を収穫するための移動ルートを決定し(ステップS924)、それぞれの実に対する収穫姿勢を決定し(ステップS925)、処理を図4及び図5のフローチャートに示したステップS110へ進める。
異なる房の実部分又は異なる株の実部分が他に存在しないと判断された場合(S922:NO)、処理部100は、同一房内の複数の実を収穫する設定として、移動ルートを決定し(S924)、収穫姿勢を決定し(S925)、処理を図4及び図5のフローチャートに示しステップS110へ進める。ステップS923において処理部100は、同一房内を連続して収穫しない設定としている場合には、1つの実を収穫対象として決定してもよい。
図17は、実施の形態2における収穫処理手順の一例を示すフローチャートである。図17のフローチャートは、図4及び図5のフローチャートに示した処理手順のステップS110の収穫処理の詳細に対応する。図17のフローチャートに示した処理手順の内、実施の形態1の図11のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
処理部100は、複数の実に対して決定されたアーム機構12の移動ルートに従って動作を実行し(S1001)、必要に応じて詳細データを取得して(S1004~S1009)、ハンド121による収穫動作を実行し(S1010)、動作を完了したと判断された場合(S1011:YES)、決定した複数の実全てに対して動作完了した否かを判断する(ステップS1101)。
複数の実全てに対して動作を完了していないと判断された場合(S1101:NO)、処理部100は、処理をステップS1001へ戻して次の実への移動ルートに従ってアーム機構12の動作を実行する(S1001)。
実施の形態2では、ステップS1101にて複数の実全てに対して動作を完了したと判断された場合(S1101:YES)、初めて、収穫動作を終了し、処理を図4及び図5のフローチャートに示したステップS105へ処理を戻す。
図18は、収穫順序の一例を示す図である。図18は、図14に示した認識された実部分に、収穫順序を数字で示している。図18では、異なる房の実、又は異なる株の実を連続して収穫する設定の場合の収穫順序を示している。図18の例の場合、処理部100は、画像の上部から順に、回避不可能な障害物が存在するものを除外しながら、実部分を収穫対象として決定している。番号1,2,…は異なる房をまたぐように付されている。房が異なれば、1回の収穫動作(軸の切断等)によってその房が揺れて動いても、他の房は動かないはずであるから、1回の撮像に基づいて収穫動作を複数回とし、収穫の効率を向上させることが期待できる。株が異なる場合も同様である。
図19は、収穫順序の他の一例を示す図である。図19は、図18同様に、図15に示した認識された実部分に、収穫順序を数字で示している。図19では、同一の房の実を連続して収穫する設定の場合の収穫順序を示している。図19の例の場合、処理部100は、画像の上部から順に、回避不可能な実部分を収穫対象として決定している。図19の例の場合、番号1,2,…は同一の房内で互いに近接した実に連続して付されている。図19の例では、番号1~9が付されているが、処理部100は、1回の収穫動作では3~4つを収穫対象とし、番号4からは再度画像データを取得して(S105)、収穫動作を実行するとよい。1回の収穫動作によって房の動く範囲は次の収穫動作に影響を与えない程度である場合には、このように同一の房内で連続して収穫することによって、収穫のためのアーム機構12及びハンド121の移動量は最小化され、収穫効率の向上が期待できる。
実施の形態2では、収穫装置1は、1回の撮像に対し、複数の実部分を収穫するように移動ルート及び収穫姿勢を決定した。この際、図18に示したように上から順に収穫するように収穫順序を決定したが、これに限らない。収穫装置1は、複数の実部分の内、最も近い実部分から収穫するように決定してもよいし、房の中心からより離れた端の実部分から収穫するように決定してもよいし、右から、左から収穫するように決定してもよい。図18及び図19の左側の房のように障害物があると判断された場合とないと判断された場合とで、決定する移動ルートの基準が変わってもよい。例えば図18及び図19に示したように、障害物があると判断された場合に、その房内の実部分については、障害物がある位置から最も離れた実部分から順に収穫するように収穫順序を決定してもよい。図18の例であれば、処理部100は、左側の房については番号12が付されている実部分から順に、次に番号10が付されている実部分を収穫するように順に収穫ルートを決定する。
(実施の形態3)
実施の形態3では、ユーザが所持する情報端末装置2にて、設定情報102の内容を変更することが可能である。図20は、実施の形態3の収穫装置1の構成を示すブロック図である。実施の形態3の収穫装置1は、通信部105を備える。通信部105は、近距離無線通信を実現する通信デバイスであり、情報端末装置2との通信接続を実現する。
情報端末装置2は、タブレット端末又は所謂スマートフォン等のコンピュータ装置である。情報端末装置2は、処理部200、記憶部201、通信部202、表示部203及び操作部204を備える。
処理部200は、CPU及び/又はGPUを用いて各構成部を制御する。処理部200は、記憶部201に記憶されている端末プログラム2Pに基づいて、後述する収穫装置1への設定を受け付けるための画面を表示し、収穫装置1へ設定内容を送信する処理を実行する。記憶部201はSSD又はフラッシュメモリ等の不揮発性メモリである。記憶部201には、端末プログラム2P及び画面データを記憶する。
通信部202は、近距離無線通信を実現する通信デバイスである。表示部203は、タッチパネルを内蔵するディスプレイである。操作部204は表示部203のディスプレイに内蔵されるタッチパネル及び情報端末装置2に備えられている物理ボタンを含む。
情報端末装置2の処理部200は、記憶部201に記憶されている端末プログラム2Pが選択されてこれを実行すると、画面データを読み出して表示部203に画面を表示させ、操作を受け付ける処理を実行する。
図21は、情報端末装置2に表示される画面例を示す。画面300は、「日中運転」及び「夜間運転」のいずれかの設定、収穫対象のミニトマトの範囲(高さ)の設定、収穫対象のミニトマトの熟度(0~100%)の設定を夫々実行するコントロールを含む。
画面300は、各コントロールで設定された内容を収穫装置1へ向けて送信するための設定ボタン301を含む。設定ボタン301が選択された場合、情報端末装置2の処理部200は通信部202によって収穫装置1との通信接続を試みる。収穫装置1の通信アドレスは、予め設定されている。情報端末装置2の処理部200は、収穫装置1と通信接続された場合に、設定内容を収穫装置1へ送信する。
収穫装置1は、情報端末装置2からの通信接続のリクエストをうけて以下の処理を実行する。図22は、設定情報102の更新処理手順の一例を示すフローチャートである。
収穫装置1の処理部100は、情報端末装置2と通信部105を介して通信接続を確立する(ステップS1701)。処理部100は、情報端末装置2から送信される設定内容のデータを受信し(ステップS1702)、「日中運転」及び「夜間運転」の設定を更新する(ステップS1703)。ステップS1703にて、夜間運転の時刻設定がされている場合、時刻を更新する。
処理部100は、受信した設定内容の内、収穫対象の範囲について設定を更新し(ステップS1704)、受信した熟度の設定で設定情報102を更新し(ステップS1705)、更新処理を終了する。
操作部104にて運転が開始されると、収穫装置1の処理部100は、更新後の設定情報102に基づいて収穫処理を実行する。収穫処理の内容は、実施の形態1の図4のフローチャートに示した処理手順と同様であるから詳細な説明を省略する。
情報端末装置2にて画面300を介して設定情報102の内容を変更できることにより、季節や需要、作業者の作業内容に応じて収穫装置1の動作を柔軟に変更し、全体としてミニトマトの収穫効率を最大限とすることが期待できる。
(実施の形態4)
実施の形態4では、操作部104におけるスイッチ状態に関わらず、カメラ13又はカメラ14で実際に撮像される画像データに対する処理によって、光量を補う処理(照明131の点灯を含む)を実行すべきか否かを決定する。実施の形態4における収穫装置1の構成は、以下に示す処理手順以外については基本的に実施の形態1に示した構成と同様である。共通する構成については同一の符号を付して詳細な説明を省略する。
図23及び図24は、実施の形態4における収穫装置1の処理部100による制御処理手順の一例を示すフローチャートである。図23及び図24のフローチャートに示す処理手順の内、実施の形態1における図4及び図5のフローチャートに示した処理手順と共通する手順については、同一のステップ番号を付して詳細な説明を省略する。
処理部100は、運転開始後、アーム機構12及びハンド121のリセットを実行し(S102)、以後の処理を実行する。実施の形態4において処理部100は、操作部104における「日中運転」及び「夜間運転」のスイッチ状態を取得しない。あるいは、実施の形態4において処理部100は、操作状態が、操作部104にて設定される「日中運転」、「夜間運転」、及び「オート運転」の内のいずれであるかを判別し、「オート運転」である場合に以下に示す処理手順を実行してもよい。
実施の形態4において処理部100は、走行台の移動処理(S103)を、実施の形態1の図6のフローチャートに示した処理手順に従って同様に実行する。
実施の形態4において処理部100は、画像データ取得処理(S105)における光量の補助を、以下の図25のフローチャートに示すいずれかの処理手順によって、画像データから自動的に判断して実行する。図25は、実施の形態4における画像データ取得の処理手順の一例を示すフローチャートである。
処理部100は、カメラ13にて、アーム機構12の基部から横向きに撮像を実行し、撮像画像の画像データを取得する(ステップS511)。処理部100は、取得した画像データの画像内に、畑に存在する特定の人工物を認識できるか否かを判断する(ステップS512)。特定の人工物は、一例では、畑で使用する農器具である。農器具は例えば収穫対象のミニトマトを支える支柱等の棒である。農器具は例えば収穫用のカゴ、シート、等であってもよい。特定の人工物は、他の例では、本処理のために設けられる特別な色、模様、又は形状を有するマークであって、立て看板のように設置されてもよい。図26は、特定の人工物の設置例を示す図である。図26は、図2と同様に、ミニトマトが植えられた畑を上方から見た図である。図26中、符号A,Bに示す箇所に、互いに向かい合うようにしてマークが描かれた立て看板を設置する。少なくとも作業単位の開始時に、スタート地点Sで畝の方向に直交する向きにカメラ13で撮像した場合に、立て看板は撮像範囲に入る。その他、各畝の間に立て看板を設置し、任意のタイミングでカメラ13を用いて撮像したとしても必ず撮像できるようにしてもよい。
ステップS512において処理部100は、記憶部101に予め記憶しておいた特定の人工物の画像の画像データを参照し、取得した画像データとのパターンマッチングによって特定の実行物を認識できるか否か判断してもよい。処理部100は、特定の人工物の特別な色、模様又は形状を示すデータを予め記憶部101に記憶しておき、取得した画像データの画像内に、特別な色の画素を所定の範囲で抽出できたか否かを判断してもよいし、特別の形状が抽出できたか否かを判断してもよい。
ステップS512において認識できたと判断された場合(S512:YES)、処理部100は、そのまま画像データの取得処理を終了し、処理をステップS106へ進める。特定の人工物を認識可能に光量が十分であるから、収穫装置1は、昼間運転の処理と同様にして収穫が可能である。
ステップS512において認識できなかったと判断された場合(S512:NO)、処理部100は、光量が足りないので、照明131を点灯させるなど光量を補う処理を行ない(ステップS513)、カメラ13にて撮像を実行して画像データを取得する(ステップS514)。処理部100は、照明131を消灯させるなど光量を補う処理を解除し(ステップS515)、画像データ取得処理を終了し、処理をステップS106へ戻す。
ステップS513では、照明131を点灯させるとした。しかしながらこれに限らず、収穫装置1に別途備えられる赤外光を照射する照明を点灯させてもよい。照明から照射される光が可視光であるか赤外光であるかは、カメラ13の仕様に対応するように決定されるとよい。
ステップS513で照明131を点灯させることに代替し、ステップS512における撮像時のカメラ13の露光時間を延ばすこととしてもよい。露光時間の延長のみならず、カメラ13の感度又は絞りの調整でもよい。照明、露光時間、感度及び絞り等による調整を組み合わせてもよい。カメラ13の代わりにカメラ14を用いて撮像角度、撮像距離を変えられるようにしてもよい。カメラ14の位置を変更することによって、ハレーションを起こしている場合などに、これを回避することが期待できる。
実際に撮像した画像から判断することにより、スイッチ操作が無い場合であっても正確に光量を補うか否かを決定することができる。
(変形例1)
画像データに基づく光量を補うか否かの判断は、他の方法であってもよい。畑の中に特定の人工物が存在するとしても、その特定の人工物を任意のタイミングで撮像できるとは限らない場合、又は、立て看板の設置ができない場合がある。この場合、収穫装置1のアーム機構12の基部で支持されるようにして、カメラ13の撮像範囲に入る位置に、特定のカラーチャートが収穫装置1自身に設けられる。カラーチャートは、カメラ13を覆う透明カバーの内側に設置されてもよい。又は、収穫装置1において、アーム機構12及びハンド121が原点にリセットされた状態でカメラ14の撮像範囲に入る位置に、特定のカラーチャートが設けられてもよい。図27は、実施の形態4の変形例1における画像データ取得の処理手順の一例を示すフローチャートである。図27のフローチャートに示す処理手順は、カラーチャートを用いる場合の処理手順である。
処理部100は、カメラ13にて、カラーチャートに対する撮像を実行し、撮像画像の画像データを取得する(ステップS521)。処理部100は、取得した画像データの画像内に、カラーチャートに含まれる特定の色を認識できるか否かを判断する(ステップS522)。
ステップS521において認識できたと判断された場合(S522:YES)、処理部100は、撮像条件を維持したままアーム機構12の基部から横向きに撮像を実行し、撮像画像の画像データを取得し(ステップS523)、画像データ取得の処理を終了する。処理部100は、処理をステップS106へ戻す。ステップS523において処理部100は、カラーチャートをそのまま撮像範囲に含めたまま焦点をミニトマトに合わせるようにして撮像を実行してもよいし、カラーチャートを撮像範囲から外すように制御して撮像を実行してもよい。
ステップS521において認識できなかったと判断された場合(S522:NO)、処理部100は、照明131を点灯させるなど光量を補う処理を行ない(ステップS524)、カメラ13にて撮像を実行して画像データを取得する(ステップS525)。ステップS524において処理部100は、照明131の点灯以外に、露光時間、感度及び絞り等の一部又は全部を組み合わせてもよい。
処理部100は、照明131を点灯させた場合にはこれを消灯させるなど光量を補う処理を解除し(ステップS526)、画像データ取得の処理手順を終了し、処理をステップS106へ戻す。
このように、収穫装置1自身で、光量の不足の判断のために用いられるカラーチャートを撮影できるようにしてあることにより、任意のタイミングで判断が可能である。
(変形例2)
収穫装置1が収穫対象のミニトマトを認識できることが重要であるので、実が撮影できていなくとも、葉、茎、又は枝を認識できるか否かによって、光量を補う必要があるのかどうかを判断することもできる。図28は、実施の形態4の変形例2における画像データ取得の処理手順の一例を示すフローチャートである。
処理部100は、カメラ13にて、アーム機構12の基部から横向きに撮像を実行し、収穫対象のミニトマトに向けて撮像した画像の画像データを取得する(ステップS531)。処理部100は、取得した画像データの画像内に、収穫対象を認識できるか否かを判断する(ステップS532)。
ステップS532において処理部100は、取得した撮像データの画像内に、記憶部101に設定情報102として記憶してある、収穫対象であるミニトマトの葉、茎、又は枝の色範囲が抽出できるか否かで判断してもよい。処理部100は、ミニトマトの実の形状及び色を抽出できるか否かで判断してもよい。
ステップS532において認識できると判断された場合(S532:YES)、処理部100は、そのまま画像データの取得処理を終了し、処理をステップS106へ戻す。収穫対象のミニトマトを認識可能に光量が十分であるから、収穫装置1は、昼間運転の処理と同様にして収穫が可能である。
ステップS532において認識できないと判断された場合(S532:NO)、処理部100は、照明131を点灯させるなど光量を補う処理を行い(ステップS533)、カメラ13にて撮像を実行して画像データを取得する(ステップS534)。
処理部100は、照明131を点灯させた場合にはこれを消灯させるなど光量を補う処理を解除し(ステップS535)、画像データ取得の処理手順を終了し、処理をステップS106へ戻す。
実際に撮像する収穫対象を認識できるか否かにより、正確に光量を補うか否かを決定することができる。
(変形例3)
その他、処理部100は、画像データの取得処理において、照明131を点灯しない状態でカメラ13にて撮像を実行した場合と、照明131を点灯させた状態でカメラ13にて撮像を実行した場合との両方の画像データを取得し、画像の明度の差が所定値以上であるか否かによって、光量を補うか否かを決定してもよい。
(変形例4)
処理部100は、画像データの取得処理において、一旦カメラ13にて撮像を実行して得られる画像データの画像に対し、ステップS602の日中の環境光の変動を吸収して一律に画素値に基づく判断を行なうための処理を実行してもよい。この処理の前後で、画像の画素値に所定値以上の差があるか否かによって、光量を補うか否かを決定してもよい。
実施の形態4では、ステップS105の画像データの取得処理を実行する都度に、処理部100は、光量が足りていて認識できるか否かを判断した。しかしながら処理部100は、画像データの取得処理において毎回、光量が足りているか否かを毎回判断しなくてもよい。処理部100は、ステップS102のアーム機構12及びハンド121の原点へのリセットの前後で、一度上述の図25のフローチャートに示した処理手順、変形例1-4のいずれかを実行し、以後の画像データの取得処理にて、光量を補う処理(照明131を点灯する等)を実行するか否かを切り替えてもよい。処理部100は、例えば1時間等の一定期間の経過の都度に、一度上述の図25のフローチャートに示した処理手順、変形例1-4のいずれかを実行し、光量を補う処理(照明131を点灯する等)を実行するか否かを切り替えてもよい。
(実施の形態5)
実施の形態5では、収穫装置1と通信する情報処理装置4にて収穫処理を制御する。図29は、実施の形態5の収穫装置1の構成を示すブロック図である。実施の形態5における収穫装置1は、通信部105を備える。通信部105は、キャリアネットワークを介した高速通信、又は、近距離無線通信を実現する無線通信デバイスである。実施の形態5における収穫装置1は、記憶部101に制御プログラム120Pを記憶している。収穫装置1は、制御プログラム120Pに基づき、情報処理装置4との間でデータを送受信しながら走行台11及びアーム機構12を制御する。
なお、実施の形態5では、1つの収穫装置1と1つの情報処理装置4とで協働して収穫処理を制御するが、複数の収穫装置1によって撮像された画像に対する画像処理を1台の情報処理装置4で実行してもよい。
情報処理装置4は、収穫装置1を管理するユーザ又は管理業者が管理するコンピュータである。情報処理装置4は、サーバコンピュータであってもよいし、パーソナルコンピュータであってもよい。情報処理装置4は、ラップトップ型又はデスクトップ型のパーソナルコンピュータであってもよい。情報処理装置4は、ユーザが使用するタブレット端末、スマートフォンであってもよい。
情報処理装置4は、処理部400、記憶部401、通信部402、表示部403及び操作部404を備える。表示部403及び操作部404は必須ではない。
処理部400は、CPU及び/又はGPUを用いて各構成部を制御する。処理部400は、記憶部401に記憶されている制御プログラム4Pに基づき、画像処理及び収穫ルートの決定を実行し、収穫装置1と協働して収穫処理を実行する。
記憶部401はSSD、又はハードディスク等の不揮発性記憶媒体である。記憶部401は、制御プログラム4Pと、制御プログラム4Pに基づいて処理を実行する処理部400が参照する設定情報405と、収穫装置1から取得する画像データとを記憶する。
記憶部401に記憶される設定情報405は、画像データの画像から実部分を特定する処理、収穫ルートの決定等を実行するために必要な情報を含む。設定情報405は、ミニトマトの熟度を判定する画素値の範囲を含む。設定情報405は、協働する収穫装置1の仕様即ちカメラの設定(数及び種類)、ミニトマトの収穫方法の設定(房優先か、走査方向順か等)を含む。これに応じて、収穫装置1の記憶部101の設定情報102は、熟度を判定するための画素値の範囲を含まず、収穫範囲、スイッチ情報、オプション、走行台11の移動ピッチを含む。
通信部402は、キャリアネットワークを介した無線通信、又は、近距離無線通信を実現する通信デバイスである。処理部400は、通信部402を介して収穫装置1と通信接続が可能である。収穫装置1とリアルタイムで連携するため、通信部402は安定した高速通信を実現することが望ましい。
表示部403は、液晶パネル又は有機EL等を用いたディスプレイである。操作部404はマウス及びキーボード等のユーザインタフェースであってもよいし、表示部403のディスプレイに内蔵されるタッチパネルであってもよい。
実施の形態5において収穫装置1は、カメラ13(又はカメラ14)にて撮像した画像の画像データを情報処理装置4へ送信し、情報処理装置4における画像処理の結果に基づいて走行台11及びアーム機構12を制御する。
図30は、実施の形態5における収穫装置1による制御処理手順の一例を示すフローチャートである。収穫装置1の運転開始を操作部104で受け付け、収穫装置1が情報処理装置4との間で通信接続を確立させると、作業単位毎に以下の処理を実行する。図30のフローチャートの処理手順の内、実施の形態1における収穫装置1による処理手順(図4-図13)と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
収穫装置1の処理部100は、操作部104にて「日中運転」及び「夜間運転」のいずれかに対応するスイッチ状態を取得する(S101)。ステップS101の処理はスキップされて、後述の画像処理によって処理部100が自動的に、光量を補う(夜間運転)か否かを判断してもよい。
処理部100は、アーム機構12及びハンド121を原点ポジションにリセットし(S102)、走行台11を移動させ(S103)、停止させる(S104)。ステップS103において処理部100は、図6のフローチャートに示した走行台11の移動処理を実行する。
処理部100は、カメラ13にて撮像されるモニタ出力画像データの取得を開始する(ステップS1501)。処理部100は以後、取得したモニタ出力画像データ(動画データ)を通信部105から逐次情報処理装置4へ向けて送信する(ステップS1502)。
処理部100は、情報処理装置4から指示データを受信し(ステップS1503)、受信した指示データが高さ変更を指示しているか否かを判断する(ステップS1504)。高さ変更を指示していると判断された場合(S1504:YES)、処理部100は、アーム機構12の高さを変更する処理を実行する(S112)。ステップS112において処理部100は、図13のフローチャートに示した高さ変更処理を実行する。
処理部100は、ステップS112の高さの変更処理で、高さ上限を超過したか否かを判断し(S113)、高さが上限を超過していないと判断された場合(S113:NO)、処理をステップS1502へ戻す。
ステップS113で上限を超過したと判断された場合(S113:YES)、処理部100は、モニタ出力画像データの取得を一旦終了し(ステップS1505)、位置データをフィードバックする処理を実行してから(S1506)、処理をステップS102へ戻す。
指示データが、高さ変更を指示していないと判断された場合(S1504:NO)、処理部100は、作業単位終了を指示しているか否かを判断する(ステップS1507)。作業単位終了を指示していないと判断された場合(S1507:NO)、指示データは、収穫装置1における収穫、撮影動作の指示であるから、処理部100は指示にしたがって走行台11、アーム機構12、カメラ13等の各構成部の動作を制御し(ステップS1508)、処理をステップS1502へ戻す。ステップS1508の制御処理については後述する。
ステップS1507で作業単位終了を指示していると判断された場合(S1507:YES)、処理部100は、モニタ出力画像データの取得を終了し(ステップS1509)、処理を終了する。
図31及び図32は、情報処理装置4における処理手順の一例を示すフローチャートである。情報処理装置4は、収穫装置1と通信接続を確立させると、以下の処理を繰り返し実行する。図31及び図32のフローチャートの処理手順の内、実施の形態1における収穫装置1による処理手順(図7-図13)と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
情報処理装置4の処理部400は、収穫装置1から逐次送信される画像データを受信し(ステップS3001)、撮像に光量を補う処理が必要か否かを判断する(ステップS3002)。光量を補う処理が必要でないと判断された場合(S3002:NO)、処理部400は、光量を補わずに撮像を指示する指示データを収穫装置1へ送信する(ステップS3003)。処理部400は、指示データに応じて撮像された画像データを受信し(ステップS3004)、受信した画像データの画像に対し、日中の環境光の変動を吸収して一律に画素値に基づく判断を行なうための処理を実行する(ステップS3005)。処理部400は、処理をステップS3008へ進める。
光量を補う処理が必要と判断された場合(S3002:YES)、処理部400は、光量を補う処理と共に撮像を指示する指示データを収穫装置1へ送信する(ステップS3006)。処理部400は、指示データに応じて撮像された画像データを受信し(ステップS3007)、処理をステップS3008へ進める。
処理部400は、実部分の検出処理を実行する(ステップS3008)。ステップS3008における実部分の検出処理は、図8のフローチャートに示したステップS603の処理と同様であり、ここでは詳細な説明を省略する。
処理部400は、画像内で検出された実部分の画像内における位置及び範囲のデータを、各実部分を識別するデータに対応付けて一時的に記憶する(ステップS3009)。ステップS3009において処理部400は、房として実部分を検出できた場合、いずれの房に属する実であるかを判別できるように、識別データを対応付けて記憶するとよい。
処理部400は、実部分それぞれについて、対応する範囲の画素値(RGB成分)に基づいて熟度を判定する(ステップS3010)。処理部400は、判定した熟度のデータを各実部分の識別データに対応付けて記憶する(ステップS3011)。処理部400は、実部分の熟度のデータ及び画像データを、画像データが撮影された際の収穫装置1の走行位置及び高さを示す位置データと対応付けて記憶する(ステップ3012)。処理部400は、撮影された日時のデータも対応付けて記憶するとよい。
処理部400は、実部分それぞれについての熟度の判定結果に基づいて、カメラ13の撮像範囲内に収穫すべき対象が存在するか否かを判断する(ステップS3013)。
収穫すべき対象が存在しないと判断された場合(S3013:NO)、処理部400は、高さ変更を指示する指示データを収穫装置1へ送信し(ステップS3019)、処理を後述のステップS3020へ進める。
収穫すべき対象が存在すると判断された場合(S3013:YES)、処理部400は、認識された実部分それぞれについて画像における位置と、アーム機構12の原点に基づく座標との対応付け処理を実行する(ステップ3014)。
ステップS3014において処理部400は、図9のフローチャートに示した処理手順と同様の処理を実行する。処理部400は、ステレオビジョンを使用する場合、収穫装置1へ2台のカメラ13,14又はカメラ14を動かして撮像させる指示データを送信し、撮像された画像データを受信し、画像から距離を算出する。処理部400は、ステレオビジョンを使用しないと判断される場合、収穫装置1にTOFカメラ15があるケースではTOFカメラ15による距離の測定を指示して距離データを受信する。TOFカメラ15がないケースでは、他の距離センサを用いた距離の測定を指示して距離データを受信する。
ステップS3014において処理部400は、算出又は取得した距離に基づいてアーム機構12及びハンド121の原点に基づく座標を、画像における座標に対応付け、画像における色又は輝度の成分ごとの画素値を取得する。
処理部400は、ステップS3014で対応付けた実部分の画像内での位置とアーム機構12の座標とに基づいて、収穫可否及び収穫動作を決定する処理を実行する(ステップS3015)。ステップS3015において処理部400は、図10、又は図16のフローチャートに示した収穫装置1にて実行されていた処理手順を実行する。
処理部400は、ステップS3015にて収穫可と決定されたか否かを判断する(ステップS3016)。収穫可と決定されたと判断された場合(S3016:YES)、処理部400は、ステップS3015で決定された収穫動作で収穫対象に対する収穫を指示する指示データを収穫装置1へ送信する(ステップS3017)。
収穫を指示する指示データには、アーム機構12及びハンド121の移動ルート、収穫姿勢を示すデータが含まれる。収穫を指示する指示データを受信した収穫装置1は、処理部100が、図11又は図17のフローチャートに示した処理手順を実行する。詳細データが必要であると判断された場合に収穫装置1の処理部100は、測定した距離等を情報処理装置4へ送信し、アーム機構12の位置及び姿勢を再決定した指示を受信して、動作を実行する。
処理部400は、収穫装置1から動作完了のフィードバックを受信し(ステップS3018)、高さ変更の指示データを収穫装置1へ送信する(ステップS3019)。高さ変更の指示に応じたフィードバックによって処理部400は、作業単位終了であるか否かを判断する(ステップ3020)。ステップS3020において処理部400は、作業単位において1畝目及び2畝目への収穫が完了したか否かを判断する。処理部400は、収穫装置1が動作する畑のマップと、フィードバックされる位置データとに基づき、1畝目が完了したか否か、2畝目が完了したか否かを判断できる。
ステップS3020において作業単位終了でないと判断された場合(S3020:NO)、処理部400は処理をステップS3001へ戻し、高さ変更後の画像を取得して処理を続行する。
ステップS3020において作業単位終了であると判断された場合(S3020:YES)、処理部400は、作業単位終了の指示データを収穫装置1へ送信し(ステップS3021)、1つの作業単位における処理を終了する。
ステップS3016で収穫可と決定されていないと判断された場合(S3016:NO)、処理をステップS3019へ進める。
このようにして、通信接続した収穫装置1と情報処理装置4とで協働して収穫を実行できる。主に演算負荷が重い画像処理については情報処理装置4にて実行することにより、収穫装置1の演算資源をコンパクト化して軽量化を図ることも可能である。通信が速く安定した環境で実施ができる場合には、収穫装置1と情報処理装置4との協働によって収穫を実行することで効率化が期待できる。情報処理装置4にて画像処理を実行することにより、画像処理のアルゴリズムを更新した場合に、収穫装置1それぞれにて更新せずとも、情報処理装置4で更新することで各収穫装置1における動作を最適化することができる。
収穫装置1と情報処理装置4とで協働して収穫を実行する場合、情報処理装置4の処理部400は、表示部403に、収穫装置1の位置、高さを示す画面と、最新に撮像された画像とを表示してもよい。これにより、情報処理装置4の管理者は、収穫装置1による収穫処理をモニタリングすることができる。
また、画像データを収穫装置1から受信する都度、情報処理装置4は記憶部401に記憶する(S3013)。画像データには、画像が撮像された位置の位置データ、高さのデータが対応付けて記憶され、各実部分の熟度の判定結果も記憶される。撮影された日時のデータも対応付けて記憶されてもよい。情報処理装置4は、ミニトマトの画像データと、画像に写っている実部分の熟度、撮影された畑内での位置、高さ、を対応付けて蓄積することができる。これにより情報処理装置4は、ミニトマトの畑における成長度合いの二次元又は三次元マップを作成することができる。
図33は、情報処理装置4における成長度合いのマップの表示例を示す図である。図33では、ミニトマトが植えられた畑を上方から見たマップに、各位置のミニトマトの熟度を示す濃淡が付されたマーク(矩形)4031が示されている。情報処理装置4は表示部403に、操作に応じて図33に示すようなマップを表示させることが可能である。マーク4031は夫々、表示部403上で操作部404によって選択が可能であってもよい。選択が可能である場合、マーク4031が操作部404によって選択された場合、マーク4031に対応するミニトマトの実部分を撮影した画像データが表示部403に表示されてもよい。
このようなマップを情報処理装置4にて作成できるので、情報処理装置4を管理する管理者は、現在、未だ小さく青く、熟度が収穫するという判断に至らない実部分も含め、1週間先、2週間先、…1ヶ月先の収穫量の目途を立てることも可能になる。画像データをそのまま蓄積しておくことにより、花が咲いている状態の株、房についても把握が可能である。画像データを、位置データと対応付けて記憶することにより、遠隔からも、株や畑内の範囲毎に、病気、害虫の存在を把握することも可能である。また、熟度の履歴を収穫期間に亘って集積することにより、畑の環境の改良点などの抽出に役立てることも可能である。
上述のように開示された実施の形態は全ての点で例示であって、制限的なものではない。本発明の範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれる。