Pi:Co V2 体験記ブログ(移行中)

Pi:Co V2体験記第2シーズンその7「パターンを作るぞアワワワ東日本地区大会!」

Pi:Co V2 体験記

こんにちは、広報DTP担当のサナエです。
このブログは技術畑ではない広報がアールティのPi:Co V2と1シーズンともにすごした後、もうちょっと頑張って魅力をアピールしたい体験記第2シーズンです。

前回はスラロームの最短走行を実装しました。最短走行を実装したのが嬉しすぎて調整を忘れてたのは失敗でした。グヌヌ
今回は調整から始めて最短走行のパターン化ができればいいなと思います。

Pi:Co V2とは!

Pi:Co V2(ピーコブイツー)は、アールティの教育や研究開発用小型移動ロボットのプラットフォームであるPi:Co Classic3同様、ソフトウェア開発の基礎を学びたい方に手に取っていただきたいロボットです。Pi:Co Classic3の機能やデザインイメージをそのままに、半分のマイクロマウスサイズになりました。
マイクロマウス競技に準拠しているのでもちろん大会参加もできます。

Pi:Co V2はESP32-S3マイコンを搭載しており、Arduinoで開発できます。
移動型ロボットのビギナーや、研究者、開発者まで幅広い方々にご利用いただけるロボットです。
Arduinoサンプルスケッチと解説書が付属するので、プログラミング初心者にもおすすめです。

自分の指が邪魔をする!

さあ最短の調整をしますよ!
調整モードに入ってスラローム最短のターンを…ぽちー!

あああ!!ぽちる時に自分の指が機体をずらすもおおおん!!ちょっと待ってこれじゃ角度とかわからないじゃないですかおのれ!おのれ!
そういえば最初の調整の時もちょっと動いてた気が…とりあえず走れたからいいかと放っておいたけど、気合入れて調整しようと思ってたのにこの小さいボタンがオバアチャンに厳しい!自分が不器用なのか歳を取って手が震えているのかわからないけどこれでは調整が進みません。

何かいい案ないかな、とほかのマウサーの方々の様子を思い出します。 ……そうだよ触らなければいいのだよ。小さい機体を持っている多くの方々はセンサでスタートさせてたような気がする!
という事は?私のPi:Co V2にも入れられればスマートに優雅にスタートできるのでは!?

壁センサを使ってスタートする!

M先生におねだりしてセンサでスタートさせるためのテキストを書いてもらいました。ヤッターありがとうございます!でもおねだりした後に難しいのかな?と心配になったりして…。

やることは左右の前センサの和が一定以上になったら動き出すようにします。
カードや手をセンサの前にかざして、センサの値で動かします。
とりあえず自分の名刺を久しぶりに出しました。まだ早い

 

buttonOK関数に追加で右と左のセンサの値が2000を超えるようにしました。
そうか、ボタンのところにセンサの値を入れるんですね。別の関数を作ったりするのかな?と思っていました。
その他にもいくつか追加しましたが、思ったより追加部分が少なくてちょっとほっとしました。

これでモードを選んだあとに決定ボタンを押すとLEDが点滅するようになったので、名刺などをかざしてセンサを反応させます。最初一枚テキストを読みとばしてて、モードを選択してから名刺をかざしても動かないし決定ボタンを押したら点滅するしで慌ててしまいましたがよく読まねば。
決定ボタンを押して点滅したら名刺などをかざすのです。覚えなさい自分。

さらに気になるところが…

センサでスタートの準備ができましたわ!嬉しいー!これですんなりいけるはず!
モードを選んで決定ボタンを押して、名刺を…

ンンッ!!!励磁でガクッとなってるではないですか!ちょっと待って今まで自分がずらしてたと思ったけどもしかしてスタートの時に励磁してたから動いてた?
ずれないようにちょっと指で押さえつつかざしたりしたけど、なんか違う!

ここで励磁って必要なの?やだ困る!するりと動いてほしいのにー!

励磁が何とかならないかとM先生に聞いてみたらボタンのところのWhile文の前にmotorEnableをいれちゃえばいいんですよ!ってマジですかマジですか?スタートより先に励磁してしまえ、という事ですよね。こ、こうかな…?

どうだ!!!

やった!ガクッと来ないぞ嬉しい!!!
これでやっと調整がしやすくなった。やったー!

えっ!?東日本地区大会だ!

これで心置きなく調整できますよ!調整してやるぜやるぜ!今回のお題に入るぜ!と思ったらなんとすぐに東日本地区大会があるじゃないですか。あまり調整できてないのに…!これで完走できなかったら全国大会も行けません。あわわわわ!何とかして迷路を走れるように…アワワワワお題を先にやるか?いやこの先の事を考えると東日本地区大会が最優先ですよアワワワワ!!

前日、当日となんだか調整した値が全然反映されなくてえっマジでどうするの??……教えてもらって何とかプログラムを修正、落ち着けまずはセンサの値を見てから調整だ!と思ったら今度はセンサの値がうまく決まらないよ!変なところで壁を作っちゃってうまく動かないよヒイン!!!もうだめだぁあああ!!圧倒的に走り込みが足りない!事前に直すべきところを出せてなかったですよ大ピンチですよ!
泣かぬ!大人だから!だけど泣き言は言う!!

そこそこ長く生きてる中で今回ほど「ヤバイ!アワワワワ」を使った日はなかった気がします。
M先生を巻き込み、旦那を巻き込み、S君も巻き込み最後にはおよその学校の先生もほかの参加者さんも巻き込み色々教えてもらい、祈る気持ちで走らせます。
ああ、ちゃんとセンサでスタートができました。励磁も動き出しの時のガクッがなくなったので問題なく走りだせます。よかった!あとは運を天に任せるのみ

あーーーー!!!!何とかスラロームでゴールできました!マジですかー!!!やった!!!!もうだめかと思ったー!!

最短などはリタイアしてしまいましたが、何とか首の皮一枚つながりました。
本当に本当に皆さんありがとう!!!マウサーみんな優しい…初心者もっと増えてもいいと思う!
うまく値が変わらなかった原因もわかったし、全国大会までにもうちょっと綺麗に走れるように頑張ります!

これからが本題なんです

気持ちよく走り出したいがためにかなり時間を取ってしまいましたが、実はここからが今回の本番なのです。今回のお題は大回りスラロームでの最短走行を実装するための準備です。大回りってなんぞや?

最短時間を短くしたい時に加速度やスラローム旋回時の初速をあげるなどが方法としてありますが、今回はスラロームの旋回時の初速をあげることで時間を縮めるそうです。(アアアちゃんと調整できてないとアカンやつ…!!)

今までの探索の時と同じ半径だと、旋回するときに初速をあげてしまうとスリップや脱調を起こしてしまう…わかります。車でもそうですよね。ドリフトしちゃったらもう私では調整できない…!
早く旋回するためには旋回の半径を大きくとる。そして旋回の半径を大きくとるために手前から旋回を始める。それをどうやって認識するか?が今回のお題です。

大回りではこれくらいのイメージの違いがあるんですね。

単純に半径を大きくすればよいのでは?と思ったけれど、そう簡単な話ではなく…旋回半径を大きくすると1区画からはみ出てしまうので、回り切れる直進するスペースが必要。
直進スペースのない区画もあるのでそれは別物として考えないといけません。
まずは大回りができる場所を見つける必要があります。

そこで最短走行のパターンを生成することになります。
旋回後に直進することがあるか確認しないと大回りはできないので、今回は走行パターンを作ってそのパターンに沿って進むようにします。ターン後直進できる→大回りターン、直進はない→通常ターンを調べるんですね。

走行を見える化する

今回はシリアルモニタでどうやって走ったかわかるようにします。アワワなんだかだんだん難しくなってきた気がしてますよ…!

今回はfast.inoとfast.h そしてあとから確認するためにmisc.inoのcaseを増やして変更を加えます。
patternMakeという関数を作って引数はx、yの座標のみ。これは後から落ち着いて考えるとああ、そうかと納得できました。
右ターンをする時は0、左ターンは1になります。それと直進する区画の数、最後に127で終わり。

今回走りたい迷路はこんな形です。
・スタートしたら1直進
・右ターン(0)の後2直進
・右ターン(0)の後直進はなし
・左ターン(1)の後直進はなし
・ゴール

色々入力を間違えたり直したりして何とか入力完了、まずは迷路を走らせます。
その後PCとつないでシリアルモニタにして、先ほど入れたmisc.inoのcase(今回は14にしました)を実行すると…

おおお!!!やった!!!予定通りの数字が出た!!!嬉しいー!
そしてこの数字を見ると、スタートして最初の右ターンの前後に直進の個所があるので、ここで大回りができることがわかります。後半のターンは直進がないので通常のターンで動くことになります。

こうやってどこで大回りができるかをわかるようにするか、が今回のお題でした。

次は実践?

今回経路を数字に置き換えたので、次はその数字を使って最短走行をするそうです。
先ほどのpatternMake関数でx、yだけというのは加速度やスピードは今回は必要なくて座標の数字が欲しかったからなんですね。
…東日本地区大会で全然きれいに走れなかったので何とかしてから臨みたい…
ちょっと今回は欲張りすぎて大事なことができていなかったので、次は落ち着いてお題に臨みたい…!
頑張ります!

Pi:Co V2をヨロシク!

Pi:Co V2は現在好評発売中です。
組込みや自律制御の基本要素を学ぶ方々はぜひ本製品をご利用ください。
Web shopにて定価60,000円(税込)です。ご利用をお待ちしております!

タイトルとURLをコピーしました