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

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

▶ 株式会社安川電機の特許一覧

特開2024-166044収穫装置、及び、収穫装置の制御方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024166044
(43)【公開日】2024-11-28
(54)【発明の名称】収穫装置、及び、収穫装置の制御方法
(51)【国際特許分類】
   A01D 46/30 20060101AFI20241121BHJP
【FI】
A01D46/30
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2023204241
(22)【出願日】2023-12-01
(31)【優先権主張番号】P 2023082399
(32)【優先日】2023-05-18
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100212026
【弁理士】
【氏名又は名称】中村 真生
(72)【発明者】
【氏名】西村 礼貴
(72)【発明者】
【氏名】小▲崎▼ 聖那
(72)【発明者】
【氏名】安倍 魁都
(72)【発明者】
【氏名】戸畑 享大
(72)【発明者】
【氏名】伊藤 俊樹
(72)【発明者】
【氏名】永井 雅人
(72)【発明者】
【氏名】松村 好優
【テーマコード(参考)】
2B075
【Fターム(参考)】
2B075JF02
2B075JF05
2B075JF06
2B075JF07
2B075JF09
(57)【要約】
【課題】作業の効率化を図る。
【解決手段】本開示の一側面に係る収穫装置は、エンドエフェクタを有するロボットと、農作物の収穫対象物における第1部位にエンドエフェクタを近づけるように、ロボットを制御する第1アプローチ制御部と、第1部位から収穫対象物における第2部位にエンドエフェクタを移動させて、エンドエフェクタに第2部位を保持させるように、ロボットを制御する第2アプローチ制御部と、エンドエフェクタにより第2部位を保持した状態で、収穫対象物を収穫するようにロボットを制御する収穫制御部と、を備える。
【選択図】図22

【特許請求の範囲】
【請求項1】
エンドエフェクタを有するロボットと、
農作物の収穫対象物における第1部位に前記エンドエフェクタを近づけるように、前記ロボットを制御する第1アプローチ制御部と、
前記第1部位から前記収穫対象物における第2部位に前記エンドエフェクタを移動させて、前記エンドエフェクタに前記第2部位を保持させるように、前記ロボットを制御する第2アプローチ制御部と、
前記エンドエフェクタにより前記第2部位を保持した状態で、前記収穫対象物を収穫するように前記ロボットを制御する収穫制御部と、
を備える、収穫装置。
【請求項2】
前記第2アプローチ制御部は、前記第1部位から、前記収穫対象物に連結された柄に向かって前記エンドエフェクタを移動させて、前記第1部位と前記柄との間に位置する前記第2部位を前記エンドエフェクタに保持させるように、前記ロボットを制御する、請求項1に記載の収穫装置。
【請求項3】
前記収穫対象物は、前記柄から反対側に延びるように形成されており、
前記第2アプローチ制御部は、前記収穫対象物の長手方向に沿って前記柄に向かって前記エンドエフェクタを移動させて、前記第2部位として、前記収穫対象物のうちの前記柄に連結された端部を前記エンドエフェクタに保持させるように前記ロボットを制御する、請求項2に記載の収穫装置。
【請求項4】
前記農作物の少なくとも一部を撮像して得られる1以上の画像のいずれかに基づいて、前記収穫対象物における前記エンドエフェクタがアクセス可能な部位を、前記第1部位として特定する部位特定部を更に備える、請求項2に記載の収穫装置。
【請求項5】
前記収穫対象物は、前記柄から反対側に延びるように形成されており、
前記第2アプローチ制御部は、前記収穫対象物の長手方向に沿って前記柄に向かって前記エンドエフェクタを移動させて、前記第2部位として、前記収穫対象物のうちの前記柄に連結された端部を前記エンドエフェクタに保持させるように前記ロボットを制御し、
前記部位特定部は、前記収穫対象物のうちの前記柄に連結された端部と前記柄とは反対側の端部との間に位置する領域から、前記第1部位を特定する、請求項4に記載の収穫装置。
【請求項6】
前記部位特定部は、
前記1以上の画像のいずれかに基づいて、前記収穫対象物における2以上の候補部位を特定することと、
前記2以上の候補部位のうちの、前記エンドエフェクタがアクセス可能であり、且つ、前記柄に最も近い部位を、前記第1部位として特定することと、を実行する、請求項5に記載の収穫装置。
【請求項7】
前記エンドエフェクタは、前記収穫対象物を側方から挟むように保持する一対の把持部を含み、
前記第1アプローチ制御部は、前記一対の把持部の間に前記第1部位が位置するように、前記ロボットが有するアームにより前記エンドエフェクタを前記第1部位に移動させ、
前記第2アプローチ制御部は、前記一対の把持部の間に前記収穫対象物が位置する状態を維持しつつ、前記エンドエフェクタを前記第2部位に移動させるように、前記ロボットを制御する、請求項1に記載の収穫装置。
【請求項8】
前記第1アプローチ制御部は、前記エンドエフェクタを前記第1部位に近づけて、前記一対の把持部の間の間隔を小さくして前記第1部位に接触するように前記ロボットを制御する、請求項7に記載の収穫装置。
【請求項9】
保持判定部を更に備え、
前記エンドエフェクタは、前記一対の把持部の間の間隔を変更するモータを更に含み、
前記第1アプローチ制御部は、
前記アームにより、前記一対の把持部を前記第1部位に近づけることと、
前記一対の把持部の間の間隔が小さくなるように、前記モータにより前記一対の把持部を駆動することと、
前記一対の把持部が受ける反力に基づいて、前記モータによる駆動を停止させることと、を実行し、
前記保持判定部は、前記モータによる前記一対の把持部の駆動を停止したときの前記モータの位置に基づいて、前記一対の把持部が前記収穫対象物を保持したか否かを判定する、請求項8に記載の収穫装置。
【請求項10】
前記エンドエフェクタは、前記一対の把持部の間の間隔を変更するモータを更に含み、
前記第2アプローチ制御部は、前記第1部位から前記第2部位まで前記エンドエフェクタを移動させる間の前記間隔が、前記第1アプローチ制御部が前記第1部位まで前記エンドエフェクタを移動させる間の前記間隔よりも小さくなるように、前記モータを制御する、請求項7に記載の収穫装置。
【請求項11】
前記エンドエフェクタは、前記収穫対象物を保持可能な保持部と、前記収穫対象物において前記保持部に保持された箇所の近傍を切断可能な切断部と、を含み、
前記収穫制御部は、前記保持部により前記第2部位を保持した状態で前記切断部により前記柄を切断するように、前記ロボットを制御する、請求項2~6のいずれか一項に記載の収穫装置。
【請求項12】
前記収穫制御部は、前記保持部により前記第2部位を保持させ、前記エンドエフェクタを変位させて前記柄にテンションを加えた状態で前記切断部により前記柄を切断させるように、前記ロボットを制御する、請求項11に記載の収穫装置。
【請求項13】
前記切断部は、刃と、前記刃を駆動する切断駆動部と、を含み、
前記収穫制御部は、
前記第2アプローチ制御部により前記保持部が前記第2部位を保持した後に、前記柄に交差する方向において前記収穫対象物を前記柄に連結された茎から遠ざけるように前記ロボットを制御することと、
前記刃により前記柄を切断するように、前記切断駆動部により前記刃を駆動することと、を実行する、請求項11に記載の収穫装置。
【請求項14】
前記ロボットが有するアームの先端部、又は、前記エンドエフェクタに設けられたカメラと、
前記第1部位から前記柄に向かって前記エンドエフェクタが移動している間に前記カメラから得られる認識用画像に基づいて、前記柄を認識する柄認識部と、を更に備え、
前記第2アプローチ制御部は、
前記柄認識部による前記柄の認識結果に基づいて前記エンドエフェクタを停止させることと、前記エンドエフェクタの停止位置に対応する前記収穫対象物の部位を前記第2部位として前記エンドエフェクタに保持させることと、を順に実行するように、前記ロボットを制御する、請求項2~6のいずれか一項に記載の収穫装置。
【請求項15】
前記第1アプローチ制御部により前記エンドエフェクタを移動させる前に、収穫判定処理を実行する収穫判定部を更に備え、
前記収穫判定処理は、前記農作物の少なくとも一部を撮像して得られる1以上の画像のいずれかに基づいて、前記収穫対象物のサイズを演算することと、前記サイズの演算結果に基づいて、前記収穫対象物を収穫するか否かを決定することと、を含む、請求項1~10のいずれか一項に記載の収穫装置。
【請求項16】
ロボットと、
農作物の少なくとも一部を撮像して得られる撮像画像から、前記農作物における収穫対象物を検出する対象検出部と、
検出された前記収穫対象物において特定の部位を認識する認識部と、
前記特定の部位を認識したか否かに応じて、相異なる動作により前記収穫対象物を収穫するように、前記ロボットを制御する収穫制御部と、を備える収穫装置。
【請求項17】
ロボットと、
農作物の少なくとも一部を撮像して得られる撮像画像から、前記農作物における収穫対象物を検出する対象検出部と、
検出された前記収穫対象物において特定の部位を認識する認識部と、
前記特定の部位が認識された場合に、前記収穫対象物を収穫するように前記ロボットを制御する収穫制御部と、
前記特定の部位が認識されない場合に、前記収穫対象物の個体情報を別の装置に送信する情報通知部と、を備える収穫装置。
【請求項18】
農作物の収穫対象物における第1部位にロボットが有するエンドエフェクタを近づけるように、前記ロボットを制御することと、
前記第1部位から前記収穫対象物における第2部位に前記エンドエフェクタを移動させて、前記エンドエフェクタに前記第2部位を保持させるように、前記ロボットを制御することと、
前記エンドエフェクタにより前記第2部位を保持した状態で、前記収穫対象物を収穫するように前記ロボットを制御することと、
を含む、収穫装置の制御方法。
【請求項19】
農作物の少なくとも一部を撮像して得られる撮像画像から、前記農作物における収穫対象物を検出することと、
検出された前記収穫対象物において特定の部位を認識することと、
前記特定の部位を認識したか否かに応じて、相異なる動作により前記収穫対象物を収穫するように、ロボットを制御することと、を含む収穫装置の制御方法。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、収穫装置、及び、収穫装置の制御方法に関する。
【背景技術】
【0002】
特許文献1には、果菜類の収穫装置が開示されている。特許文献2には、果菜分離装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平8-103138号公報
【特許文献2】特開2021-23164号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、作業の効率化に有用な収穫装置、及び、収穫装置の制御方法を提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係る収穫装置は、エンドエフェクタを有するロボットと、農作物の収穫対象物における第1部位にエンドエフェクタを近づけるように、ロボットを制御する第1アプローチ制御部と、第1部位から収穫対象物における第2部位にエンドエフェクタを移動させて、エンドエフェクタに第2部位を保持させるように、ロボットを制御する第2アプローチ制御部と、エンドエフェクタにより第2部位を保持した状態で、収穫対象物を収穫するようにロボットを制御する収穫制御部と、を備える。
【0006】
本開示の一側面に係る収穫装置は、ロボットと、農作物の少なくとも一部を撮像して得られる撮像画像から、農作物における収穫対象物を検出する対象検出部と、検出された収穫対象物において特定の部位を認識する認識部と、特定の部位を認識したか否かに応じて、相異なる動作により収穫対象物を収穫するように、ロボットを制御する収穫制御部と、を備える。
【0007】
本開示の一側面に係る収穫装置は、ロボットと、農作物の少なくとも一部を撮像して得られる撮像画像から、農作物における収穫対象物を検出する対象検出部と、検出された収穫対象物において特定の部位を認識する認識部と、特定の部位が認識された場合に、収穫対象物を収穫するようにロボットを制御する収穫制御部と、特定の部位が認識されない場合に、収穫対象物の個体情報を別の装置に送信する情報通知部と、を備える。
【0008】
本開示の一側面に係る収穫装置の制御方法は、農作物の収穫対象物における第1部位にロボットが有するエンドエフェクタを近づけるように、ロボットを制御することと、第1部位から収穫対象物における第2部位にエンドエフェクタを移動させて、エンドエフェクタに第2部位を保持させるように、ロボットを制御することと、エンドエフェクタにより第2部位を保持した状態で、収穫対象物を収穫するようにロボットを制御することと、を含む。
【0009】
本開示の一側面に係る収穫装置の制御方法は、農作物の少なくとも一部を撮像して得られる撮像画像から、農作物における収穫対象物を検出することと、検出された収穫対象物において特定の部位を認識することと、特定の部位を認識したか否かに応じて、相異なる動作により収穫対象物を収穫するように、ロボットを制御することと、を含む。
【発明の効果】
【0010】
本開示によれば、作業の効率化に有用な収穫装置、及び、収穫装置の制御方法が提供される。
【図面の簡単な説明】
【0011】
図1図1は、収穫装置の一例を示す模式図である。
図2図2は、収穫装置による収穫作業の様子の一例を模式的に示す上面図である。
図3図3は、エンドエフェクタの一例を模式的に示す上面図である。
図4図4は、エンドエフェクタの一例を模式的に示す側面図である。
図5図5は、コントローラの機能構成の一例を示すブロック図である。
図6図6(a)、図6(b)、及び図6(c)は、撮像画像の一例を示す。
図7図7は、コントローラのハードウェア構成の一例を示すブロック図である。
図8図8は、コントローラが実行する一連の処理の一例を示すフローチャートである。
図9図9は、コントローラが実行する一連の処理の一例を示すフローチャートである。
図10図10(a)及び図10(b)は、収穫対象物の一端部にアプローチして収穫する場合の動作を例示する模式図である。
図11図11(a)及び図11(b)は、収穫対象物の一端部にアプローチして収穫する場合の動作を例示する模式図である。
図12図12(a)及び図12(b)は、収穫対象物の他端部にアプローチして収穫する場合の動作を例示する模式図である。
図13図13(a)及び図13(b)は、収穫対象物の他端部にアプローチして収穫する場合の動作を例示する模式図である。
図14図14は、エンドエフェクタの一例を模式的に示す側面図である。
図15図15は、エンドエフェクタの一例を模式的に示す上面図である。
図16図16は、コントローラの機能構成の一例を示すブロック図である。
図17図17は、コントローラが実行する一連の処理の一例を示すフローチャートである。
図18図18(a)は、収穫対象物にアプローチする前のエンドエフェクタの様子を例示する模式図である。図18(b)は、アプローチ部位の特定に用いる画像の一例を示す。
図19図19は、第1アプローチ制御において実行される一連の処理の一例を示すフローチャートである。
図20図20(a)及び図20(b)は、第1アプローチ制御での動作を例示する模式図である。
図21図21は、第2アプローチ制御において実行される一連の処理の一例を示すフローチャートである。
図22図22(a)は、第2アプローチ制御での動作を例示する模式図である。図22(b)は、柄の認識に用いる画像の一例を示す。
図23図23(a)及び図23(b)は、収穫時の動作を例示する写真である。
図24図24(a)及び図24(b)は、収穫時の動作を例示する写真である。
【発明を実施するための形態】
【0012】
以下、図面を参照して一実施形態について説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0013】
<第1実施形態>
[収穫装置]
図1及び図2を参照して、第1実施形態に係る収穫装置の概要、及び作業対象の農作物について最初に説明する。図1に示される収穫装置1は、農作物200から1以上の収穫対象物210を収穫するための作業の少なくとも一部を自動で実行する装置(システム)である。農作物200は、収穫装置1により収穫可能な実(果実)がなる植物であり、その種類は限定されない。収穫装置1は、収穫対象物として農作物200における実を収穫する。農作物200は、果菜類、果実的野菜、又は、果樹であってもよい。農作物200は、ウリ科の野菜の一種であってもよく、一例では、きゅうりである。
【0014】
農作物200における実(収穫対象物)は、食用であってもよい。収穫対象物210は、図1に示されるように、柄220を介して、農作物200における茎又は枝に接続されていてもよい。柄220は、果柄又は果梗と称される場合がある。収穫対象物210は、柄220に連結された端部を含んでもよい。収穫対象物210は、柄220に連結された端部から、柄220と反対方向に延びる形状を有してもよい。すなわち、収穫対象物210は、長尺状に形成されてもよい。長尺形状を有する収穫対象物210は、直線状に延在していてもよく、湾曲状に延在していてもよい。収穫対象物210は、柄220から反対側に延びるように形成されていてもよい。以下、農作物200が、きゅうりである場合を例にして、本開示の内容を説明する。
【0015】
農作物200は、例えば、茎202と、1以上の葉204と、1以上の収穫対象物210とを含む。1以上の収穫対象物210それぞれは、柄220を介して茎202に接続されている。収穫対象物210は、茎202から垂れ下がっている。収穫対象物210は、柄220に連結された上端部212a(第1端部)と、上端部212aとは反対側の下端部212b(第2端部)と、を含む。上端部212aは、下端部212bよりも上方に位置する。
【0016】
図2に示されるように、農作物200は、水平な一方向に沿って並ぶように植えられていてもよい。農作物200は、例えば、グリーンハウス内において、水平な一方向に沿って延びる棚290上に植えられている。農作物200は、棚290上において水平な一方向に沿って並ぶ複数の株201(苗)を含んでもよい。農作物200に含まれる株201ごとに、1以上の収穫対象物210が存在し得る。
【0017】
収穫装置1は、図1に示されるように、例えば、ロボット2と、台車4と、収容部6と、撮像装置8と、コントローラ100と、を備える。以下、収穫装置1を構成する複数の装置それぞれについて、その一例を説明する。
【0018】
ロボット2は、コントローラ100からの動作指示に基づいて、少なくとも、農作物200から収穫対象物210を切り離す動作を行う装置である。ロボット2は、例えば、6軸の垂直多関節ロボットであり、多関節アーム10(アーム)と、エンドエフェクタ50とを備える。多関節アーム10は、多関節の動作によってエンドエフェクタ50の位置及び姿勢を変更する。
【0019】
多関節アーム10は、例えば、基部11と、旋回部12と、第1アーム13と、第2アーム14と、手首部17と、アクチュエータ41,42,43,44,45,46と、を有する。
【0020】
基部11は、台車4上に設置されている。これにより、台車4の走行に伴って、ロボット2全体が移動する。旋回部12は、鉛直な軸線21まわりに回転するように基部11上に設けられている。第1アーム13は、軸線21に交差(例えば直交)する軸線22まわりに回転するように旋回部12に接続されており、軸線22から離れる方向に向かって延びている。本開示において、交差は、所謂立体交差のようにねじれの関係にある場合も含む。
【0021】
第2アーム14は、軸線22に実質的に平行な軸線23まわりに回転するように第1アーム13の先端部に接続されており、軸線23から離れる方向に向かって延びている。第2アーム14は、アーム基部15とアーム端部16とを含む。アーム基部15は、第1アーム13の先端部に接続されている。アーム端部16は、軸線23に交差(例えば直交)する軸線24まわりに回転するようにアーム基部15の先端部に接続されており、軸線24に沿ってアーム基部15から離れる方向に向かって延びている。
【0022】
手首部17は、軸線24に交差(例えば直交)する軸線25まわりに回転するようにアーム端部16の先端部に接続されている。手首部17の先端部には、動作対象の部材としてエンドエフェクタ50が設けられており、エンドエフェクタ50は、軸線25に交差(例えば直交)する軸線26まわりに回転可能である。
【0023】
以上のように、多関節アーム10は、基部11と旋回部12とを接続する関節31と、旋回部12と第1アーム13とを接続する関節32と、第1アーム13と第2アーム14とを接続する関節33と、第2アーム14においてアーム基部15とアーム端部16とを接続する関節34と、アーム端部16と手首部17とを接続する関節35と、手首部17とエンドエフェクタ50とを接続する関節36とを有する。
【0024】
アクチュエータ41,42,43,44,45,46は、例えば電動モータ及び減速機を含み、関節31,32,33,34,35,36をそれぞれ駆動する。例えば、アクチュエータ41は軸線21まわりに旋回部12を回転させ、アクチュエータ42は軸線22まわりに第1アーム13を回転させ、アクチュエータ43は軸線23まわりに第2アーム14を回転させる。また、アクチュエータ44は軸線24まわりにアーム端部16を回転させ、アクチュエータ45は軸線25まわりに手首部17を回転させ、アクチュエータ46は軸線26まわりにエンドエフェクタ50を回転させる。
【0025】
エンドエフェクタ50は、収穫用のツールであり、多関節アーム10の先端に設けられている。エンドエフェクタ50は、多関節アーム10の先端に、軸線26(第1軸線)まわりに回転可能な状態で接続されている。手首部17の先端部は、多関節アーム10の先端に相当する。エンドエフェクタ50の詳細については、後述する。
【0026】
ロボット2(又は、多関節アーム10)の構成は適宜変更可能である。ロボット2は、例えば、上述した6軸の構成に更に1軸の関節を追加した7軸の冗長型ロボットであってもよく、所謂スカラー型の多関節ロボットであってもよい。
【0027】
台車4は、ロボット2が搭載され走行可能な台車である。台車4が走行することによって、ロボット2全体が移動する。台車4は、図2に示されるように、例えば、複数の株201が並んでいる方向に沿って走行可能である。台車4は、走行用の駆動源であるモータを有し、複数の株201が並んでいる方向に延びるレール5上を走行してもよい。台車4が走行することで、農作物200に対するロボット2の基部11の相対的な位置が変化する。台車4は、コントローラ100の動作指示に基づいて、走行と停止とを繰り返すにように動作してもよい。
【0028】
収容部6は、ロボット2により収穫された1以上の収穫対象物210を収容する部材である。収容部6は、1以上の収穫対象物210を収容できれば、どのように構成されてもよいが、例えば、上端が開放されたコンテナである。収容部6は、ロボット2のエンドエフェクタ50がアプローチ可能な範囲内に配置されている。収容部6は、台車4に搭載されていてもよい。一例では、収容部6は、取り外し自在な状態で台車4に載せられている。収容部6が台車4に搭載されている場合には、台車4の走行に伴って収容部6も移動する。なお、収容部6は、台車4への搭載に代えて、台車4上に搭載されたロボット2のエンドエフェクタ50がアプローチ可能な所定位置に設置又は配置されていてもよい。
【0029】
撮像装置8は、農作物200の少なくとも一部を撮像可能な装置である。撮像装置8は、農作物200の少なくとも一部を撮像することで、農作物200のうちのロボット2による収穫対象となる収穫対象物210を検出するための画像(以下、「撮像画像PI」という。)を生成する。図2に示されるように、台車4が走行する方向において、撮像装置8が撮像可能な視野(撮像範囲PR)の一部が、台車4と重なっていてもよく、残りの一部が台車4の前方に位置していてもよい。
【0030】
撮像装置8は、例えば、撮像範囲PRを撮像可能な1以上のカメラを有する。撮像装置8に含まれる1以上のカメラは、可視光を用いて撮像範囲PRを撮像してもよい。撮像装置8は、1以上のカメラに加えて、距離センサを有してもよい。撮像装置8に含まれる距離センサは、例えば、撮像範囲PRに存在する物体における複数箇所それぞれの距離を示す距離データ(深度マップ)を取得可能なセンサである。撮像装置8は、台車4に搭載されていてもよい。撮像装置8は、例えば、固定部材8aを介して台車4に固定されている。撮像装置8が台車4に搭載されている場合には、撮像装置8は、台車4の走行に伴って移動する。
【0031】
図3及び図4には、エンドエフェクタ50の一例が模式的に示されている。エンドエフェクタ50は、手首部17の先端部(多関節アーム10の先端)に、軸線26まわりに回転可能な状態で接続されている。図3及び図4に示される例においては、エンドエフェクタ50が延びる方向が軸線26に沿うように、エンドエフェクタ50は、手首部17の先端部に接続されている。以下、説明の便宜のために、図3及び図4に示される例において手首部17とエンドエフェクタ50とが並ぶ方向を「方向D1」と表記する。また、手首部17からエンドエフェクタ50に向かう方向(向き)を「前方」と称し、エンドエフェクタ50から手首部17に向かう方向(向き)を「後方」と称する。
【0032】
方向D1は、軸線26が延びる方向に一致しており、方向D1において、手首部17とエンドエフェクタ50とは対向している。エンドエフェクタ50の全体は、方向D1に延びるように形成されていてもよい。図3及び図4に示されるエンドエフェクタ50は、収穫対象物210を支持(保持)する機能と、収穫対象物210に連結されている柄220を切断する機能とを有する。
【0033】
エンドエフェクタ50は、本体部60と、支持部80と、を備える。本体部60は、軸線26まわりに回転可能な状態で手首部17の先端部に接続された部分である。本体部60が軸線26まわりに回転することで、支持部80も軸線26まわりに回転する。
【0034】
本体部60は、ベース部62と、第1可動部64aと、第2可動部64bと、駆動部66と、切断部70と、を有する。ベース部62は、手首部17の先端部に回転可能に接続されており、本体部60に含まれる他の部材を支持する部分である。ベース部62が軸線26まわりに回転することで、本体部60の全体が軸線26まわりに回転する。
【0035】
第1可動部64a及び第2可動部64bは、支持部80を支持する部分である。第1可動部64a及び第2可動部64bは、方向D1に直交する一方向(以下、「方向D2」という。)において、互いに間隔を空けて並んでいる。一例では、第1可動部64a及び第2可動部64bそれぞれは、方向D1に延びるように板状に形成されている。第1可動部64aは、方向D2に移動可能な状態でベース部62に設けられており、第2可動部64bは、方向D2に移動可能な状態でベース部62に設けられている。
【0036】
駆動部66は、方向D2において、第1可動部64a及び第2可動部64bそれぞれを駆動する部分である。駆動部66は、例えば、電動モータ等の駆動源を含む。駆動部66は、コントローラ100からの動作指示に基づいて、第1可動部64a及び第2可動部64bそれぞれを駆動する。駆動部66による駆動によって、第1可動部64a及び第2可動部64bの間の間隔が変化する。
【0037】
切断部70は、収穫対象物210において支持部80に支持された箇所の近傍を切断可能な部分である。切断部70は、支持部80が収穫対象物210の上端部212a(図1を参照)を支持した状態で、その上端部212aに連結されている柄220を切断可能である。
【0038】
切断部70は、例えば、刃72と、カバー部材74と、駆動部76と、を含む。刃72は、図4に示されるように、前方を向く鋭利な刃先72aを含む。刃72は、方向D1に移動可能な状態でベース部62に設けられている。刃72の刃先72aを含む部分は、方向D1及び方向D2に沿って延びるように板状に形成されていてもよい。
【0039】
刃72は、方向D1及び方向D2に直交する方向(以下、「方向D3」と称する。)において、第1可動部64a及び第2可動部64bと離れた位置に配置されている。軸線26が水平に配置され、軸線26まわりのエンドエフェクタ50(本体部60)の回転位置が初期位置である場合において、例えば、刃72は、第1可動部64a及び第2可動部64bに対して上方に位置する。以下、軸線26が水平に配置され、軸線26まわりのエンドエフェクタ50(本体部60)の回転位置が初期位置にある場合を基準にして、エンドエフェクタ50の説明を行う。
【0040】
カバー部材74は、刃72を覆う部材である。カバー部材74は、刃72のうちの刃先72aを覆う。カバー部材74は、ベース部62に固定されている。すなわち、刃72の移動に伴って、カバー部材74に対する刃72の相対位置が変化する。カバー部材74は、刃72の上方に配置されている。カバー部材74は、方向D1及び方向D2に沿って延びるように板状に形成されていてもよい。
【0041】
駆動部76は、方向D1において、刃72を駆動する部分である。駆動部76は、例えば、電動モータ等の駆動源を含む。駆動部76は、コントローラ100からの動作指示に基づいて、方向D1において刃72を駆動する。駆動部76による駆動によって、カバー部材74に対する刃72の相対位置が変化する。駆動部76は、刃72がカバー部材74に覆われる状態と、刃72(刃先72a)がカバー部材74から露出する状態とを切り替えるように、刃72を駆動してもよい。
【0042】
刃72がカバー部材74に覆われる状態では、鉛直上方から見て、カバー部材74が刃72に重なっており、刃72が露出していない。この状態において、カバー部材74のうちの前方に位置する先端に比べて、刃72の刃先72aが後方に位置する。刃72がカバー部材74から露出する状態では、方向D3から見て、刃72のうちの刃先72aを含む一部が、カバー部材74の上記先端よりも前方に位置する。図3及び図4には、刃72がカバー部材74から露出している様子が例示されている。
【0043】
支持部80は、収穫対象物210を支持可能な部分である。支持部80は、軸線26に対して交差する軸線88(第2軸線)まわりに回転可能な状態で、本体部60に接続されている。軸線88は、軸線26に対して直交していてもよい。軸線88は、第1可動部64a及び第1可動部64aのうちの前方に位置する先端部をそれぞれ通るように設定されてもよい。支持部80は、例えば、収穫対象物210を支持するように、収穫対象物210を把持(挟んだ状態で保持)する。支持部80が収穫対象物210を支持することで、収穫対象物210が保持されるので、支持部80を「保持部」と称することもできる。
【0044】
支持部80は、例えば、第1把持部82aと、第2把持部82bと、第1爪部84aと、第2爪部84bと、を含む。第1把持部82a及び第2把持部82bは、収穫対象物210を両側から挟んで保持することができるように構成されている。第1把持部82a及び第2把持部82bは、互いに同様の形状を有し、方向D2において間隔を空けて配置されている。
【0045】
第1把持部82a及び第2把持部82bそれぞれは、板状に形成されていてもよい。第1把持部82aは、第2把持部82bを向く内壁面83aを含み、第2把持部82bは、第1把持部82aを向く内壁面83bを含む。第1把持部82a及び第2把持部82bが収穫対象物210を把持した際に、内壁面83aの少なくとも一部、及び内壁面83bの少なくとも一部が、その収穫対象物210に接触する。
【0046】
第1把持部82aは、方向D1における内壁面83aの中央部分が第2把持部82bと離れる方向に凹むように、屈曲又は湾曲していてもよい。第2把持部82bは、方向D1における内壁面83bの中央部分が第1把持部82aと離れる方向に凹むように、屈曲又は湾曲していてもよい。図3に示される例とは異なり、内壁面83a及び内壁面83bそれぞれは、方向D1及び方向D3に沿う平面であってもよい。
【0047】
第1把持部82aは、軸線88まわりに回転可能な状態で第1可動部64aに設けられており、第2把持部82bは、軸線88まわりに回転可能な状態で第2可動部64bに設けられている。本体部60の駆動部66によって、第1可動部64a及び第2可動部64bそれぞれが駆動されることで、第1把持部82a及び第2把持部82bの間の間隔が変化する。第1把持部82a及び第2把持部82bが互いに近接して、収穫対象物210の側方において内側を向く力を作用させることで、収穫対象物210が、第1把持部82a及び第2把持部82bによって把持(支持)される。
【0048】
第1把持部82aは、例えば、その先端部が第1可動部64aの前方に位置する状態と、その先端部が第1可動部64aの下方に位置する状態との間で、軸線88まわりに回転可能である。第1把持部82aは、外力が作用していない状態において、その先端部が第1可動部64aの前方に位置する状態が維持されるように、第1可動部64aに支持されてもよい。第1把持部82aと第1可動部64aとの接続部分には、例えば、ねじりバネが設けられている。
【0049】
第2把持部82bは、例えば、その先端部が第2可動部64bの前方に位置する状態と、その先端部が第2可動部64bの下方に位置する状態との間で、軸線88まわりに回転可能である。第2把持部82bは、外力が作用していない状態において、その先端部が第2可動部64bの前方に位置する状態が維持されるように、第2可動部64bに支持されてもよい。第2把持部82bと第2可動部64bとの接続部分には、例えば、ねじりバネが設けられている。図4に示される「θ」は、軸線88まわりの周方向における、第1把持部82a及び第2把持部82bの可動範囲を表す角度である。角度θは、90°程度であってもよい。
【0050】
第1爪部84a及び第2爪部84bは、第1把持部82a及び第2把持部82bよりも前方の位置から、第1把持部82a及び第2把持部82bの間のスペースへの収穫対象物210の移動を許容する。また、第1爪部84a及び第2爪部84bは、第1把持部82a及び第2把持部82bの間のスペースから、第1把持部82a及び第2把持部82bよりも前方の位置への収穫対象物210の移動を規制する。
【0051】
第1爪部84aは、第1把持部82aの先端部の内側に設けられ、第2爪部84bは、第2把持部82bの先端部の内側に設けられている。第1爪部84a及び第2爪部84bのそれぞれは、後方に向かう力が作用すると、方向D3に延びる軸線まわりに回転し、前方に向かう力が作用しても、上記軸線まわりに回転しない。
【0052】
エンドエフェクタ50は、図4に示されるように、検出部90を備えてもよい。検出部90は、収穫対象物210と、それに連結された柄220とを検出することが可能である。検出部90は、本体部60のベース部62に設けられてもよい。検出部90は、例えば、収穫対象物210及び柄220を撮像可能なカメラを含む。検出部90は、カメラに加えて、又は代えて、収穫対象物210及び柄220までの距離を計測可能なセンサを含んでもよい。
【0053】
図1に戻り、コントローラ100は、ロボット2、台車4、及び撮像装置8のそれぞれを制御するように構成された1以上のコンピュータ装置である。コントローラ100は、ロボット2、台車4、及び撮像装置8を個別に制御する複数のコンピュータ装置によって構成されてもよい。この場合、複数のコンピュータ装置が、互いに通信可能に接続されていてもよい。
【0054】
コントローラ100は、図5に示されるように、機能上の構成(以下、「機能モジュール」という。)として、例えば、撮像制御部102と、対象検出部104と、台車制御部106と、認識部108と、収穫制御部110と、収容制御部112と、を有する。これらの機能モジュールが実行する処理は、コントローラ100が実行する処理に相当する。
【0055】
撮像制御部102は、農作物200の少なくとも一部の撮像を撮像装置8に実行させることで、撮像装置8から画像データを取得する。撮像装置8が台車4に搭載されている場合において、撮像制御部102は、台車4が走行している期間と、台車4が停止している期間とのそれぞれにおいて、撮像装置8に撮像を実行させてもよい。撮像装置8が静止画像を取得する場合、撮像制御部102は、所定の撮像周期で撮像装置8による撮像を繰り返し実行させてもよい。
【0056】
対象検出部104は、撮像装置8から取得された画像データに基づく撮像画像PIから、農作物200における収穫対象物210を検出する処理を実行する。対象検出部104によって検出された収穫対象物210が、ロボット2による収穫対象となる。図6(a)等に示されるように、対象検出部104は、例えば、撮像画像PI内に含まれる1以上の収穫対象物210をそれぞれ囲む矩形状のバウンディングボックスを検出する。対象検出部104は、機械学習により予め構築された検出モデルを用いて、撮像画像PIから収穫対象物210を検出してもよい。
【0057】
対象検出部104は、台車4が走行している期間に撮像装置8が得た情報から、収穫対象物210を検出してもよい。対象検出部104は、台車4が停止している期間に撮像装置8が得た情報から、収穫対象物210を検出してもよい。撮像タイミングによっては、撮像画像PIから収穫対象物210が検出されない場合もあり、この場合、対象検出部104は、撮像画像PIから収穫対象物210が検出されないと判断してもよい。
【0058】
台車制御部106は、走行と停止とを繰り返すように台車4を制御する。台車制御部106は、例えば、台車4の走行中に撮像装置8が撮像して得られた撮像画像PIから、収穫対象物210が検出された場合には、その収穫対象物210の位置に応じて台車4を停止させる。台車制御部106は、台車4の走行中において、収穫対象物210が検出されない場合には、台車4の走行を継続させる。
【0059】
台車制御部106は、例えば、台車4の停止中(停止を継続している最中)に撮像装置8が撮像して得られた撮像画像PIから、収穫対象物210が検出されない場合には、台車4を走行させる。台車制御部106は、台車4の停止中において、収穫対象物210が検出された場合には、台車4を停止した状態に維持する。
【0060】
認識部108は、対象検出部104により検出された収穫対象物210において特定の部位を認識する。撮像装置8によって得られる撮像画像PIでは、他の障害物(例えば、茎202又は葉204)によって、収穫対象物210の一部が隠れている場合がある。認識部108により認識の対象となる特定の部位は、例えば、その部位にアプローチできるか否かによって、ロボット2による動作を変える必要がある部位である。上記特定の部位は、収穫対象物210における上端部212aであってもよい。
【0061】
認識部108は、撮像画像PIにおいて、上端部212aを直接又は間接的に認識してもよい。認識部108は、例えば、撮像画像PIから、上端部212aを認識(検出)するように機械学習により予め構築された認識モデルを用いて、上端部212aを認識する。認識部108は、撮像画像PIから、上端部212aに連結された柄220を認識(検出)するように機械学習により予め構築された認識モデルを用いて、柄220を認識することで、上端部212aを認識してもよい。認識部108は、上端部212a又は柄220が他の障害物で隠れている場合には、上端部212aが認識できないと判断してもよい。
【0062】
認識部108は、収穫対象物210の隠れの状態を判別することで、上端部212aを認識してもよい。認識部108は、例えば、検出された収穫対象物210の隠れの状態が、全体が隠れていない状態、上端部212aが隠れておらず、下端部212bが隠れている状態、及び、上端部212aが隠れており、下端部212bが隠れている状態のうちのいずれの状態であるかを判別する。ある部位が隠れていない状態は、撮像画像PIにおいて、その部位が映っている状態である。ある部位が隠れている状態は、撮像画像PIにおいて、その部位が映っていない状態である。
【0063】
図6(a)には、撮像画像PIにおいて収穫対象物210の全体が隠れていない状態(以下、「隠れなし状態」という。)が示されている。図6(b)には、撮像画像PIにおいて、上端部212aが隠れておらず、下端部212bが隠れていない状態(以下、「下隠れ状態」という。)が示されており、図6(c)には、撮像画像PIにおいて、上端部212aが隠れており、下端部212bが隠れていない状態(以下、「上隠れ状態」という。)が示されている。
【0064】
認識部108は、収穫対象物210の隠れ状態が、上記3つの状態のうちのいずれの状態であるかを判別するように機械学習により予め構築された判別モデルを用いて、検出された収穫対象物210の隠れ状態の判別(分類)を行ってもよい。認識部108が隠れなし状態と判別すること、及び下隠れ状態であると判別することは、認識部108が上端部212aを認識することに相当する。認識部108が上隠れ状態であると判別することは、認識部108が上端部212aを認識しないことに相当する。
【0065】
収穫制御部110は、上記特定の部位を認識したか否かに応じて、相異なる動作により収穫対象物210を収穫するように、ロボット2を制御する。すなわち、認識部108により特定の部位が認識された場合と、認識部108により特定の部位が認識されない場合とで、収穫制御部110は、互いに異なる動作で収穫対象物210を収穫するようにロボット2を制御する。収穫制御部110は、特定の部位として、上端部212aを認識したか否かに応じて、相異なる動作により収穫対象物210を収穫するように、ロボット2を制御してもよい。
【0066】
収穫制御部110は、収穫対象物210の上端部212aが認識された場合には、例えば、エンドエフェクタ50の支持部80が上端部212aを支持するように、ロボット2を制御する。この場合、収穫制御部110は、支持部80に上端部212aを支持させた状態で、エンドエフェクタ50により柄220に対して力を直接作用させるように、ロボット2を制御する。一例では、収穫制御部110は、上端部212aが認識された場合には、支持部80に上端部212aを支持させた状態で、切断部70により柄220を切断させるように、ロボット2を制御する。柄220が切断部70によって切断されることで、収穫対象物210が農作物200から切り離される。
【0067】
収穫制御部110は、収穫対象物210の上端部212aが認識されない場合には、例えば、支持部80が下端部212bを支持するように、ロボット2を制御する。この場合、収穫制御部110は、支持部80に下端部212bを支持させた状態で、エンドエフェクタ50により柄220に対して間接的に力を作用させるように、ロボット2を制御する。一例では、収穫制御部110は、上端部212aが認識されない場合には、支持部80に下端部212bを支持させた状態で軸線26まわりにエンドエフェクタ50を回転させて柄220が捩られるように、ロボット2を制御する。
【0068】
柄220が捩られるとは、柄220の延在方向まわりの周方向において柄220を回転させることを意味する。柄220の延在方向は、柄220の一端と他端とを結ぶ仮想的なラインが延びる方向である。収穫制御部110は、上記周方向において、互いに反対向きの回転方向に交互に柄220を回転させるようにロボット2を制御してもよい。あるいは、収穫制御部110は、上記周方向において、1つの回転方向に継続して柄220を回転させるようにロボット2を制御してもよい。
【0069】
収穫制御部110は、上端部212aが認識された場合も上端部212aが認識されない場合も、収穫対象物210の長手方向と交差する方向から、支持部80が収穫対象物210にアプローチするように、ロボット2を制御してもよい。収穫対象物210の長手方向は、収穫対象物210の一端(例えば、上端)と他端(例えば、下端)とを結ぶ仮想的なラインが延びる方向である。収穫制御部110は、台車4が停止している期間において、収穫対象物210を収穫する収穫動作をロボット2に実行させてもよい。
【0070】
収容制御部112は、少なくとも台車4が走行している期間において、収穫された収穫対象物210を収容部6に収容する収容動作をロボット2に実行させる。すなわち、台車4が走行している期間に収容動作が行われる場合には、収容制御部112は、台車4が走行している状態で、収穫された収穫対象物210を収容部6に収容するようにロボット2を制御する。収容制御部112は、台車4が停止している期間においても、収穫された収穫対象物210を収容部6に収容する収容動作をロボット2に実行させてもよい。
【0071】
図7に示されるように、コントローラ100は、回路150を備える。回路150は、1以上のプロセッサ152と、メモリ154と、ストレージ156と、1以上のドライバ158と、入出力ポート162と、を含む。ストレージ156は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばフラッシュメモリ)である。ストレージ156は、エンドエフェクタ50を含むロボット2、台車4、及び撮像装置8を制御することをコントローラ100に実行させるためのプログラム及びデータを記憶する。メモリ154は、ストレージ156からロードしたプログラム及びプロセッサ152による演算結果等を一時的に記憶する。
【0072】
プロセッサ152は、メモリ154と協働して上記プログラムを実行することで、上述した各機能モジュールを構成する。1以上のドライバ158は、プロセッサ152からの指令に応じて、ロボット2のアクチュエータ41~46、及び台車4に含まれる駆動用のモータに駆動電力をそれぞれ出力する。入出力ポート162は、撮像装置8等との間で電気信号の入出力を行う。なお、コントローラ100は、必ずしもプログラムにより各機能を構成するものに限られない。コントローラ100は、例えば、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
【0073】
[収穫装置の制御方法]
続いて、図8図13を参照しながら、収穫装置1の制御方法について説明する。この制御方法は、少なくとも、農作物200の少なくとも一部を撮像して得られる撮像画像PIから収穫対象物210を検出することと、検出された収穫対象物210において特定の部位を認識することと、特定の部位を認識したか否かに応じて、相異なる動作により収穫対象物210を収穫するように、ロボット2を制御することと、を含む。
【0074】
図8は、コントローラ100が実行する一連の処理の一例を示すフローチャートである。レール5の一端部である初期位置に台車4が配置された状態において、コントローラ100は、最初に、ステップS01を実行する。ステップS01では、例えば、台車制御部106が台車4の走行を開始させる。台車制御部106は、農作物200に含まれる複数の株201が並ぶ方向に沿った台車4の走行を開始させてもよい。撮像制御部102は、台車4の走行開始に応じて、撮像装置8による撮像を開始させてもよい。これにより、台車4が走行されている期間において、撮像装置8による撮像が実行される。
【0075】
次に、コントローラ100は、ステップS02を実行する。ステップS02では、例えば、撮像制御部102が、撮像装置8から、農作物200の少なくとも一部を撮像して得られる画像である撮像画像PIを取得する。そして、対象検出部104が、撮像画像PIにおいて、ロボット2による収穫動作の対象とする収穫対象物210を検出するための処理を実行する。
【0076】
次に、コントローラ100は、ステップS03を実行する。ステップS03では、例えば、コントローラ100が、ステップS02において、収穫対象物210が検出されたか否かを判断する。ステップS03において、収穫対象物210が検出されていないと判断された場合(ステップS03:NO)、コントローラ100が実行する処理は、ステップS02に戻る。この場合、台車4の走行は継続されているので、農作物200のうちの撮像箇所が変更されたうえで、対象検出部104が、撮像画像PIから収穫対象物210を検出するための処理を実行する。
【0077】
ステップS03において、収穫対象物210が検出されたと判断された場合(ステップS03:YES)、コントローラ100が実行する処理は、ステップS04に進む。ステップS04では、例えば、台車制御部106が、台車4を停止させる。一例では、台車制御部106は、台車4を停止させたときに、ロボット2のエンドエフェクタ50が検出された収穫対象物210にアプローチできるように、台車4を停止させる。
【0078】
次に、コントローラ100は、ステップS05を実行する。ステップS05では、例えば、収穫制御部110が、検出された収穫対象物210を収穫するようにロボット2を制御する。収穫制御部110は、収穫対象物210が検出された撮像画像PI上での収穫対象物210の上端部212aの認識結果に応じて、相異なる動作によって収穫対象物210をロボット2に収穫させてもよい。ステップS04で台車4は停止しているので、収穫制御部110は、台車4が停止している期間において、ステップS05の収穫動作をロボット2に実行させる。ステップS05の詳細については、後述する。
【0079】
次に、コントローラ100は、ステップS06を実行する。ステップS06では、例えば、撮像制御部102が、撮像装置8から撮像画像PIを取得する。すなわち、撮像制御部102は、ステップS05において収穫対象物210をロボット2が収穫した後に、撮像装置8から撮像画像PI(第2撮像画像)を取得する。そして、対象検出部104が、その撮像画像PIにおいて、ロボット2による収穫動作の対象とする次の収穫対象物210を検出するための処理を実行する。
【0080】
次に、コントローラ100は、ステップS07を実行する。ステップS07では、例えば、コントローラ100が、ステップS06において、次の収穫対象物210が検出されたか否かを判断する。ステップS07において、次に収穫対象物210が検出されたと判断された場合(ステップS07:YES)、コントローラ100が実行する処理は、ステップS08に進む。
【0081】
ステップS08では、例えば、収容制御部112が、ステップS05の実行終了時点でエンドエフェクタ50の支持部80に支持(例えば、把持)されている収穫対象物210を、収容部6に収容するようにロボット2を制御する。ステップS08における収容動作は、台車4が停止している期間に実行される。ステップS08の実行後、コントローラ100が実行する処理は、ステップS05に戻る。そのため、台車4が同じ位置に停止している期間において、ロボット2は、ステップS06で検出された次の収穫対象物210の収穫動作を実行する。
【0082】
一方、ステップS07において、次の収穫対象物210が検出されていないと判断された場合(ステップS07:NO)、コントローラ100が実行する処理は、ステップS09に進む。ステップS09では、例えば、台車制御部106が、台車4の走行を開始させる。台車4の走行開始に伴って、撮像装置8による撮像範囲PRが変化する。以上のように、台車制御部106は、ステップS06において、対象検出部104により撮像画像PIから次の収穫対象物210が検出されない場合に、台車4を走行させる。台車制御部106は、ステップS06において、対象検出部104により撮像画像PIから次の収穫対象物210が検出された場合には、台車4が停止した状態を維持する。
【0083】
ステップS09の実行後、コントローラ100は、ステップS10を実行する。ステップS10では、例えば、収容制御部112が、ステップS05の実行終了時点でエンドエフェクタ50の支持部80に支持(例えば、把持)されている収穫対象物210を、収容部6に収容するようにロボット2を制御する。ステップS08とは異なり、ステップS10における収容動作は、台車4が走行している期間に実行される。ステップS10の実行後、コントローラ100が実行する処理は、ステップS02に戻る。
【0084】
コントローラ100は、例えば、所定の終了条件が満たされるまで、図8に示される一連の処理を継続する。一例では、コントローラ100は、台車4が、レール5の上記一端部(初期位置)と反対側の他端部である終了位置に台車4が到達した場合に、図8に示される一連の処理を終了する。
【0085】
図9は、ステップS05において、コントローラ100が実行する一連の処理の一例を示すフローチャートである。ステップS05では、コントローラ100が、最初にステップS21を実行する。ステップS21では、例えば、認識部108が、ステップS02又はステップS06で得られた撮像画像PIにおいて、検出された収穫対象物210の隠れ状態を判別する。一例では、認識部108は、検出された収穫対象物210の隠れ状態が、上記隠れなし状態、上記下隠れ状態、及び上記上隠れ状態のいずれであるかを判別する。
【0086】
次に、コントローラ100は、ステップS22を実行する。ステップS22では、例えば、コントローラ100が、検出された収穫対象物210の上端部212aが認識されたか否かを判断する。一例では、コントローラ100は、収穫対象物210の隠れ状態が、隠れなし状態、又は下隠れ状態であると判別された場合に、上端部212aが認識されたと判断する。コントローラ100は、収穫対象物210の隠れ状態が、上隠れ状態であると判別された場合に、上端部212aが認識されていないと判断する。
【0087】
ステップS22において、上端部212aが認識されたと判断された場合(ステップS22:YES)、コントローラ100が実行する処理は、ステップS31~S33に進む。一方、ステップS22において、上端部212aが認識されていないと判断された場合(ステップS22:NO)、コントローラ100が実行する処理は、ステップS41~S44に進む。すなわち、コントローラ100は、上端部212aが認識された場合には、ステップS31~S33の一連の処理を実行し、上端部212aが認識されない場合には、ステップS41~S44の一連の処理を実行する。
【0088】
ステップS31では、例えば、図10(a)及び図10(b)に示されるように、収穫制御部110が、エンドエフェクタ50の支持部80が、収穫対象物210の上端部212aにアプローチするようにロボット2を制御する。収穫制御部110は、収穫対象物210の延在方向と交差する方向から上端部212aに支持部80がアプローチするようにロボット2を制御してもよい。収穫制御部110は、撮像画像PIから得られる収穫対象物210の位置情報に加えて、エンドエフェクタ50に設けられた検出部90による検出結果を用いて、支持部80を上端部212aにアプローチさせてもよい。
【0089】
ステップS31が実行されている間において、支持部80の第1把持部82a及び第2把持部82bは、互いの間隔が、収穫対象物210の幅よりも大きい位置に配置されていてもよい。収穫制御部110は、第1把持部82a及び第2把持部82bの間のスペースに収穫対象物210が配置された後に、切断部70により柄220の切断が可能な位置に、多関節アーム10によりエンドエフェクタ50の高さ位置を調節してもよい。エンドエフェクタ50の高さ位置を調節する際に、収穫対象物210が、第1把持部82a及び第2把持部82bとの間のスペースから前方に移動しようとしても、その移動が、第1爪部84a及び第2爪部84bによって規制され得る。
【0090】
ステップS32では、例えば、収穫制御部110が、図11(a)に示されるように、第1可動部64a及び第2可動部64bの間隔を狭めて、第1把持部82a及び第2把持部82bによって上端部212aが把持されるように、駆動部66を制御する。第1可動部64a及び第2可動部64bの駆動量は、例えば、収穫対象物210が保持され、収穫対象物210に過度な力が作用しない程度の量に設定される。ステップS31,S32が実行されている間において、収穫制御部110は、切断部70の刃72を、露出せずにカバー部材74に覆われている状態に維持してもよい。
【0091】
ステップS33では、例えば、収穫制御部110が、刃72がカバー部材74に覆われた状態から、刃72がカバー部材74から露出する状態に切り替えるように駆動部76を制御する。図11(b)に示されるように、ステップS33において、収穫制御部110は、刃72の刃先(先端)が柄220に接触して柄220が切断されるように、駆動部76により刃72を移動させる。柄220の駆動量は、支持部80が上端部212aを支持した際に、収穫対象物210の個体差が多少あっても、柄220を切断できる程度の量に予め設定されてもよい。
【0092】
ステップS31~S33の一連の処理の実行により、上端部212aが認識された場合の収穫動作が終了し、支持部80によって収穫対象物210が支持された状態で、その収穫対象物210が農作物200から切り離される。ステップS33の実行により収穫対象物210が収穫された直後に、収穫制御部110は、刃72を後退させてカバー部材74に覆われた状態となるように、切断部70を制御してもよい。
【0093】
ステップS41では、例えば、図12(a)及び図12(b)に示されるように、収穫制御部110が、エンドエフェクタ50の支持部80が、収穫対象物210の下端部212bにアプローチするようにロボット2を制御する。収穫制御部110は、収穫対象物210の延在方向と交差する方向から下端部212bに支持部80がアプローチするようにロボット2を制御してもよい。収穫制御部110は、撮像画像PIから得られる収穫対象物210の位置情報に加えて、エンドエフェクタ50に設けられた検出部90による検出結果を用いて、支持部80を下端部212bにアプローチさせてもよい。
【0094】
ステップS42では、例えば、収穫制御部110が、第1可動部64a及び第2可動部64bの間隔を狭めて、第1把持部82a及び第2把持部82bによって下端部212bが把持されるように、駆動部66を制御する。ステップS42での第1可動部64a及び第2可動部64bの駆動量は、ステップS32と同じ設定であってもよい。ステップS42において、収穫制御部110は、柄220の延在方向が軸線26に対して交差した状態で、支持部80により収穫対象物210を支持させてもよい。
【0095】
ステップS43では、例えば、収穫制御部110が、エンドエフェクタ50の本体部60に対して、支持部80によって支持されている収穫対象物210の姿勢を変更する動作をロボット2に実行させる。収穫制御部110は、図13(a)及び図13(b)に示されるように、支持部80が軸線88まわりに回転して柄220の延在方向と軸線26とが成す角度が減少するように、多関節アーム10により本体部60を移動させる。
【0096】
柄220の延在方向(柄220の両端を通る仮想ライン)と軸線26とがねじれの関係にある場合、柄220の延在方向と軸線26とが成す角度は、交点を有して交差するように、いずれか一方を平行に移動させて算出される。ステップS43では、例えば、収穫制御部110が、本体部60を斜め後方に持ち上げるように、多関節アーム10を動作させる。本体部60が斜め後方に持ち上がるように移動することで、収穫対象物210を支持している第1把持部82a及び第2把持部82bが軸線88まわりに回転して、収穫対象物210の姿勢が変化する。
【0097】
一例では、収穫制御部110は、第1把持部82a及び第2把持部82bそれぞれの先端が下向きとなるまで、多関節アーム10により本体部60を斜め後方に移動させる。ステップS43の実行後における柄220の延在方向と軸線26とが成す角度は、ステップS43の実行前における上記角度よりも小さい。
【0098】
ステップS44では、例えば、収穫制御部110が、柄220が捩られるように、エンドエフェクタ50を軸線26まわりに回転させる。一例では、収穫制御部110は、軸線26まわりの周方向における一方向に回転が継続するように多関節アーム10のアクチュエータ46を制御する。収穫制御部110は、柄220が捩られて柄220が切断されるように(柄220が捩じ切られるように)、多関節アーム10のアクチュエータ46によりエンドエフェクタ50を回転させる。
【0099】
収穫制御部110は、予め定められた回転数だけエンドエフェクタ50が回転するように、多関節アーム10のアクチュエータ46を制御してもよい。上記回転数は、収穫対象物210の個体差が多少あっても、柄220を切断できる程度の値に設定される。収穫制御部110は、軸線26まわりにエンドエフェクタ50を回転させるアクチュエータ46の状態(例えば、トルク)、又は検出部90による検出結果から、柄220の切断を検知して、軸線26まわりのエンドエフェクタ50の回転を停止してもよい。
【0100】
ステップS41~S44の一連の処理の実行により、上端部212aが認識されない場合の収穫動作が終了し、支持部80によって収穫対象物210が支持された状態で、その収穫対象物210が農作物200から切り離される。ステップS44において、柄220が捩じ切られた後、第1把持部82a及び第2把持部82bの軸部分に設けられたねじりバネの復元力によって、第1把持部82a及び第2把持部82bが、ステップS43の実行前の位置に戻ってもよい。
【0101】
[変形例]
図8及び図9それぞれに示される一連の処理は一例であり、適宜変更可能である。上記一連の処理において、コントローラ100は、1つのステップと次のステップとを並列に実行してもよく、上述した例とは異なる順序で各ステップを実行してもよい。コントローラ100は、いずれかのステップを省略してもよく、いずれかのステップにおいて上述の例とは異なる処理を実行してもよい。
【0102】
コントローラ100は、ステップS02での撮像画像PIの処理において、実質的に同一のタイミングで、収穫対象物210の検出と、検出された収穫対象物210の特定の部位の認識(ステップS21の処理内容)とを行ってもよい。例えば、コントローラ100は、撮像画像PIの入力に対して、収穫対象物210を検出すると共に、その収穫対象物210の隠れの状態を判別するように機械学習により構築された学習モデルを用いて、収穫対象物210の検出と特定の部位(例えば、上端部212a)の認識とを行ってもよい。このように、実質的に同一のタイミングで、コントローラ100の対象検出部104が、撮像画像PIから収穫対象物210を検出し、コントローラ100の認識部108が、検出された収穫対象物210において上端部212aを認識してもよい。
【0103】
コントローラ100は、ステップS10の実行を開始した後に、ステップS10における収容動作の継続中に、ステップS09での台車4の走行を開始してもよい。この場合であっても、収容制御部112は、台車4が走行している期間において、ロボット2に収容動作を実行させる。収穫制御部110は、ステップS43を実行せずに、支持部80が下端部212bを支持した状態で、柄220が捩れて切断されるように、多関節アーム10によりエンドエフェクタ50を動作させてもよい。
【0104】
エンドエフェクタ50の支持部80は、把持以外の方法によって、収穫対象物210を支持してもよい。支持部80は、例えば、吸着によって、収穫対象物210を支持してもよい。エンドエフェクタ50の切断部70は、柄220に力を直接作用させて柄220を切断できれば、刃による切断以外のどのような方法によって、柄220を切断してもよい。
【0105】
収穫対象物210が長尺形状を有しない場合(例えば、農作物200がトマトである場合)であっても、認識部108は、柄に連結された端部を認識してもよい。そして、収穫制御部110は、上記端部が認識されたか否かに応じて、相異なる動作でロボット2に収穫動作を実行させてもよい。
【0106】
上述の例では、収穫対象物210の特定の部位(例えば、柄に連結された端部)の認識結果に応じて収穫動作が異なるが、これに代えて、コントローラ100は、特定の部位が認識されるか否かに応じて、処理内容を変更してもよい。具体的には、コントローラ100は、特定の部位が認識された場合には、収穫対象物210を収穫するようにロボット2を制御し、特定の部位が認識されない場合には、収穫対象物210の個体情報を別の装置に送信する。収穫制御部110は、例えば、上端部212aが認識された場合に、ロボット2に収穫動作を実行させ、上端部212aが認識されない場合には、ロボット2に収穫動作を実行させない。
【0107】
コントローラ100は、例えば、機能モジュールとして、図5に示されるように、収穫対象物210の個体情報を別の装置に送信する情報通知部118を備えてもよい。情報通知部118は、特定の部位(例えば、上端部212a)が認識されない場合に、収穫対象物210の個体情報を別の装置に送信する。情報通知部118は、別の装置として、例えば、上位のコントローラ、又は、収穫対象物210の収穫作業を収穫装置1と一緒に行う作業者が保持するユーザ端末に個体情報を送信する。収穫対象物210の個体情報には、その収穫対象物210の位置を示す情報が含まれてもよい。一例では、上記作業者が、コントローラ100から通知を受けて、個体情報に基づいて収穫対象物210を特定したうえで、その収穫対象物210を収穫する。
【0108】
以上に説明した種々の例のうちの1つの例において、他の例で説明した事項の少なくとも一部が組み合わされてもよい。
【0109】
[第1実施形態のまとめ]
本開示は、以下の[1]~[13]の構成と、付記1の構成とを含む。
【0110】
[1]ロボット2と、農作物200の少なくとも一部を撮像して得られる撮像画像PIから、農作物200における収穫対象物210を検出する対象検出部104と、検出された収穫対象物210において特定の部位を認識する認識部108と、特定の部位を認識したか否かに応じて、相異なる動作により収穫対象物210を収穫するように、ロボット2を制御する収穫制御部110と、を備える収穫装置1。
農作物200における収穫対象物を収穫する際に、その収穫対象物における特定の部位にロボットのツールがアプローチできるか否かによって、収穫に適した動作が異なる。上記収穫装置1では、特定の部位が認識されるか否かによって、ロボット2が収穫を行う際の動作が異なるので、収穫に適した動作をロボット2に実行させることができる。これにより、収穫作業の効率が向上する。従って、上記収穫装置1は、作業の効率化に有用である。
【0111】
[2]収穫対象物210は、柄220に連結された第1端部を含み、認識部108は、特定の部位として、第1端部を認識する、上記[1]に記載の収穫装置1。
収穫対象物210における柄220近傍の端部に収穫装置1がアプローチできるか否かによって、収穫に適したロボット2の動作が異なる。上記構成では、第1端部の認識結果に応じてロボット2の動作が異なるので、収穫に適した動作を行うようにロボット2を動作させることができる。そのため、収穫対象物210を収穫するための作業の効率化に有用である。
【0112】
[3]収穫対象物210は、第1端部(上端部212a)から柄220と反対方向に延びる形状を有し、ロボット2は、収穫対象物210を支持可能な支持部80を含むエンドエフェクタ50を有し、収穫制御部110は、第1端部(上端部212a)が認識された場合には、支持部80が第1端部(上端部212a)を支持するように、ロボット2を制御し、第1端部(上端部212a)が認識されない場合には、支持部80が第1端部(上端部212a)とは反対側の第2端部(下端部212b)を支持するように、ロボット2を制御する、上記[2]に記載の収穫装置1。
柄220を切断することによって、収穫対象物210が農作物200から分離されて収穫される。上記構成では、柄220に連結された第1端部(上端部212a)が認識された場合には、収穫対象物210のうちの柄220に近い箇所が支持されるので、より安定して収穫を行うことが可能である。また、第1端部(上端部212a)が認識されない場合でも、柄220から遠い箇所を支持して、間接的に柄220に力を作用させることで、収穫を行うことが可能である。
【0113】
[4]収穫制御部110は、第1端部(上端部212a)が認識された場合も第1端部(上端部212a)が認識されない場合も、収穫対象物210の長手方向と交差する方向から、支持部80が収穫対象物210にアプローチするように、ロボット2を制御する、上記[3]に記載の収穫装置1。
この場合、第1端部(上端部212a)の認識結果の違いによって、ロボット2の可動範囲が広がらないので、農作物200のうちの収穫対象物210の周囲にある部位を損傷させる可能性を低減できる。
【0114】
[5]ロボット2は、多関節アーム10を更に有し、エンドエフェクタ50は、軸線26まわりに回転可能な状態で多関節アーム10の先端に接続されており、収穫制御部110は、第1端部(上端部212a)が認識されない場合には、支持部80に第2端部(下端部212b)を支持させた状態で軸線26まわりにエンドエフェクタ50を回転させて柄220が捩られるように、ロボット2を制御する、上記[3]又は[4]に記載の収穫装置1。
この場合、柄220に近い第1端部にエンドエフェクタ50がアプローチできなくても、農作物200から収穫対象物210をより確実に切り離すことが可能である。
【0115】
[6]エンドエフェクタ50は、軸線26まわりに回転可能な状態で多関節アーム10の先端に接続された本体部60を更に含み、支持部80は、軸線26に交差する軸線88まわりに回転可能な状態で本体部60に接続されており、収穫制御部110は、第1端部(上端部212a)が認識されない場合には、柄220の延在方向が軸線26に対して交差した状態で、支持部80により収穫対象物210を支持させることと、支持部80が軸線88まわりに回転して柄220の延在方向と軸線26とが成す角度が減少するように、多関節アーム10により本体部60を移動させることと、柄220が捩られるように、軸線26まわりにエンドエフェクタ50を回転させることと、を順に実行する、上記[3]~[5]のいずれか1つに記載の収穫装置1。
この場合、柄220の延在方向に交差する方向から支持部80を収穫対象物210にアプローチさせて支持させても、柄220の捩じ切りが容易となる姿勢まで収穫対象物210の姿勢が変化する。そのため、柄220のより確実な捩じ切りと、ロボット2の多関節アーム10の可動範囲の縮小との両立を図ることができる。
【0116】
[7]エンドエフェクタ50は、収穫対象物210において支持部80に支持された箇所の近傍を切断可能な切断部70を更に含み、収穫制御部110は、第1端部(上端部212a)が認識された場合には、支持部80により第1端部(上端部212a)を支持させた状態で切断部70により柄220を切断させるように、ロボット2を制御する、上記[3]~[6]のいずれか1つに記載の収穫装置1。
この場合、収穫対象物210に連結された柄220に力が直接作用して、柄220が切断されるので、短時間で収穫対象物210を収穫することができる。
【0117】
[8]切断部70は、刃72と、刃72を覆うカバー部材74と、カバー部材74に対して刃72を移動させる駆動部76と、を含み、収穫制御部110は、第1端部(上端部212a)が認識された場合に、刃72がカバー部材74に覆われた状態から、刃72がカバー部材74から露出する状態に切り替えるように駆動部76を制御する、上記[7]に記載の収穫装置1。
この場合、切断部70を使用していない期間では、カバー部材74によって刃72が覆われているので、収穫対象物210以外の部位を損傷させてしまう可能性を低減できる。上端部212aが認識されない場合には、切断部70が用いられないので、切断部70の使用有無が異なる動作で収穫する場合に、上記構成は、より有益である。
【0118】
[9]ロボット2が搭載され走行可能な台車4と、収容制御部112と、を更に備え、収穫制御部110は、台車4が停止している期間において、収穫対象物210を収穫する収穫動作をロボット2に実行させ、収容制御部112は、少なくとも台車4が走行している期間において、収穫された収穫対象物210を収容部6に収容する収容動作をロボット2に実行させる、上記[1]~[8]のいずれか1つに記載の収穫装置1。
台車4が停止して収穫対象物210の収穫が行われることで、ロボット2による収穫作業の安定化が図られる。また、台車4が走行しながら、収穫対象物210を収容する動作が行われるので、台車4が停止した状態で全ての収容動作が行われる場合に比べて、作業全体の効率化を図ることができる。
【0119】
[10]農作物200の少なくとも一部を撮像可能な撮像装置8と、ロボット2及び撮像装置8が搭載され走行可能な台車4と、撮像制御部102と、走行と停止とを繰り返すように台車4を制御する台車制御部106と、を更に備え、収穫制御部110は、台車4が停止している期間において、収穫対象物210を収穫する収穫動作をロボット2に実行させ、撮像制御部102は、収穫対象物210をロボット2が収穫した後に、撮像装置8から第2撮像画像を取得し、台車制御部106は、対象検出部104により第2撮像画像から次の収穫対象物210が検出されない場合に、台車4を走行させる、上記[1]~[8]のいずれか1つに記載の収穫装置1。
1つの収穫対象物210を収穫した後、農作物200の状態が変化するので、新しい収穫対象物210がロボット2により収穫可能となる場合がある。上記構成では、台車4が停止した箇所において、収穫対象物210が検出されなくなるまで、収穫作業が継続されるので、作業の効率化を図ることができる。
【0120】
[11]撮像制御部102は、台車4が走行している期間において、撮像装置8に撮像を実行させ、対象検出部104は、台車4が走行している期間に撮像装置8が得た情報から、次の収穫対象物210を検出する、上記[10]に記載の収穫装置1。
この場合、ロボット2が移動しながら、次の収穫対象物210を探すので、台車4が停止して次の収穫対象物210を探してから移動を開始する場合に比べて、次の収穫対象物210への収穫動作へ早く移行できる。そのため、作業の効率化を図ることができる。
【0121】
[12]ロボット2と、農作物200の少なくとも一部を撮像して得られる撮像画像PIから、農作物200における収穫対象物210を検出する対象検出部104と、検出された収穫対象物210において特定の部位を認識する認識部108と、特定の部位が認識された場合に、収穫対象物210を収穫するようにロボット2を制御する収穫制御部110と、特定の部位が認識されない場合に、収穫対象物210の個体情報を別の装置に送信する情報通知部118と、を備える収穫装置1。
農作物200における収穫対象物を収穫する際に、その収穫対象物における特定の部位にロボットのツールがアプローチできるか否かによって、収穫に適した動作が異なり、特定の部位にアプローチして収穫するほうが、短時間で収穫できる場合がある。上記収穫装置1では、特定の部位が認識された場合には、ロボット2による収穫動作が行われ、特定の部位が認識されない場合には、収穫対象物210の個体情報が別の装置に送信される。例えば、特定の部位が認識されなかった場合には、上記個体情報に基づいて、作業者又は別の収穫装置によって、その収穫対象物210の収穫作業を行うことができる。これにより、収穫作業の効率が向上する。従って、上記収穫装置1は、作業の効率化に有用である。
【0122】
[13]農作物200の少なくとも一部を撮像して得られる撮像画像PIから、農作物200における収穫対象物210を検出することと、検出された収穫対象物210において特定の部位を認識することと、特定の部位を認識したか否かに応じて、相異なる動作により収穫対象物210を収穫するように、ロボット2を制御することと、を含む収穫装置1の制御方法。
この制御方法は、上記[1]に記載の収穫装置1と同様に、作業の効率化に有用である。
【0123】
[付記1]
ロボットと、
前記ロボットが搭載され走行可能な台車と、
農作物の少なくとも一部を撮像して得られる撮像画像から、前記農作物における収穫対象物を検出する対象検出部と、
検出された前記収穫対象物を収穫するように、前記ロボットを制御する収穫制御部と、
収容制御部と、を備え、
前記収穫制御部は、前記台車が停止している期間において、前記収穫対象物を収穫する収穫動作を前記ロボットに実行させ、
前記収容制御部は、少なくとも前記台車が走行している期間において、収穫された前記収穫対象物を収容部に収容する収容動作を前記ロボットに実行させる、収穫装置。
【0124】
<第2実施形態>
続いて、図14図22を参照しながら、第2実施形態に係る収穫装置、及びその制御方法について説明する。ロボット2は、エンドエフェクタ50に代えて、エンドエフェクタ50Aを有してもよい。図14及び図15に示されるエンドエフェクタ50Aは、収穫用のツールであり、エンドエフェクタ50と同様に、多関節アーム10の手首部17に、軸線26まわりに回転可能な状態で接続されている。エンドエフェクタ50Aは、その延在方向が、軸線26に交差(例えば、直交)するように、手首部17に接続されてもよい。
【0125】
図14において、方向D1が、エンドエフェクタ50Aが延びる方向に相当する。以下の説明において、「前方」は、エンドエフェクタ50Aの手首部17に接続される端部である基端部から、エンドエフェクタ50Aの基端部とは反対側の端部である先端部に向かう方向(向き)を意味する。「後方」は、エンドエフェクタ50Aの先端部から基端部に向かう方向(向き)を意味する。方向D2及び方向D3のそれぞれは、エンドエフェクタ50の説明で用いた方向と同じ意味を有する。
【0126】
エンドエフェクタ50Aは、本体部60Aと、保持部80Aと、を備える。本体部60Aは、ベース部62と、第1可動部64aと、第2可動部64bと、駆動部66と、切断部70Aと、ストッパー69と、を有する。エンドエフェクタ50Aにおいては、保持部80Aが、第1可動部64a及び第2可動部64bによって支持される。
【0127】
切断部70Aは、切断部70と同様の機能を有し、収穫対象物210において保持部80Aに保持された箇所の近傍を切断可能である。切断部70Aは、切断部70と異なり、カバー部材74を有さずに、刃72と駆動部76(切断駆動部)とを有する。ストッパー69は、収穫対象物210が前方から刃72に当たるような移動を規制する。ストッパー69は、例えば、方向D1において、保持部80Aと、切断動作を行っていない待機中の刃72が配置される位置との間に設けられている。ストッパー69は、第2可動部64bに接続され、第2可動部64bの接続部分から、方向D2に延びるように形成されていてもよい。方向D3において、ストッパー69は、刃72の駆動(出し入れ)の妨げとならない位置に設けられている。
【0128】
保持部80Aは、収穫対象物210を保持可能な部分である。保持部80Aは、支持部80と異なり、本体部60(第1可動部64a及び第2可動部64b)に対して、方向D3に沿う軸線まわりに回転可能でなくてもよい。保持部80Aは、収穫対象物210の側方から挟むように保持する一対の把持部を含んでもよい。収穫対象物210の側方とは、収穫対象物210の延在方向に対して交差する方向を意味する。保持部80Aは、エンドエフェクタ50の支持部80と同様に、一対の把持部として、第1把持部82aと第2把持部82bとを有してもよい。第1把持部82aは、第1可動部64aに対する相対的な移動が許容されていない状態で、第1可動部64aに固定されていてもよい。第2把持部82bは、第2可動部64bに対する相対的な移動が許容されていない状態で、第2可動部64bに固定されていてもよい。
【0129】
駆動部66は、モータ66aを含んでいてもよい。モータ66aは、第1把持部82a及び第2把持部82bの間の間隔(以下、「間隔d」と表記する。)を変更するように、第1把持部82a及び第2把持部82bを駆動する。モータ66aは、方向D2において、第1把持部82a及び第2把持部82bの間の最短距離が変化するように、第1可動部64a及び第2可動部64bを駆動してもよい。モータ66aは、その回転位置を検出する検出器を含んでもよい。なお、エンドエフェクタ50Aの本体部60Aは、切断部70Aに代えて切断部70を有し、ストッパー69を有していなくてもよい。
【0130】
収穫装置1は、撮像装置9を備えてもよい。撮像装置9は、多関節アーム10の先端部(手首部17)に設けられたカメラ、及び、エンドエフェクタ50Aに設けられたカメラの少なくとも一方を有する。撮像装置9が備える1以上のカメラは、その視野(撮像対象)が、エンドエフェクタ50Aの位置に応じて変化するように設置されてもよい。撮像装置9は、例えば、カメラ92と、カメラ94と、を有する。
【0131】
カメラ92は、可視光を用いて視野内を撮像してもよい。カメラ92は、手首部17に設けられている。カメラ92は、その視野が前方を向くように設置されてもよい。カメラ92は、農作物200の少なくとも一部を撮像可能である。カメラ94は、可視光を用いて視野内を撮像してもよい。カメラ94は、ベース部62に設けられている。カメラ94は、その視野が前方を向き、保持部80Aの周囲を撮像するように設置されてもよい。カメラ94は、第1把持部82a及び第2把持部82bの間に収穫対象物210が位置しているときに、その収穫対象物210の少なくとも一部を撮像可能であってもよい。なお、図15においては、手首部17、カメラ92、及びカメラ94は、省略されている。
【0132】
コントローラ100は、図5に示される各機能モジュールに代えて、図16に示されるように、対象検出部122と、配置制御部124と、収穫判定部126と、部位特定部128と、第1アプローチ制御部130と、保持判定部132と、第2アプローチ制御部134と、柄認識部136と、収穫制御部138と、を有してもよい。これらの機能モジュールが実行する処理は、コントローラ100が実行する処理に相当する。
【0133】
対象検出部122は、農作物200の少なくとも一部を撮像して得られる1以上の画像のいずれかに基づいて、農作物200における収穫対象物210を検出する処理を実行する。対象検出部122は、例えば、対象検出部104と同様に、撮像装置8から取得された撮像画像PIから、収穫対象物210を検出する。対象検出部122は、撮像装置8が取得した距離データから、収穫対象物210の位置(例えば、ロボット2又は台車4の基準位置からの相対位置)を算出してもよい。
【0134】
配置制御部124は、収穫対象物210を収穫するための動作を開始する位置(以下、「動作開始位置」という。)にエンドエフェクタ50Aを配置するようにロボット2を制御する。配置制御部124は、例えば、手首部17に設けられたカメラ92の視野内に収穫対象物210の全体が含まれる位置に、多関節アーム10によりエンドエフェクタ50Aを移動させる。
【0135】
収穫判定部126は、収穫判定処理を実行する。収穫判定部126は、収穫判定処理において、農作物200の少なくとも一部を撮像して得られる1以上の画像のいずれかに基づいて、収穫対象物210のサイズを演算することと、そのサイズの演算結果に基づいて、収穫対象物210を収穫するか否かを決定することと、を実行する。収穫判定部126は、エンドエフェクタ50Aが上記動作開始位置に配置された状態でのカメラ92の撮像により得られた画像に基づいて、収穫対象物210のサイズ(大きさ)を演算してもよい。
【0136】
部位特定部128は、農作物200の少なくとも一部を撮像して得られる1以上の画像のいずれかに基づいて、収穫対象物210におけるエンドエフェクタ50Aがアクセス可能な部位を特定する。以下、部位特定部128により特定される部位を「第1部位」と称する。部位特定部128は、例えば、上記1以上の画像のいずれかの画像内において、収穫対象物210のうちの障害物等によって隠れていない箇所を、第1部位として特定する。部位特定部128は、エンドエフェクタ50Aが上記動作開始位置に配置された状態でのカメラ92の撮像により得られた画像に基づいて、第1部位を特定してもよい。部位特定部128は、第1部位の位置(例えば、ロボット2又は台車4の基準位置からの相対位置)を算出してもよい。
【0137】
部位特定部128は、収穫対象物210のうちの柄220に連結された端部(上端部212a)と柄220とは反対側の端部(下端部212b)との間に位置する領域から、第1部位を特定してもよい。部位特定部128は、農作物200の少なくとも一部を撮像して得られる1以上の画像のいずれかに基づいて、収穫対象物210における2以上の候補部位を特定することと、2以上の候補部位のうちの、エンドエフェクタ50Aがアクセス可能であり、且つ、柄220に最も近い部位を、第1部位として特定することと、を実行してもよい。
【0138】
第1アプローチ制御部130は、農作物200の収穫対象物210における第1部位にエンドエフェクタ50Aを近づけるように、ロボット2を制御する。第1アプローチ制御部130は、例えば、第1把持部82a及び第2把持部82bの間に第1部位が位置するように、多関節アーム10によりエンドエフェクタ50Aを第1部位に移動させる(近づける)。第1アプローチ制御部130は、エンドエフェクタ50Aを第1部位に近づけて、第1把持部82a及び第2把持部82bの間の間隔dを小さくして第1部位に接触するようにロボット2を制御してもよい。
【0139】
第1アプローチ制御部130は、多関節アーム10により、第1把持部82a及び第2把持部82bを第1部位に近づけることと、第1把持部82a及び第2把持部82bの間の間隔dが小さくなるように、モータ66aにより第1把持部82a及び第2把持部82bを駆動することと、第1把持部82a及び第2把持部82bが受ける反力に基づいて、モータ66aによる駆動を停止させることと、を実行してもよい。
【0140】
保持判定部132は、モータ66aによる第1把持部82a及び第2把持部82bの駆動を停止したときのモータ66aの位置(以下、「停止位置」という。)に基づいて、第1把持部82a及び第2把持部82bが収穫対象物210を保持したか否かを判定する。保持判定部132は、モータ66aの停止位置により、第1把持部82a及び第2把持部82bの間の間隔dが所定値よりも大きいと判断できる場合に、保持部80Aが収穫対象物210を保持したと判定してもよい。保持判定部132は、モータ66aの停止位置により、間隔dが所定値以下であると判断できる場合に、保持部80Aが収穫対象物210を保持していないと判定してもよい。
【0141】
第2アプローチ制御部134は、上記第1部位から収穫対象物210における第1部位とは異なる部位(以下、「第2部位」という。)にエンドエフェクタ50Aを移動させて、エンドエフェクタ50Aに第2部位を保持させるように、ロボット2を制御する。第2アプローチ制御部134は、例えば、第1部位から、収穫対象物210に連結された柄220に向かってエンドエフェクタ50Aを移動させて、第1部位と柄220との間に位置する部位を第2部位としてエンドエフェクタ50Aに保持させるように、ロボット2を制御する。
【0142】
第2アプローチ制御部134は、収穫対象物210の長手方向に沿って柄220に向かってエンドエフェクタ50Aを移動させて、第2部位として、収穫対象物210のうちの柄220に連結された端部(上端部212a)をエンドエフェクタ50Aに保持させるようにロボット2を制御してもよい。第2アプローチ制御部134は、第1把持部82a及び第2把持部82bの間に収穫対象物210が位置する状態を維持しつつ、エンドエフェクタ50Aを第2部位に移動させるように、ロボット2を制御してもよい。
【0143】
第2アプローチ制御部134は、第1部位から第2部位までエンドエフェクタ50Aを移動させる間の間隔dが、第1アプローチ制御部130が第1部位までエンドエフェクタ50Aを移動させる間の間隔dよりも小さくなるように、モータ66aを制御してもよい。第2アプローチ制御部134は、保持判定部132により、第1部位を保持部80Aが保持したと判定された場合に、第1部位から第2部位までエンドエフェクタ50Aを移動させる制御を実行してもよい。第2アプローチ制御部134は、後述する柄220の認識結果に基づいてエンドエフェクタ50Aを停止させることと、エンドエフェクタ50Aの停止位置に対応する収穫対象物210の部位を第2部位としてエンドエフェクタ50Aに保持させることと、を順に実行してもよい。
【0144】
柄認識部136は、第1部位から柄220に向かってエンドエフェクタ50Aが移動している間にカメラ94(又は、カメラ92)から得られる認識用画像に基づいて、柄220を認識する。柄認識部136は、例えば、柄220に向かってエンドエフェクタ50Aが移動している間に、カメラ94による撮像を継続させ、各認識用画像において柄220を検出する処理を実行する。柄認識部136は、認識用画像ごとに、柄220を検出する処理を実行して、柄220が検出されない場合には柄220を認識せず、柄220が検出された場合には柄220を認識する。柄認識部136は、画像の入力に応じて、柄220を検出するように機械学習により予め構築された検出モデルを用いて、柄220を検出してもよい。
【0145】
収穫制御部138は、エンドエフェクタ50Aにより第2部位を保持した状態で、収穫対象物210を収穫するようにロボット2を制御する。収穫制御部138は、例えば、保持部80Aにより第2部位(上端部212a)を保持した状態で切断部70Aにより柄220を切断するように、ロボット2を制御する。収穫制御部138は、保持部80Aにより第2部位を保持させ、エンドエフェクタ50Aを変位させて柄220にテンションを加えた状態で切断部70Aにより柄220を切断させるように、ロボット2を制御してもよい。
【0146】
収穫制御部138は、第2アプローチ制御部134により保持部80Aが第2部位を保持した後に、柄220に交差する方向において収穫対象物210を柄220に連結された茎202(例えば、主茎)から遠ざけるようにロボット2を制御することと、刃72により柄220を切断するように、駆動部76により刃72を駆動することと、を実行してもよい。切断時の刃72の駆動量は、予め定められていてもよく、あるいは、収穫制御部138は、刃72が受ける反力を示す情報(例えば、駆動部76に含まれるモータのトルク)に基づき、刃72の駆動量を調整してもよい。
【0147】
続いて、図17図24を参照しながら、エンドエフェクタ50Aを備える収穫装置1の制御方法について説明する。この制御方法は、少なくとも、農作物200の収穫対象物210における第1部位にロボット2が有するエンドエフェクタ50Aを近づけるように、ロボット2を制御することと、第1部位から収穫対象物210における第2部位にエンドエフェクタ50Aを移動させて、エンドエフェクタ50Aに第2部位を保持させるように、ロボット2を制御することと、を含む。また、この制御方法は、エンドエフェクタ50Aにより第2部位を保持した状態で、収穫対象物210を収穫するようにロボット2を制御することと、を含む。
【0148】
図17は、図16に示されるコントローラ100が実行する一連の処理の一例を示すフローチャートである。図17に示される一連の処理は、図8に示される一連の処理におけるステップS05の収穫動作において実行されてもよい。ステップS02,S06が、対象検出部122によって実行されてもよい。
【0149】
図17に示されるように、コントローラ100は、最初にステップS51を実行する。ステップS51では、例えば、配置制御部124が、上記動作開始位置にエンドエフェクタ50Aを配置するように、ロボット2を制御する。図18(a)には、ステップS51が実行された後の様子が例示されている。ステップS51の実行により、カメラ92が、収穫対象物210を含む範囲を撮像可能な状態となってもよい。
【0150】
次に、コントローラ100は、ステップS52を実行する。ステップS52では、例えば、収穫判定部126が、カメラ92に撮像を実行させることで、カメラ92から画像データを取得する。図18(b)には、カメラ92の撮像により得られる撮像画像PI1が示されている。
【0151】
次に、コントローラ100は、ステップS53を実行する。ステップS53では、例えば、収穫判定部126が、撮像画像PI1から収穫対象物210を検出したうえで、その収穫対象物210のサイズを演算する。収穫判定部126は、例えば、撮像画像PI1において、画像内の収穫対象物210を囲む矩形のバウンディングボックスを検出する。収穫判定部126は、エンドエフェクタ50A(カメラ92)と収穫対象物210との間の距離と、画像上の収穫対象物210の大きさとに基づいて、収穫対象物210のサイズを演算してもよい。
【0152】
収穫判定部126は、画像上の収穫対象物210の大きさを、収穫対象物210に対応するバウンディングボックスを利用して算出してもよい。一例では、収穫判定部126は、バウンディングボックスから収穫対象物210の領域を抽出したうえで、収穫対象物210の横方向の大きさ(例えば、代表位置の大きさ、又は、複数の代表位置の大きさの平均値)を算出する。そして、収穫判定部126は、バウンディングボックスの縦方向の大きさと、収穫対象物210の横方向の大きさの算出結果とを乗算することで、収穫対象物210の画像上のサイズを演算してもよい。これに代えて、収穫判定部126は、バウンディングボックスの縦の大きさと横の大きさとを乗算することで、収穫対象物210の画像上のサイズを演算してもよく、収穫対象物210として抽出された領域のピクセル数から、収穫対象物210の画像上のサイズを演算してもよい。
【0153】
次に、コントローラ100は、ステップS54を実行する。ステップS54では、例えば、収穫判定部126が、ステップS53でのサイズの演算結果に基づいて、収穫対象物210が収穫基準を満たす否かを判定する。収穫判定部126は、収穫対象物210のサイズが所定閾値よりも大きい場合に収穫基準を満たすと判定し、収穫対象物210のサイズが所定閾値以下である場合に収穫基準を満たさないと判定してもよい。
【0154】
ステップS54において、収穫基準を満たすと判定された場合(ステップS54:YES)、コントローラ100が実行する処理は、ステップS55に進む。ステップS55では、例えば、部位特定部128が、撮像画像PI1に基づいて、エンドエフェクタ50Aが最初にアプローチする部位である第1部位を特定する。一例では、部位特定部128は、撮像画像PI1において検出されたバウンディングボックス内から、3つの候補部位を算出する。
【0155】
図18(b)においては、3つの候補部位が、「Cp1」、「Cp2」、及び「Cp3」で示されている。候補部位Cp1、候補部位Cp2、及び候補部位Cp3は、上方(画像上の上)から、この順で並んでいる。候補部位Cp2は、バウンディングボックスの縦方向における中央に位置する。候補部位Cp1は、バウンディングボックスの上端と候補部位Cp2との中間に位置する。候補部位Cp3は、候補部位Cp2とバウンディングボックスの下端との中間に位置する。候補部位Cp1、候補部位Cp2、及び候補部位Cp3の横方向における位置は、それぞれ、バウンディングボックスの中央であってもよい。
【0156】
部位特定部128は、候補部位Cp1、候補部位Cp2、及び候補部位Cp3のうちの、エンドエフェクタ50Aがアクセス可能であり、最も柄220に近い(最も上方にある)部位を、第1部位として特定してもよい。部位特定部128は、撮像画像PI1内において、候補部位の周囲に障害物が存在するか否か、及び、候補部位が隠れているか否かに応じて、エンドエフェクタ50Aがアクセス可能かどうかを判定してもよい。
【0157】
一例では、部位特定部128は、候補部位Cp1、候補部位Cp2、及び候補部位Cp3の全てがアクセス可能であれば、候補部位Cp1を第1部位として特定する。別の一例では、部位特定部128は、候補部位Cp1が障害物の存在によりアクセス可能でなく、他の2つの候補部位がアクセス可能であれば、候補部位Cp2を第1部位として特定する。以上のように、切断対象である柄220の近傍までの距離が短い候補部位が優先して選択される。
【0158】
次に、コントローラ100は、ステップS56を実行する。ステップS56では、例えば、コントローラ100が、第1アプローチ制御を実行する。第1アプローチ制御では、第1アプローチ制御部130が、ステップS55で特定された第1部位にエンドエフェクタ50Aを近づけるように、ロボット2を制御してもよい。ステップS56における第1アプローチ制御の詳細については、後述する。
【0159】
次に、コントローラ100は、ステップS57を実行する。ステップS57では、例えば、コントローラ100が、第2アプローチ制御を実行する。第2アプローチ制御では、第2アプローチ制御部134が、第1部位から第2部位にエンドエフェクタ50Aを移動させて、エンドエフェクタ50Aに第2部位を保持させるように、ロボット2を制御してもよい。ステップS57における第2アプローチ制御の詳細については、後述する。
【0160】
次に、コントローラ100は、ステップS58を実行する。ステップS58では、例えば、コントローラ100が、収穫制御を実行する。収穫制御では、収穫制御部138が、エンドエフェクタ50Aにより第2部位を保持した状態で、収穫対象物210を収穫するようにロボット2を制御してもよい。ステップS58における収穫制御の詳細については、後述する。
【0161】
一方、ステップS54において、収穫基準を満たさないと判定された場合(ステップS54:NO)、コントローラ100が実行する処理は、ステップS59に進む。この場合、コントローラ100は、ステップS55~S58を実行しない。ステップS59では、例えば、コントローラ100が、収穫対象物210の収穫動作を中止する。コントローラ100は、エンドエフェクタ50AをステップS51の実行前の位置、又は待機位置に戻すように、ロボット2を制御してもよい。ステップS59の実行後、コントローラ100は、図8に示されるステップS06以降の処理を実行してもよい。
【0162】
図19は、ステップS56の第1アプローチ制御において、コントローラ100が実行する一連の処理を示すフローチャートである。コントローラ100は、最初にステップS61を実行する。ステップS61では、例えば、第1アプローチ制御部130が、ステップS55で特定された第1部位にエンドエフェクタ50Aを移動させるように、ロボット2を制御する。第1アプローチ制御部130は、第1部位にエンドエフェクタ50Aを移動させている間に、第1把持部82a及び第2把持部82bとの間の上記間隔dが、収穫対象物210の幅よりも大きくなるように、モータ66aを制御してもよい。
【0163】
一例では、第1アプローチ制御部130は、第1把持部82a及び第2把持部82bとの間の領域に収穫対象物210の第1部位が収まるまでエンドエフェクタ50Aを移動させるように、ロボット2を制御する。第1部位までエンドエフェクタ50Aを移動させる間において、コントローラ100は、移動中に新たに画像データを得ることなく、多関節アーム10によりエンドエフェクタ50Aを第1部位まで移動させてもよい。図20(a)には、第1部位までエンドエフェクタ50Aを移動させた後の様子が例示されている。
【0164】
次に、コントローラ100は、ステップS62を実行する。ステップS62では、例えば、第1アプローチ制御部130が、間隔dを小さくするような第1把持部82a及び第2把持部82bの駆動をモータ66aにより開始する。ステップS62の実行により、第1把持部82a及び第2把持部82bそれぞれが、収穫対象物210の第1部位に接触するように近づき始める。図20(b)には、第1把持部82a及び第2把持部82bが収穫対象物210を挟むように動作する様子が例示されている。
【0165】
次に、コントローラ100は、ステップS63を実行する。ステップS63では、例えば、第1アプローチ制御部130が、第1把持部82a及び第2把持部82bが受ける反力に応じたトルクが、閾値Thtよりも大きいか否かを判定する。第1アプローチ制御部130は、モータ66aへの制御指令、又はモータ66aでの検出値から、上記トルクを取得してもよい。閾値Thtは、予め定められており、例えば、第1把持部82a及び第2把持部82bが、収穫基準を満たす収穫対象物210を実際に把持した際に得られるトルク(実測値又は指令値)に基づき定められている。
【0166】
次に、コントローラ100は、ステップS64を実行する。ステップS64では、例えば、第1アプローチ制御部130が、第1把持部82a及び第2把持部82bの駆動を停止するようにモータ66aを制御する。第1把持部82a及び第2把持部82bの駆動を停止した際に、収穫対象物210へのエンドエフェクタ50Aのアプローチにトラブルが発生していなければ、第1把持部82a及び第2把持部82bは、収穫対象物210に接触した状態となる。
【0167】
次に、コントローラ100は、ステップS65を実行する。ステップS65では、例えば、保持判定部132が、ステップS64の実行時点でのモータ66aの停止位置から、間隔dを算出する。そして、保持判定部132は、間隔dが、閾値Thpよりも大きいか否かを判定する。閾値Thpは、予め定められており、例えば、第1把持部82a及び第2把持部82bが、収穫基準を満たす収穫対象物210を実際に把持した際の間隔dの計測値に基づき定められている。間隔dが閾値Thpよりも大きい場合には、第1把持部82a及び第2把持部82bが収穫対象物210を保持していると判断することができる。一方、間隔dが閾値Thp以下である場合には、第1把持部82a及び第2把持部82bが、収穫対象物210を保持せず、収穫対象物210の周囲にある葉又は茎等の障害物を保持しているか、何も保持していないと判断することができる。
【0168】
ステップS65において、間隔dが、閾値Thpよりも大きいと判断された場合(ステップS65:YES)、コントローラ100が実行する処理は、ステップS66に進む。ステップS66では、例えば、第1アプローチ制御部130が、間隔dを大きくするような第1把持部82a及び第2把持部82bの駆動をモータ66aにより実行する。第1アプローチ制御部130は、一度保持した収穫対象物210が、第1把持部82aと第2把持部82bとの間の領域から外に移動しない程度に、間隔dを広げるように、モータ66aを制御してもよい。間隔dを広げる大きさは、予め定められていてもよい。ステップS65の実行によって広げた後の間隔dは、ステップS61の実行中(第1部位までのアプローチ中)での間隔dよりも小さくてもよい。
【0169】
一方、ステップS65において、間隔dが、閾値Thp以下であると判断された場合(ステップS65:NO)、コントローラ100が実行する処理は、ステップS67に進む。ステップS67では、例えば、コントローラ100が、ステップS59と同様に、収穫対象物210の収穫動作を中止する。ステップS67の実行後、コントローラ100は、図8に示されるステップS06以降の処理を実行してもよい。
【0170】
図21は、ステップS57の第2アプローチ制御において、コントローラ100が実行する一連の処理を示すフローチャートである。コントローラ100は、最初にステップS71を実行する。ステップS71では、例えば、第2アプローチ制御部134が、エンドエフェクタ50Aの第1把持部82a及び第2把持部82bが、柄220に向かって移動するのを開始するようにロボット2を制御する。
【0171】
一例では、第2アプローチ制御部134は、撮像画像PI1に基づいて第1部位から柄220に向かう経路を演算して、その経路に沿った第1把持部82a及び第2把持部82bの移動を開始するように、ロボット2を制御する。第2アプローチ制御部134は、移動開始後においても、間隔dが、ステップS61の実行中での間隔dよりも小さい状態が維持されるようにモータ66aを制御してもよい。図22(a)には、第1把持部82a及び第2把持部82bを柄220に向かって移動させている様子が例示されている。
【0172】
次に、コントローラ100は、ステップS72を実行する。ステップS72では、例えば、柄認識部136が、カメラ94による撮像を開始させる。ステップS72以降、柄認識部136は、所定周期で、カメラ94に撮像を実行させてもよい。図22(b)には、カメラ94の撮像により得られる認識用画像PI2が例示されている。認識用画像PI2において、第1把持部82a及び第2把持部82bの近傍の上方の領域が写るように、カメラ94は設置されてもよい。柄認識部136は、撮像の度に得られる認識用画像PI2において、柄220を検出するように画像処理を実行する。
【0173】
次に、コントローラ100は、ステップS73を実行する。ステップS73では、例えば、第2アプローチ制御部134が、柄認識部136によって認識用画像PI2から柄220が認識(検出)されるまで待機する。ステップS73が繰り返されることで、認識用画像PI2から柄220が検出されるまで、柄220に向けた第1把持部82a及び第2把持部82bの移動が継続される。
【0174】
次に、コントローラ100は、ステップS74を実行する。ステップS74では、例えば、第2アプローチ制御部134が、エンドエフェクタ50Aを停止するようにロボット2を制御する。ステップS74の実行時点において、第1把持部82a及び第2把持部82bの間に、収穫対象物210が挟まれた状態が維持されていてもよい。ステップS74の実行時点において、第1把持部82a及び第2把持部82bの間に、収穫対象物210の上端部212aが位置するように、カメラ94の向きが調整されていてもよい。
【0175】
次に、コントローラ100は、ステップS75を実行する。ステップS75では、例えば、第2アプローチ制御部134が、間隔dを小さくして第1把持部82a及び第2把持部82bが収穫対象物210に接触するように、第1把持部82a及び第2把持部82bの駆動をモータ66aにより実行する。ステップS75の実行により、収穫対象物210のうちの、ステップS74の実行時点での第1把持部82a及び第2把持部82bの停止位置に対応する部位(例えば、上端部212a)が、第2部位として第1把持部82a及び第2把持部82bに保持される。第2アプローチ制御部134は、ステップS75において、ステップS62~S64と同様に、第1把持部82a及び第2把持部82bが受ける反力に応じたトルクに基づいて、第1把持部82a及び第2把持部82bの駆動を停止させてもよい。第2アプローチ制御部134は、ステップS65と同様に、第1把持部82a及び第2把持部82bの駆動を停止させた際のモータ66aの停止位置に基づいて、第1把持部82a及び第2把持部82bが収穫対象物210を保持したか否かを判定してもよい。
【0176】
ステップS75の実行後において、上述したステップS58の収穫制御が実行される。ステップS58の収穫制御では、例えば、収穫制御部138が、第2部位として上端部212aを第1把持部82a及び第2把持部82bが保持した状態で、刃72を進出させて柄220を切断するように駆動部76を制御する。図23(a)、図23(b)、図24(a)、及び図24(b)には、収穫制御に係るエンドエフェクタ50Aの動作が写真で示されている。
【0177】
図23(a)の写真には、ステップS75が実行され、且つステップS58の収穫制御が開始される前の様子であり、保持部80Aが上端部212aを保持した様子が例示されている。図23(a)において、「L」は、刃72(より詳細には刃先)を通り、且つ、刃72が出し入れ(進退)される方向に沿う仮想ラインである。仮想ラインLは、現在の位置で駆動部76により刃72を駆動させた際の刃72の移動軌跡から構成されるラインということもできる。仮想ラインL上での柄220と茎202との最短距離が、「Di1」で示されている。
【0178】
図23(b)の写真には、刃72による切断を開始する直前に、エンドエフェクタ50Aの動作により、収穫対象物210の姿勢を変化させている様子が例示されている。収穫制御部138は、以下の第1動作と第2動作とを実行するように、ロボット2を制御してもよい。第1動作の実行期間と第2動作の実行期間とは、少なくとも部分的に重複していてもよい。
【0179】
第1動作は、柄220にテンション(張力)を加えるように、多関節アーム10によりエンドエフェクタ50Aを変位させる動作である。収穫制御部138は、例えば、保持部80Aが上端部212aを保持した状態で、多関節アーム10によりエンドエフェクタ50Aを下方に移動させる。エンドエフェクタ50Aを下方に移動させる距離は、例えば、柄220が引っ張られて切断されず、収穫対象物210及び柄220を含む株201(苗)が引っ張られて切断されない程度に設定される。刃72による切断を容易にする観点から、エンドエフェクタ50Aを下方に移動させる距離は、2mm以上、3mm以上、4mm以上、又は5mm以上であってもよい。柄220に加えて、茎202が引っ張られて、柄220に適度なテンションが加わらないトラブル(例えば、株201の切断)を避ける観点から、エンドエフェクタ50Aを下方に移動させる距離は、20mm以下、18mm以下、16mm以下、又は15mm以下であってもよい。一例では、エンドエフェクタ50Aを下方に移動させる距離は、1mm~20mm、又は5mm~15mmである。上述した数値は一例であって、エンドエフェクタ50Aを下方に移動させる距離は、農作物200の種類又は生育状況等に応じて適宜設定されてもよい。
【0180】
第2動作は、上記仮想ラインL上での柄220と茎202との最短距離を大きくするように、多関節アーム10によりエンドエフェクタ50Aの位置及び姿勢を変化させる動作である。収穫制御部138は、例えば、保持部80Aが上端部212aを保持した状態で、エンドエフェクタ50Aのベース部62の後方部分を上方に移動させてエンドエフェクタ50Aを傾ける共に、エンドエフェクタ50Aの全体を後方に下げるようにロボット2を制御する。
【0181】
図24(a)の写真には、第2動作後の様子が例示されている。仮想ラインL上での柄220と茎202との最短距離が、「Di2」で示されている。距離Di2は、距離Di1よりも大きい。コントローラ100は、ベース部62の後方部分を上方に移動させて、エンドエフェクタ50Aを後方に下げる第2動作によって、第2動作の開始前の状態よりも柄220が茎202に対して離れるように、上述した動作開始位置からの収穫対象物210に対するアプローチ方向(移動経路)を決定してもよい。一例では、エンドエフェクタ50Aが障害物を避けるように収穫対象物210にアプローチすることで、上記第2動作によって、第2動作の開始前の状態よりも柄220が茎202に対して離れる状態となり得る。
【0182】
図24(b)の写真には、刃72により柄220を切断している様子が例示されている。「A」で囲む部分において、刃72の進出により柄220を切断している様子が示されている。仮想ラインL上において、柄220と茎202との間の最短距離が広がっているので、進出した刃72の刃先が、茎202に当たる可能性が低減される。作業時間の増加の抑制と茎202の損傷防止との両立の観点から、第2動作においてエンドエフェクタ50Aを傾ける角度は、2°~20°であってもよく、3°~18°であってもよく、5°~15°であってもよい。作業時間の増加の抑制と茎202の損傷防止との両立の観点から、第2動作においてエンドエフェクタ50Aを後方に移動させる距離は、1mm~10mmであってもよく、1.5mm~9mmであってもよく、2mm~8mmであってもよい。上述した数値は一例であって、第2動作におけるエンドエフェクタ50Aの動作量は、農作物200の種類又は生育状況等に応じて適宜設定されてもよい。収穫制御部138は、第1動作及び第2動作の両方に代えて、第1動作及び第2動作のいずれか一方の動作を実行するようにロボット2を制御してもよい。
【0183】
[変形例]
図21に示される一連の処理では、柄認識部136が柄220を認識するとエンドエフェクタ50Aが停止しているが、第1アプローチ制御部130は、柄認識部136により柄220を認識した時点から、任意に内容が定められた所定条件だけエンドエフェクタ50Aを移動させて、エンドエフェクタ50Aが停止するようにロボット2を制御してもよい。
【0184】
ステップS56の第1アプローチ制御のステップS61において、上述した例とは異なり、第1部位までエンドエフェクタ50Aを移動させる間に、コントローラ100は、画像データを取得することを継続してもよい。コントローラ100は、移動中に取得される画像データに基づいて、多関節アーム10によりエンドエフェクタ50Aを第1部位まで移動させてもよい。この場合、エンドエフェクタ50Aを移動させている間に、収穫対象物210の位置がずれても、目標の位置を修正することができる。なお、エンドエフェクタ50Aの第1部位までの移動中に画像データを取得しない場合には、処理すべき画像データが少ないので、コントローラ100の処理時間が短くなり、その結果、作業時間の短縮を図ることができる。
【0185】
エンドエフェクタ50Aは、保持部80Aに代えて、保持部として、人の手を模した5本指を有するハンド部を備えてもよい。この場合、ハンド部における第一指に対応する部位と、ハンド部における親指以外の指(例えば、第二指)に対応する部位とによって、一対の把持部が構成される。第2実施形態で説明した種々の例のうちの1つの例において、他の例で説明した事項の少なくとも一部が組み合わせられてもよい。
【0186】
第2実施形態で説明した事項の少なくとも一部と、第1実施形態で説明した事項の少なくとも一部とが組み合わせられてもよい。第1実施形態で説明した例では、コントローラ100(収穫制御部110)が、特定の部位を認識したか否かに応じて、相異なる動作により収穫対象物210を収穫するように、ロボット2を制御する。コントローラ100(収穫制御部110)は、相異なる動作の一方の動作として、第2実施形態で説明した動作により収穫対象物210を収穫するようにロボット2を制御してもよい。一例では、コントローラ100は、図9に示される一連の処理において、ステップS31~S33に代えて、図17に示される一連の処理のステップS55~S58を実行してもよい。あるいは、コントローラ100は、図9に示される一連の処理において、ステップS33に代えて、ステップS58(上記第1動作及び第2動作の少なくとも一方)を実行してもよい。
【0187】
[第2実施形態のまとめ]
本開示は、以下の[1A]~[15A]の構成を含む。
【0188】
[1A]エンドエフェクタを有するロボット2と、農作物200の収穫対象物210における第1部位にエンドエフェクタ50Aを近づけるように、ロボット2を制御する第1アプローチ制御部130と、上記第1部位から収穫対象物210における第2部位にエンドエフェクタ50Aを移動させて、エンドエフェクタ50Aに上記第2部位を保持させるように、ロボット2を制御する第2アプローチ制御部134と、エンドエフェクタ50Aにより上記第2部位を保持した状態で、収穫対象物210を収穫するようにロボット2を制御する収穫制御部138と、を備える、収穫装置1。
この収穫装置1では、収穫時に保持する第2部位とは異なる第1部位にエンドエフェクタ50Aが最初にアプローチすることで、第2部位の周囲の状況に合わせて(例えば、第2部位の周囲の障害物を避けながら、又は障害物を移動させながら)、第2部位にアプローチすることができる。そのため、第2部位をより適切にエンドエフェクタ50Aが保持するようにロボット2を動作させることができる。これにより、エンドエフェクタ50Aが収穫に適した状態で収穫対象物210を保持できないトラブルの発生を抑制できる。従って、上記収穫装置1は、作業の効率化に有用である。
【0189】
[2A]第2アプローチ制御部134は、上記第1部位から、収穫対象物210に連結された柄220に向かってエンドエフェクタ50Aを移動させて、上記第1部位と柄220との間に位置する上記第2部位をエンドエフェクタ50Aに保持させるように、ロボット2を制御する、上記[1A]に記載の収穫装置1。
柄220は、農作物200の茎202に近い箇所にあり、柄220の周囲に障害物が存在する場合がある。そのような場合でも、第1部位から第2部位にエンドエフェクタ50Aを移動させて第2部位を保持させることで、柄220の周囲の障害物の影響を低減させながら、エンドエフェクタ50Aが第2部位を保持することができる。
【0190】
[3A]収穫対象物210は、柄220から反対側に延びるように形成されており、第2アプローチ制御部134は、収穫対象物210の長手方向に沿って柄220に向かってエンドエフェクタ50Aを移動させて、上記第2部位として、収穫対象物210のうちの柄220に連結された端部(上端部212a)をエンドエフェクタ50Aに保持させるようにロボット2を制御する、上記[2A]に記載の収穫装置1。
例えば、収穫の効率化の観点から、柄220に連結された端部を保持した状態で、柄220に力を直接作用させて収穫を行うことが考えられる。一方、柄220の近傍には、主茎又は葉等の障害物が多く、エンドエフェクタ50Aを収穫対象物210から離れた位置から、柄220の近傍に近づけて上記端部を保持しようとした際に、障害物の影響により、エンドエフェクタ50Aによる保持動作が適切に行われない懸念がある。
これに対して、上記構成では、第2部位(柄220の近傍の端部)とは異なる位置にある第1部位に一度アプローチしてから、収穫対象物210の長手方向に沿って第2部位にエンドエフェクタ50Aを移動させて、第2部位を保持させる。そのため、第2部位のまわりに障害物があった場合でも、第1部位から第2部位にエンドエフェクタ50Aを移動させる際に、その障害物を移動させることができる。これにより、第2部位の周囲にある障害物に起因して、エンドエフェクタ50Aが第2部位を適切に保持できないトラブルの発生率を低減させることができる。
【0191】
[4A]農作物200の少なくとも一部を撮像して得られる1以上の画像のいずれかに基づいて、収穫対象物210におけるエンドエフェクタ50Aがアクセス可能な部位を、上記第1部位として特定する部位特定部128を更に備える、上記[2A]に記載の収穫装置1。
この場合、エンドエフェクタ50Aが、より確実に、第2部位以外の箇所にアプローチすることができる。
【0192】
[5A]収穫対象物210は、柄220から反対側に延びるように形成されており、第2アプローチ制御部134は、収穫対象物210の長手方向に沿って柄220に向かってエンドエフェクタ50Aを移動させて、上記第2部位として、収穫対象物210のうちの柄220に連結された端部(上端部212a)をエンドエフェクタ50Aに保持させるようにロボット2を制御し、部位特定部128は、収穫対象物210のうちの柄220に連結された端部(上端部212a)と柄220とは反対側の端部(下端部212b)との間に位置する領域から、上記第1部位を特定する、上記[4A]に記載の収穫装置1。
この場合、柄220とは反対側の端部(下端部212b)を第1部位として、その端部に最初にアプローチする場合よりも、エンドエフェクタ50Aが第1部位から第2部位まで移動する際の距離が短い。従って、作業の更なる効率化に有用である。
【0193】
[6A]部位特定部128は、上記1以上の画像のいずれかに基づいて、収穫対象物210における2以上の候補部位(Cp1,Cp2,Cp3)を特定することと、2以上の候補部位(Cp1,Cp2,Cp3)のうちの、エンドエフェクタ50Aがアクセス可能であり、且つ、柄220に最も近い部位を、上記第1部位として特定することと、を実行する、上記[5A]に記載の収穫装置1。
この場合、エンドエフェクタ50Aが収穫対象物210を適切に保持できないトラブルの発生率の低減と、作業の効率化との両立に有用である。
【0194】
[7A]エンドエフェクタ50Aは、収穫対象物210を側方から挟むように保持する一対の把持部(第1把持部82a及び第2把持部82b)を含み、第1アプローチ制御部130は、一対の把持部(第1把持部82a及び第2把持部82b)の間に上記第1部位が位置するように、ロボット2が有するアーム(多関節アーム10)によりエンドエフェクタ50Aを上記第1部位に移動させ、第2アプローチ制御部134は、一対の把持部(第1把持部82a及び第2把持部82b)の間に収穫対象物210が位置する状態を維持しつつ、エンドエフェクタ50Aを上記第2部位に移動させるように、ロボット2を制御する、上記[1A]~[6A]のいずれか1つに記載の収穫装置1。
この場合、エンドエフェクタ50Aが、第1部位から第2部位に移動する際に、一対の把持部(第1把持部82a及び第2把持部82b)により収穫対象物210が保持可能な状態が解消される可能性を低減させることができる。
【0195】
[8A]第1アプローチ制御部130は、エンドエフェクタ50Aを上記第1部位に近づけて、一対の把持部(第1把持部82a及び第2把持部82b)の間の間隔dを小さくして上記第1部位に接触するようにロボット2を制御する、上記[7A]に記載の収穫装置1。
この場合、収穫対象物210にエンドエフェクタ50Aがアクセスできたかどうかを確認してから、収穫対象物210の収穫動作を継続することができる。例えば、エンドエフェクタ50Aが収穫対象物210にアクセスできていない場合には、収穫動作を中断することができる。そのため、トラブルの発生から、次の収穫のための動作に早めに移行できるので、作業の更なる効率化に有用である。なお、コントローラ100の処理負荷の低減を図る観点から、カメラで収穫対象物210を認識しつつ、収穫対象物210にアクセスするような制御を行わない場合に、アクセスできないトラブルがより発生し得るので、上記構成を用いることが特に有益である。
【0196】
[9A]保持判定部132を更に備え、エンドエフェクタ50Aは、一対の把持部(第1把持部82a及び第2把持部82b)の間の間隔dを変更するモータ66aを更に含み、第1アプローチ制御部130は、アーム(多関節アーム10)により、一対の把持部(第1把持部82a及び第2把持部82b)を上記第1部位に近づけることと、一対の把持部(第1把持部82a及び第2把持部82b)の間の間隔dが小さくなるように、モータ66aにより一対の把持部(第1把持部82a及び第2把持部82b)を駆動することと、一対の把持部(第1把持部82a及び第2把持部82b)が受ける反力に基づいて、モータ66aによる駆動を停止させることと、を実行し、保持判定部132は、モータ66aによる一対の把持部(第1把持部82a及び第2把持部82b)の駆動を停止したときのモータ66aの位置に基づいて、一対の把持部(第1把持部82a及び第2把持部82b)が収穫対象物210を保持したか否かを判定する、上記[8A]に記載の収穫装置1。
この場合、第1部位を保持したがどうかを、カメラ等の他の装置を用いることなく、簡便に確認することができる。
【0197】
[10A]エンドエフェクタ50Aは、一対の把持部(第1把持部82a及び第2把持部82b)の間の間隔を変更するモータ66aを更に含み、第2アプローチ制御部134は、上記第1部位から上記第2部位までエンドエフェクタ50Aを移動させる間の間隔dが、第1アプローチ制御部130が上記第1部位までエンドエフェクタ50Aを移動させる間の間隔dよりも小さくなるように、モータ66aを制御する、上記[7A]~[9A]のいずれか1つに記載の収穫装置1。
この場合、エンドエフェクタ50Aが、第1部位から第2部位に移動する際に、一対の把持部(第1把持部82a及び第2把持部82b)により収穫対象物210が保持可能な状態(一対の把持部の間に収穫対象物210が配置された状態)が解消される可能性を更に低減させることができる。
【0198】
[11A]エンドエフェクタ50Aは、収穫対象物210を保持可能な保持部80Aと、収穫対象物210において保持部80Aに保持された箇所の近傍を切断可能な切断部70,70Aと、を含み、収穫制御部138は、保持部80Aにより上記第2部位を保持した状態で切断部70,70Aにより柄220を切断するように、ロボット2を制御する、上記[2A]~[6A]のいずれか1つに記載の収穫装置1。
この場合、柄220に対して直接外力を作用させて、収穫対象物210が農作物200から切り離されるので、収穫の作業効率を向上させることができる。
【0199】
[12A]収穫制御部138は、保持部80Aにより上記第2部位を保持させ、エンドエフェクタ50Aを変位させて柄220にテンションを加えた状態で切断部70,70Aにより柄220を切断させるように、ロボット2を制御する、上記[11A]に記載の収穫装置1。
柄220に切断させる力を直接作用させても、柄220が撓んで切断できないトラブルが発生し得る。上記構成では、柄220にテンションが加えられた状態で、柄220が切断されるので、上記のようなトラブルの発生を抑制でき、収穫の成立率を向上させることができる。
【0200】
[13A]切断部70,70Aは、刃72と、刃72を駆動する駆動部76と、を含み、収穫制御部138は、第2アプローチ制御部134により保持部80Aが上記第2部位を保持した後に、柄220に交差する方向において収穫対象物210を柄220に連結された茎202から遠ざけるようにロボット2を制御することと、刃72により柄220を切断するように、駆動部76により刃72を駆動することと、を実行する、上記[11A]又は[12A]に記載の収穫装置1。
刃72の駆動によって、柄220の周囲にある茎202(例えば、主茎)を損傷してしまうおそれがある。これに対して、上記構成では、柄220が茎202から遠ざけられて、刃72が駆動されるので、茎202を損傷してしまう可能性を低減できる。
【0201】
[14A]ロボット2が有するアーム(多関節アーム10)の先端部、又は、エンドエフェクタ50Aに設けられたカメラ(カメラ94)と、上記第1部位から柄220に向かってエンドエフェクタ50Aが移動している間にカメラ(カメラ94)から得られる認識用画像PI2に基づいて、柄220を認識する柄認識部136と、を更に備え、第2アプローチ制御部134は、柄認識部136による柄220の認識結果に基づいてエンドエフェクタ50Aを停止させることと、エンドエフェクタ50Aの停止位置に対応する収穫対象物210の部位を上記第2部位としてエンドエフェクタ50Aに保持させることと、を順に実行するように、ロボット2を制御する、上記[2A]~[6A]のいずれか1つに記載の収穫装置1。
この場合、アームの先端部、又はエンドエフェクタ50Aに比べて、収穫対象物210から遠方に設置されたカメラ(例えば、台車4に設置されたカメラ)に比べて、柄220を認識できる可能性が高くなる。その結果、収穫の成功率を向上させることができる。
【0202】
[15A]第1アプローチ制御部130によりエンドエフェクタ50Aを移動させる前に、収穫判定処理を実行する収穫判定部126を更に備え、収穫判定処理は、農作物200の少なくとも一部を撮像して得られる1以上の画像のいずれかに基づいて、収穫対象物210のサイズを演算することと、上記サイズの演算結果に基づいて、収穫対象物210を収穫するか否かを決定することと、を含む、上記[1A]~[14A]のいずれか1つに記載の収穫装置1。
この場合、サイズが小さい収穫対象物210が収穫されないので、作業の自動化と農作物200の生育状況に応じた収穫作業との両立を図ることができる。
【0203】
[16A]農作物200の収穫対象物210における第1部位にロボット2が有するエンドエフェクタ50を近づけるように、ロボット2を制御することと、上記第1部位から収穫対象物210における第2部位にエンドエフェクタ50Aを移動させて、エンドエフェクタ50Aに上記第2部位を保持させるように、ロボット2を制御することと、エンドエフェクタ50Aにより上記第2部位を保持した状態で、収穫対象物210を収穫するようにロボット2を制御することと、を含む、収穫装置1の制御方法。
この制御方法では、上記[1A]に記載の収穫装置1と同様に、エンドエフェクタ50Aが収穫に適した状態で収穫対象物210を保持できないトラブルの発生を抑制できる。従って、上記制御方法は、作業の効率化に有用である。
【符号の説明】
【0204】
1…収穫装置、2…ロボット、4…台車、6…収容部、8…撮像装置、10…多関節アーム、26…軸線、50,50A…エンドエフェクタ、60,60A…本体部、70,70A…切断部、72…刃、74…カバー部材、76…駆動部、80…支持部、80A…保持部、82a…第1把持部、82b…第2把持部、d…間隔、88…軸線、92,94…カメラ、100…コントローラ、102…撮像制御部、104,122…対象検出部、106…台車制御部、108…認識部、110,138…収穫制御部、112…収容制御部、118…情報通知部、126…収穫判定部、128…部位特定部、130…第1アプローチ制御部、132…保持判定部、134…第2アプローチ制御部、136…柄認識部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24