エンベデッドシステムスペシャリスト 2020年 午後1 問02
所有者を追尾するスーツケースに関する次の記述を読んで、設問1~3に答えよ。
B社は、空港構内において、所有者の腕に装着した専用のブレスレット(以下、ブレスレットという)を追尾するスーツケース(以下、スーツケースという)を開発している。スーツケースは、ブレスレットの位置を計測するユニット(以下、測位ユニットという)を用いて、スーツケースから見たブレスレットの位置を特定し、追尾する。その際、カメラ及び各種センサを搭載したユニット(以下、物体識別ユニットという)を用いて、進行方向にある物体とその動きを識別することによって、追尾中の衝突を回避する。また、所有者のスマートフォン(以下、スマホという)と連携した機能も実行できる。
スーツケースの外観を図1に示す。

〔スーツケースのシステム構成〕
スーツケースのシステム構成を図2に、スーツケースの主なシステム構成要素の機能概要を表1に示す。

〔制御部の動作概要〕
制御部は、電力が供給されると、他の構成要素に電力を供給して、ブレスレットとの超広帯域無線通信が可能になったら、追尾を開始する(以下、追尾モードという)。追尾モードで電源ボタンが押されたことが制御部に通知されたら、スーツケースの走行を停止した後、制御部を含む各構成要素への電力供給を停止する(以下、電源OFFモードという)。電源OFFモードでは、一般のスーツケースのように、所有者がハンドキャリーしたり、荷物として飛行機に積み込んだりすることができる。
〔スマホとの連携機能〕
スマホとの連携機能を表2に示す。

〔制御部の追尾処理の概要〕
・ブレスレットを追尾するための情報を次の手順で生成する。
-測位ユニットから通知される測位情報を受ける。計測に成功していたら、目標位置として記憶する。
-物体識別ユニットから通知される物体識別情報を受ける。
-目標位置までの距離が1メートル以上の場合、目標位置及び物体識別情報を使って、目標位置に向けて走行するための走行プランを生成する。目標位置までの距離が1メートル未満の場合、走行プランの生成は行わない。ここで、走行プランとは、0.25秒間にスーツケースが走行する方向及び速度を一つのレコードとし、このレコードを並べて、一つのテーブルにまとめたものである。
・走行プランに従って、モータユニットを制御しながら走行する。走行プランが新たに生成されたら、新たに生成された走行プランに従って走行する。走行時の最高速度は5.4キロメートル/時である。
・段差を検出し、0.5秒以内にスーツケースがその段差に至ると判断した場合、走行を停止する。目標位置が変化することなどによって、0.5秒以内に段差に至らないと判断できれば、走行を再開する。
・物体との衝突などによる異常な加速度を検出したら、スーツケースを施錠し、衝撃検知メッセージをスマホに送信した後、電源OFFモードに移行する。
〔制御部のソフトウェア構成〕
制御部では、リアルタイムOSを使用する。制御部の主なタスク構成を図3に、制御部の主なタスクの処理概要を表3に示す。

設問1:制御部の仕様について、(1)、(2)に答えよ。
設問1(1)
問題文を見る追尾モード中のスーツケースが電源OFFモードに移行する契機を、電源ボタンが押される、二次電池の残量がなくなる以外に二つ答えよ。
模範解答
①:異常な加速度の検出
②:スマホからの指示
解説
解答の導き方
この設問では、追尾モード中に電源OFFモードへ移るきっかけのうち、電源ボタンが押される場合と二次電池の残量がなくなる場合を除いたものを探します。
まず、制御部の動作概要には、物体との衝突などによる「異常な加速度を検出したら」、スーツケースを施錠し、衝撃検知メッセージをスマホに送信した後、電源OFFモードに移行するとあります。したがって、異常な加速度の検出が一つ目の契機です。
次に、表2のスマホとの連携機能には、スマホから「スーツケースを電源OFFモードに移行する」操作ができるとあります。そのため、スマホから電源OFFモードへの移行を指示することも、もう一つの契機です。
誤りやすいポイント
- 異常な加速度を検出した後に行う施錠やメッセージ送信だけを挙げて、電源OFFモードへの移行を見落とさないようにします。
- スマホとの連携機能には施錠・解錠などもありますが、この設問で問われているのは電源OFFモードへの移行につながる操作です。
- 測位に失敗したこと自体は、本文に電源OFFモードへ移行する契機として示されていません。
FAQ
Q: 異常な加速度を検出したら、すぐに電源OFFモードへ移行しますか?
A: 本文では、施錠と衝撃検知メッセージの送信を行った後に、電源OFFモードへ移行すると説明されています。
A: 本文では、施錠と衝撃検知メッセージの送信を行った後に、電源OFFモードへ移行すると説明されています。
Q: スマホからは施錠・解錠だけでなく、電源OFFモードへの移行も指示できますか?
A: できます。表2に、スーツケースを電源OFFモードに移行する機能が示されています。
A: できます。表2に、スーツケースを電源OFFモードに移行する機能が示されています。
関連キーワード: 状態遷移、異常検知、加速度センサ、電源管理、スマートフォン連携
設問1(2)
問題文を見る追尾モード中に測位情報の計測が失敗し続けた場合のスーツケースの動作を、40字以内で述べよ。この間、段差ありを検出したり、異常な加速度を検出したりすることはないものとする。
模範解答
最後に測位が成功したときの目標位置まで移動し、その位置で停止する。
解説
解答の導き方
追尾モード中に測位情報の計測が失敗し続けても、スーツケースが直ちに停止するとは限りません。目標位置の記憶と走行プランの動きを分けて考えます。
まず、走行プランタスクは、測位情報について「計測に成功していたら、目標位置として記憶する」とされています。一方、計測に失敗したときは計測失敗が通知されるだけで、新しい方向や距離は得られません。したがって、失敗が続いても、それまでに記憶した目標位置は更新されず、最後に測位が成功したときの目標位置が使われます。
次に、物体識別情報を受けるたびに、走行プランタスクは目標位置と物体識別情報を使って、必要に応じて走行プランを生成します。目標位置までの距離が1メートル以上であれば、スーツケースはその目標位置に向かって走行を続けます。
最後に、目標位置に到達すると、目標位置までの距離が1メートル未満となり、走行プランは生成されません。実行中の走行プランが完了した後も新たな走行プランがなければ、走行制御タスクは走行停止を指示します。設問では段差や異常な加速度はないため、途中で別の停止要因が発生することもありません。
誤りやすいポイント
- 測位に失敗したら直ちに走行停止すると考えることです。測位失敗は、新しい目標位置が得られないことを意味しますが、それだけで走行停止するとは書かれていません。
- 測位に失敗すると、記憶済みの目標位置も消えると考えることです。目標位置は計測成功時に記憶され、失敗時に消去する処理は示されていません。
- 物体識別情報が新しい目標位置を与えると考えることです。物体識別情報は、走行プランを生成する際に使われる情報であり、目標位置は測位情報に基づきます。
FAQ
Q: 測位に失敗している間も、走行プランは生成されますか?
A: 物体識別情報を受けたとき、記憶済みの目標位置までの距離が1メートル以上であれば、その目標位置に向かう走行プランが生成されます。
A: 物体識別情報を受けたとき、記憶済みの目標位置までの距離が1メートル以上であれば、その目標位置に向かう走行プランが生成されます。
Q: 測位に一度も成功していない場合も、同じ動作になりますか?
A: この設問の答えは、最後に測位が成功したときの目標位置があることを前提にしています。目標位置が一度も記憶されていない場合の動作は、問題文に示されていません。
A: この設問の答えは、最後に測位が成功したときの目標位置があることを前提にしています。目標位置が一度も記憶されていない場合の動作は、問題文に示されていません。
Q: 目標位置に着いた後、何が走行停止につながりますか?
A: 目標位置までの距離が1メートル未満になると新たな走行プランが生成されず、実行中のプランが完了した後に新しいプランもなければ、走行停止が指示されます。
A: 目標位置までの距離が1メートル未満になると新たな走行プランが生成されず、実行中のプランが完了した後に新しいプランもなければ、走行停止が指示されます。
関連キーワード: 位置測位、目標位置、状態保持、走行プラン、走行制御
設問2:制御部のソフトウェアについて、(1)~(4)に答えよ。
設問2(1)
問題文を見る表3中の下線①について、測位情報の通知を受けたメインタスクが行うべき処理を、20字以内で述べよ。
模範解答
スマホに測位情報を送信する。
解説
解答の導き方
- 表3の下線①では、走行プランタスクが入力した測位情報をメインタスクに通知します。設問は、この通知を受けたメインタスクが何をするかを尋ねています。
- 表3には、メインタスクが「スマホとの連携機能を実行する」とあります。また、図3ではメインタスクとBluetoothタスクが双方向に通信しています。したがって、メインタスクは受け取った情報をスマホへ送る役割を担います。
- 表2では、スマホが「スーツケースから送られた測位情報から、スーツケースまでの距離を表示する」とされています。距離表示に必要なのは測位情報そのものなので、メインタスクは測位情報をスマホに送信します。
誤りやすいポイント
- 測位情報を受け取った後、目標位置として記憶するのは走行プランタスクです。設問で問われているのは、その情報を受け取ったメインタスクの処理です。
- スマホが距離を表示するからといって、メインタスクが距離を計算して送るとは限りません。表2にあるのは、測位情報を基に距離を表示する機能です。
- タスク間の通知と、スマホへの送信は別の段階です。走行プランタスクから通知を受けたメインタスクが、スマホとの連携機能を通じて送信します。
FAQ
Q: 測位情報は、なぜスマホに送る必要があるのですか?
A: 表2のスマホ機能に、スーツケースから送られた測位情報を基に距離を表示する機能があるためです。
A: 表2のスマホ機能に、スーツケースから送られた測位情報を基に距離を表示する機能があるためです。
Q: メインタスクとBluetoothタスクの役割はどう違いますか?
A: メインタスクがスマホとの連携処理を行い、Bluetoothタスクがペアリングしたスマホとの通信を担います。
A: メインタスクがスマホとの連携処理を行い、Bluetoothタスクがペアリングしたスマホとの通信を担います。
関連キーワード: タスク間通信、データ転送、Bluetooth通信、測位情報、リアルタイムOS
設問2(2)
問題文を見る表3中の下線②の内容と、走行制御タスクが段差ありの通知を受けたときに走行プラン上で判断すべき内容とを考慮して、走行プランタスクが走行制御タスクに通知する走行プランに必要なレコード数の最小値を答えよ。
模範解答
8
解説
解答の導き方
-
走行プランは、0.25秒間の方向・速度を1レコードとして並べたものです。したがって、必要な時間分のレコード数を求めるには、まず走行プランで確保すべき時間を考えます。
-
物体識別情報は1秒ごとに出力されます。一方、走行プランタスクがその情報を入力してから新しい走行プランを通知するまでには、0.2~0.6秒掛かります。連続する二つの走行プランの通知間隔が最大になるのは、先のプランの生成が0.2秒で終わり、次のプランの生成に0.6秒掛かる場合です。したがって、通知間隔の最大値は、秒です。
-
走行制御タスクは、段差ありの通知を受けると、走行プラン上で「0.5秒以内にその段差に至るか」を判断します。次の走行プランが通知されるまでの間に段差ありの通知を受けても、この判断ができるようにするには、プランが通知されてから次のプランが通知されるまでの時間に加え、判断に使う0.5秒分の先の走行も走行プランに含める必要があります。必要な時間は、秒です。
-
1レコードが0.25秒間なので、必要なレコード数は、を切り上げた数です。よって、走行プランに必要なレコード数の最小値は8です。
誤りやすいポイント
- 生成に掛かる最大の0.6秒だけを使い、連続するプランの通知間隔を求めてしまうことがあります。先のプランの生成時間が最短の0.2秒だった場合も考慮する必要があります。
- 段差ありの通知を受けた後に判断する0.5秒分を、走行プランの時間に含め忘れないようにします。
- 必要な時間をレコード数に換算するとき、7.6を切り捨てず、0.25秒単位を満たすように切り上げます。
FAQ
Q: なぜ連続するプランの通知間隔は、最大の0.6秒だけではないのですか?
A: 先のプランの通知が生成開始から0.2秒で行われ、次のプランの通知が次の入力から0.6秒後に行われる場合、通知同士の間隔は1秒に0.6秒を加え、先の0.2秒を引いた長さになります。
A: 先のプランの通知が生成開始から0.2秒で行われ、次のプランの通知が次の入力から0.6秒後に行われる場合、通知同士の間隔は1秒に0.6秒を加え、先の0.2秒を引いた長さになります。
Q: なぜレコード数を切り上げるのですか?
A: レコードは0.25秒間ずつなので、7レコードでは1.75秒分にしかなりません。必要な1.9秒分を確保するには、8レコードが必要です。
A: レコードは0.25秒間ずつなので、7レコードでは1.75秒分にしかなりません。必要な1.9秒分を確保するには、8レコードが必要です。
Q: 0.5秒分は何のために必要ですか?
A: 走行制御タスクが段差ありの通知を受けたとき、段差に0.5秒以内に至るかどうかを走行プラン上で判断するためです。
A: 走行制御タスクが段差ありの通知を受けたとき、段差に0.5秒以内に至るかどうかを走行プラン上で判断するためです。
関連キーワード: 周期処理、タスク間通信、リアルタイム処理、先読み制御、時間制約
設問2(3)
問題文を見るスーツケースが検出可能な範囲に段差が現れてから、スーツケースが停止するまでに走行する距離は最大何センチメートルか。答えは小数第1位を切り上げて、整数で求めよ。ここで、走行制御タスクが段差による停止を判断するまでに最大0.18秒掛かるものとする。また、モータユニットに走行停止を指示してから、スーツケースが停止するまでに最大15センチメートル走行するものとする。
模範解答
57
解説
解答の導き方
段差が検出可能な範囲に入ってから停止するまでの距離は、段差センサが次に値を確認するまでの時間、走行制御タスクが停止を判断するまでの時間、停止指示後に実際に停止するまでの走行距離に分けて考えます。
まず、段差検出タスクは「0.1秒ごとに段差センサの値を確認」します。段差が検出可能な範囲に入った直後に確認タイミングを過ぎていた場合、検出までに最大で0.1秒かかります。
次に、問題文では「走行制御タスクが段差による停止を判断するまでに最大0.18秒掛かる」とされています。したがって、段差が検出可能な範囲に入ってから停止判断までの時間は、最大で秒です。
この間は、走行時の最高速度で走行するものとして距離を求めます。「走行時の最高速度は5.4キロメートル/時」なので、秒速に直すとメートル/秒、つまりセンチメートル/秒です。停止判断までに進む距離は、センチメートルです。
さらに、停止指示後もスーツケースは「最大15センチメートル走行する」ため、この分を加えます。合計はセンチメートルです。小数第1位を切り上げる必要がありますが、今回は計算結果が整数なので、答えは57センチメートルです。
誤りやすいポイント
- 段差が検出可能な範囲に入ってから、センサが次に確認するまでの最大0.1秒を加え忘れないようにします。
- 停止判断までの時間だけでなく、停止指示後に走行する最大15センチメートルも加算します。
- 段差センサの検出距離1.5メートルは、段差を検出できる範囲を表します。この設問で求める「範囲に現れてから停止するまでの走行距離」に、そのまま加えるものではありません。
- 速度の単位をそろえてから計算します。5.4キロメートル/時をセンチメートル/秒に直すと150センチメートル/秒です。
FAQ
Q: センサの確認までの時間は、なぜ最大0.1秒として計算するのですか?
A: 段差がセンサの確認直後に検出可能な範囲に入る場合、次の確認までほぼ0.1秒待つことになるためです。最大距離を求めるので、この時間を含めます。
A: 段差がセンサの確認直後に検出可能な範囲に入る場合、次の確認までほぼ0.1秒待つことになるためです。最大距離を求めるので、この時間を含めます。
Q: 1.5メートルも計算に加えないのですか?
A: 1.5メートルは検出可能な範囲の距離です。設問は、段差がその範囲に入った後にスーツケースが走行する距離を求めているため、検出範囲の距離は加えません。
A: 1.5メートルは検出可能な範囲の距離です。設問は、段差がその範囲に入った後にスーツケースが走行する距離を求めているため、検出範囲の距離は加えません。
Q: 停止判断までの間も最高速度で計算するのはなぜですか?
A: 移動距離を最大にする条件を求めるためです。停止判断までの時間に最高速度で進むものとして計算します。
A: 移動距離を最大にする条件を求めるためです。停止判断までの時間に最高速度で進むものとして計算します。
関連キーワード: 周期処理、応答時間、速度変換、停止距離
設問2(4)
問題文を見る設計の初期段階では、段差検出タスクからの段差あり・段差なしを走行プランタスクに通知し、走行プランタスクが段差による停止を判断する処理にしていた。しかし、表3中の下線②の間に段差ありの通知を受けると不具合が発生する可能性を指摘された。どのような不具合か。25字以内で述べよ。
模範解答
スーツケースが段差まで走行してしまう。
解説
解答の導き方
表3の下線②では、物体識別情報を入力してから走行プランを生成し、走行制御タスクに通知するまでに「0.2~0.6秒掛かる」とされています。この間、走行プランタスクは走行プランの生成処理を行っています。
設計の初期段階では、段差検出タスクからの通知を受けて段差による停止を判断するのも、走行プランタスクです。そのため、走行プランの生成中に段差ありの通知を受けても、走行プランタスクがその通知を処理し、走行制御タスクへ停止を指示するまでに遅れが生じます。
一方、走行制御タスクは、それまでの走行プランに従ってスーツケースを走行させています。停止の指示が間に合わなければ、スーツケースは段差の手前で止まれず、段差まで走行してしまう可能性があります。
誤りやすいポイント
- 段差ありを検出した時点で、スーツケースが直ちに停止すると考えないようにします。検出後、停止を判断するタスクを経て走行制御タスクに指示が届く必要があります。
- 段差検出タスクが段差を検出することと、走行制御タスクが停止することは別の処理です。初期設計では、その間の通知と判断を走行プランタスクが担うため、処理中の遅れが問題になります。
- 問題となるのは、段差検出の性能ではなく、段差ありの通知を受けてから停止指示が出るまでの遅れです。
FAQ
Q: 段差検出タスクが段差ありを通知すれば、走行制御タスクがすぐに停止できるのではありませんか。
A: 初期設計では、段差検出タスクの通知先は走行プランタスクです。走行制御タスクへ直接通知する設計ではないため、走行プランタスクが処理中だと停止指示が遅れます。
A: 初期設計では、段差検出タスクの通知先は走行プランタスクです。走行制御タスクへ直接通知する設計ではないため、走行プランタスクが処理中だと停止指示が遅れます。
Q: なぜ走行プランタスクはすぐに段差ありの通知を処理できないのですか。
A: 物体識別情報に基づく走行プランの生成と通知に、表3の下線②で示された処理時間が掛かるからです。その処理中に段差ありの通知を受けると、通知の処理が後になります。
A: 物体識別情報に基づく走行プランの生成と通知に、表3の下線②で示された処理時間が掛かるからです。その処理中に段差ありの通知を受けると、通知の処理が後になります。
Q: 段差ありの通知が遅れると、スーツケースはどうなりますか。
A: それまでの走行プランによる走行が続き、停止指示が届く前に段差に到達する可能性があります。
A: それまでの走行プランによる走行が続き、停止指示が届く前に段差に到達する可能性があります。
関連キーワード: リアルタイムOS、タスク間通信、メールボックス、優先度制御、リアルタイム処理
設問3:制御部の機能追加について、(1)~(3)に答えよ。
スーツケースをハンドキャリーしている間の盗難対策として、ハンドキャリーモードを新たに追加した。
・ハンドキャリーモードでは、スーツケースがブレスレットから2メートル以上離れたら、スマホに盗難注意メッセージを送信する。また、ブレスレットから2メートル以上離れた状態で、スーツケースが静止しているときの加速度よりも強い加速度を検出したら、施錠して、スマホに盗難警告メッセージを送信する。
・電源OFFモードから電源ボタンを押すごとに、ハンドキャリーモード→追尾モード→電源OFFモードの順にモードが遷移する。
・スマホを使用して、電源OFFモード以外のモードから任意のモードに遷移できる。
制御部のタスクの変更概要を表4に示す。


設問3(1)
問題文を見るハンドキャリーモードにおいて、電力を供給しなければならない最低限の構成要素を、表1中の構成要素名で全て答えよ。ここで、制御部及び電源部は除くものとする。
模範解答
測位ユニット、加速度センサ、施錠・解錠ユニット
解説
解答の導き方
この設問では、ハンドキャリーモードの機能を実現するために必要な構成要素だけを選びます。ただし、「制御部及び電源部は除く」と指定されています。
-
まず、盗難注意メッセージを送る条件を確認します。スーツケースがブレスレットから「2メートル以上離れたら」通知するため、スーツケースから見たブレスレットまでの距離を測る必要があります。表1では、ブレスレットの方向と距離を計測する構成要素として測位ユニットが示されています。したがって、距離を判断するために測位ユニットが必要です。
-
次に、盗難警告メッセージを送る条件を確認します。ブレスレットから離れている状態で、スーツケースに「静止しているときの加速度よりも強い加速度」が生じたことを検出します。表1でスーツケースの加速度を計測する構成要素は加速度センサなので、これが必要です。
-
盗難警告の条件を満たしたときは、スーツケースを施錠します。表1で施錠・解錠を行う構成要素は施錠・解錠ユニットなので、これも必要です。
-
スマホへのメッセージ送信には通信が必要ですが、表1ではスマホとの通信は制御部の機能として説明されています。設問では制御部を除くため、これを別の構成要素として加える必要はありません。また、ハンドキャリーモードでは追尾走行を行わないため、モータユニットや物体識別ユニット、段差センサも最低限の構成要素には含まれません。
誤りやすいポイント
- スマホにメッセージを送るため、Bluetoothモジュールを解答に含めたくなりますが、これは制御部に搭載されており、設問で除外されています。
- 追尾モードで使う構成要素まで含めないようにします。ハンドキャリーモードで必要なのは、距離の確認、加速度の検出、施錠です。
- 施錠する機能には施錠・解錠ユニットが必要です。異常を検出するセンサだけでは施錠できません。
FAQ
Q: ブレスレットから2メートル以上離れたことは、どの構成要素で判断しますか?
A: スーツケースから見たブレスレットまでの距離を計測する測位ユニットで判断します。
A: スーツケースから見たブレスレットまでの距離を計測する測位ユニットで判断します。
Q: 物体識別ユニットは必要ありませんか?
A: このモードでは物体との衝突を避けながら追尾走行する機能を使わないため、最低限の構成要素には含まれません。
A: このモードでは物体との衝突を避けながら追尾走行する機能を使わないため、最低限の構成要素には含まれません。
Q: スマホにメッセージを送るための通信機能は必要ではありませんか?
A: 通信機能は必要ですが、表1では制御部がスマホと通信します。制御部は設問で除かれているため、制御部以外の構成要素としては挙げません。
A: 通信機能は必要ですが、表1では制御部がスマホと通信します。制御部は設問で除かれているため、制御部以外の構成要素としては挙げません。
関連キーワード: 距離計測、加速度検出、センサ、施錠制御、アクチュエータ
設問3(2)
問題文を見る表4中のa、bに入れる適切なタスク間メッセージを答えよ。
模範解答
a:測位情報
b:加速度異常
解説
解答の導き方
この設問では、ハンドキャリーモードでメインタスクが受け取る二つの通知を、それぞれの処理に必要な情報と、タスク間の通知経路から判断します。
まず、盗難注意メッセージを送る条件は、スーツケースがブレスレットから「2メートル以上離れた」ことです。表1では、測位ユニットがスーツケースから見たブレスレットの方向と距離を計測し、その情報を「測位情報」として制御部に出力します。さらに表3では、走行プランタスクが入力した測位情報をメインタスクに通知するとあります。したがって、メインタスクがブレスレットまでの距離を確認するために受け取る通知は「測位情報」です。
次に、盗難警告メッセージを送る条件には、スーツケースが静止しているときより強い加速度の検出が含まれています。表4では、加速度検出タスクがその加速度を検出すると、メインタスクに通知する設計です。また、表3でも、加速度検出タスクからメインタスクへ通知する内容は「加速度異常」とされています。よって、メインタスクが受け取るもう一つの通知は「加速度異常」です。
ただし、強い加速度が検出されただけでは、盗難警告の条件を満たすとは限りません。メインタスクは、測位情報からブレスレットまでの距離も確認し、必要な場合に施錠と盗難警告メッセージの送信を行います。
誤りやすいポイント
- 盗難注意メッセージの条件はブレスレットまでの距離なので、物体識別情報と取り違えないようにします。物体識別情報は、進行方向にある物体やその動きに関する情報です。
- 加速度異常の通知だけで盗難警告を送信するのではありません。問題文では、ブレスレットから2メートル以上離れていることも条件になっています。
- 設問が尋ねているのは、センサ名や通知元タスク名ではなく、メインタスクに渡されるタスク間メッセージです。
FAQ
Q: なぜ距離の確認に測位情報を使うのですか?
A: 測位ユニットがブレスレットの方向と距離を計測し、その結果を測位情報として出力するためです。
A: 測位ユニットがブレスレットの方向と距離を計測し、その結果を測位情報として出力するためです。
Q: 加速度異常を受け取ったら、必ず施錠するのですか?
A: いいえ。盗難警告の条件には、ブレスレットから2メートル以上離れていることも含まれます。メインタスクは距離も確認して、必要な場合に施錠します。
A: いいえ。盗難警告の条件には、ブレスレットから2メートル以上離れていることも含まれます。メインタスクは距離も確認して、必要な場合に施錠します。
Q: 測位情報はどのタスクからメインタスクに通知されますか?
A: 表3では、走行プランタスクが測位情報を入力し、その測位情報をメインタスクに通知するとされています。
A: 表3では、走行プランタスクが測位情報を入力し、その測位情報をメインタスクに通知するとされています。
関連キーワード: タスク間通信、リアルタイムOS、センサ監視、イベント通知、状態管理
設問3(3)
問題文を見る所有者がスーツケースをハンドキャリーしているときに、加速度異常がメインタスクに高頻度で通知されてしまう問題が指摘された。このため、メインタスクから加速度検出タスクへの計測開始の通知及び計測停止の通知を追加し、加速度検出タスクは計測開始の通知を受けてから、計測停止の通知を受けるまでの間だけ加速度センサを監視する設計に変更した。メインタスクが加速度検出タスクに計測開始を通知する条件を、40字以内で述べよ。
模範解答
ブレスレットからの距離が、2メートル未満から2メートル以上に変化した。
解説
解答の導き方
-
ハンドキャリーモードでは、ブレスレットから「2メートル以上離れた状態」で、スーツケースが静止しているときより強い加速度を検出すると、盗難警告につながります。したがって、加速度の監視は、ブレスレットから離れた状態になったときに開始する必要があります。
-
一方、所有者がスーツケースを持ち運んでいる間は、持ち上げたり歩いたりすることで加速度が変化します。距離に関係なく加速度センサを監視すると、盗難ではない通常の持ち運びでも加速度異常が高頻度で通知される可能性があります。
-
そこで、距離が2メートル以上かどうかだけでなく、距離がどの状態からどの状態に変わったかを条件にします。2メートル未満から2メートル以上になった時点で、盗難の可能性を検知するための加速度監視を開始します。つまり、開始条件は「ブレスレットからの距離が、2メートル未満から2メートル以上に変化した。」です。
誤りやすいポイント
- ハンドキャリーモードに入った時点で加速度監視を開始すると、所有者が持ち運んでいる間の加速度変化も検出してしまいます。
- 「2メートル以上であること」だけを答え、2メートル未満から2メートル以上への変化という開始のタイミングを示さないと、設問が求める条件として不十分です。
- 加速度が強くなったことは、加速度監視を開始する条件ではありません。監視を開始した後に、盗難警告の判断材料として使います。
FAQ
Q: なぜ距離が2メートル未満の間は、加速度を監視しないのですか?
A: 所有者がスーツケースを持ち運んでいる間の加速度変化で、加速度異常が高頻度に通知されるのを避けるためです。
A: 所有者がスーツケースを持ち運んでいる間の加速度変化で、加速度異常が高頻度に通知されるのを避けるためです。
Q: 監視開始の条件は、距離が2メートル以上なら常に成立するのですか?
A: 開始条件として重要なのは、2メートル以上という状態だけでなく、2メートル未満から2メートル以上へ変化したことです。
A: 開始条件として重要なのは、2メートル以上という状態だけでなく、2メートル未満から2メートル以上へ変化したことです。
Q: 加速度の変化を検出してから、加速度センサの監視を始めるのですか?
A: いいえ。距離が条件を満たした時点で監視を始め、その後に検出した加速度を盗難警告の判断に使います。
A: いいえ。距離が条件を満たした時点で監視を始め、その後に検出した加速度を盗難警告の判断に使います。
関連キーワード: 閾値判定、状態遷移、センサ監視、イベント駆動処理





