Robotics ロボット工学

ライントレース実験の考察|反射型センサー・PWM・比例制御と脱線原因

ライントレース実験は、床面に描かれた黒線や白線をセンサーで検出し、その情報をもとに左右のモーターを制御して車体を線に沿って走行させるロボット制御の学生実験です。

一般的なライントレースでは、赤外線LEDと受光素子を組み合わせた反射型センサーを使い、白い床面と黒いラインで反射光の強さが異なることを利用します。センサー値から車体がラインのどちら側へずれたかを判断し、左右モーターの速度差を調整することで進行方向を補正します。

この記事では、大学・高等学校などの学生実験でライントレースロボットを作製・測定することを想定し、反射型センサーの原理、白黒判定、しきい値、2センサー・3センサー以上の違い、左右モーター制御、PWM、走行速度、センサー位置、比例制御、PID制御の基本、結果のまとめ方、うまく走らない原因、改善点、考察の書き方などを整理します。

注意:
この記事は、大学・高等学校などの物理・電気・情報・制御実験で得られた結果を考察するための参考資料です。実際のマイコン、モータードライバ、電源電圧、センサー、モーター、車体構成、安全上の注意は、必ず使用部品の仕様書、所属学校の実験書、担当教員、TAなどの指示に従ってください。モーターをマイコンのI/O端子から直接駆動せず、適切なモータードライバを使用してください。

  1. ライントレースとは何か
  2. ライントレース実験で見るべき結果
    1. 結果に書く主な項目
  3. 反射型センサーの原理
  4. 黒と白でセンサー値が違う理由
  5. 白黒判定の参考測定
  6. しきい値とは何か
  7. しきい値の決め方
  8. 固定しきい値の問題
  9. センサーと床面の距離
  10. センサーを車体前方に置く理由
  11. センサー位置と追従性
  12. 2個のセンサーを使う方法
  13. 3個以上のセンサーを使う方法
  14. センサー数を増やす利点
  15. センサー間隔
  16. モーターを左右独立に制御する
  17. モータードライバを使う理由
  18. PWMによる速度制御
  19. 左右モーターの個体差
  20. 直進補正
  21. ON・OFF制御
  22. ON・OFF制御で蛇行する理由
  23. 比例制御とは何か
  24. 偏差とは何か
  25. 比例ゲインとは何か
  26. 比例制御の考え方
  27. PID制御とは何か
  28. P制御の役割
  29. I制御の役割
  30. D制御の役割
  31. 走行速度を上げると難しくなる理由
  32. 制御周期
  33. delayを多用するとどうなるか
  34. 急カーブで脱線する場合
  35. 直線で蛇行する場合
  36. ラインを見失った場合
  37. 直前の状態を利用する
  38. 交差線を通過する場合
  39. 白線を追従する場合
  40. 周囲光の影響
  41. 外光対策
  42. 床面の材質による違い
  43. 光沢面で誤判定する場合
  44. タイヤの影響
  45. キャスターの影響
  46. 電池電圧低下の影響
  47. モーター始動電圧
  48. 参考実験条件
  49. 参考走行結果
  50. 結果の書き方の例
  51. 走行時間を測定する
  52. 完走率を評価する
  53. 蛇行量を評価する
  54. 制御ゲインを変える実験
  55. 基準速度を変える実験
  56. センサー高さを変える実験
  57. センサー間隔を変える実験
  58. うまく走らない場合の原因
  59. 左右逆に補正してしまう場合
  60. 片側モーターが回らない場合
  61. センサー値が常に同じ場合
  62. 急に脱線する場合
  63. 主な誤差・実験上の問題
  64. うまくいかなかった場合の考察例
  65. 改善点の書き方
    1. センサー条件を改善する方法
    2. モーター条件を改善する方法
    3. 制御を改善する方法
  66. 浅い考察とよい考察の違い
    1. 浅い考察の例
    2. よりよい考察の例
  67. しきい値についての考察例
  68. センサー高さについての考察例
  69. 走行速度についての考察例
  70. 比例ゲインについての考察例
  71. 左右モーター差についての考察例
  72. 電源についての考察例
  73. センサー実験との関係
  74. Arduinoとの関係
  75. ESP32との関係
  76. モーター実験との関係
  77. PID制御への発展
  78. 走行ログを記録する
  79. レポートで使える表現例
  80. ライントレース実験の考察で確認するポイント
  81. まとめ

ライントレースとは何か

ライントレースとは、床面に設けられた線をセンサーで検出し、その線に沿って自動走行する制御方式です。

ロボットがラインの中央からずれると、センサー値の変化を使ってずれ方向を判断し、左右の車輪速度を変えることで進行方向を修正します。

単純なON・OFF制御から、比例制御、PID制御などへ発展させることができます。

ライントレース実験で見るべき結果

結果に書く主な項目

  • 使用したセンサーの種類
  • センサー数
  • 白面でのセンサー値
  • 黒線上でのセンサー値
  • 白黒判定のしきい値
  • センサー間隔
  • センサーと床面の距離
  • 左右モーターのPWM値
  • 基準走行速度
  • 曲線部での走行状態
  • 脱線の有無
  • 1周に要した時間
  • 同じコースを複数回走行したときのばらつき
  • 制御方式を変えたときの違い

ライントレースでは「完走したか」だけでなく、蛇行の大きさ、曲線追従性、走行時間、脱線位置などを記録すると、制御の違いを定量的に比較しやすくなります。

反射型センサーの原理

反射型センサーでは、赤外線LEDなどから床面へ光を照射し、床面から戻ってくる反射光を受光素子で検出します。

一般に白い面は反射光が多く、黒い面は光を吸収しやすいため反射光が少なくなります。

この差を電圧やデジタル値として読み取ることで、センサーが白面の上にあるか黒線の上にあるかを判断します。

黒と白でセンサー値が違う理由

白い表面では入射した光の多くが反射されます。

一方、黒い表面では光が吸収されやすく、受光素子へ戻る光が少なくなります。

ただし、実際の出力が「白で大きい」「黒で小さい」になるか、その逆になるかはセンサーモジュールの回路によって異なります。

白黒判定の参考測定

測定面 センサー値の例 判定
850
220

上記は概念的な参考例です。実際の数値はセンサー、床材、電源電圧、床面距離、周囲光などによって変化します。

しきい値とは何か

センサー値から白と黒を区別する境界値をしきい値と呼びます。

例えば白面で850、黒線で220程度の値が得られた場合、両者の中間付近をしきい値として設定する方法があります。

ただし、床面や照明条件によって値が変化するため、実際のコース上で測定して決めます。

しきい値の決め方

白面と黒線上で複数回センサー値を測定し、それぞれの分布を確認します。

白と黒の測定値が十分に離れている場合は、その中間にしきい値を置くことで安定した判定ができます。

値が重なっている場合は、センサー高さ、周囲光、ライン材質などを見直します。

固定しきい値の問題

走行中に照明条件や床面反射率が変わると、固定したしきい値では誤判定が増える場合があります。

コースの場所によって白面のセンサー値が大きく変化する場合は、校正範囲を広げたり、複数センサーの相対値を使ったりする方法があります。

センサーと床面の距離

反射型センサーでは、床面との距離によって受光量が変化します。

高すぎると白黒の差が小さくなり、低すぎると床面へ接触したり、わずかな凹凸の影響を受けたりします。

比較実験では、センサー高さを一定にします。

センサーを車体前方に置く理由

センサーを車輪より前方へ配置すると、車体中心がラインから大きく外れる前に進行方向のずれを検出できます。

一方、センサーを前方へ出しすぎると、曲線で早く反応しすぎたり、車体旋回中心との関係が変わったりします。

センサー位置と追従性

センサーと車輪軸との距離が長いほど、ラインの変化を早く検出できます。

しかし、同じ制御量でも車体挙動が敏感になり、蛇行しやすくなる場合があります。

車体寸法に合わせた適切な位置調整が必要です。

2個のセンサーを使う方法

左右に2個のセンサーを配置すると、左右どちらが黒線を検出したかによって進行方向を修正できます。

左センサー 右センサー 制御例
直進または直前の状態を維持
左方向へ補正
右方向へ補正
交差線・太線・特殊状態として判断

実際の制御方向は、黒線をセンサー間に挟む方式か、片側で追従する方式かによって異なります。

3個以上のセンサーを使う方法

3個以上のセンサーを横方向に並べると、ラインが車体中心からどの程度ずれているかをより細かく判断できます。

中央センサーが黒、左右が白ならほぼ中央、左側複数が黒なら大きく左へずれている、というように位置を段階的に評価できます。

センサー数を増やす利点

センサー数が多いほどライン位置を細かく推定できるため、滑らかな制御へ発展させやすくなります。

一方、配線、入力数、プログラム処理、校正項目も増加します。

センサー間隔

左右センサーの間隔が狭すぎると、少しのずれで両方が同じ面を検出し、方向判定が不安定になる場合があります。

広すぎると細いラインを見失いやすくなります。

ライン幅と車体幅に合わせて調整します。

モーターを左右独立に制御する

一般的なライントレースロボットでは、左右の車輪をそれぞれ別のDCモーターで駆動します。

左右モーターの速度を同じにすると直進し、速度差をつけると旋回します。

片側を遅くし、反対側を速くすることでライン方向へ車体を戻します。

モータードライバを使う理由

DCモーターはマイコンGPIOから直接供給できる電流より大きな電流を必要とします。

そのため、ArduinoやESP32からは制御信号だけを出力し、モータードライバがモーターへ電流を供給します。

逆起電力への保護も考慮します。

PWMによる速度制御

モーター速度はPWMで制御できます。

PWMのデューティ比を大きくすると、モーターへ加わる平均的な電力が増え、回転速度が上がる傾向があります。

ただし、PWM値と実際の回転速度は完全な比例関係にはならない場合があります。

左右モーターの個体差

左右へ同じPWM値を与えても、必ず完全に直進するとは限りません。

モーター個体差、ギア摩擦、タイヤ径、車軸抵抗などにより左右速度が異なるためです。

直進補正として左右の基準PWM値を少し変える場合があります。

直進補正

ライン制御を行う前に、白い床面などで左右モーターへ同じPWMを与え、車体が直進するか確認します。

片側へ曲がる場合は、左右PWMを調整して基準速度を補正します。

この補正を行わないと、ライン制御側で常に片方向へ修正し続ける必要があります。

ON・OFF制御

最も単純なライントレースでは、センサーが左ずれを検出したら左へ一定量修正し、右ずれなら右へ一定量修正します。

この方式は実装が簡単ですが、修正量が常に一定のため、蛇行しやすい特徴があります。

ON・OFF制御で蛇行する理由

ラインからわずかに外れただけでも大きな補正を行うと、車体がラインを通り越して反対側へずれます。

すると今度は逆方向へ大きく補正し、この繰り返しによって左右へ蛇行します。

比例制御とは何か

ライン中央からのずれ量に応じて補正量を変える方法を比例制御と呼びます。

ずれが小さいときは小さく修正し、ずれが大きいときは大きく修正します。

これにより、単純なON・OFF制御より滑らかな走行が可能になります。

偏差とは何か

ライン中央の理想位置と、センサーから推定した現在位置との差を偏差として扱います。

中央にいるとき偏差0、左へずれたとき負、右へずれたとき正など、符号を決めます。

左右モーター速度差をこの偏差に応じて決めます。

比例ゲインとは何か

比例制御では、偏差に対してどの程度強く補正するかを比例ゲインで決めます。

ゲインが小さすぎると曲線へ追従できず、大きすぎると過剰補正によって蛇行しやすくなります。

比例制御の考え方

基準速度をVbase、補正量をuとすると、概念的には、

左モーター = Vbase + u

右モーター = Vbase – u

のように左右速度へ差をつけます。

uを偏差に比例させることで、ずれが大きいときほど強く旋回します。

PID制御とは何か

より発展的なライントレースでは、比例P、積分I、微分Dを組み合わせたPID制御を使用することがあります。

比例項は現在のずれ、積分項は過去から蓄積したずれ、微分項はずれの変化速度に応じて補正します。

P制御の役割

P制御は現在の偏差に比例して修正します。

基本的なライン追従では最も重要な要素であり、まずP制御だけで調整する方法が扱いやすくなります。

I制御の役割

I制御は小さな偏差が長時間残る場合に、その偏差を積み上げて補正します。

ただし、ライントレースでは積分を強くしすぎると、旋回後も補正が残って不安定になる場合があります。

D制御の役割

D制御は偏差の変化速度を利用します。

急激にラインから外れ始めたときに早めに補正し、蛇行を抑える方向に働く場合があります。

一方、センサーノイズにも敏感になるため、値の安定性が重要です。

走行速度を上げると難しくなる理由

速度が高くなると、センサーがずれを検出してからモーター制御を変更するまでに車体がより長い距離を進みます。

そのため、低速では追従できた曲線でも高速では曲がり切れず脱線する場合があります。

制御周期

センサー読み取りとモーター制御を繰り返す間隔を制御周期として考えます。

周期が長すぎると、ライン位置の変化へ反応するのが遅くなります。

一方、必要以上に高速化しても、センサーノイズやモーター応答の限界があります。

delayを多用するとどうなるか

制御ループ内で長いdelayを使うと、その間センサーを読み取れません。

高速走行ではこの停止時間中に車体が大きく移動し、追従性能が低下します。

時間管理にはmillisやタイマなどを利用する方法があります。

急カーブで脱線する場合

急カーブでは必要な旋回量が大きくなります。

基準速度が高すぎる、センサーが前方を十分に検出できない、最大速度差が不足しているなどの原因で曲がり切れない場合があります。

直線で蛇行する場合

比例ゲインが大きすぎる、ON・OFF制御の補正量が大きすぎる、センサー値が不安定、左右モーター差が大きいなどが原因として考えられます。

ラインを見失った場合

センサーがすべて白またはすべて黒になった場合、ラインを完全に見失っている可能性があります。

直前の偏差方向を記憶し、その方向へ探索する制御を入れる方法があります。

直前の状態を利用する

ラインを見失う直前に右側へずれていた場合は、右側へラインがある可能性が高いと考えられます。

そのため、前回の偏差を保存しておくとライン復帰処理へ利用できます。

交差線を通過する場合

交差点や太い黒線では複数センサーが同時に黒を検出します。

通常のライン追従だけでは状態を区別できないため、「全センサー黒」を交差点として扱うなど追加ルールを設定できます。

白線を追従する場合

黒い床に白線を描いたコースでも、判定条件を反転すれば同様の制御ができます。

重要なのは色そのものではなく、ラインと背景のセンサー値の差が十分にあることです。

周囲光の影響

反射型センサーは外部光の影響を受ける場合があります。

窓からの太陽光や強い照明が受光素子へ入ると、白黒の差が変化したり誤判定が増えたりします。

外光対策

センサー周囲へ遮光部品を取り付ける、床面との距離を適切にする、センサーの発光をON・OFFして差分を測るなどの方法があります。

簡単な学生実験では、照明条件を一定にして測定することが基本です。

床面の材質による違い

同じ白色でも紙、プラスチック、光沢板などでは反射特性が異なります。

黒いビニールテープと黒色印刷でも反射率が異なる場合があります。

しきい値は実際に使用するコース材で決めます。

光沢面で誤判定する場合

光沢のある床面では鏡面反射によって、センサー位置や角度によって受光量が大きく変化する場合があります。

センサーを床面へ垂直に固定するなど、取り付け条件をそろえます。

タイヤの影響

左右タイヤ径がわずかに違うだけでも、同じモーター回転数で進む距離が異なります。

タイヤの摩耗、取り付け位置、床との摩擦も直進性に影響します。

キャスターの影響

2輪駆動車体では補助輪やキャスターを使う場合があります。

キャスターの摩擦や向きが旋回抵抗になり、低速時の方向転換を妨げることがあります。

電池電圧低下の影響

電池が消耗するとモーター速度が低下します。

左右モーターで負荷が異なると、電圧低下による速度差がさらに大きくなる場合があります。

走行実験では電源条件も記録します。

モーター始動電圧

DCモーターはPWM値を小さくしても必ず回転するとは限りません。

摩擦を上回るトルクが必要なため、あるPWM値以下では停止したままになることがあります。

左右モーターの最小始動PWMを事前に測定すると制御設計に役立ちます。

参考実験条件

項目 参考例
制御装置 ArduinoまたはESP32
センサー 反射型赤外線センサー2~5個程度
駆動 左右DCモーター+モータードライバ
コース 白地に黒線
比較 速度、しきい値、センサー間隔、制御ゲイン

参考走行結果

条件 走行結果の例 考察の方向
低速・ON/OFF制御 完走したが蛇行が大きい 補正量が一定
中速・P制御 滑らかに完走 偏差に応じた補正
高速・P制御 急カーブで脱線 応答・旋回能力不足
高ゲイン 直線で左右に振動 過剰補正
低ゲイン カーブ外側へ膨らむ 補正不足

結果の書き方の例

反射型センサーを用いて白面と黒線の出力を測定したところ、白面では平均820、黒線では平均240であった。両者の中間付近を白黒判定のしきい値として設定した。

ON・OFF制御ではコースを完走したが、直線部でも左右への蛇行が大きかった。比例制御へ変更すると、偏差が小さい場合の補正量が小さくなり、直線部の蛇行が減少した。一方、基準速度を上げると急カーブで脱線した。

走行時間を測定する

同じコースを複数回走行し、スタートからゴールまでの時間を測定すると制御条件を比較できます。

最速時間だけでなく、平均時間、完走率、ばらつきも記録すると安定性を評価できます。

完走率を評価する

例えば10回走行して8回完走した場合、完走率は80%です。

1回だけ非常に速く走れる設定より、少し遅くても毎回完走できる設定の方が制御として安定している場合があります。

蛇行量を評価する

動画撮影して車体中心の軌跡を確認すると、ライン中心からのずれを比較できます。

簡易的には「直線部で何回大きく左右補正したか」を数える方法もあります。

制御ゲインを変える実験

比例ゲインを複数条件に変えて走行し、完走時間、蛇行、脱線の有無を比較します。

小さすぎる場合は追従不足、大きすぎる場合は振動が増えるため、中間に適切な範囲が存在します。

基準速度を変える実験

制御ゲインを固定し、基準速度だけを変えて走行します。

速度を上げると周回時間は短くなりますが、一定以上では脱線率が増える場合があります。

センサー高さを変える実験

センサーと床面の距離を変えて白・黒の出力差を測定します。

最も白黒差が大きく、走行中にも床へ接触しにくい高さを探すことができます。

センサー間隔を変える実験

左右センサーの間隔を変えると、ライン位置に対する感度が変わります。

狭い間隔では細かなずれを検出しやすい一方、大きなずれでは両方が同じ面になる場合があります。

うまく走らない場合の原因

  • 白黒のしきい値が不適切
  • センサー高さが合っていない
  • センサー間隔がライン幅に合っていない
  • 左右モーター速度がそろっていない
  • モータードライバ配線が間違っている
  • 制御ゲインが大きすぎるまたは小さすぎる
  • 走行速度が高すぎる
  • 電池電圧が低下している
  • 床面や周囲光の条件が変化している
  • 制御周期が長すぎる

左右逆に補正してしまう場合

左側のラインずれを検出したときに右方向へ曲がるべきか左方向へ曲がるべきかは、センサー配置と判定方法によって決まります。

モーター配線や偏差符号を逆にすると、ラインへ戻るのではなくさらに外れる方向へ制御してしまいます。

片側モーターが回らない場合

モータードライバの入力、PWM、電源、配線、モーター自体を確認します。

左右モーターを入れ替えて問題がモーター側かドライバ側かを切り分ける方法があります。

センサー値が常に同じ場合

電源、GND、信号ピン、センサー向き、床面距離などを確認します。

アナログ出力とデジタル出力を持つモジュールでは、どちらの端子を読み取っているかも確認します。

急に脱線する場合

床面の継ぎ目、強い照明、急カーブ、交差点など、脱線地点に共通した条件がないか確認します。

毎回ほぼ同じ場所で脱線する場合は、その地点特有の反射条件や曲率が原因である可能性があります。

主な誤差・実験上の問題

原因 結果への影響 改善方法
周囲光 白黒判定が変化する 遮光・照明条件固定
センサー高さ 反射光量が変化する 治具で高さを固定する
左右モーター差 直進しない 基準PWMを個別調整する
タイヤ径差 左右速度差が生じる 同一タイヤを使用する
電池電圧低下 速度・制御特性が変化する 電源条件をそろえる
制御周期の遅れ 高速時に追従できない 処理を軽量化する

うまくいかなかった場合の考察例

低速ではライントレースできたが、基準速度を上げると急カーブで脱線した。速度増加によって、センサーがラインずれを検出してからモーター速度が変化するまでに車体が進む距離が長くなり、必要な旋回量を確保できなかったことが原因と考えられる。

また、直線部では左右への蛇行が増加した。比例ゲインが高すぎたため、小さな偏差に対しても大きな速度差を与え、ライン中心を通り越す過剰補正が繰り返された可能性がある。

改善点の書き方

センサー条件を改善する方法

  • 白面と黒線で複数回センサー値を測定する
  • しきい値を実際のコース上で決める
  • センサー高さを固定する
  • ライン幅に合わせてセンサー間隔を調整する
  • 周囲光の影響を減らす

モーター条件を改善する方法

  • 左右モーターの直進補正を先に行う
  • 左右タイヤの径と取り付けを確認する
  • モータードライバを適切に使用する
  • 電源電圧を一定にする
  • 最小始動PWMを確認する

制御を改善する方法

  • ON・OFF制御から比例制御へ変更する
  • 比例ゲインを段階的に調整する
  • 速度を上げる前に低速で安定化する
  • 制御ループ内の長い待ち時間を減らす
  • ライン喪失時の復帰処理を追加する

浅い考察とよい考察の違い

浅い考察の例

センサーで黒線を見つけてモーターを動かしたらラインに沿って走った。

よりよい考察の例

白面と黒線では反射型センサーの出力に明確な差が見られたため、その中間値をしきい値として白黒判定を行った。車体がライン中心から左へずれた場合は左右モーターに速度差を与えて右方向へ補正し、右へずれた場合は逆方向へ補正した。ON・OFF制御では小さなずれに対しても一定量の補正を行うため蛇行が大きかったが、比例制御では偏差が小さいときの補正量を小さくでき、より滑らかな走行が得られた。

しきい値についての考察例

白面と黒線のセンサー値を複数回測定し、その中間付近にしきい値を設定した。しかし、強い照明が当たる場所では白面の値が変化し、一部で黒線と誤判定した。反射型センサーは周囲光の影響を受けるため、しきい値だけでなく遮光や設置条件も重要であると考えられる。

センサー高さについての考察例

センサーを床面から遠ざけると白面と黒線の出力差が小さくなり、判定が不安定になった。距離の増加によって受光できる反射光が減少し、白黒のコントラストが低下したためと考えられる。

走行速度についての考察例

基準PWMを上げると周回時間は短くなったが、一定以上では脱線が増加した。車体速度が上がると制御遅れによる移動距離が大きくなり、急カーブで必要な補正を行う前にラインから外れたためと考えられる。

比例ゲインについての考察例

比例ゲインを小さくすると直線走行は滑らかであったが、急カーブでは外側へ膨らんだ。逆に比例ゲインを大きくすると曲線への追従性は高まったが、直線部で蛇行が増えた。このことから、ゲインには追従性と安定性の両方を満たす適切な範囲が存在すると考えられる。

左右モーター差についての考察例

左右モーターへ同じPWM値を与えても車体はわずかに左へ曲がった。モーター個体差やタイヤ摩擦によって左右の実速度が異なったためと考えられる。右モーターの基準PWMをわずかに下げて調整すると直進性が改善した。

電源についての考察例

連続走行後は開始時より走行速度が低下し、制御特性も変化した。電池電圧の低下によってモーター回転速度が下がり、同じPWM値でも実際の車輪速度が変化したことが原因と考えられる。

センサー実験との関係

ライントレースでは、反射型センサーの出力を校正し、白黒を正しく判定することが制御の出発点になります。

センサー実験で扱う感度、しきい値、ノイズ、周囲光、設置位置などがそのまま重要になります。

Arduinoとの関係

Arduinoを使用すると、センサー値の読み取り、白黒判定、PWM出力、モータードライバ制御を一つのプログラムで実装できます。

デジタル入出力、アナログ入力、PWMというArduinoの基本機能を組み合わせた総合実験になります。

ESP32との関係

ESP32を使用する場合も同様にライントレース制御ができます。

さらにWi-FiやBluetoothを利用して、走行中のセンサー値や偏差、PWM値を外部へ送信するデータロガー的な実験へ発展できます。

モーター実験との関係

ライントレースでは、左右DCモーターの速度差によって車体方向を制御します。

モーターの回転原理だけでなく、始動特性、PWM速度制御、負荷による回転差なども走行性能に影響します。

PID制御への発展

単純な比例制御で十分に安定しない場合は、微分項を加えて急激な偏差変化を抑える方法があります。

さらに定常的なずれを補正する目的で積分項を加えることもできます。

ただし、学生実験ではまずON・OFF制御、次に比例制御の違いを確認してからPIDへ進むと理解しやすくなります。

走行ログを記録する

センサー値、偏差、左右PWM値を一定周期で記録すると、脱線直前にどのような状態になっていたかを解析できます。

プログラムの動作を目視だけで評価するより、制御結果を定量的に考察できます。

レポートで使える表現例

  • 白面と黒線では反射型センサーの出力に明確な差が見られた。
  • 白黒の測定値からしきい値を設定してライン判定を行った。
  • 左右モーターの速度差によって進行方向を補正した。
  • ON・OFF制御では直線部で蛇行が見られた。
  • 比例制御では偏差に応じて補正量を変化させたため、走行が滑らかになった。
  • 比例ゲインが大きすぎると過剰補正によって蛇行が増加した。
  • 基準速度を上げると急カーブで脱線しやすくなった。
  • センサー高さによって白黒の出力差が変化した。
  • 周囲光の変化によってセンサー値が変動した。
  • 左右モーターの個体差により同じPWM値でも直進しなかった。
  • ライントレースはセンサー入力、制御演算、モーター出力を組み合わせたフィードバック制御である。

ライントレース実験の考察で確認するポイント

  • 反射型センサーで白黒を判定できる理由を説明したか
  • 白面と黒線のセンサー値を実測したか
  • しきい値の決め方を説明したか
  • センサー高さ・間隔の影響を考察したか
  • 左右モーター速度差と旋回方向を説明したか
  • PWMによる速度制御を理解したか
  • 左右モーター個体差を補正したか
  • ON・OFF制御と比例制御を比較したか
  • 比例ゲインと蛇行・追従性の関係を考察したか
  • 走行速度と脱線率の関係を確認したか
  • 電源電圧や周囲光を誤差要因として考慮したか
  • センサー・マイコン・モーターを組み合わせたフィードバック制御として説明したか

まとめ

ライントレース実験では、反射型センサーで床面の白黒を検出し、その情報をもとに左右モーターの速度を変えることで、車体をラインへ追従させることができます。

安定した走行には、白黒判定のしきい値だけでなく、センサー高さ、センサー間隔、左右モーターの個体差、走行速度、制御周期など複数の条件が関係します。

単純なON・OFF制御は実装しやすい一方で蛇行しやすく、比例制御ではライン中央からの偏差に応じて補正量を変えることで、より滑らかな追従が可能になります。さらにPID制御へ発展させることで、応答性と安定性を調整できます。

レポートでは、単に「ラインに沿って走った」と記述するのではなく、「白黒をどのように判定したか」「左右モーターへどのような速度差を与えたか」「速度や比例ゲインを変えると蛇行・脱線がどう変化したか」「センサー・モーター・電源などの誤差要因が走行へどう影響したか」を実験結果と結びつけて考察することが重要です。