「4月@ルービックキューブ班」の編集履歴(バックアップ)一覧に戻る
4月@ルービックキューブ班 - (2010/04/23 (金) 19:22:51) のソース
ページ内リンク &link_anchor(100423){'10 4/23 進捗報告的な何か} &link_anchor(100415){'10 4/15 室田先生訪問会} &link_anchor(100412){'10 4/12 アーム試作品&仕様要請など} &link_anchor(100409){'10 4/9 進捗報告} &link_anchor(100407){'10 4/7 色認識プログラム&工作室訪問} &link_anchor(100406){'10 4/6 シリアルポートの注意点} &link_anchor(100405){'10 4/5 翻訳} &link_anchor(100403){'10 4/3 試運転その1} &link_anchor(100401){'10 4/1 パーツ購入} ---- * &aname(100423){'10 4/23 進捗報告的な何か} 最近書き込んでなかったので、ひとまず更新。 現状としては <色認識(殷、松田)> プログラムは完成。撮影環境考察はハード製作待ち。 <解法部(竹内、相浦)> 代数計算ソフトは3x3x3の計算が限界(3x3x3だと一瞬で計算できるが、5x5x5でバッファオーバーフロー)。 なわけで、相浦に外部からソフトを読み込む形での3x3x3ソルバを作ってもらってる。 それが完成すればあとは既存の手解法5x5x5->3x3x3プログラムとドッキングさせれば一応動く。 <翻訳部(加藤)> いろんなパターンの翻訳機を作成。 ハードの仕様変更にも万全の体制だそうな。 <通信部(竹内)> サーボコントローラへの通信テストは終了。 あとは既存の解法、翻訳をC#に書き換えるだけの簡単なお仕事。 <設計部(橋本、塚本、中川、川崎、竹内(裕))> アーム1つの試行は先週終え、現在は量産体制に移っている。 今週土日にサーボを仕入れて4つ腕製作に入る予定。 だいたいこんな感じ。 来週月曜に進捗報告会やります。 * &aname(100415){'10 4/15 室田先生訪問会} 数学的にかっこいいソフトの作り方。 入力となる1次元147要素のベクトルから出力のベクトルに変換する際に、行列を使用するわけですが - 行列の定め方 - 行列から生成元行列への分解のしかた がわからない。 後者に関しては、とりあえず代数関連のリファレンスをいくつか紹介されてみたり。 http://www.math.rutgers.edu/~sims/publications/survey.pdf 代数関連の有名なソフトに関してはGAP, Magma, Magnusの3つらしい。 てことでタスク割り振り。 相浦:GAPで遊ぶ&C#から読みだしてなんかいろいろ組む。 松田:代数数理のお勉強&Magma,Magnusで遊ぶ。 だいたいこんな感じ。あとは適当に。 あと、皆さまハード製作にはきちんと参加しましょう。 これから先、人手が必要になってくるので。 * &aname(100412){'10 4/12 アーム試作品&仕様要請など} 本日はアームの試作をしていました。 反省点として - サーボのコード延長は必要。180°回そうとしたら引っかかる。 - 採寸の問題。やはりEastsheenでいくか? サイズの小ささが気になるが…。 -- キューブのメーカーの問題は事前にもっと議論すべきだったような。申し訳ない。 - 手の平(?)の基盤はステンレスでいく? - 接着剤はほとんど要らないと思われる。今回は加工装置の精度が抜群なので。 - 他にもいろいろありますが、ひとまず略。 あと、翻訳側からのアームへの仕様要請を書いてもらいました。 極力この仕様に沿う形に設計していきましょう。 * 翻訳プログラムからのアームに対する要求 以下では4つのアームがキューブの前後左右をつかむことを仮定する。すなわち、4つのアームは水平面内にあるとする。 各アームの名称を、 右 M 左 N 後 P 前 Q とする。 1、指の形状について キューブを上から見て左上から横方向に1から25までの数字を割り振ったとき、各方向のアームの指がつかむ位置は、 M 10、15、20 N 11、12 P 2、3、4 Q 18、23 とし、下の面はこれのちょうど真下となるようにする。 2、回転角の開始および終了位置について 回転は、指が上下の面をつかむ位置から180度回転し再び上下の面をつかむことができる位置まで動かせるとする。 3、指とキューブの干渉について PとQを開いた状態でMN軸周りにキューブを回転させたとき、PまたはQの指とキューブが接触しないこと。 MとNを開いた状態でPQ軸周りにキューブを回転させたとき、MまたはNの指とキューブが接触しないこと。 4、指と指の干渉について Pが閉じた状態でNを開いて回転させたとき、PとNが接触しないこと。また、Pが開いた状態でNを閉じて回転させたとき、PとNが接触しないこと。 Mが閉じた状態でQを開いて回転させたとき、MとQが接触しないこと。また、Mが開いた状態でQを閉じて回転させたとき、MとQが接触しないこと。 5、つかむ強さについて MとNのみまたはPとQのみでつかんで回転させたとき、どの回転角においてもキューブを落とさないこと。 すべてつかんだ状態でMまたはPを回転させたとき、一層のみの回転ができること。 MNQをつかみPをはなした状態でNを回転させたとき、二層の回転ができること。 NPQをつかみMをはなした状態でQを回転させたとき、二層の回転ができること。 6、キューブの位置誤差について キューブを宙に持ち上げた状態で動かし続けるため、位置誤差が蓄積していく可能性がある。それをなんとかできること。 * &aname(100409){'10 4/9 進捗報告} ここまで各人がバラバラに動いていたので情報整理。…できたのでしょうか? まあいいや、ひとまず纏めましょう。 <色認識> プログラムを改良中(殷、松田) あとは撮影環境の問題あり。ハードウェア部と要相談。 <解法部> 現在手解法を作成中。日曜までには試作完成予定。今んとこ真ん中3x3x3まで揃えるところまでは問題なし。ただし手数的な問題も少々(竹内) 数学的な方法の考察?(相浦) 他にも色々問題あるんで、気が向いたら適当にタスク投げるかも。(殷、松田あたり?) <翻訳部> プログラム完成済。アーム試作後にデバッグ。(加藤) <通信・回路部> テスト運転済。問題なし。(橋本、竹内) <ハードウェア部> アーム試作、絶賛試行錯誤中。(橋本、塚本、中川、川崎) - ミニサーボをトルクの強い上位互換版に変更してもう一度試す。 - 対象であるキューブが柔らかければ現状の設計でも一応回る。数理3研のよく潤滑されたキューブを借りることに。 * &aname(100407){'10 4/7 色認識プログラム&工作室訪問} <色認識プログラム> 殷が色認識のプログラムを作成してきてくれました。 現在のプログラムでは、セルの大きさなど様々な条件設定が要るらしいので、その辺のテスト動作を松田に委ねました。 <工作室訪問> 授業後に6号館地下の工作室を訪問し、工作室技術員の川端さんに挨拶に行きました。 諸注意を受けましたが、とりあえず設計図が要るとのことです。 形式は自由ですが、簡単にパーツの配置が分かる(各パーツに通し番号なりをつけた)図を用意する必要があります。 設計図の作成は明日までに塚本と橋本に委ねました。 また、安全面に関しては細心の注意を。 工作室のベテランの技術員の指示には絶対に従いましょう。 そんなこんなで明日からハード設計が始まります。 開始・終了はメーリスで流すので、空いてる時間には皆様作業しましょう。 少なくとも5月末のデスマーチなんてことにならないよう、ガンガン進めましょう。 * &aname(100406){'10 4/6 シリアルポートの注意点} 先日計数の新規PCであるCentrinoが配布されましたが(システム生は今後配布されるらしい)、このPCには我々の使用しているサーボコントローラーのシリアルポートがありません。 - 変換ケーブルをつけるという手もあるにはありますが、もしかしたらうまくいかないかも(まだ試してないけど) なわけで、計数4年生はdellもしばらく所持しといてください。 松尾先生と交渉すれば五月祭終了時まで新規PCとdellの両方を借りることもできるようなので、ひとまず竹内に報告をば。 * &aname(100405){'10 4/5 翻訳} 翻訳のプログラムを書き換えました。 変更点は次の通りです。 -回転制限が180度であることに適合する翻訳仕様に変更 -それに伴い、サーボの各動作に対応する出力数列の数値の対応関係を変更(memo.txt参照) -翻訳の仕方を一種類にしたためチェック用のコマンドライン入力の名前をTranslateに変更 「t_0406」には今までと同様の検証用操作のついた(TranslateSを含む)プログラムが入っており、「translation_0406」には余計なところを消して実際の全体プログラムに組み込む必要のある部分のみ(+Translateクラス)が入っています。c#に書き換えるのはtranslation_0406の方でいいと思います。 * &aname(100403){'10 4/3 試運転その1} とりあえず先日上げたサイトのマニュアルに沿って、サーボを動かすのは成功。 - ミスの原因はジャンパを刺したままだったかららしい。 というわけで、ひとまずアームらしき物の仮製作に入ってみました。 で、一応アームらしきものができました。 わかったことを掻い摘んで説明すると、 - サーボ同時駆動は問題なく可能。4個同時駆動まで確認済み。 - サーボS03T2bbは0°~180°まで、ミニサーボRB001は0°~120°まで回転可能 -- つまり、アームの2つの指の間の角度が0°~240°まで広げられる。手首が0°~180°まで回転できる、ってこと。 - 現在のミニサーボのトルクでたぶん問題ない(実際にキューブを回そうとすると、サーボではなく支柱のタミヤプレートが壊れたので) この結果を見る感じでは、加藤の翻訳プログラムは現状では仕様を変えなくてよいってことでいいんだろうか。 アームらしきもののテスト動作は終わりましたが、これが実際にキューブを回すようになるまではそれなりのTrial&Errorな日々になりそうです。。。 サーボのテスト用プログラム(C#)をap2009uploaderに上げときました。 パスはメーリスで流した通り、分からなかったら竹内まで。 使い方としては、visual C# の開発環境(無料)をインストールして実行したのち、上記ファイルを開いて「F6」→「Ctrl+F5」で多分使えます(適当、もしかしたらダメかもしれない)。 http://www.microsoft.com/japan/msdn/vstudio/express/ ただし、PCのCOM1ポートに何か刺してないとコンパイルエラーになるかも。 まあなったらなったであんまり気にしないでください。 今のところプログラムの類は全てJava(含むGUI)で書いてますが、最終的には全てC#に移行しようかと。 - Javaからシリアルポートに命令を出す方法もこんな感じhttp://www.javainthebox.net/JavaForFA/08-09CommAPI/No.08/commapi1.htmlであるんだけど、正直めんどくさそう。。。 - 正直GUIを使えてシリアルポートに命令を出せればどんな環境でもいいんだけど、今回はC#が一番便利そうなので。ゆとりばんざい。 幸いJavaGUIからC#GUIへの書き換えはそんなに面倒ではないので、まあ今の状況でも一日足らずで書き換えできる…はずです、たぶん。 ---- * &aname(100326){'10 4/1 パーツ購入} ようやく予算解禁です。お待たせしました。 なわけで、部品を調達。以下のものをget - RCサーボコントローラーAGC65RSC 1個 - PC接続ボードAGB65/232C 1個 - GWSサーボS03T/2BBM 2個(トルク大きめ、スピード遅め、一般的なサイズのサーボ) - サーボRB001 2個(トルク小さめ、スピードまあまあ、小型のサーボ) - サーボブラケットWRESBR1 2個(RB001用のブラケット) 上記サーボコントローラーの仕様は、浅草ギ研のこのページを見てください。 http://www.robotsfx.com/robot/AGB65_RSC.html ちなみにvisual C# から動かせるみたいです。 http://www.robotsfx.com/robot/robohow/RoboHow61/RoboHow61.html もちろん実機ではサーボの数はもっと増やしますが、ひとまずアーム1個を仮動作させる段階ではこれで十分のはず。 で、明日までに仮動作をする、って感じ。 (追記)最初の仮動作は見事に動かずw なぜだー