【課題#2】直角カーブに対応するライントレース
この課題では、mBotのライントレースにおいて、直角カーブのコースに対応した制御プログラムを作成します。
mBotのライントレースセンサーは、H/W構造上、直角カーブの検出(右折するか左折するかの判断)は困難です。
このような場合でも、逆走せずにライン追従する制御方法をご紹介します。
この課題は、プログラミング教育の必修化に伴い、子どもたちに楽しくプログラミングを教えるために作成した教材です。
未経験の先生や、家庭で子どもと一緒にプログラミングを学びたい親御さん向けに、ロボットプログラミングを通じて、子どもたちの論理的思考力や創造性を伸ばすきっかけとなれば幸いです。
チャレンジ課題の一覧はこちら

ライントレース用の黒色ラインの作成には、反射の少ない黒色マスキングテープがお勧めです。
(黒色マジックペンでは、反射してセンサーが黒色を認識しないことがあります)
この課題で学べること
- センサーの限界とその克服方法:センサーの弱点を理解し、その課題を解決する創造的なプログラム設計を習得します
- 複雑なプログラム構造への対応:複数の条件を組み合わせた、より高度な条件分岐による制御ロジックを学びます
- 問題解決力の強化:逆走や予期せぬ動作発生時のプログラム修正を体験し、トラブル対応のスキルを養います。
課題の概要
mBotのライントレースセンサーは、通常の曲線ではスムーズにライン追従動作が可能ですが、直角カーブが現れるとその検出が困難になります。

困難な理由
直角カーブに差し掛かった際、mBotに搭載された2つのライントレースセンサーがほぼ同時に「黒]⇒「白」へ変化するため、右折なのか左折なのかの判断がつきません。

この結果、ロボットは逆走するなど不適切な動作を行う可能性があります。
目標
この課題では、直角カーブでもライン追従動作を正確に行える制御プログラムを構築します。
逆走せず、効率よくラインを追従する動きを実現することがゴールです。
使用するツール
- mBot
- PC
- 『mBlock』をインストールしたもの
- ライントレース用コース
制御方法の概要
ベースとするプログラム
直角カーブに対応するプログラムのベースとなるのは、通常の曲線カーブに対応する次のプログラムとします。
ライントレースセンサーの検出値(0~3)に応じて、直進、右回転、左回転、後退を行います。


ライントレースセンサーの検出値に関しては、以下の記事を参照ください。
課題に対する具体策
方向転換の正誤判定
直角カーブでは、ライントレースセンサーがほぼ同時に「黒]⇒「白」へ変化するため、事前に右折なのか左折なのかを判断することができません。これは、mBotのライントレースセンサーの限界と言えます。
そのため、『「黒]⇒「白」の変化時に、右折なのか左折なのかを判断する』のではなく、『右折/左折後に、この選択が正しかったのかを判断する』ことが対策の一つとなります。
