Monthly Archives: September 2019

マイクロマウス研修(安江) [Part.07] ~北陸信越地区大会編~

<公開中のブログ一覧>

 

こんにちは!安江です。

今回は、9/14~9/15に開催された北陸信越地区大会について書いていきたいと思います。

まずは北陸信越地区大会に参加された方々、お疲れさまでした!

地区大会への参加も今回で3回目となり、大会の雰囲気にも慣れてきたような気がします^^

 

写真を見て頂きたいのですが、開催会場が今年から変更になりました!

エレベータが開いた瞬間に広がるゲームに出てくるような内装!アールティ社員はテンション上がりまくりでしたw

 

北陸信越地区大会で拝見した面白い機体をご紹介!

いつもなら大会の結果をご報告するのですが、今回ロボトレース競技でとても面白い機体を拝見したのでご紹介したいと思います。

東洋大学川越文化団体連合ロボット研究会の矢部さん作成の「おかへ」というこの機体、なんと車輪の代わりに脚で走行するのです。(矢部さんの許可を得てブログに記載しています。矢部さん、快く許可を頂きありがとうございました!)

会場の皆さんからも大人気でしたが、かわロボの脚機構をダウンサイジングしてロボトレースに使用するオリジナリティ、素晴らしかったです!

今回は残念ながら完走できなかったのですが、ぜひ完走目指して頑張ってください!

 

北陸信越地区大会の結果!

では、いつも通り結果からご報告しますが、完走自体はできましたが今回もスラロームでの最短走行に失敗してしまいました・・・

さらに、スラロームでの最短走行を完走させるために、探索時と同じ速度にした日和った最短走行モードを5走目に実行しようとして、別の再探索モードを選択してしまうポカミスまで・・・

やっぱり落ち着いてモード選択しないとダメですね(泣

 

探索走行のみですが動画を撮っていましたので、ご覧ください。(完走タイム:40秒703)

 

ここで、前回大会の東日本地区大会からの変更点について、軽く触れたいと思います。

まずは、少し前からセンサの値がおかしくなることが多かったので、センサ周りを新品のものへ変更しました。

しかし、部品を取り外す際にランドが剥がれてしまう不具合が・・・(多分、熱の与えすぎですね)

 

カッターの背でシルクを剥がす⇒LEDのあしを直接はんだ付けする⇒ホットボンドでガチガチに固定するという対応でなんとかなりましたが、皆さんも眠い時に作業する際は気をつけてくださいね!

 

他には、東日本地区大会から時間がなかったので、あまり大きな変更はできませんでしたが、前回大惨事を引き起こした前壁補正のプログラムを修正して実装してみました!

前壁補正のおかげなのか、スラロームの探索走行は安定性と走行スピードを向上させることができたので良かったかなーと思います。

前壁補正の効果については、もう少し時間をかけて確認していくつもりです!

 

一方、あまり変更できなかった最短走行では、スラロームする際に脱調する現象が出ていたため、速度/加速度の細かい調整を行ってみました。

しかし、調整が不十分だったため、長い直進後のスラロームからの直進時に機体が左右に振られてしまって、壁にぶつかってしまいました(汗

大会前に自宅で調整した際に使用していた4×4サイズのコースでは問題なかったので、直線が長いコースでも試しておくべきでした・・・

 

続きを読む ›

Posted in Pi:Co Classic3, ブログ, 研修


shotaのマイクロマウス研修23 アートワーク完成

こんにちは、shotaです。
社員研修として、オリジナルマウスを製作しています。

[前回の記事]の続きで、アートワーク作成について書きます。

↓回路図はこちら
especial.pdf
※2シート目のソフト書き込み回路には間違いがあるのでご注意ください
参考:shotaのマイクロマウス研修17 回路設計⑤:ESP32ソフト書き込み基板と間違い
※この回路図は最新状態であり、これから貼るアートワーク画像と異なる部分があります

続きを読む ›

Posted in DCマウス研修, ブログ, 研修


北陸信越地区大会に出場しました – 元Web屋のマイクロマウス製作記 Part.5

ししかわです。

9/15(日)マイクロマウス北陸信越地区大会に出場しました。

東日本地区大会に続き2度目の大会参加です。

前回の大会で一度完走しているため、今回は「最短走行を成功させること」が目標です。

前回、探索走行中に壁を誤認識したためにマップが壊れてしまい、最短走行で壁に正面衝突するミスをしていました。その対策として、今回は壁認識のしきい値もしっかり調整し、試走会では「迷路のマップが正しく作れているか」の確認を重点的に行いました。

結果は、

  • 1走目の探索走行で迷路を完走し、タイムは43.362秒でした。
  • 残りの4回は最短走行で挑みましたが、すべて失敗しました。

ということで、完走はしたものの目標達成ならずでした…

今回の最短走行失敗の原因は「床の段差」です。

画像は今回の大会で使われた迷路です。ゴールへたどり着く経路は何通りかありますが、私の探索アルゴリズムでは南側のルートを最短と認識しました。

すると画像中の黄色い丸のポイントで矢印の方向へ加速をするのですが、ここはちょうど床板の継ぎ目にあたります(x7->x8)。ここに僅かな段差が生まれています。

ちょうど段差があるところで加速しようとしたために、タイヤがスリップして想定した距離を進みません。その結果、次の曲がり角で壁にぶつかりました。

この段差、先輩方に「段差にやられました」というと「あ〜わかる」という反応をいただけるくらいには、あるあるな失敗原因のようです。

大会規定では「壁および床面には1mm程度の隙間あるいは段差が生じることがある。」という文面でしっかりルール化されていますので、多少の段差があっても確実に走れるような制御が必要です。

前回の壁の誤認識といい、今回のスリップといい、練習では気づかなかった原因で失敗してしまいました。失敗が起きてから「なるほどそういうのもあるのか〜勉強になるな〜」ではお粗末なので、起きうるトラブルをもっと調べてあらかじめ対策を建てないとですね…。

2度出場してみて、大会の上位ランカーの走りを見ると「速く走ること」に目が行きがちですが、競技の本質はむしろ自律性、頑健性にあるのだと実感しています。実際、今回の特別賞は「壁にぶつかるなどして迷っても自己位置推定で経路に復帰できる」という機能を実装した方が受賞されていました。実世界のいろいろなエラー(機械、電気、ソフトウェアはてはヒューマンエラーまで…)に立ち向かうのは一筋縄では行かないですが、一つずつ乗り越えていきたいと思います。

次回は東北地区大会(10/13)です。まだ時間があるのでプログラムを見直しつつ、今度こそ確実に最短走行を成功させます!

続きを読む ›

Posted in お知らせ


マイクロマウス研修(安江) [Part.06] ~東日本地区大会編~

<公開中のブログ一覧>

 

こんにちは!安江です。

最近ブログ書けていなかったですが、これからは毎週しっかりと書いていきたいと思いますので、よろしくお願いします!^^

 

まずは、9/8(日)の東日本地区大会に参加された皆さん、お疲れさまでした!

今年は台風が直撃するため、タイトなスケジュールになりましたが、皆さんのご協力もあり、目標の15時に無事に終了できました!スムーズな進行へのご協力、ありがとうございました!

 

僕の拙いMCでいろいろとご迷惑をおかけしたと思います・・・

またMCをやる機会があったら、もう少し上手に進行したいと思います(汗

 

東日本地区大会の結果!

いつも通り結論から書かせて頂きますが、東日本地区大会は惨敗でした・・・(完走タイム:2分5秒732)

直前までプログラムを書き換えすぎたせいで、スラロームでの探索走行すら覚束なくなってしまい、このような結果に・・・(泣

超信地旋回での探索モードを追加していたので、なんとか完走はできましたが、[前回の記事]での反省点がまったく活かされていないです。猛省です・・・

 

今回、惨敗した原因は、直前に前壁補正を実装してしまった点にあります。

スラロームでの最短走行が安定するパラメータを調整しきれなかったため、前壁補正を実装することで少しでも安定させようと足掻くのはいいとしても、前日にやることではなかったです・・・

僕の前壁補正は、スラローム開始位置/終了位置を補正するようなプログラムになっていましたが、閾値の調整が不十分だったので、逆にスラローム開始位置がずれてしまい、壁にぶつかってしまったんだと思います(汗

 

大会での反省点を振り返ったところで、今後について書いていきたいと思います。

次回は北陸信越地区大会に参加する予定です!

それまでに、スラローム開始位置/終了位置の壁の閾値を調整してあげれば、スラロームでの探索走行は問題なく走ってくれると思いますので、あとはスラロームでの最短走行を走れるように、準備していきたいと思います!

 

ToDoリスト(覚え書き)

  • 最短走行にスラロームを実装する
  • 前壁補正を実装する
  • 壁が見えているときにLEDを光らせる
  • スラロームプログラムの微修正

 

 

続きを読む ›

Posted in Pi:Co Classic3, ブログ, 研修


マイクロマウス研修(安江)一覧

■マイクロマウス研修(安江)一覧

Part.01Part.02Part.03Part.04Part.05Part.06Part.07Part.08Part.09Part.10Part.11

 

 

 

 

続きを読む ›

Posted in Pi:Co Classic3, ブログ, 研修


マイクロマウス研修(kora編)[32] 東日本地区大会・北陸信越地区大会

こんにちは。koraです。

今回は、東日本地区大会と北陸信越地区大会の参加レポートです。

マイクロマウス東日本地区大会


東日本地区大会は、9月7日~8日にパシフィコ横浜で開かれたロボットのイベント「ロボフェス」の一環として開催されました。

7月の関西地区大会に挑んだときはバグだらけで暴走しがちだった自作マウスでしたが、そこから改良を重ね、スラローム探索も安定してこなせるようになっています。前日の試走会もそこそこ安定した走りを見せてくれました。

しかし、思えばこれで慢心してしまっていたのでしょう。翌日の本番では、序盤こそ調子よさそうに走っていたものの、ゴール手前で壁を読み間違えてしまい、残念ながら完走することはできませんでした。

敗因は本番のフィールドに合わせた光センサの調整ができていなかったことのようです。前方の光センサの閾値を上げるだけで解決できたのですが、ルール上、競技中はソフトウェアを変更することはできないため、なすすべもなく壁を読み間違えるマウスを見守ることしかできませんでした。

マイクロマウス北陸信越地区大会


東日本地区大会の1週間後、北陸信越地区大会がNCC新潟コンピュータ専門学校で開催されました。

全国大会への出場権を得るためには、地区大会での完走が条件になっています。確実に完走を決めることを目標に参加しました。

1走目、タイヤが汚れていたのか直進距離にズレが生じ、壁に衝突してしまいました。
2走目、タイヤを丁寧に拭いてから挑戦したところ距離は正確になりました。が、前回の大会と同様に壁の誤認が発生して迷子になってしまいました。
3走目、こんなこともあろうかと光センサを調整できるようにしておいたので、ほんの少し閾値を上げて走らせた結果、上手いこと認識できるようになり、ついに完走を決めることができました。おまけにスタートへ戻る際に最短経路を見つけてくれたようです。
4走目と5走目は、先ほど見つけた最短経路を通り、壁にぶつかることなくゴールすることができました。

結果、タイムは00:12.313で5位の成績になりました。
入賞は逃しましたが、ようやく全国大会への出場権を得ることができたので大満足です。

次の大会ではさらに安定性を上げて、タイムを縮められるよう、工夫を凝らしたいと思います。

続きを読む ›

Posted in DCマウス研修


shotaのマイクロマウス研修22 アートワーク作成の続き(モータドライバから)

こんにちは、shotaです。
社員研修として、オリジナルマウスを製作しています。

[前回の記事]の続きで、アートワーク作成について書きます。

↓回路図はこちら
especial.pdf
※2シート目のソフト書き込み回路には間違いがあるのでご注意ください
参考:shotaのマイクロマウス研修17 回路設計⑤:ESP32ソフト書き込み基板と間違い
※この回路図は最新状態であり、これから貼るアートワーク画像と異なる部分があります

モータドライバ回路の結線から開始

モータドライバ(回路図のMotor Driver)を結線します。

とりあえず接続することはできました。機能ピンの割り当てを変えればもう少し綺麗にパターンを引けそうですが、それは後ほど考えることにします。

次にモーションセンサ(回路図のMotion Tracking)を結線します。
ここでも機能ピンの割り当てをいくつか変更しました。(アートワーク中に機能割り当てを変更できてESP32は楽だなぁ〜

通信ラインなのでできるだけ他の線とクロスしないように、かつ表面だけで結線できるようにしたかったのですが、基板が小さいのでなかなか難しいです。。。
最低でも、モーションセンサからの通信線同士がクロスしないように結線しました。

次に距離センサ(回路図のObject Sensors)への出力信号(IRLED_R_FL, IRLED_L_FR)を結線します。

距離センサは基板上部にあるため、ESP32のできるだけ上にあるピンと接続したいです。
そのため、またESP32の機能割り当てを変更しました。迷いなく変更できるのでいいですねぇ〜。出力信号は24, 26ピンです。

この信号線を距離センサ回路ブロックまで持っていきます。距離センサまわりのパターンがぐちゃぐちゃしてきましたね・・・整えたいです。

最後にエンコーダ(回路図のMotor Encoder)を結線します。
こちらも通信信号ラインなので、クロスせずに結線したかったのですが、、、やっぱり難しいですね。
とりあえず接続することはできました。

これで各回路ブロックとESP32を接続できました。
残りは電源とGNDラインです。まずは4層基板に設定して、2層目を電源・GND、3層目をベタGNDにしてみます。

これですべてのパターンを結線できました。
もちろんこれで完成ではないので、次回はパターンの修正に入ります。

次回の記事

アートワーク作成の続きで、パターンの修正について書きます。

続きを読む ›

Posted in DCマウス研修, ブログ, 研修


東日本地区大会に出場しました – 元Web屋のマイクロマウス製作記 Part.4

ししかわです。

9/8(日)マイクロマウス東日本地区大会に出場しました。

私にとって初の大会参加です。

まず結果報告から。

  • 無事に迷路を完走できました!タイムは 1分29.868秒 でした
    • Pi:Co杯で優勝しました!(Pi:Co Classicを使って最速タイムを記録しました)
  • 探索走行ではゴールまで行って帰って来れたのですが、最短走行は失敗してしまいました(後述)

以下、当日の様子を写真付きでレポートします。

まだブログには書けていませんが、この日までにスラローム走行による探索(スラ探)を実装していました。
「スラ探で迷路を完走する」が今回の目標です。
競技場脇の練習用迷路で何度も調整し、今できる万全の体制で本番に望みました。

1回目の走行。私の不安をよそにPi:Co TARO(マウスの名前)は元気に迷路を走っていきます。
スラローム旋回が連続すると徐々に座標の誤差が蓄積してきますが、

  • 袋小路で折り返すとき、バックして機体の後部を壁に合わせることでズレを矯正するハードウェア位置補正
  • 直進時、左右の壁との距離が等しくなるように経路を補正するフィードバック制御

などの方法で自律的に位置を修正しながら走行します。
これらがうまく動いてくれたおかげで、無事にゴールまで行って帰ってこれました。タイムは1分29.868秒。

1回目の走行が終わって、残り時間は約2分。

マイクロマウス競技では持ち時間(今回は5分)の間に5回走行して、最速タイムが記録となります。

最初は迷路を探索してマップを作り、残りのトライではマップから算出した最短経路を速く走る…という戦略が定石になっています。

探索は1発で成功した。あと4回トライできる。これなら最短走行もいける…!

と、最短走行モードで走らせ始めた矢先、ある直線で壁に向かって急加速し、衝突してしまいました。

あれ?途中でスリップした?モードを切り替え忘れた?あるいは直前の改修で、プログラムにバグが混入したか…?

タイヤのゴミを掃除したりして試しますが、何度走らせても同じところで壁にぶつかってしまいます

ここで原因に心当たりが付いたのですが…

とき既に遅し。時間切れになってしまいました。

競技終了後、Pi:Co TAROが作った迷路マップをシリアル通信で確認しました。

衝突の原因は壁の誤認識でした。壁のセンシングに失敗して、あるはずの壁を無いと思い込み、
そこを通過しようとしたために、正面衝突していたのです。
マップを見ると、他にも同じような壁の取りこぼしが何箇所かあるようです。

最短走行に失敗したのは悔しいですが、原因ははっきりしたので、次回に向けて対策を考えたいと思います。

それにしてもたった1箇所の認識ミスでこのようなトラブルが起きてしまうなんて、
想像以上にシビアで繊細な競技だな…というのを実感しました。

ともあれ無事に競技は終了し、探索時のタイムで完走認定をいただいたので、
11/30~12/1に行われる全日本大会への出場権を獲得できました!

もう一つ嬉しい報告ですが、なんとPi:Co Classicを使った出場者の中でタイムを競う「Pi:Co杯」で優勝しました!
副賞の「焼きペヤングメーカー」もいただきました!なぜ焼きペヤングメーカー…?

ということで、既に全日本大会には出られるのですが、
アールティの社員は研修の一環として、各地区大会への出場が義務付けられています。
全国行脚しながら「大会に向けたスケジューリング/マネジメント能力」「本番での対応力」「技術者の繋がり」などを養えるので良いですね。

次回は北信越地区大会に出場します。
次は最短走行も成功させたいです!

続きを読む ›

Posted in Pi:Co Classic3 製作記


shotaのマイクロマウス研修21 アートワーク作成の続き(メイン基板の配線開始)

こんにちは、shotaです。
社員研修として、オリジナルマウスを製作しています。

[前回の記事]の続きで、アートワーク作成について書きます。

回路図の確認

今回はメイン基板の配線について書くので、改めて回路図を確認します。

↓このリンクを開くとPDFファイルが表示されます。
especial.pdf

※2シート目のソフト書き込み回路には間違いがあるのでご注意ください
shotaのマイクロマウス研修17 回路設計⑤:ESP32ソフト書き込み基板と間違い

※この回路図は最新状態であり、これから貼るアートワーク画像と異なる部分があります

メイン基板の配線スタート

まず、アナログ回路である距離センサ(回路図上のObject Sensors)からパターンを引きます。
画像上部にあるのがセンサ回路ブロックです。

ESP32のA/Dピンは固定されているので、仕方なく上から右下に接続します。他の機能だとピンの入れ替えができて良いんですけどね〜

次にソフト書き込み用のパターン(回路図上のUSB Serial)を引きます。
こちらも、ESP32の機能ピンを入れ替えられないので、仕方なくこのように引きました。

(だんだんESP32周りがゴチャゴチャしてきました。。。)

ここでちょこっと回路修正

次にデバッグLED(2個)のパターンを引くのですが、上手に引けそうにないので機能ピンを入れ替えました。

まず、機能割り当て表を変更します。
デバッグLEDが接続されるのは、24ピンのLED0と28ピンのLED1です。これを36ピン(IRLED_L_FR)と、37ピン(6AXIS_MOSI)と交換します。

変更後の割り当て表はこのようになりました。
LED0が接続されていた24ピンは、起動時プルダウンされるピンです。そのため、外部回路がPull DownとなっているIRLED_L_FR(元36ピン)を割り当てます。

28ピンには6AXIS_MOSI(元37ピン)を割り当てます。SPIの機能を好きなピンに割り当てられるのはESP32に強みですね〜。すごい。

LED0, LED1は、それぞれ37ピン、36ピンに割り当てました。GPIOももちろん好きなピンに割り当てられます。

※好きなピンと言ってもいくつか制限があるので注意してください。
参考:shotaのマイクロマウス研修18 ESP32周辺回路とピンの機能選択

もちろん回路図も変更します。
こういう時に回路図をブロック化していると変更が楽ですね!

そして最後に、LEDとESP32間のパターンを引きます。

ここで、メイン回路のアートワーク進捗は30%くらいです。まだまだです。

次回の記事

次回もアートワーク作成の続きで、モータドライバ回路のパターンを引きます。

続きを読む ›

Posted in DCマウス研修, ブログ, 研修


マイクロマウス研修(kora編)[31] オドメトリの実装

こんにちは。koraです。

今回はオドメトリ(自己位置推定)をできるようにします。
以前の制御では迷路の壁に沿って進んでいたので、正確な自己位置を把握する必要はなかったのですが、今回は目標軌道に追従させるような制御をしたいので実装することにしました。

オドメトリの実装
計算方法

制御周期を1msとしますので、制御周期ごとに車体の角度と移動距離を計算して積算していけば、ロボットの自己位置を推定することができます。

  1. ジャイロの出力値から[度/秒]の車体の角速度が得られるので、単位を[rad/ms]に変換して1ms前の車体の角度[rad]に足し合わせることで、現在の車体の角度[rad]になります。
  2. エンコーダ出力値(タイヤの絶対角度)に対して、1ms前の値との差分をとるとタイヤの角速度[rad/ms]が得られます。これにタイヤの直径[mm]を掛けると車体の進行方向の移動距離[mm/ms = m/s]が得られます。
  3. 車体の角度と進行方向の移動距離から、X方向、Y方向の移動距離をそれぞれ求めます
    • X方向の移動距離 = 車体の進行方向の移動距離 * cos(車体の角度)
    • Y方向の移動距離 = 車体の進行方向の移動距離 * sin(車体の角度)

実際には1ms間も角度が変わり続けているのですが、ここでは計算を簡単にするため角度一定と仮定しています。また、タイヤの滑りなどで誤差が出ますので、後々補正を入れる必要があります。

モジュールの実装

エンコーダのモジュールを作ります。Srcフォルダにodom.cを、Incフォルダにodom.hを作って、上記の計算を実装します。また、タイマ割り込みで制御周期ごとに呼び出されるようにします。

動作確認

実際にマウスを動かして、角度と座標を計算できていることを確認できました!

次回

次回から、目標軌道の生成とその追従制御に取り掛かりたいと思います。

続きを読む ›

Posted in DCマウス研修