戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

エンベデッドシステムスペシャリスト 2018年 午後1 問01


静止画及び動画を撮影する、自撮り用の自律式小型マルチコプタに関する次の記述を読んで、設問1~3に答えよ。

 A社は、4個のプロペラを備え、機体を傾けることによって移動する、自撮り用の自律式小型マルチコプタ(以下、ドローンという)を開発することになった。ドローンは、スマートフォンで操作され、関連法令などによる使用制限が少なくなるように、本体の重量を200グラム未満(バッテリを含む)にすることを優先に開発する。  ドローンのブロック図を図1に示す。
エンベデッドシステムスペシャリスト試験(平成30年 午後1 問1 図1)
〔本体の主なシステム構成〕  本体は、モータとバッテリ以外に次の要素で構成される。  ・無線通信部:カメラで撮影した画像(以下、画像という)を変換した情報のスマートフォンへの送信、スマートフォンからの指示の制御部への通知、スマートフォンからの無線信号の強度の測定などを行う。  ・制御部:スマートフォンからの指示に従って撮影するために、ドローンの移動制御、離陸制御、着陸制御、障害物検知時の回避処理などを行う。さらに、その場で高度を維持しつつ静止又は回転している状態(以下、ホバリングという)及び移動時の姿勢制御も行う。  ・モータ制御部:制御部からの指示によって四つのモータの回転数を制御する。  ・超音波センサ部:障害物の検知、ドローンの高度の計測などを行う。  ・ジャイロセンサ:ドローンの姿勢制御に使用し、3次元の加速度も測定できる。  ・電源部:バッテリからの電力を、内部に供給する。   〔撮影ユニットのシステム構成と自撮り制御〕  撮影ユニットは、カメラ、アクチュエータ及び画像制御部から構成されている。  アクチュエータは、カメラの光軸を垂直方向に動かす。画像制御部は、画像をMPEG4の動画情報及びJPEGの静止画情報に変換し、本体の無線通信部を介してスマートフォンに送信する。  画像制御部は、撮影者が保持しているスマートフォンの赤外線の発光位置を100ミリ秒に1回確認する。さらに、その発光位置が画像の中心付近になるように、アクチュエータを制御したり、画像の水平方向における発光位置の情報(以下、水平発光位置情報という)を制御部に送信したりして、自撮り制御を行う。   〔ドローンの自律飛行制御〕  制御部は、自律飛行するためにモータを制御する。揚力を得るためにプロペラを回転させると、その反作用で機体は、プロペラの回転の向きとaに回転しようとする。プロペラの回転の向き(真上から見た図)を図2に示す。図2に示すようにa1~a4を回転させることによって、反作用の影響を少なくする。  空中で高度を維持するには、a1~a4からのbがcと釣り合うようにモータの回転数を制御する。
エンベデッドシステムスペシャリスト試験(平成30年 午後1 問1 図2)
〔ドローンの運動〕  ドローンの運動とプロペラの回転数(比率)の関係を表1に示す。ここで、a1~a4の回転数は、ホバリング中(機体の回転が静止)の各プロペラの回転数を10とした場合の比率で示す。各プロペラで得られる揚力は回転数に比例するものとする。
〔制御部のソフトウェア概要〕  制御部ではリアルタイムOSを使用する。制御部のタスクの処理概要を表2に示す。
エンベデッドシステムスペシャリスト試験(平成30年 午後1 問1 表2)
 被写体を自動追尾するために、被写体とドローン間の距離を一定に保つための距離制御を実施する。自動追尾時におけるタスクの動作シーケンスの例を図3に示す。移動先指定タスクは、スマートフォンからの無線信号の強度を基に推定した被写体までの距離、撮影ユニットから受信した水平発光位置情報などを基に、移動方向を決定する。その後、姿勢制御タスクは、移動方向に移動させるための各モータの回転数、又はホバリングに移行させるための各モータの回転数を、モータ制御部に送信して、自動追尾の動作を実現する。

設問1:ドローンの自律飛行について、(1)、(2)に答えよ。

設問1(1)

問題文を見る
〔ドローンの自律飛行制御〕の本文中のa~cに入れる適切な字句を答えよ。

模範解答

a:反対方向 b:揚力 c:重力

解説

解答の導き方

まず、空欄aは、プロペラの回転によって機体に生じる回転の向きを問うています。本文には、プロペラを回転させると「その反作用で機体は、プロペラの回転の向きとaに回転しようとする」とあります。プロペラが一方向に回ると、その反作用で機体は逆向きに回転しようとするため、aには「反対方向」が入ります。
次に、空欄bとcは、高度を維持するときに釣り合う力を問うています。プロペラは機体を上向きに押し上げる力を生み、これが揚力です。一方、機体には下向きに重力が働きます。本文の「空中で高度を維持するには」という条件から、上向きの揚力と下向きの重力が釣り合う必要があります。したがって、bには「揚力」、cには「重力」が入ります。

誤りやすいポイント

  • プロペラの回転方向と機体の回転方向を同じ向きだと考えないようにします。機体に生じる回転は、プロペラの回転に対する反作用です。
  • 高度を維持する条件では、揚力と重力の向きが反対であることを踏まえ、両者が釣り合うと考えます。
  • 「揚力」は上向きに働く力、「重力」は下向きに働く力です。どちらがどの向きかを混同しないようにします。

FAQ

Q: 揚力が重力より大きい場合、ドローンはどうなりますか?
A: 上向きの力が下向きの力を上回るため、ドローンは上昇します。反対に、揚力が重力より小さい場合は下降します。
Q: 揚力と重力が釣り合えば、ドローンは必ず空中で静止しますか?
A: 高度を変えないための条件は満たしますが、水平方向の移動や機体の回転がないことまでは示しません。高度の維持と、機体全体が静止していることは別の条件です。

関連キーワード: 反作用トルク、揚力、重力、ホバリング、姿勢制御

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問1(2)

問題文を見る
次の記述中のd、eに入れる適切な字句を答えよ。    コストを抑えたことによって、プロペラの形状にはばらつきがある。ばらつきの影響を吸収し、同じ揚力を得るためにはプロペラごとにモータの回転数を補正する必要がある。離陸前に、ドローンは、工場出荷時に制御部のフラッシュメモリに記録した各プロペラのばらつきに対するdを読み出して、各モータに指定するeを求めてモータを駆動することによって、揚力を調整する。

模範解答

d:補正データ e:回転数

解説

解答の導き方

  1. 本文では、プロペラの形状にばらつきがあるため、「同じ揚力を得るためにはプロペラごとにモータの回転数を補正する必要がある」と説明されています。したがって、工場出荷時にフラッシュメモリへ記録しておくのは、プロペラごとのばらつきを補うための情報です。この情報を表す語句は「補正データ」です。
  2. 次に、補正データを読み出した後、「各モータに指定するeを求めてモータを駆動する」とあります。モータの回転数を補正して揚力を調整する流れなので、各モータに指定するのは「回転数」です。

誤りやすいポイント

  • dを「補正値」と考えると、記録されている情報の名称と合いません。ここでは、各プロペラのばらつきを補うための情報全体を指す「補正データ」が適切です。
  • eを「揚力」としないように注意してください。揚力は調整する対象であり、モータに指定する値は回転数です。
  • プロペラの形状のばらつきに対する補正は、工場出荷時に記録されたデータを使います。離陸前に新たにばらつきを測定するという説明ではありません。

FAQ

Q: なぜプロペラごとにモータの回転数を補正するのですか?
A: プロペラの形状にばらつきがあると、同じ回転数でも得られる揚力に差が生じるためです。回転数を調整して、同じ揚力を得られるようにします。
Q: フラッシュメモリに記録されているのは、各モータの回転数そのものですか?
A: 本文では、各プロペラのばらつきに対する補正データを読み出し、それを基に各モータに指定する回転数を求める流れになっています。
Q: モータに指定する値が揚力ではないのはなぜですか?
A: モータを駆動するために指定するのは回転数です。その回転数を調整することで、プロペラが生み出す揚力を調整します。

関連キーワード: 補正データ、プロペラ、揚力、モータ回転数、フラッシュメモリ

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問2:自撮り制御について、(1)、(2)に答えよ。

設問2(1)

問題文を見る
画像の水平方向の位置合わせの制御には、アクチュエータを使用せず、撮影ユニットから本体に情報を渡して、本体で処理する。このとき、撮影ユニットから本体に渡す情報を、10字以内で述べよ。また、その情報を受け取った本体が水平方向の位置合わせのために行う制御を、20字以内で述べよ。

模範解答

情報:水平発光位置情報 制御:ずれを補正する方向へ回転させる。

解説

解答の導き方

この設問は、画像の水平方向の位置合わせについて、撮影ユニットから本体へ渡す情報と、その情報を受け取った本体が行う制御を問うています。
  1. まず、撮影ユニットが行う処理を確認します。画像制御部は、スマートフォンの赤外線の発光位置を確認し、「画像の水平方向における発光位置の情報」を制御部に送信します。この情報の名称は、問題文で「水平発光位置情報」と定義されています。したがって、本体に渡す情報は「水平発光位置情報」です。
  2. 次に、撮影ユニット側のアクチュエータが動かす方向を確認します。アクチュエータはカメラの光軸を垂直方向に動かします。そのため、水平方向の位置合わせには、このアクチュエータを使いません。
  3. 本体は、受け取った水平発光位置情報を基に、発光位置が画像の中心に近づくようにドローンを制御します。具体的には、移動先指定タスクが移動方向を決め、姿勢制御タスクがモータの回転数を制御することで、ずれを補正する方向へ機体を回転させます。

誤りやすいポイント

  • アクチュエータがカメラの光軸を動かすことから、水平方向の位置合わせにもアクチュエータを使うと考えないようにします。問題文では、アクチュエータが動かすのは垂直方向です。
  • 本体に渡す情報を「赤外線の発光位置」とだけ答えると、設問が求める情報の名称が不明確になります。「水平発光位置情報」と答えます。
  • 本体の制御を「位置情報を受け取る」とだけ答えても、どのような制御を行うのかが不足します。ずれを補正する方向へ機体を回転させることまで示します。

FAQ

Q: なぜ撮影ユニットから位置情報を送るのですか?
A: 撮影ユニットで検出した発光位置を本体が利用し、機体を制御して水平方向のずれを補正するためです。
Q: 水平方向の位置合わせでは、カメラの向きを動かすのですか?
A: この問題では、アクチュエータが動かすのは垂直方向です。水平方向の位置合わせは、本体がモータを制御して機体を回転させることで行います。
Q: 水平発光位置情報を受け取った後、どのタスクがモータを制御しますか?
A: 移動先指定タスクが移動方向を決め、その通知を受けた姿勢制御タスクがモータの回転数を制御します。

関連キーワード: 位置検出、フィードバック制御、姿勢制御、モータ制御、画像処理

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問2(2)

問題文を見る
表1中のf、gに入れる適切な数値を答えよ。

模範解答

f:9 g:11

解説

解答の導き方

表1では、右回転中の既知の回転数が、、と示されています。回転数はホバリング中の値を10とした比率です。また、本文には「各プロペラで得られる揚力は回転数に比例する」とあります。したがって、各プロペラの回転数を調整すると、そのプロペラが生む揚力も変わります。
図2を見ると、とは機体の対角にあり、とも対角にあります。機体を傾けずに右回転させるには、対角にあるプロペラ同士の揚力をそろえ、傾きを生じさせる力のモーメントを打ち消す必要があります。そのため、と対角にあるはと同じ11にし、と対角にあるはと同じ9にします。
この調整では、回転数が11になるプロペラが2個、9になるプロペラが2個です。回転数の合計はで、ホバリング中のと変わりません。揚力の合計を保つことで高度を維持できます。
さらに、とは反時計回り、とは時計回りです。プロペラの回転による反作用で機体は逆向きに回ろうとするため、反時計回りの2個を増速し、時計回りの2個を減速すると、機体を右回転させる向きの反作用が生じます。よって、表1の空欄は、となります。

誤りやすいポイント

  • プロペラの回転方向が同じというだけで、回転数も同じになると判断しないでください。回転数をそろえる根拠は、対角位置のプロペラ同士の揚力をそろえて、機体の傾きを防ぐことです。
  • プロペラの回転方向と、反作用で回ろうとする機体の方向を混同しないようにします。機体はプロペラの回転と逆向きに回ろうとします。
  • 回転数の合計を保つだけでは、機体の傾きを防げるとは限りません。揚力の合計に加えて、プロペラの配置による力のモーメントも考えます。

FAQ

Q: 回転数の合計が40になれば、空欄は決まりますか?
A: 合計だけでは決まりません。高度維持に加えて、対角位置のプロペラ同士の揚力をそろえ、機体の傾きを抑える条件も使います。
Q: 反時計回りのプロペラを増速すると、機体はどちらに回ろうとしますか?
A: プロペラの回転に対する反作用で、機体は反対の時計回りに回ろうとします。時計回りのプロペラを減速することも、機体を時計回りに回す向きに働きます。

関連キーワード: 揚力、反作用トルク、力のモーメント、姿勢制御、回転数調整

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:ソフトウェアによるドローンの自動追尾制御について、(1)、(2)に答えよ。

設問3(1)

問題文を見る
図3中のh~jに入れる適切な字句を答えよ。

模範解答

h:高度測定・障害物検知 i:無線信号の強度 j:障害物情報

解説

解答の導き方

図3では、「移動先指定」タスクに向かう情報の送り元と内容を、表2の各タスクの処理概要に照らして考えます。
まず、図3の「通信」から「移動先指定」へ送られる情報を確認します。表2には、通信タスクが「スマートフォンからの無線信号の強度を、移動先指定タスクに通知する」とあります。したがって、図3の i に入るのは、移動先指定タスクが被写体までの距離を推定する手掛かりにもする「無線信号の強度」です。
次に、図3の h から「移動先指定」へ送られる情報を考えます。表2では、「高度測定・障害物検知」タスクが障害物を検知し、その情報を「障害物情報として移動先指定タスクに通知する」とされています。この情報を送るタスクが h、送られる情報が j に当たります。
なお、図3には「カメラ」から「移動先指定」へ送る情報として「水平発光位置情報」が示されています。これは、スマートフォンの位置に合わせた移動方向の決定に使われます。一方、障害物の有無や方向に関する情報は「高度測定・障害物検知」タスクから通知されるため、カメラの情報と混同しないようにします。

誤りやすいポイント

  • 「通信」タスクから届く情報を、移動先指定タスクが決定する「移動方向」と取り違えないようにします。通信タスクから通知されるのは、スマートフォンからの無線信号の強度です。
  • h は情報の送り元、j はその情報の内容です。タスク名と通知する情報を区別して答えます。
  • 「水平発光位置情報」はカメラタスクから届く情報です。障害物情報とは送り元も用途も異なります。

FAQ

Q: 無線信号の強度は、移動先指定タスクで何に使われますか?
A: 被写体までの距離を推定するための手掛かりとして使われます。
Q: 障害物情報を受け取った移動先指定タスクは、何をしますか?
A: 移動方向に障害物がある場合は、メインタスクに警告を通知し、姿勢制御タスクにはホバリングの指示を通知します。
Q: カメラタスクから届く水平発光位置情報は、障害物情報と同じものですか?
A: 違います。水平発光位置情報は撮影者のスマートフォンの位置に関する情報で、障害物情報は障害物の有無や方向に関する情報です。

関連キーワード: タスク間通信、リアルタイムOS、周期処理、センサ情報処理

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3(2)

問題文を見る
ドローンが移動の状態からホバリングに移行するまでに時間が掛かることが分かった。そこで、高度測定・障害物検知タスクは、障害物があった場合、姿勢制御タスクにも障害物情報を通知することにした。そのために、姿勢制御タスクに追加する処理内容として、次の記述中のk、ℓに入れる適切な字句を、それぞれ15字以内で答えよ。    障害物情報の通知を受けた場合、kときには、ドローンをℓための各モータの回転数をモータ制御部に送信する。

模範解答

k:移動方向に障害物がある ℓ:ホバリングに移行させる

解説

解答の導き方

この設問では、障害物情報を受け取った姿勢制御タスクが、どの状況で、どのようなモータ制御を行うかを考えます。
  1. まず、移動先指定タスクの処理を確認します。表2には、障害物情報を確認し、「移動方向に障害物があった場合」は、姿勢制御タスクにホバリングの指示を通知するとあります。つまり、障害物を避けるためにホバリングへ移る必要があるのは、障害物が移動方向にある場合です。
  2. 次に、今回の変更理由を確認します。ドローンが移動状態からホバリングに移るまでに時間が掛かるため、高度測定・障害物検知タスクから姿勢制御タスクにも障害物情報を直接通知します。姿勢制御タスクは、その情報を受けたとき、障害物が移動方向にあるかを判断する必要があります。したがって、kには「移動方向に障害物がある」が入ります。
  3. 最後に、姿勢制御タスクが行う制御を考えます。表2では、姿勢制御タスクはモータ制御部に各モータの回転数を送信し、ドローンをホバリングに移行させる処理を行います。障害物が移動方向にある場合に必要な処理なので、ℓには「ホバリングに移行させる」が入ります。

誤りやすいポイント

  • 障害物情報を受け取ったら、障害物の位置にかかわらずホバリングすると考えないようにします。移動先指定タスクの処理にあるとおり、判断の条件は「移動方向に障害物がある」ことです。
  • kには障害物の検知そのものではなく、障害物情報を基にしたホバリングの判断条件を入れます。
  • ℓは障害物を検知する処理ではなく、ホバリングに向けてモータの回転数を制御する目的を表します。

FAQ

Q: なぜ姿勢制御タスクにも障害物情報を通知するのですか?
A: 移動先指定タスクを経由してホバリングを指示する場合、移動からホバリングへの移行に時間が掛かるためです。姿勢制御タスクが障害物情報を直接受け取ることで、必要なモータ制御を行えるようにします。
Q: 障害物が移動方向にない場合も、ホバリングに移行しますか?
A: この設問で追加する処理は、移動方向に障害物がある場合を条件としています。障害物が別の方向にあるだけで、直ちにホバリングへ移行するとは判断できません。
Q: 姿勢制御タスクは、障害物情報を受け取った後に何をしますか?
A: 条件に該当する場合、ホバリングに移行させるための各モータの回転数をモータ制御部に送信します。

関連キーワード: 障害物検知、タスク間通信、姿勢制御、ホバリング、リアルタイムOS

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

戦国ITクイズ機能

\ せっかくなら /

エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について