Blog Archives

shotaのマイクロマウス研修7[Pi:Co Classic3 全日本大会に出場]

こんにちは、shotaです。

社員研修として、弊社が販売するマイクロマウス[Pi:Co Classic3]を動かしました。

前回は、マイクロマウス全日本大会に向けてやることリストを作りました。

[前回の記事はこちら]

今回は全日本大会の結果を書きます。やることリストの反省は次回書きます。

 

全日本大会に出場しました

2018年12月1日、2日に開催された[第39回全日本マイクロマウス大会]に出場しました。

競技者はゼッケンをつけます。私はB競技台の7番目に走ります。

初日は会場で練習できます。会場が明るいのでセンサ値が心配でしたが走行できました。本番も期待できそう・・・

練習後はマウスパーティに参加しました。ものすごい人数と料理の数です。

マウスパーティ恒例の田代杯です。ハーフマウスを走らせるイベントです。

シンプルに見えるけども、エンコーダの誤差が蓄積するので意外と難しい迷路(通路)。

 

2日目が大会本番です。クラシックマウスのB競技台で走行しました。

クラシックマウス競技では5分間で5回までマウスを走らせます。私のPi:Coはこのように走りました。

  1. 迷路探索
  2. 最短走行(失敗)
  3. 最短走行(失敗)
  4. 最短走行(成功
  5. 時間切れのため走行なし

ギリギリセーフで最短走行を成功できました。結果は30.8秒です。A競技台では5秒台で迷路を走行しています。それと比べるとまだまだ改善できそうです。

大会の動画はこちらでご覧頂けます。

大会の結果はこちらに記載されています。

[マイクロマウス2018大会結果]

これからの活動について

大会も終わったので研修も終わり・・・ではなく、むしろここからが研修の本番です。2019年の大会に向けて、例年通りDCモータを使ったオリジナルマウスを作成します。

ハーフマウスにするのか、クラシックマウスにするのかは決まっていません。まずは、今回の大会を反省して、良かった点や改善点をまとめようと思います。

 

続きを読む ›

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


shotaのマイクロマウス研修6[Pi:Co Classic3 全日本大会に向けてやること]

こんにちは、shotaです。

社員研修として、弊社が販売するマイクロマウス[Pi:Co Classic3]を動かしています。

前回はマイクロマウス東日本記録会の結果と、全日本大会に向けてやることについて書きました。

[前回の記事はこちら]

今回は全日本大会に向けてやることの詳細を書きます。

やることリスト

こちらが全日本大会に向けてのやることリストです。リストはGitHubのGistで編集しており、[ここ]に公開しています。

それぞれの項目について詳細を書きます。

全日本大会の申し込みをする

参加登録をしないと参加できません。(例年、登録を忘れて参加できなくなった人がいるようです。)

[こちらのページ]で登録しました。すでに登録締め切り日は過ぎています。

 

running_maze_Dataflash_usbをベースに新規作成

Pi:Co Classic3のサンプルプログラムには、迷路の壁情報をフラッシュメモリに保存できるものがあります(プログラム名:running_maze_Dataflash_usb)。

東日本記録会ではフラッシュメモリを使っていなかったので、Pi:Coの電源を切ると壁情報も消えていました。このままではPi:Coが暴走したときに電源を切ることもできないので、サンプルプログラムをベースにプログラムを作り直します。

 

Git管理を開始する

[git]はプログラムの変更履歴を記録・追跡できる分散型のバージョン管理システムです。

gitでPi:Coのプログラムを管理することで、正常に動いた時のプログラムを記録することができます。もし、プログラムを改造してPi:Coが動かなくなったときは、正常に動いた時のプログラムにすぐに戻すことができます。

ほかにもgitの良いところはたくさんあるので、興味のある方は調べてみてください。

 

迷路情報をフラッシュに保存する

サンプルプログラムに搭載されている機能です。

 

探索中断処理を入れる

サンプルプログラムでは、探索を終了したとき(ゴールに到着したとき、スタートに戻ったとき)に壁情報を記録します。そのため、ゴールに到着する直前でPi:Coが止まった場合、それまでに手に入れた壁情報がすべて消えてしまいます。

そこで、探索中断処理を追加し、探索途中で止まった場合も壁情報を保存できるようにします。

注意点としては、Pi:Coが暴走したり止まったりした時は、間違った壁情報を記録している可能性があります。その間違った壁情報を消す機能も搭載しなければなりません。

 

最短走行中断処理を入れる

最短走行中にボタンを押すことで、走行を中断できる機能を追加します。最短走行では壁情報を記録しないので、特別な処理は不要です。

 

ゴール座標設定モードを追加

ボタン操作でゴール座標を設定できる機能を追加します。練習ではゴール座標を頻繁に変えるので、作業効率が上がります。(今までは座標を変えるたびにプログラムを書き直していました・・・)

 

続きを読む ›

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


shotaのマイクロマウス研修5[Pi:Co Classic3 全日本大会出場決定!]

こんにちは、shotaです。

社員研修として、弊社が販売するマイクロマウス[Pi:Co Classic3]を動かしています。

前回はスラローム走行するための計算をしました。

[前回の記事はこちら]

 

今回はスラローム走行時の台形制御のシミュレーションについて・・・

ではなく、11月3日に開催されたマイクロマウス東日本記録会について書きます。

 

迷路を完走できました

マイクロマウス全日本大会に出場するためには、地区大会で迷路を完走しなければなりません。

[マイクロマウス各競技と全日本大会の今後について]

 

東日本記録会が今年最後の地区大会のため、自分にとっては最初で最後の大会です。

そして、無事完走できました!

走行時間から分かる通り、最短走行は失敗しています。スラローム走行で壁にぶつかりました・・・

 

全日本大会に向けて

全日本大会は12月1日に開催されます。あと1か月もありません・・・

[第39回全日本マイクロマウス大会のご案内]

残り少ない時間ですが、大会に向けてやることをまとめました。

次回から、このやることリストについてブログを書きます。

 

[おまけ]スラローム走行シミュレーションについて

Googleスプレッドシートでスラローム走行のシミュレータを作りました。

バブルチャート(真ん中の図)を使うと、走行軌跡と角速度の大きさを同時に描画できるので面白いです。

ここまで準備しましたが、大会では失敗しました・・・。プログラムを見直します。

続きを読む ›

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


shotaのマイクロマウス研修4 [Pi:Co Classic3 スラローム走行の計算]

こんにちは、shotaです。

社員研修として、弊社が販売するマイクロマウス[Pi:Co Classic3]を動かしています。

前回はテキトーなパラメータを設定してスラローム走行をしました。

[前回の記事はこちら]

今回は、スラローム走行の制御パラメータを計算します。

角速度の台形指令シミュレーションは次回の記事に書きます。

Pi:Co Classic3の基本情報

まず、Pi:Co Classic3の基本情報を確認します。

タイヤの直径は48mmで、タイヤ間の距離(トレッド長)は65 mmです。

モータにはステッピングモータを使っており、タイヤと直結しています。400パルスでタイヤが1回転します。

タイヤの円周は48π mm≒150.8 mmです。そのため、モータに400パルスを送信して進む距離は150.8mmになります。

パルスを速く送信する≒速く走行するという関係ですが、どんなに速く走っても・遅く走っても、送信パルス数が同じであれば移動距離も同じです。

※タイヤがスリップしたり、モータが脱調した場合は走行距離が変わります。

角を曲がるための情報

スラローム走行は、前に進みながら角を曲がる動作のことです。角を曲がるためには、ロボットの情報だけではなく迷路の情報も必要です。

 

マイクロマウスクラシック競技の迷路は1区画180 mmの正方形で構成されています。

Pi:Co Classic3が区画の中心を走行する場合、半径90 mmの円弧を走ることになります。このときの移動距離は約141.4 mmです。

下図のように角を時計回りで走る場合は、右タイヤよりも左タイヤの方が長い距離を移動します。

まず、左右のタイヤそれぞれの旋回半径を計算します。ロボット中心の旋回半径が90 mmなので、左タイヤ旋回半径はそこからトレッド長の半分を足した90 + 65/2 mm、右タイヤの旋回半径は90 – 65/2 mmとなります。

次に旋回半径をもとに、左右のタイヤそれぞれの移動距離を計算します。左タイヤは192.4 mm、右タイヤは90. 3 mmとなります。

最後に、曲がるために必要モータのパルス数を計算します。400パルスで150. 8 mm進むという関係は分かっているので、それをもとに計算できます。左タイヤは510パルス、右タイヤは240パルス必要です。

それでは実際に走らせてみます。

1秒で角を曲がりたいので、左タイヤの速度は192 mm/sec・右タイヤの速度は90 mm/secとします。

送信パルス数が左:510、右:240を超えるまで走らせます。

実際に走らせると、約1秒でピッタリ90度曲がったように見えます。

動画にはありませんが、タイヤ速度を2倍にしても半分にしても走行距離は変わりませんでした。

送信パルス数が同じであれば移動距離も同じということが分かります。

 

続きを読む ›

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


shotaのマイクロマウス研修3[Pi:Co Classic3 スラロームできた?]

こんにちは、shotaです。

社員研修として、弊社が販売するマイクロマウス[Pi:Co Classic3]を動かしています。

 

前回は4×4サイズの迷路でPi:Coを走らせました。

[前回の記事はこちら]

 

今回は、曲がり角をスムーズに進むスラローム走行に挑戦しました。

 

スラローム走行とは

スラローム走行は前進しながら角を曲がる走行です。

自動車や自転車で角を曲がる動作と同じです。

 

前回の動画では、曲がり角まで進む→停止する→その場で旋回する→前に進む、という動作をしていました。

これは超信地旋回やスピンターンと呼ばれています。

超信地旋回では一度その場で停止しなければならないため、角を曲がるのに時間がかかります。

[超信地旋回とは Wikipedia]

 

マイクロマウス競技では迷路を早く走行することが求められます。

そのため、超信地旋回ではなくスラローム走行で角を曲がりたいです。

 

スラローム走行を実装する

スラローム走行をどのように実装すればよいか調査しました。

[マイクロマウス「Pi:Co Classic」に挑戦!No.76 スラローム実装…!?]

[マウスにおけるスラローム走行]

 

マイクロマウスでスラローム走行するためには、以下のポイントが重要であるとわかりました。

  • 急に大きな角速度を与えると曲がれない
  • 加速、一定速、減速区間を設ける

 

これをプログラムに変換するのですが、そのためにはさらに情報が必要です。

  1. どんな指令値をモータに与えれば角速度を表現できるのか
  2. どのくらいの角速度を与えれば曲がるのか
  3. 加速、一定速、減速区間はそれぞれ何秒必要なのか

 

続きを読む ›

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


shotaのマイクロマウス研修2[Pi:Co Classic3 迷路を走る]

こんにちは、shotaです。

社員研修として、弊社が販売するマイクロマウス[Pi:Co Classic3]を動かしています。

前回ははんだ付けをしてPi:Coを組み立てました。

[前回の記事はこちら]

 

今回は、キットに同封されているサンプルプログラムを使って迷路を走らせました。

 

サンプルプログラムについて

Pi:Co Classic3には、ルネサス製のRX631マイコンが搭載されています。

私はこのマイコンを使ったことがないため、プログラムが書けるか不安でした。

 

しかし、このキットにはプログラミング初心者向けのマニュアルとサンプルプログラムが用意されています。

このサンプルプログラムにより、LEDを光らせる・ブザーを鳴らす・センサーの値を読み取る・モータを回すことができます。

そして最後には、マイクロマウスの迷路を走らせることができます。

迷路を走らせてみる

サンプルプログラムには3つの走行方法が用意されています。

  • 左手法
  • 足立法
  • 最短走行(足立法)

左手法

左手法では、常に左側の壁に沿って走行します。

この方法はとてもシンプルなので簡単にプログラミングできます。しかし、左手法では解くことができない迷路があります。

この動画では左手法で迷路を走行しています。ゴールが迷路の真ん中にあるため、左手法ではたどり着きません。

足立法

足立法は、ゴールへの最短経路を進むアルゴリズムです。

ゴールまでの経路に壁がないと仮定して走行します。壁を見つけた場合は最短経路を計算し直して走行します。

[足立法の説明1][足立法の説明2]

この動画では足立法で迷路を走行しています。左手法と違い、ゴールへたどり着くことができました。

ゴールに着いた後はスタート地点に戻り、最短経路をたどってゴールへ再走行しています。

 

次回やること

走行プログラムを改良します!

サンプルプログラムでは右折・左折するときに、止まる→右を向く(左を向く)→進む、という動きをしています。

この動きがスムーズになるようにプログラムを書きます!

[次回の記事はこちら]

続きを読む ›

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


shotaのマイクロマウス研修1[Pi:Co Classic3のはんだ付け]

はじめに

初めまして、こんにちは。

2018年10月から入社しましたshotaです。

社員研修として、弊社が販売するマイクロマウス[Pi:Co Classic3]を動かすことになりました。

その過程をブログに投稿していきます。

よろしくお願い致します。

 

私は趣味でロボカップ小型ロボットリーグに参加しています。

ROSを使ってサッカーロボットを動かすソフトを作っていますが、組み込みソフトはほとんど触っていません…

学生の時にPICマイコンを触った程度なので、

その感覚を取り戻しながら、まずはクラシックコース完走を目指して取り組みます!

 

Pi:Co Classic3とは

RT ROBOT SHOPで販売しているマイクロマウス用のロボットキットです。

https://www.rt-shop.jp/index.php?main_page=product_info&cPath=1002_1023_1036&products_id=3400

 

マイクロマウスのソフトだけでなく、はんだ付けを通して回路要素も学ぶことができます。

マイクロマウスに初めて参加する人にピッタリの製品です。

 

はんだ付け開始

6時間くらいではんだ付けと組み立てが終わりました。

はんだ付けが得意な人はもっと早く組み立てられるかもしれません。

作業初日

はんだ付け練習基板と電源基板をはんだ付けしました。

 

作業2日目

メインボードとマイコンボードをはんだ付けしました。

 

作業3日目

センサ基板をはんだ付けして、完成です。

 

このキットの良いところ

  • 部品が回路要素ごとに小袋に分けられている
    • 実装する部品がどの回路に使われているのか一目で分かります。
  • 部品をどこに実装するのか写真付きで説明されている
    • 回路図を読まなくても組み立てられます
  • はんだ付けで失敗しやすいところに注意書きがある
    • 初心者に優しい説明書です。

次回やること

キットに同封されているサンプルソフトを書き込み、走行させます!

[次の記事はこちら]

続きを読む ›

Posted in Pi:Co Classic3, お知らせ, ブログ, 研修