2023年 秋期 応用情報技術者試験 問7
トマトの自動収穫を行うロボット
G社は、温室で栽培されているトマトの自動収穫を行うロボット(以下、収穫ロボットという)を開発している。収穫ロボットの外観を図1に、収穫ロボットのシステム構成を図2に、収穫ロボットの主な構成要素を表1に、収穫ロボットの状態遷移の一部を図3に示す。


構成要素名 | 機能概要 |
---|---|
制御部 | ・収穫ロボット全体を制御する。 |
アーム制御ユニット | ・アームとハンドによる収穫動作を制御する。 |
認識ユニット | ・認識用カメラで撮影した画像を処理する。 ・近接カメラで撮影した画像を処理する。 |
台車制御ユニット | ・台車の走行を制御する。 ・超音波センサーの検知結果を処理する。 |
無線LAN通信ユニット | ・制御部と管理サーバとの通信を制御する。 |
【収穫ロボットの動作概要】
収穫ロボットの動作概要を次に示す。
・収穫ロボットは、管理者スマホから管理サーバを介して収穫開始の指示を受けると、状態を待機状態から開始/終了状態に遷移させ、あらかじめ管理サーバから設定された経路(待機位置→収穫開始位置→収穫終了位置→待機位置)に沿って温室内を50cm/秒の速度で移動を開始する。
・待機位置から収穫開始位置まで移動すると、状態を検出中状態に遷移させ、認識用カメラで撮影したトマトの画像の解析を行いながら移動を続ける。収穫に適したトマトを検出すると、移動を停止して状態を収穫中状態に遷移させ、収穫を行う。
・認識ユニットの解析結果から、ハンドを収穫対象のトマトに近づけ、近接カメラで撮影した画像でハンドの位置を補正して収穫を行う。
・ハンドには圧力センサーが取り付けられており、トマトを傷つけないように把持できる。トマトを把持した後、ハンドの先端にあるカッターでトマトの柄の部分を切断して収穫する。
・トマトを柄から切り離して把持できた場合、収穫成功と判断し、状態を積載中状態に遷移させ、収穫したトマトを近接カメラで撮影した画像から判定した収穫トレーの空き領域に載せる。
・トマトを収穫トレーに載せた後、更に収穫に適したトマトが残っており、かつ、収穫トレーに空き領域が残っていれば、状態を積載中状態から収穫中状態に遷移させ、検出している全てのトマトを収穫するか収穫トレーの空き領域がなくなるまで収穫動作を繰り返す。
・トマトを柄から切り離すことができなかった場合や切り離した後にハンドから落とした場合などは収穫失敗と判断し、収穫中状態のまま、検出している次のトマトの収穫を行う。
・検出している全てのトマトに対して収穫動作を終えると、収穫を終えたときの状態と収穫ロボットの経路上の位置、収穫トレーの空き領域の状況から次の状態遷移先と動作を決定する。
・収穫終了位置で、収穫に適したトマトを検出していない場合は、収穫を終了し、待機位置へ移動する。
・収穫ロボットは動作状況や収穫状況などの情報を定期的に管理サーバに送信する。
【アームの関節部について】
アームには、軸1、軸2、軸3の三つの回転軸があり、それぞれの回転軸にはサーボモーターが使用されている。サーボモーターはPWM方式で、入力する制御パルスのデューティ比によって回転する角度を制御する。
サーボモーターの仕様を表2に、各サーボモーターの制御角とアームの可動範囲を図4に示す。サーボモーターは、制御パルス幅1.0ミリ秒の場合、制御角が-90度(反時計回りに90度)に、制御パルス幅11.0ミリ秒の場合、制御角が90度(時計回りに90度)になるように回転する。
項目 | 仕様 |
---|---|
PWMサイクル | 20ミリ秒 |
制御パルス幅 | 1.0ミリ秒~11.0ミリ秒 |
制御角 | -90度~90度 |

【制御部のソフトウェア構成について】
収穫ロボットの制御部では、リアルタイムOSを使用する。制御部の主なタスクの処理概要を表3に示す。
タスク名 | 処理概要 |
---|---|
メイン | ・収穫ロボットの状態管理を行う。 |
アーム制御 | ・認識タスクからの情報を用いてアームとハンドを制御し、収穫対象のトマトを収穫する。 ・トマト収穫の成否をメインタスクに通知する。 ・認識タスクからの情報を用いてアームとハンドを制御し、収穫したトマトを収穫トレーの空き領域に載せる。 ・近接カメラで撮影した収穫トレーの画像から収穫トレーの空き領域の情報をアーム制御タスクに通知する。 |
認識 | ・認識用カメラで撮影したトマトの画像を解析し、収穫に適したトマトを判定する。 ・収穫に適したトマトを検出したことをメインタスクに通知する。 ・収穫に適したトマトのうち1個を収穫するために必要な情報を、認識用カメラと近接カメラで撮影したトマトの画像から求め、アーム制御タスクに通知する。 ・近接カメラで撮影したaタスクに通知する。 |
台車制御 | ・メインタスクの指示に従って台車の走行制御を行う。 ・超音波センサーの検知結果に従って台車を停止させ、メインタスクに異常を通知する。 |
無線LAN通信 | ・管理サーバを介して受信した管理者スマホからの指示をメインタスクに通知する。 ・メインタスクの指示に従って収穫ロボットの動作状況を管理サーバに通知する。 |