東京工業大学 ロボット技術研究会

東京工業大学の公認サークル「ロボット技術研究会」のブログです。 当サークルの日々の活動の様子を皆さんにお伝えしていきます。たくさんの人に気軽に読んでもらえると嬉しいです。
新歓特設ページ        ロボット技術研究会 HP        ロボット技術研究会 twitter公式アカウント

マイクロマウス

「ロボット技術研究会」通称「ロ技研」は、その名前の通りロボットの制作や研究はもとより、電子工作や機械工作、プログラミングなどの幅広い分野にわたるものつくり活動を行っています。

カテゴリ一覧: loading

Cheeseでマイクロマウス,作りませんか?

みなさんこんにちは,rogyblogでは初めましてになります.16のだんご(@dango_bot)です.
この度,私が新しい作った研究室「Cheese」の紹介をしようと思います.

P_20161119_102349


Cheese(チーズ)とは,マイクロマウス競技への参加と技術向上を目指す研究室です.

マイクロマウスとは,迷路を解いてゴールを目指す小さなロボットです.自律型ロボットで,基本的には自動で動きます.全日本マイクロマウス大会は30年以上前から毎年開催されている歴史あるロボコンで,今日では,東日本大会や学生大会など様々な場所でさまざまな大会が開かれています.
マイクロマウス競技会公式ページへ

ここ最近,ロ技研でマイクロマウスをやる人が増えたので新しく研究室を立ち上げました.
現在,人数は8名で,今後も増えていく予定です.(増やさねば..)

続きを読む

摩擦締結を用いたマイクロマウスホイールの提案と試作とおまけ

こんにちは.12のもりゅー(@Moryu_io)です.またの名をかるもとも言います.
これはrogy Advent Calender 2016の19日目の記事になります.

今回の記事は「摩擦締結を用いたマイクロマウスホイールの提案と試作」ですが,
要はメカロック一体型ホイールを製作しましたというだけの話です.

 まず,現状の自分のマイクロマウスについて簡単に説明します.続きを読む

第37回全日本マイクロマウス大会 参加報告

こんにちは.11のところです.

11/19,20に開催された第37回全日本マイクロマウス大会に参加してきました.
マイクロマウス大会は,35年以上続く最も古いロボット競技会のひとつで,迷路の中を自立的に走行する小型のロボットの走行性能や知能を競います.

P_20161119_102312

東工大ロ技研からは,(おそらく)史上最多となる8名が今回エントリーし,各々が製作したり製作途中だったりするロボットを走らせたり走らせなかったりしました.
8名のうち5名は,大会未経験者向けのフレッシュマンクラスに出場し,残りの3名は競技経験者向けのエキスパートクラスに出場しました.

結果速報ページ


続きを読む

マイクロマウスと制御理論

rogy Advent Calendar 2015,20日目は ざくろくんの Dynamorphism 〜 Haskellでも動的計画法がしたい! 〜 でした.
DPなのに再帰的な手法によって計算されるって,よくあるメモ化再帰の計算オーダ改善としてDPが出てくる話の流れに馴染みがある私からすれば「あれ,話が逆なんじゃないかな」と最初思ったのですが,後で詳しく読んでみます(間違ってたらごめんなさい).

xiphosura


どうもご無沙汰しております.11年度入学のところです.もう老害ですね.
今回は毛色が変わってロボットの制御に関する話です.

最近こちらのブログを触らずに自分のブログの方でいろいろ書いております.
式やコードの入力がそちらのほうが圧倒的に楽にできるように構築してしまいましたので,勝手ながら自分のブログの方に記事の本体を投稿させていただきました.

👉 [rogy Advent Calendar 2015] マイクロマウスと制御理論 (1)壁トレース制御 | Tokoro's Tech-Note

分量が多くなりそうなので2部作になっていて,今日の記事はその前半パートです.
(1) 壁トレース制御 (今回書いたやつ)
(2) 絶対・相対運動の制御と非ホロノミック拘束 (12/26公開予定)

ところでマイクロマウスって何?という方は,井土くんの記事や下の動画を見てもらえると良いと思います.


マイクロマウスでは壁で区切られた区画の中を走っていくのですが,その際に壁にぶつかってしまわないようになるべく真ん中を走ろうということをします.
真ん中を走るのなんて簡単じゃないかと思われるかもしれませんが,マイクロマウスによく使われる車両ロボットの構造は,実はそういった走行がしづらい面倒な性質を持ったものなんです(そんなに難しいわけでもないです).

結構ニッチな話でもありますので,もし興味を持っていただけたらでいいのでご覧ください.
ついでに宣伝ですが,今年のマイクロマウス大会への参加レポートも書きましたので,そちらもぜひご覧ください.

👉 第36回全日本マイクロマウス大会に参加してきた | Tokoro's Tech-Note


rogy Advent Calendar 2015,明日 22日目 は NHKロボコンチーム Maquinista の "Chai-Yo活動記録" です.

マイクロマウスの迷路探索

井土です。

rogyAdventCalendar2015 5日目です。

先日行われた第36回全日本マイクロマウス大会に友人のもりゅう氏が参加しました。

GgSBsy3s

このロボットの製作には一応私も協力をしており、迷路の探索アルゴリズムを担当しました。
今回は製作した探索アルゴリズムの概要を紹介したいと思います。

まずは同時に製作した探索シミュレータの動画を見てください。



マイクロマウスとは、迷路のスタートからゴールまでをいかに速く走れるかを競う競技です。迷路は競技直前まで知ることができず、迷路情報をロボットにプログラムすることも禁止です。ただ、迷路のサイズとスタート・ゴールの位置だけは事前情報として知っておくことができます。

競技には制限時間と走行できる回数に制限があります。スタートからゴールまでの時間は各走行ごとに測られ、一番タイムの短い走行のタイムがその人の記録になります。大抵の場合は1回目の走行で迷路をゆっくりと走って探索をし、壁がどこにあるかを記憶していきます。2回目以降の走行で1回目の走行で得た情報を元に最短経路を全力で走っていきます。


私が製作した迷路を探索し、最終的な経路を決定するアルゴリズムについて
  • どのようにして未知の迷路を探索していくか
  • どのようにして最終的に走行する経路を選択するか
の2つの部分に分けて大まかに説明をしていきたいと思います。


迷路の探索
探索にかかる時間を抑えたかったので、なるべく無駄の無い探索ができないかと考えました。
具体的には最短経路になり得そうな部分のみを探索して無駄を省こうとしました。

そこで次のようなアルゴリズムを考えました。

  1. 足立法でゴールに向かう
  2. 未探索の壁を通れるとして暫定のk最短経路を計算する
  3. k最短経路上の未探索壁を列挙
  4. 列挙した壁を調べに行く
  5. k最短経路上の未探索壁がなくなるまで2~4を繰り返す
*ここでいう最短経路とは迷路上の市街地距離のことです

足立法とはマイクロマウスにおいて迷路を探索する際によく使われるアルゴリズムです。絶対にゴールにたどり着けます。とりあえずゴールに一回は到達しておくことでタイムを残しつつ、1つの経路を確保します。

最短経路と言えば最も短い1本の経路のとこを指しますが、k最短経路とは短いものk本の経路のことです。(k=20とかでやっていました)ここでk本の最短経路を計算している理由は後ほどの最終的に走行する経路の決定についてのところで出てきます。

k最短経路を計算するアルゴリズムですが、Yen's algorithmというものを使いました。このアルゴリズムは来た道を戻って経路を稼ぐ経路を答えに含めないので今回の目的に適しています。Yen's algorithm中では2点間の最短経路を何度も計算するのですが、その最短経路の計算アルゴリズムは何でもいいです。なのでその最短経路は歩数マップをスタートからゴールまでたどることで求めました。
市街地距離であれば歩数マップから考えれば十分であり、実装も楽で計算も早いのでこうしました。

未探索の壁が無いものとして暫定のk最短経路を計算したとき、その経路上の未探索壁というのは
「もし壁がなくて通れたらこれが最短なんだけどなぁ」
という壁になっています。したがって今から壁があるかどうかを調べに行くべきです。実際に壁を見に行って未探索壁が一つ減ると、また状況が変化します。そこでもう一度暫定のk最短経路を計算し、また未探索壁を見に行きます。

見に行くべき未探索壁がなくなった時はk最短経路が確定したことになるので、そこで探索終了です。


最終的に走る経路の決定
マイクロマウスは走行タイムを競う競技です。探索時に最短経路を求めてはいるのですが、それはあくまで距離(市街地距離)における最短経路であって走行した場合に時間が最短になる経路ではありません。そこでなんとかして走行時間が最短となる(なりそうな)経路を探す方法を考えました。

まず、
距離が短いほど走行時間が短いだろう
という仮定を立てました。ただ、距離最短≠時間最短であるので
距離におけるk最短経路を時間における最短経路の候補としました。

k本の時間最短候補が求まったので、このk個の中から真の時間最短経路を選択します。
どうやって1本を選ぶかなのですが、k本それぞれについて実際にロボットがその経路を走行したとしたら何秒かかるかを計算します。直線の台形加速やカーブにかかる時間をロボットの実測値などに基づいて走行時間を計算します。また、ここではロボットが斜め走行できる場合は斜め走行をするとして考えていきます。k本すべての予想走行時間が計算できたらその予想走行時間が最短であるものを1本選びます。それを最終的に走行する経路として決定します。

以上のことをまとめると次のようになります。
  1. 距離に関するk最短経路を計算する
  2. 斜め走行できるところは経路を斜め走行に変更する
  3. 計算した経路のコスト(予想走行時間)を計算する
  4. コストの最も小さい経路を選ぶ  


最後に
来年は個人でロボットを一つ作ってマイクロマウスの大会にでます。


ギャラリー
  • ABUロボコン結果報告
  • スマホから部屋の電気をつけてみた
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • たのしいロボット帝国 製作物紹介
記事検索
最新コメント