
こんにちは、2026年度新一回生ソフト班のIHです。
先日行われた部内の新人戦について語ります。
新人戦ルール(ソフト)
・ライントレースでコースを走る。
・コースは初級、中級、上級の3種類あり、試合当日の1時間前に公開される。
・機体は自由に選んでもよい
・コースは3種類のうちから自由に選んでもよい。ただし、中級を選んだ場合は実際のタイムから-10秒、上級コースを選んだ場合は-15秒された値が記録となる。
・脱線等した場合は手で戻してもよい。ただし、手を使った回数×5秒が記録に加算される。
・進行方向はスタートラインに示される矢印の方向のみ認められる。
今回のコースの見どころ
今年の上級コースは例年と比べやや難化傾向でした。気分は2026年共テ物理ですね。
中級コースは可もなく不可もないコースのように見えましたが材質が異なっていたためか、みなさんセンサーの読み取りに失敗していたようで完走者はすくなかったです。
初級コースは例年通り直角コーナーと直進のみのコースでした。
当事者として上級コースの難しさについて語っていきます。
このコースの難所は2つです。1つは三角ゾーン、もう1つは終盤のωゾーンです。(図1,2)
三角ゾーンは鋭角を確実に処理することが求められます。ここの鋭角は体感去年のコースよりも鋭くなっていてより正確なトレースが必要でした。後述するコード自慢のコーナーで原因について触れますが、ここで脱線する人が多かったです。
ωゾーンは別のラインとの間隔が狭く、すぐに機体を正面に戻せないと脱線します。しかしpid制御をうまく活用できていれば問題なく通過できるポイントなので、三角ゾーンほど脱線する人は多くなかったように思います。
コード自慢のコーナー
コードを自慢していきます。
コード紹介
使っている部品(?)は主にキャリブレーションによる閾値、pid制御、おもりのセンサー補正、タイマー、例外処理1つのみです。実際の走行ではpid制御と実質1つだけの例外処理のみで動いている点が自慢ポイントです。
キャリブレーションとは、センサーによって読み取る値に差があるので走行前に値をテストしていい感じに補正してくれるものです。事前講習で教わるのでほぼ全員使っています。
pid制御は機体のラインからのずれをもとに、ずれに比例した値(p)、ずれを時間で積分した値(i)、時間で微分した値(d)を使って制御することです。
おもりのセンサー補正とは、機体によってはラインの中心にいるのにセンサーの個体差によって中心からずれてしまうのを補正することです。私以外でやっている人を見なかったので私のコードが異端なのだと思います。
例外処理にはセンサーがすべて黒を検知してしまった場合、最後に左右どちらを踏んでいたかを保存し、その方向へ回転する処理を入れました。また、それだけだと鋭角を越えられない可能性があるため端を検知したら一定時間逆方向の端のセンサーによる記録の上書きをキャンセルする処理も入れて対策しています。
上級コースの攻略法
基本的にpid制御で走れますが、タイムを狙いたいのであれば基準となる速さを上げる必要があります。そうすると本来通れるはずの直角などで脱線してしまうこともあります。ここで上級コースに挑んだ多くの人は脱線対策として最後に左右どちらを踏んでいたか、あるいはどちらに回転しようとしたかを保存し、その方向へ回転するようにプログラムしていました。実はこの方法では鋭すぎる鋭角の場合対策しないと逆方向に回転してしまう事故が起きてしまいます。これは鋭角を通るとき、1番端のセンサーがラインを検知するとラインをロストしたときのためにこの情報が記録され、それと同時にpidの微分項が増大し、機体が大きく回転することが原因です。この回転により、逆方向の端のセンサーがラインを検知してしまい、逆回転を始めます。pid制御の落とし穴ですね。ちゃんと動画を撮影して原因を突き止めることの重要性を改めて感じました。
ωゾーンは微分項を大きくするといい感じに越えられるようになります。速攻で機体をまっすぐに戻すことができればいいわけですから他のコース走行に影響がでないかつここを安定して通れる値を見つけられればどうにかなってしまうんですね。運がよかったです。
最後に
次は9月のSRC(summer robot contest)に向けて準備していきます。
今までは全員敵でしたがこれからはいろいろな人と協力して完成させていくことになります。ハード班の人手が足りないのでハードの手伝いもしつつ作業していきます。
非常に楽しみです。


