apmayfes2010 @ ウィキ

12月@ルービックキューブ班


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。



09' 12/27 書籍おすすめ

ども、竹内です。
別にミーティングとかがあったわけではないが、書籍おすすめの件で更新します。
(と言いつつ休み中にこのページを更新してみることが目的の大半なのですが)

とりあえずロボット入門関連でいくつか本を漁ってみました。
本の選定基準は「理論的なものを避けて、あくまで即戦力になりそうなもの」という感じで(細かいことは前の議事録参照)。

(注:このページ内で掲載している本のレビューはあくまで班員の竹内による独断のものなのであしからず)

見た感じはオーム社のRoboBooksシリーズがかなり良かったです。
わりと初心者でもいろいろなことができるようにうまく配慮された本が多いですね。
シリーズの中でも我々の目的に合ってそうな本としては

たぶん前年の開発者はこれを参照にしたのではないでしょうか。
会談の際に出てきた知識の復習にちょうど良い感じです。
前年のロボットを改良する際にはこの本はぜひとも目を通すべきかと。
一応竹内が買っておきました。年明けあたりに計数ロッカールームのmayfesのところに置いておきます。
(2年生及び物工生の方でご覧になりたい方は3年計数生にお願いして開けてもらってください。面倒ですがご了承ください。)

これも基礎的なことが結構載ってます。回路図も豊富です。プログラムの記載はあまり無いですが。
我々のほかにも、数理生命班とかが自立型認識ロボットを作る際にも大きな助けになるのでは。
しかし、如何せんこの分野の割に古すぎるのが弱点か。
今のところは竹内は買ってはいません。ですが需要があると判断された場合は下の領収証の諸注意に気をつけたうえで買って下さい。

割とレベルは高め。だがその分制御関係は結構詳しい。
また、実際の制作過程の様子の記載も多く、発行年の新しさも踏まえると結構参考になるかも。
これも現状では買っていません。ですがこれも班員が需要があると判断した際は買ってしまって構いません。

だいたいこんなところでしょうか。
このシリーズに限らず、この本が参考になりそう!とかあったらこんな感じで適当にレビューしてみてください。
わりと大手の本屋とかなら、この手の本は意外と大量にあります。

とまあ偉そうにレビューしてる本人がロボット超初心者だったりするわけですが…

09' 12/27 領収証の件

この企画に纏わる内容の買物であれば、代金は後から企画費として振り替えることもできなくはないみたいです。
実長の話では、とりあえず買物時の領収証は以下のようにしてほしいとのこと。

宛名を空欄に

買ったものが何か後から見てもわかるように

買った際は班長に品名、金額などを連絡

とはいえ必ず代金が返ってくると保証できるわけではないのでご了承を。
もちろん領収証を取り忘れると自腹確定なのでご注意ください。

あとこれは班長からのお願い。
買ったものはルービックキューブ班 TIPSの備品一覧に書きくわえてください。
一応他人のお金で買うことを前提としたものなので、管理には注意しましょう。


09' 12/22 必要要件を書き出し始めようの会(宿題もあるよ!)


事務連絡:領収書の宛名はひとまず空欄で。何買ったかわかるように。

ひとまずシステムの全体像を構想。
システムの各部において必要要件を洗い出すことが当面の目標。
(図は後で橋本が挙げてくれるはず)

で、とりあえず優先順位が高そうな部分に関してまとめてみる。

<サーボ>

必要要件としては
  • アーム1つ、2つ摘み
  • 回転(How ?)
  • 固定(How ?)
  • 歪み矯正
  • サーボの数は極力減らしたい(消費電力的な意味で)

班員が全体的にサーボに関しての勉強不足が目立った感じなので、冬休みに勉強しましょう(-> 冬休みの課題の項参照)

<アクチュエータ>

回転的な動きはたぶんおk
では、直線的な動きはどうする?
  • > ギアを組む?ちと面倒だが…。
サーボで何ができるのか把握できないと

優先順位が緊急なのはこんな感じ。
その他いろいろ

<解法アルゴリズム>

必要要件としては、
  • 早く
  • かつ正確に
これに尽きる。

人が解くアルゴリズムとプログラムが解くアルゴリズムが違うのは12/18の記事参照のこと。
冬休みの間はこれらの片方には絞らず、両方ともに可能性を当たってみる。
具体的には、
  • <人> 解き方のアルゴリズムをどう組むか簡単に考える。
    • 具体的なプログラムのコードを書く必要は今のところ無く、手順を擬似コードみたいな感じで直せれば上出来。
    • 解き方のお勉強
  • <プログラム> CubeExplorerのコードをいろいろいじってみる。3から5への拡張法の簡単な考察

<結合部>

必要要件
  • メモリがたくさん要る
  • あとはひとまず保留

<画像認識>

ひとまず保留

<具体的なシステムの考案>

上記部分(特にロボット設計部分)を実現するロボットの外観も簡単に考えていきましょう。
というわけで計数3年の殷が1案を挙げてくれました。

<殷の案>(文面自体は竹内がこの文脈に合うように適当にいじってます)

【どんなシステム?】
キューブを固定している台を垂直に動かすことで、アームの回転する部分の深さを調節。
回す面を変えるシステムは、前の面を変えることで実現?(yz平面でつける)

【どの必要要件を満たすためのものか?】
アームの1つつまみ、2つつまみの実現

【このシステムの利点】
台の上下の精度はある程度保証されるのでは?
回転の自由度は1つなので制御しやすい?

【このシステムの問題点】
上記の回す面を変えるシステムをつけられるか?
他にも垂直移動のアクチュエータの問題もあり。

以上、殷の案でした。

だいたいこんな感じで必要要件を満たす設計案を書いてみてください(実現可能性とかは今の段階ではあまり気にしなくてOK)。
3年生は冬休み中に1人最低1個がノルマ。2年生は必須ではありませんが思いついたら書いてみてください。
(このwikiを編集する/らくがきコーナーに書く etc. 手段はまかせる)

というわけでまとめ


冬休みの宿題

(1) (to All) 毎日wikiを見る!積極的に更新する!
(2) (to 3年生) サーボのお勉強。専門書は読むと確実に挫折するので、簡単なアマチュア向けの本からうまく利用できる部分を探っていきましょう。(2年前の開発者は回路図は二足歩行ロボットの設計のアマ向けの本から拝借なさったらしいです)
(3) (to 3年生) 必要要件を満たすシステムの考案。1人最低1個がノルマ(もちろん思いついたら何個でも挙げてほしい)。
(4) (to アルゴリズムやりたい人) 人解法の実装化を考える or CubeExplorerのコードの理解

'09 12/18 一昨年の開発者との会談 その3

会談シリーズ第3弾、提供は雑用竹内でお送りしております。
今回の開発者はルービックキューブの解法を実装された方となっており、5*5*5を解くにあたり気をつけるべきことをお話ししてくれました。
そんなわけで簡単にまとめます。読んで理解できるシロモノかどうかは保証しませんが概要はたぶん理解したので質問されれば答えます。
なお、以下の内容は具体的な解法についてはさして触れないので、解法は自分で編み出したい熱血cubistが読んでも差し支えない内容となっております。

ちなみに以下の記事では簡単なルービックキューブ用語が予告なく使われているので、知らない用語があったら適当にググってください(手抜き)。また、知らなくても全く問題ありません(執筆者はこれを書いてる日の1週間に初めて覚えました汗)

キューブの解法は大きく分けて2つに分かれます。
  • 人が解く
  • プログラムに解かせる (←以前の企画ではここからコードを拝借)

人が解く方法に関して色々方法はありますが、だいたい共通してるのは「目で見てなんとなく整理できる形で解いていく」。
  • 例えば完全1面を作った後に2面目をつくる、とかLBL法(クロス型を作って残りを仕上げる)とか、まあそんな感じ。
ちなみに5*5*5を解いた場合は、開発者曰くある程度最適化しても200手はかかるとのこと(ワーストを考えればもっと)。3*3*3に帰着させて解くのでやり方は分かりやすいけど。

で、プログラムが解く方法は、とりあえずcube explorer:http://kociemba.org/cube.htmを基準として説明すると、手の種類{F, B, R, L, U, D, S, M, E, F2, B2, R2, L2, U2, D2, S2, M2, E2}の計18通り(逆回転を含めたりすればもっとある)をどんどん減らしていくようなphaseを組んでいく、という感じ。
  • たとえば、対称面が青白、赤橙、緑黄って組み合わせになってるルービックキューブの場合、青が中心の面が青と白のセルだけで構成、他も同様に自分とその対称な色のセルだけで構成されていたら、90°回転なんかしなくても180°回転だけでいけるかなーって気がしますよね? このときつまり「180°回転の手のみに限られた状態(+実際は1、2種類の90°回転が要るかも)」となったわけです。)
で、手の種類が限られたphaseまで行けば、そこから生まれる面の数も限られているため、あとは全パターンをマッチングして全面揃うまで漕ぎ着けるわけです。
  • F, B, みたいな回転記号の意味を知らないあなたにはこちら→http://www.planet-puzzle.com/cubekaiten.html
  • ルービックキューブが群論と関係あるっていうお話はだいたいこの辺由来。
cube explorerが3*3*3を解くと、最初(全パターン4*10^29通り)から{U,D,R2,L2,F2,B2}の手のみで構成できるphase(全パターン2*10^10通り)に変換(phase1)、その後はパターンマッチで正解へ(phase2)という名前の通りのTwo-Phase-Algorithmなわけです。
  • ちなみに普通のPCだとオーダー10^10の探索がマシンスペック的で限界。

というわけで、5*5*5アルゴリズムの実装の方法としては次の2つ
  • 人が解くアルゴリズムを再現する (方法は簡単、だが実装はdeathmarch)
  • cube explorerを5*5*5に合わせるように改造する (元々のコードもあるし変えること自体は楽。だがその変え方を考えるのがdeathmarch)
数理的に面白いのは後者なんだろうけどどうなんだろうねえ…。

ちなみに後者をやる場合には、次の2種類の作業に分けて動くべき
  • phaseの分け方を考える人
  • phaseからphaseへの探索方法を考える人
現状では前者の方が難しそう。phaseの分け方(つまり手の種類の絞り方)は現状では手当たり次第やるしかないっぽい。
後者はcube explorerによるお手本があるからまだなんとか(それでもしんどい?)

メインのお話はだいたいこんな感じ。まあ今の我々には何より知識がないし、じっくり勉強した後で方針を決めましょう。

あとサブのお話
  • ルービックキューブのメーカーのお話。メガハウス製はこの企画には不向き。v-cubeとかがいいらしい。
  • 手数はどう頑張っても膨大。なので企画当日には適当にデモムービー(ロボットがキューブを解く様子を早送りで流したもの)を用意して、それと共にロボットを展示するのが妥当かね。
    • いやそもそもロボットが上手くできるかという問題が(ry

まあこんな感じに考えれば今のところは計算時間は二の次と考えてもよいのでしょうか(もちろん意識すべき問題ですが)。
とりあえずはシステム周りを先に決めましょう。


'09 12/18 2年生3年生合同ミーティング

とにもかくにも来てくれてありがとうございました。
とりあえず自己紹介&2年生と3年生の情報共有はだいたいできたんじゃないでしょうか?

目下問題になることとしてはシステム周りでしょうか。
5*5*5キューブの場合には1マスあたりの大きさが小さいので、いろいろなことが問題になってきます。
  • 画像認識
  • アームの構造
  • ほかにもいろいろ…?

もうすぐ冬休みも入って会いにくくなるけど、質問があったり、他に何か面白いアイデアが浮かんできたら、
とかやってみてください。このwikiも好きに編集して構いません。

また、次回の2年生3年生合同ミーティングはルービックキューブ班のメーリスを通じてお知らせします(たぶん新年明けくらい?)。
よろしくお願いします。

(参考)
ルービックキューブ班のメーリス作りました。
18日のミーティング行かなかったけど興味ある、っていう画面の前のあなたは班長の竹内にまでメールよろしくお願いします。


'09 12/16 一昨年の開発者との会談 その2

PCで解いた手順をアームの動きに変換するプログラムを担当されていた方に
お話を伺いました.
メモが体系的にまとまってないので箇条書きで書いていきます.
見にくかったら下と統合してください.

<アルゴリズム絡み>
  • アルゴリズムは既存の物の高速化,並列化を目標にしてた.完全に達成されず.
  • 555のルービックは,普通333の手順が使える状態まで落としてから解く.新規に開発しなきゃいけないのはその部分.
  • 333で大体150手くらい.いい形の333に帰着できれば20手くらい.前回のマシンは1手3秒くらい.
  • Web上に333のアルゴリズム・ソースがフリーライセンスで転がってる.CubeExploreなり 英語版Wikipediaの555キューブの項 の参考リンクから漁るべし.

<画像認識>
  • Webカメラでキューブの黒い部分を見る -> 面の境界を検出 -> 境界内の色をチェック という仕組みだった.検出精度は芳しくなく,最終的に手で入力したとか.
  • 画像認識のトラブルはカメラノイズ原因?
  • カメラ位置とターゲット位置を固定して特定の場所の色を読む仕様にした方がラクかも.
  • 555の面は対象が小さいので,マーカーを使った方がいいかもしれない.

<その他>
  • サーボは基本的に2つまでしか動かせない?.3つ以上動かせるか疑問.
  • 班同士の担当分野の間を埋める部分ができていなかった為,直前に修羅場状態に.具体的には,PCで解いた手順とアームの動きの対応関係とか.冗長性なしに1対1に対応させたらしい.
  • アームの動き<->アルゴリズム解 の変換プログラムは開発人数1人で6時間かかったらしい.
  • ソースのバージョン管理はしっかりと.フリーのバージョン管理ソフトを活用しよう.Subversionとか.
  • アルゴリズムを実装してたのは計数数理内では"平均的な"プログラマらしい.別に飛び抜けた凄腕だった訳ではないとのこと.



'09 12/14 一昨年の開発者との会談

主にシステム全般と設計などに関していろいろ話を聞いてきました。


<企画動機的なもの>
数理とシステム合わせたものがよくない?という感じの理由で、両者の活躍の場(解法アルゴリズム、ロボット設計)が持てる企画に。
ロボット設計に関しては、とにかく見せることを重視。
透明のパーツ(アクリル板)を多用してたのもお客さんが見ることを意識してのこと(ただ、加工技術的にアクリルはお勧めではないみたい)。
企画設立はまさかの4月。したがって制作期間2ヶ月。デスマーチの嵐だったとか。なんというか我々とはスペックが違いすぎる。

<ロボットの概要>
サーボ(PWM制御)、AVR(C言語使用可能)などなどを使用。画像認識はwebカメラでやってたらしい。
PC内で解法アルゴリズムを動かして信号を出力し、その信号を受けてロボットが動く、といったもの。
(つまりロボット自体は外部信号を受け取ってアームを動かす、といった感じのもの)
  • と思いきや画像認識は過去プロジェクトではあまりうまくいってなかったそうな。5*5*5ではキューブの1つあたりのセルも小さくなるし、画像認識は今回も大きな課題になるかも?

<班の運営>
(あくまで過去プロジェクトでは、という話ですが)
まず初めにアルゴリズム・ロボット双方において、早めに必要要件を書き下す(メッセ、スカイプ、深夜ロッカー室など多用)。
その要件を基に以下のグループを設置
  • ロボット設計(3~4人)
  • 解法アルゴリズム(3~4人)
  • 両者の監督役(1~2人程度、上の両グループの行動を把握・調整)
自分の所属(数理、システムとか)、班長とか関係なく、適正や要望に応じて振り分けていく。
まず信号出力用の簡単なテスト回路を作り、その回路をPCに繋いでアルゴリズム側が作業開始。
その間にロボット側は設計全般をして、最後に両者を結合させる、といった流れ。
最後の方は特に両グループの足並みが合わなくなるので、監督役は特に気をつける。

とにかく互いに文句を言える環境を作ることが大事。
作業に詰まったら早めに全体に相談、監督役も思い悩んでデスマーチしてる人がいないか気をつける。

<設計の工夫・注意>
  • とにかくアナログ仕様でいろいろがんばる。
  • 設置台にキューブを置くスタイル -> 位置の微調整がアナログでできる(機構上のリセット機能)。
  • アクリル使用…は、作業量的には失敗だったみたい。ただ画像認識は透明なパーツを使った方がやりやすい、ということも。
  • 必要な知識は数知れず、ただ専門書に当たっていったら時間がない。というわけでアマチュア本をうまく使う(回路設計は2足歩行ロボットのアマチュア入門書から回路図を拝借、回路設計は目的ベースで探すのがベスト)。
  • ボードは浅草ギ研がおすすめ。コンパイラもダウンロード可能。
  • 大事なところは予備パーツも用意しておく。
  • プログラミング環境は必要に応じて予め統一しておく。
  • 画像認識も結構問題。照明条件もあるし、なによりキューブ面の橙面が赤面、黄面と誤認しやすい(色の問題については塗り替えればどうにでもなるけど)。

<当日起きたハプニング>
  • サーボが焼き切れる
  • PC結合部分にバグ
などなど

<5*5*5で予想されるトラブル>
  • ロボット部分がかなり問題。アームどうするよ? サーボは経験則的に同時使用は3個までが限界みたい、あと消費電力やバグも怖い。
  • アルゴリズム部分は今のところそんなに問題ではない。ただし極力早いアルゴリズムの設計には要る。
    • と思いきや実はけっこう手数がかかると思われる。3*3*3に帰着させた後は楽勝だが、させるまでが大変。さあどうする。

書洩らしも多数あるかと思われますが、だいたいこんな感じ。
あと、過去プロジェクトの作品(3*3*3ルービックキューブロボ)を預かったので、とりあえず計数ロッカールームに置いておきます。
計数の皆様には場所を一部占領してしまうことを深くお詫び致します。
今年のプロジェクトでも大いに参考にしたい代物ですし、なにしろ上の代からの預かりものなので、無闇に手などの触れることの無きようお願い致しますm(_ _)m


当面の課題


そんなわけで、全体を動かすための何よりの必要要件としてまずはハード面の外観をどうするかを決めようということに。
アイデア募集中。ちなみに人員も相変わらず募集中。

(参考)
浅草ギ研へのリンク:http://www.robotsfx.com/


'09 12/13 近況

  • 14日(月)18時から2年前の開発者に会いに行きます。
  • 年内の授業期間までに大まかなスケジュールを固めていきましょう。
  • 学年、学科問わずメンバー絶賛募集中。参加するかどうかはさておき興味ある人は計数数理の竹内まで連絡をくださいな。




5*5*5ルービックキューブを解くロボットをつくる。


5*5*5ルービックキューブ(正式にはプロフェッサーキューブ)を解くロボットを作ろう!という趣旨の企画。
各面にセンサを取りつけて、その幾何情報をロボットに読み取らせて高速に解く、といった感じのものを想定しています。

ちなみに3*3*3(普通のルービックキューブ)を解くロボットは2年前の応物系五月祭企画にて開発済み(今も無事にあります)。
当時の開発者様方(つまり2つ~1つ上の先輩)から協力を仰ごうかと。
問題となるのは
  • アルゴリズム開発
  • 実際にロボットを組む技術
です。このあたりに興味ある人ない人よろしくお願いします。

下に紹介用スライド(mayfes_rubik3.pptx)置いておきました。
よろしければ見てやってください。

(参考)
ルービックキューブ班ができる以前の跡地→画像処理

カウンター

total today yesterday
- - -

カレンダー

前月 2017年7月 翌月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          


最終更新日時

0000-00-00 00:00:00