トマトの自動収穫を行うロボットに関する次の記述を読んで,設問に答えよ。
G社は,温室で栽培されているトマトの自動収穫を行うロボット(以下,収穫ロボットという)を開発している。収穫ロボットの外観を図1に,収穫ロボットのシステム構成を図2に,収穫ロボットの主な構成要素を表1に,収穫ロボットの状態遷移の一部を図3に示す。
図1 収穫ロボットの外観
図2 収穫ロボットのシステム構成
構成要素名 | 機能概要 |
制御部 | ・収穫ロボット全体を制御する。 |
アーム制御ユニット | ・アームとハンドによる収穫動作を制御する。 |
認識ユニット | ・認識用カメラで撮影した画像を処理する。 ・近接カメラで撮影した画像を処理する。 |
台車制御ユニット | ・台車の走行を制御する。 ・超音波センサーの検知結果を処理する。 |
無線LAN通信ユニット | ・制御部と管理サーバとの通信を制御する。 |
図3 収穫ロボットの状態遷移の一部
〔収穫ロボットの動作概要〕
収穫ロボットの動作概要を次に示す。
・収穫ロボットは,管理者スマホから管理サーバを介して収穫開始の指示を受けると,状態を待機状態から開始/終了状態に遷移させ,あらかじめ管理サーバから設定された経路(待機位置→収穫開始位置→収穫終了位置→待機位置)に沿って温室内を50cm/秒の速度で移動を開始する。
・待機位置から収穫開始位置まで移動すると,状態を検出中状態に遷移させ,認識用カメラで撮影したトマトの画像の解析を行いながら移動を続ける。収穫に適したトマトを検出すると,移動を停止して状態を収穫中状態に遷移させ,収穫を行う。
・認識ユニットの解析結果から,ハンドを収穫対象のトマトに近づけ,近接カメラで撮影した画像でハンドの位置を補正して収穫を行う。
・ハンドには圧力センサーが取り付けられており,トマトを傷つけないように把持できる。トマトを把持した後,ハンドの先端にあるカッターでトマトの柄の部分を切断して収穫する。
・トマトを柄から切り離して把持できた場合,収穫成功と判断し,状態を積載中状態に遷移させ,収穫したトマトを近接カメラで撮影した画像から判定した収穫トレーの空き領域に載せる。
・トマトを収穫トレーに載せた後,更に収穫に適したトマトが残っており,かつ,収穫トレーに空き領域が残っていれば,状態を積載中状態から収穫中状態に遷移させ,検出している全てのトマトを収穫するか収穫トレーの空き領域がなくなるまで収穫動作を繰り返す。
・トマトを柄から切り離すことができなかった場合や切り離した後にハンドから落とした場合などは収穫失敗と判断し,収穫中状態のまま,検出している次のトマトの収穫を行う。
・検出している全てのトマトに対して収穫動作を終えると,収穫を終えたときの状態と収穫ロボットの経路上の位置,収穫トレーの空き領域の状況から次の状態遷移先と動作を決定する。
・収穫終了位置で,収穫に適したトマトを検出していない場合は,収穫を終了し,待機位置へ移動する。
・収穫ロボットは動作状況や収穫状況などの情報を定期的に管理サーバに送信する。
・管理者は管理者スマホを使用して管理サーバに保管されている情報を参照することができる。
・収穫ロボットが移動中に,台車の先頭に取り付けられた超音波センサーが,進路上1m以内の距離にある障害物を検知すると移動を停止し,状態を異常状態に遷移させ,管理サーバを介して管理者スマホに警告メッセージを送信する。
〔アームの関節部について〕
アームには,軸1,軸2,軸3の三つの回転軸があり,それぞれの回転軸にはサーボモーターが使用されている。サーボモーターはPWM方式で,入力する制御パルスのデューティ比によって回転する角度を制御する。
サーボモーターの仕様を表2に,各サーボモーターの制御角とアームの可動範囲を図4に示す。サーボモーターは,制御パルス幅1.0ミリ秒の場合,制御角が-90度(反時計回りに90度)に制御パルス幅11.0ミリ秒の場合,制御角が90度(時計回りに90度)になるように回転する。
項目 | 仕様 |
PWMサイクル | 20ミリ秒 |
制御パルス幅 | 1.0ミリ秒〜11.0ミリ秒 |
制御角 | -90度〜90度 |
図4 各サーボモーターの制御角とアームの可動範囲
〔制御部のソフトウェア構成について〕
収穫ロボットの制御部では,リアルタイムOSを使用する。制御部の主なタスクの処理概要を表3に示す。
タスク名 | 処理概要 |
メイン | ・収穫ロボットの状態管理を行う。 |
アーム制御 | ・認識タスクからの情報を用いてアームとハンドを制御し,収穫対象のトマトを収穫する。 ・トマト収穫の成否をメインタスクに通知する。 ・認識タスクからの情報を用いてアームとハンドを制御し,収穫したトマトを収穫トレーの空き領域に載せる。 |
認識 | ・認識用カメラで撮影したトマトの画像を解析し,収穫に適したトマトを判定する。 ・収穫に適したトマトを検出したことをメインタスクに通知する。 ・収穫に適したトマトのうち1個を収穫するために必要な情報を,認識用カメラと近接カメラで撮影したトマトの画像から求め,アーム制御タスクに通知する。 ・近接カメラで撮影した収穫トレーの画像から収穫トレーの空き領域の情報をアーム制御タスクと a タスクに通知する。 |
台車制御 | ・メインタスクの指示に従って台車の走行制御を行う。 ・超音波センサーの検知結果に従って台車を停止させ,メインタスクに異常を通知する。 |
無線LAN通信 | ・管理サーバを介して受信した管理者スマホからの指示をメインタスクに通知する。 ・メインタスクの指示に従って収穫ロボットの動作状況を管理サーバに通知する。 |
設問1 収穫ロボットの状態遷移について答えよ。
(1)収穫終了位置まで移動したときに開始/終了状態への状態遷移が発生するのはどのような場合か。25字以内で答えよ。
解答・解説
解答例
収穫に適したトマトを検出していない場合
解説
ー
(2)収穫終了位置で,収穫に適した2個のトマトを検出した。2個目のトマトの把持に失敗したとき,1個目のトマトの収穫を開始した時点から2個目のトマトの把持に失敗して次の動作に移るまでの状態遷移として,適切なものを解答群の中から選び記号で答えよ。
- 収穫中状態→積載中状態→開始/終了状態
- 収穫中状態→積載中状態→収穫中状態→開始/終了状態
- 収穫中状態→積載中状態→収穫中状態積載中状態→開始/終了状態
- 収穫中状態→積載中状態→収穫中状態積載中状態→収穫中状態開始/終了状態
解答・解説
解答例
イ
解説
ー
設問2 制御部のタスクについて答えよ。
(1)認識タスクから収穫トレーの空き領域の情報を受け取ったとき,メインタスクが開始/終了状態へ遷移する条件を20字以内で答えよ。
解答・解説
解答例
収穫トレーに空き領域がない
解説
ー
(2)認識タスクがメインタスクに収穫に適したトマトを検出したことを通知するときに合わせて通知する必要がある情報を答えよ。
解答・解説
解答例
トマトの個数
解説
ー
(3)表3中の a に入れるタスク名を,表3中のタスク名で答えよ。
解答・解説
解答例
メイン
解説
ー
設問3 アームの制御について,アームの各関節部の軸に制御パルスが図5のように入力された場合,アームはどのような姿勢に変化するか。解答群の中から選び記号で答えよ。
図5 サーボモーターへの入力制御パルス
- 軸1が-54度,軸2が5度,軸3が-72度変化した姿勢
- 軸1が0度,軸2が-54度,軸3が72度変化した姿勢
- 軸1が0度,軸2が72度,軸3が-54度変化した姿勢
- 軸1が5度,軸2が-54度,軸3が72度変化した姿勢
解答・解説
解答例
ウ
解説
ー
設問4 障害物の検知について,収穫ロボットが直進中に,超音波センサーが正面の障害物を検知して,移動を停止したとき,超音波センサーが超音波を出力してから検知に掛かった時間は最大何ミリ秒か。超音波が反射して戻ってくるまでに収穫ロボットが移動する距離を考慮して答えよ。ここで,音速は340m/秒とし,障害物は検知した位置から動かず,ソフトウェアの処理時間は考えないものとする。答えは小数第3位を切り上げ,小数第2位まで求めよ。
解答・解説
解答例
5.90[ミリ秒]
解説
ー
IPA公開情報
出題趣旨
近年,就農者の高齢化と労働力不足に対応するため,農作業用ロボットの実用化が進んでいる。
本問では,トマトの自動収穫を行うロボットを題材として,応用情報技術者に求められる,要求仕様への理解力,要求仕様に基づいてソフトウェアを設計する能力を問う。
採点講評
問 7 では,トマトの自動収穫を行うロボットを題材に,要求仕様の理解,要求仕様に基づいたソフトウェア設計について出題した。全体として正答率は平均的であった。
設問 1(1)は,正答率がやや高かったが,“障害物を検知していない場合”や“管理者スマホから収穫開始の指示を受けた場合”とした解答が散見された。収穫ロボットの位置による状態遷移を正しく理解した上で解答してほしい。状態遷移とシステムの動作について正しく理解することは,組込みシステムのソフトウェア設計において重要であるので,是非理解を深めてほしい。
設問 2(2)は,正答率が低かった。“収穫トレーの空き領域の情報”とした解答が散見された。収穫ロボットの構成要素と各タスクの処理概要を整理することで,パラメータとして通知する必要がある情報を導き出してほしい。