大学祭 2011 はちゅねバーサライタ

大学祭ではお馴染み(?),はちゅねさんにネギを振ってもらいました。

【ニコニコ動画】とても普通にネギを振ってみた

というわけで,なかなか騒がしく動きます。製作がかなり短期間の突貫工事なので来年の学祭にはいろいろと改良したいと思います。

重量過多を回避する

ロボットを作るからには高機動でぶいぶい言わせたい!
でも、部品をあれこれ搭載しているうちに重量過多でしょっちゅう面倒なことに…

今回はそんな問題に設計時から直面していたalduinoの軽量化に関して紹介したいと思います。ちなみに今回は長文です。書くほどのことでもなく、よく知られた内容しかでてきませんけどね。なお、alduinoがどんな機体かは過去の記事に書いております…

alduinoは二本足で歩く機構、逆関節により背丈に対して脚が長いこと、モータ数が多く(22個)、モータが貧弱(脚のDCギヤドモータの停動トルクが13kgf/cm(ギアボックスの定格トルクはなんと2kgf/cm)、足先を除くサーボの最大トルクが7kgf/cm)であったことから、機体の軽量化がロボット全体としてデザインの次に優先の課題となりました。また、重いガワはメンテナンスが大変であるということを過去の機体から経験しているので、その意味でも軽量化は非常に重要な要素となります。今回の機体はモータ全重量が1.3kg、回路基板を除く本体全体で1.9kg、基板と電池、カメラを装備して2.3kgとなっており、T-semiのInRoF出場機体の中では比較的軽い部類に入ります。この軽量化のために意識したガワに関する項目は以下の4つです。
1.機体サイズの小型化
2.機構の単純化
3.フレームパーツの軽量化
4.配線長の最短化

1つ目はすべてのものに対して言えます。機体が大きければ機体負荷(重量や可動部のトルク等)が全体として大きくなり、それに耐えるための重いフレームを使うはめになり、それらを動かすために重くて大きなモータを使わざるを得ないといった、問題をどんどん助長する構造となります。DCモータのパワー重量比は大型なものほどほど悪くなるといわれているので、小型なものほど有利です。
かといってあまり小さければモータや回路の配置ができなくなったりそもそも競技に支障が出る(ボールがとれない等)といった問題があるので、モータがなんとか収まるサイズで設計を行いました。

2つ目も1つ目同様です。複雑な機構は重量を増加させます。現にモータ2個をリンク機構で脚に繋げて移動を行っていた私の前作(02-Alicia/chn)とモータ11個が脚につながっているalduinoでは脚部分の重量はほとんど変わっていません(但しサイズの都合も多分にある)。歩行ロボットは本来重心に近い位置に重量が集中していたほうがよいとされるため、腰あたりにモータを集中させてリンクやベルトで脚に動力を伝達することも考えていましたが、全体としての重量がかさむためほとんどのモータは出力軸を関節軸そのものとして使用しています(サーボの塊となっているホビー用の脚ロボットはほとんどこの形式だと思います)。これにより関節の機構が最低限ですむため機体の軽量化が進みます。

3つ目は、いわば肉抜きです。
以下の写真は機体の脚先ですが、アルミフレームの、モータのギアボックスが接続されている位置には穴がいくつかあいていたり、妙に細くなっていたりします。これはギアボックスが十分に強度があるという前提のもと、ギアボックスにフレームとしての役割を持ってもらおうというセミストレスマウント的な発想によるものです。(ロボットサーボはこうした使われ方を想定して設計されているはずですが、こちらはどうなんでしょうね?) また、ギアボックスを加工しフィードバック用のボリュームを取り付けるための金具もギアボックスに直接加工して取り付けてあります。こうすることで必要なアルミフレームの量が減ります。

次の写真は、機体のももの付け根です。若干見ずらいですが、厚みのある部品を薄くしたり(薄くするという発想は材料力学を知っている人からは嫌がられるようです)不要な部分を削り取ることで軽くしたり、また曲げ加工により部品数を可能な限り削減した部品が可能な限り高密度に実装されています。部品点数が少ないということは、材料的につながった(つなぎ目がない)部品が相対的に増えるということですから、強度に対する重量を抑えることができます。

4つ目は、見落としがちですが重要な項目です。電気配線はガワのいたるところに張り巡らされ、対策をとらないとモノによっては見た目が残念なことになる上、場合によっては可動部や角でケーブルが摩耗します。その結果、断線したりガワそのものが回路の一部になる等の電気的な障害が生じたり、最悪の場合は火を吹くので気をつけなければいけません。alduinoのようにモータが多いと配線自体が多くなるため、これをいかにコンパクトかつ安全にまとめるかが重要となります。

以下の写真では、ギアボックス内部に配線が入り込んでいます。一 応ケーブルとギアボックスはホットボンドによる固定が行われており、ギアと配線が干渉しないことを確認してあります。なお、ギアボックスは樹脂製のため、DCモータの熱もそこまでホットボンドまでは伝わってこない…はず。固 定 が し っ か り し て い れ ば この中の配線は全く動かないため安全です。また、こうすることでギアボックスのスペースを可能な限りつめられることや、ギアボックスを迂回することによる配線長の増加を防ぐことができます。

ガワに関する軽量化はこのようなことを意識しました。簡単でしょ?

もっと本気で軽量化したければ、材料力学や構造力学等を学んだり、削りだし等による可能な限りの一体成型や、キットを買うなどしてもっとお金をかける(alduinoでかかった金額はおおよそPS3が1台分くらい)、そもそもデザインの根本を見直すなどの考えが浮かびますがこれらは厳しいので断念しました。
一体成型については、モータのギアボックス(サーボボックスそれ自体)がフレームと一体成型された機体で、モータの数が同じくらいでありながら全重量が1.1kgくらいまで軽くなっている例を聞いたことがあります。

回路に関しては表面実装、多層プリント基板、最適な半田の量、などなど軽量化の余地は多々あるのですが技術と時間、資金の都合でなかなかきついのが現状です。
ただ、高密度化することで配線長や基板の数を減らす、基板間のケーブルを可能な限り短くする等によって軽量化を図っています。使用する電源電圧が統一されれば電圧変換が不要になるため軽量化がさらに進むのですが、デザインの都合でやむなく違う電圧のモータを使っている個所があるのでしかたない。
回路に関してはさらなる高密度化を行う予定で、目標としては回路1枚にすべての機能を収めたいと考えています。

さて、いろいろ軽量化について書いてきましたが、私は実は大きく重いメカのほうが好きです。アトムやロックマンよりACやレイバーの方が好きなもんでして

NR

サイエンスデイ2011の動画

学祭も終わり、ゼミ長の任も降りたtenpaです。
今回は遅れながら7月に参加したサイエンスデイ2011の動画を紹介しようと思います。

サイエンスデイではInRoFの形式で競技を行っています。
リトライ回数などの細かいとこは変えてありますが、おおむね同じです。
競技台も本家の東北工大からお借りしています。

来場してくださった方々にも楽しんでいただけたようでなによりです。

(tenpa)

「制御」の話をしよう:準備「WindowsでのOpen Dynamics Engineインストー ル」

これまただいぶ間が空きましたが、Open Dynamics Engineのインストールの話をしましょう。LinuxとMac OS Xでの話は以前したので、そちらを参照してください。それではWindowsでの話をしましょう。確認環境はWindows Vista + MinGWです。 by Y.O

1. MinGWのインストール

これはMinGWのダウンロードページからインストールしてください。C++のコンパイラとMinGW Developer Toolkitをインストールするのを忘れずに。

2. Open Dynamics Engineのダウンロード

ODEのウェブページからダウンロードしましょう。この記事を書いている時点では0.11.1が最新です。ダウンロードしたら展開しておきましょう。そしてmsysのホームディレクトリにコピーしておきます。msysのホームディレクトリは「C:MinGWmsys1.0homeユーザー名」にあります。

3. ビルド

MinGW Shellを起動し、展開したディレクトリの中にあるbuildというディレクトリに移動しましょう。それから以下のようなコマンドを実行します。

[shell]
premake4.exe –with-demos gmake
cd gmake
make config=releasedoublelib CC=gcc
[/shell]

4. 確認

今度はデモプログラムを起動させてみましょう。

[shell]
cd ../../lib/ReleaseDoubleLib/
demo_crash.exe
[/shell]

うまくいけば以下のような画面が開きます。

これでインストールは終了です。コンパイル時にはこのパスを指定してコンパイルすることになります。

InRoF 2011 C01 SAIMON

日が開いてしまいましたが、InRoF 2011お疲れさまでした。C01 SAIMONのソフトウエアを担当した私としては不本意な結果に終わってしまいましたが、我々t-semiから二つの受賞者が出て良かったと思います。

私の担当したC01 SAIMONとそれに用いた画像処理プログラムの簡単な解説動画を作成しましたので、よろしかったらごらんください。

by Y.O

ロボコンの様子

画像処理技術解説

大学祭2011 ~それゆけギータ君~

スラマッパギ! N.C.です。
大学祭3日間お疲れ様でした。
私が今年やったことを書いておきます。
今年もまた飽きずに、周波数解析により楽器をコントローラーにする企画を行いました。

キーボードで、モータとタイヤがついたアンパンマンギター(以下、ギータ君)を操縦することができます。写真のキーボードのスピーカの部分にマイクを付けてあり、取り込んだ音を解析して動作を決定し、ギータ君に命令する格好になています。キーボード上に、かなり間隔をおいて付箋がはられていますが、これは2日目までで、3日目にはほとんど隣接した4つの鍵盤に付箋が貼られていました。この4つの鍵盤の音がそれぞれ左右のモータの正転逆転に対応していて、和音を奏でれば直進させたりバックさせたりできるというシロモノです。
 お客さんにはかなり楽しんでいただけましたが、反応が鈍かったり、誤動作することが多かったりして十分満足できるものにはなりませんでした。(3日目については、修正のかいあって、少しはよくなりましたが・・・) あと、お客さんの中で1人だけ、かなり突っ込んだところまで聞いてきてくださった人がいて、とてもうれしかったです。

 内容は去年とあまり変わりませんが、回路などは一から設計しなおしました。去年はFPGAをつかってBPFを作っていたのに対し、今年はロックインアンプを自作してBPFとしました。ロックインアンプの威力はすごかったですねぇ。キーボードの隣接した鍵盤の音でも区別できるほどでした。動作も比較的安定していました。
ロックインアンプへの参照信号はVCOで発生させた方形波で、VCOの制御電圧はマイコンから入力しました。今回は5つの周波数についてのみ調べればよかったので、周波数を連続的にスキャンすることはしませんでした。しかし、ノコギリ波発生回路も乗っているため、連続的にスキャンすることも可能です。つまりスペアナのように使うことも出来ます。詳細は後ほど、気が向いたらにします。

ロボットを作るからには軽いメカでぶいぶい言わせたい!
でも、部品をあれこれ搭載しているうちに重量過多ですぐ面倒なことに…

今回はそんな問題に直面していたalduinoの軽量化に関して紹介したいと思います。alduinoがどんな機体かは過去の記事を探してください(キリッ)

alduinoは二本足で歩く機構、逆関節により背丈に対して脚が長いこと、モータ数が多く(22個)、モータが貧弱(脚のDCギヤドモータの停動トルクが13kgf/cm(ギアボックスの定格トルクはなんと2kgf/cm)、足先を除くサーボの最大トルクが7kgf/cm)であったことから、機体の軽量化がロボット全体としてデザインの次に優先の課題となりました。今回の機体はモータ全重量が1.3kg、回路基板を除く本体全体で1.9kg、基板と電池、カメラを装備して2.3kgとなっており、T-semiの機体の中では比較的軽い部類に入ります。この軽量化のために意識した項目は以下の つです。
1.機体サイズの小型化
2.機構の単純化
3.フレームパーツの軽量化
4.配線長の最短化

フォトカプラでアナログ値を伝達

スラマッマラム N.C.です。
フォトカプラは絶縁しておきたい2つの回路間での信号伝達に使われます。
ディジタル信号を伝えるのは簡単ですが、センサからのアナログ信号を伝えるにはどうすればよいでしょうか。
すこしトリッキーな回路ですが、考えて見ました。(まぁ、すでに存在する回路だとは思いますが・・・)
基本的な回路構成は以下のとおりです。しかし、このままだと発振してしまいました。
考えてみれば、フォトカプラでの信号の遅れがかなりあるので、当然でした。そこで、動くようにするには、オペアンプの出力に遅延回路を付けるなどの対策が必要になります。加えて、出力にLPFをかますなどを行ったところ、正常に動作しました。

フォトカプラでアナログ値を伝える

簡単に説明します。
ひとつのパッケージの中に複数のフォトカプラが入っている場合、それらの特性は揃っていると考えられます。
そこで、2つのフォトカプラを使い、ひとつのフォトカプラの出力が入力値と一致するようにフィードバックをかけます。
LEDが2つ直列になっているため、もう一方のフォトカプラのLEDにはフィードバックに使っているフォトカプラのLEDに流れているのと同じ電流が流れます。
それで、2つのフォトカプラのフォトトランジスタ側の負荷を同じにしておけば、動作点がコピーされるため、フィードバックをかけていないフォトカプラからフィードバックをかけているフォトカプラと同じ出力が得られます。つまり、入力値と同じ値が出力されます。
FET回路で、2つのFETを使い、一方にフィードバックをかけて動作を線形化し、その動作点をもう一方にコピーするリニアライザという回路がありますが、それと同じ考え方です。

InRof2011に出場しました

InRof2011お疲れ様です。同大会にalduinoという機体名で出場したNRです。
今回のInRofではT-semiからは4チームが出場、2チームが表彰されるという良い結果が得られました。
私の機体も長期間作業していた甲斐あってチャレンジ技術賞をいただくことができました。



ただ、私が得た今回の競技点は5点で、自由ボールのみとなってしまいました。試走台では我ながら完璧な流れで6点以上を確保していたんですがねぇ、と悔んでいます。
 来年は通常スケジュールなので、競技点の実力で2日目にいけるように、、、できたらいいなぁ

ちなみに、11月3~5日にある東北大学大学祭ではこの機体を手動操作できるようにして全手動のInRof的なものをやりたいなと思っています。

NR

PDFリーダー

電子工作やプログラミングをしているとPDFのドキュメントを読むことがよくあります。普通はAdobe Readerを使うことになりますが、もっと軽いWindows用PDFリーダーをいくつか紹介しましょう。 by Y.O

まずはFoxit J-Readerを紹介しましょう。これはAdobe Readerのほとんどの機能を搭載しつつ、Adobe Readerより高速に動作します。ほとんどの場合にはこれで十分でしょう。

次にEvinceを紹介しましょう。これはUbuntuでデフォルトのPDFリーダーとして搭載されているものです。オープンソースでPDF意外にもいくつかの形式を開けますが、注釈のサポートが弱かったりしてAdobe Readerの完全な置き換えにはならないでしょう。しかし、ビューワーとして用いるだけなら十分です。

最後にmupdfを紹介しましょう。これもオープンソースでAndroid用のPDFリーダーにはこれをベースに作られているものもあります。これは説明を見ないと操作できないようなミニマムなUIしか持っていません。そのかわり快適に動作します。

Adobe Readerは業界標準ですし、これで開けないことはまず無いでしょうから入れておいたほうがよいですが、ほとんどの場合は他のPDFリーダーで代用可能なはずです。いつも大量のPDFを読む人は高速なPDFリーダーを使えば作業効率もよくなるでしょう。