January 01, 2008

謹賀新年 2008

[Timely]

あけましておめでとうございます。今年もよろしくお願いいたします。

2008ny.png

猫好きな僕ですが、近所の猫も子年のせいなのか、正月早々活発でした。僕はというと、お医者に行くことから一年がスタートしそうですorz 風邪にはどうかお気をつけください…

※昨年の2007年謹賀新年記事はこちらです。過去の絵柄探索ができます。

23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (2) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/611

January 05, 2008

ADIS16350 6DOFセンサ

年末に購入したAnalog Devicesの新しいセンサが届いていました。

ADIS16350.jpg

このADIS16350は6自由度、つまりXYZ軸の加速度とXYZ軸まわりの角速度が同時にはかれるセンサです。従来、このような機構を簡単に入手できるセンサで構成するためには、単品の加速度計やジャイロを購入し、なんらかの方法で、例えば基板を垂直に配置するなどして、それぞれの設置軸が直交するように配置する必要がありました。しかしこの製品の登場で、その苦労から解放されることを期待しています。性能がちゃんとでるようでしたら、オートパイロットシステム Super Sylphideもこの製品のお世話になろうかと考えています。

さてそのADIS16350ですが、性能面を考えてみると早速気になることがありました。この製品はADC内蔵で出力が14bitのデジタルのため、センサの生出力に対してアナログフィルタが組めません。これがどのように影響してくるかは、今後試験で明らかにしようと思います。

また先日実験してわかったのですが、加速度計をモーターなどの振動環境下で使用するとスケールファクタが変わってしまう、わかりやすい言い方をすれば、鉛直方向で1gが出力されなくなります。例をあげると下のグラフのような結果が得られます。

Z-axis_under_vibration.png

実験対象としたのは3軸加速度計STMicroelectronics LIS3L02AS4のZ軸を24bit ADCで取り込んだ変換値で、グラフの中盤から加速度計の近辺でモーターを回して加振、モーターをとめて静止を繰り返しています(回転数を変えているため振動の周期は変わっています)。はじめは1gがでいるのですが、途中から1g以下の値となってしまっています。
これは小型模型飛行機にオートパイロットシステムに適用するにあたって問題となります。近頃この対策をいろいろと検討しているのですが、なかなか解決しません。このような傾向が新しいセンサでどうなっているかにも興味があるところです。

※『X,Y軸についても…』というコメントを戴きましたので、Z軸(赤)と同時に計測していたX軸(青)、Y軸(緑)のグラフを追加してみることにしました。

XYZ-axis_under_vibration.png

X,Y軸についてはほぼ0g状態なので、スケールファクタずれてしまっているのか不明ですが、おそらくZ軸と同じ現象が発生するのではないかと予想しています。

23:26 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (9) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/612

January 10, 2008

織田作之助賞をとった友人

[Timely]

普段技術書とラノベしか読まないため文学というものにはほとんど縁のない僕ですが、少し前のChumby記事でネタふりをした某友人が織田作之助賞の青春賞をとったようです。毎日新聞のWebにも速報が載っています。
織田作之助賞というのは毎日新聞が毎年主催している賞だそうで、彼はその中の短編作品を対象とした青春賞を受賞したそうです。賞についての詳細は『Wikipedia 織田作之助賞』をどうぞ。

どんな小説かは著作権があると思うので、毎日新聞を見ていただくのが一番だと思いますが、個人的な感想でいうと、まさか、あの彼がねぇ、という感じがしています。彼は普段の行動がかなり底抜けなバカ、例えば航空券やパスポートを持ったまま海に飛び込んで大変なことになっていた、本人曰く『あ、忘れていた』、という感じで、とても小説など書きそうにないので、正直驚きました。むしろ自伝でも書いて実話を赤裸々と公表したほうが、売れる本が書けると思います(笑)。
現在彼のブログの記事『緒野雅裕と小野雅裕』では、受賞の喜びを交えつつ、僕があまり知らなかった方の『小説を書く彼』についても語られています。その中でこのような賞をとってしまったことで、小説を書く内面的な自分を先に知ることになるであろう大勢の人々への期待や不安を推して知ることができますが、今までどおり肩肘はらずに適当に続けてくれることを期待しています。彼には独善力があるので周囲のプレッシャーというものも平気でしょう。

自分で言うのもなんですが、彼を含めて僕とお付き合いしてくれる人は基本変人ばかり(今自分のことかと思った方は多分あたり)ですので、これからも他の方の変態的行為に期待しつつ、もし何かあったらまたこのサイトで紹介したいと思います。僕自身はどうかって? 気になる人はリアルな世界で会いましょう(笑)

10:37 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (2) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/613

January 13, 2008

Super Sylphide 進捗状況(15) -- I/O拡張基板

開発中のオートパイロットシステム Super Sylphideですが、ようやくハードウェアの設計が最終局面に達しました。FPGAを利用してサーボやスピコン(スピードコントローラ、モータを制御するユニット)をつなぐ部分を開発しています。
この部分は位置でいうと、DSPが載った演算用モジュールSDカードやA/D変換機等が載ったサポートモジュール、その2つのモジュールの間に挟まる形で仕様します。ということで、大きさはそれらと同じ51 x 51 mmです。基板の配線イメージは現時点では以下のとおりです。

sylphide_IOModule.png
4層基板。赤から青に変わる順に上から下へ。

FPGAにはSpartan-3のXC3S200を入れてみました。回路は、様々なFPGA基板の回路図を有難いことに公開されているHumanDataさんのほぼコピーです。実は使う半導体を決めるにあたって、フラッシュを内蔵したSpartan-3ANのQFP版がDigiKeyで購入できるようなら、そちらを使おうと思ったのですが、設計をはじめた時点ではまだ購入ができなかったので、諦めて外付けフラッシュとしました。

またFPGAには電源として3種類の電圧が必要ですが、これには以前記事を書いた1つのICで3電源がとれるTIのTPS75003を使いました。3電圧のうちの1つ+3.3Vについては、DSPが載った基板から引き回してくることもできるのですが、DSP基板をつけないで使用する可能性もごく稀にありそうなので、電源は全て今回設計したものの中で完結するようにしました。

FPGAの端子はDSPのペリフェラル端子か外部に引き出されています。あんなことやこんなことが急にしたくなった時の為です(笑)。FPGAを駆動するVHDLはこれから設計していこうと思います。

※その後、USBについて愚痴をこぼしてみました。

※※さらにその後、この基板は完成し動作確認がとれました

21:53 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/614

January 19, 2008

Mac mini オープナー

サーバとして使っているMacマシン(G3 350MHz)がそろそろへたれてきたので、新たなサーバに仕立てようとMac miniを購入しました。購入したのは所謂Intel MacのCore 2 Duo 1.83GHz、RAM 1GBで、僕が所有しているマシンの中で最速となりました。個人所有においてサーバが最速というのも変な話ですが、切り替え後はこのサイトが快適になるのは勿論のこと、今までサーバへの負荷の関係で敬遠してきたWeb系アプリのプロトタイプ公開などもやってみたいと思います。

ところでMac miniをサーバにするにあたって、最近はRAMがかなり安くなっているので、サーバとしての利用をはじめる前にRAMを2GBに挙げておこうと思いました。購入したMac miniで使えるRAMはノートPCで利用されているSO-DIMMタイプと同じもので、PC2-5300規格に準拠したものであれば使えるようです。秋葉原に行ってみると1GB@2800 x 2で5600円で入手できました。

しかしながらこのMac mini、簡単にRAMの増設ができないようになっています。iPodよろしくMac miniもケースがネジ止めではなく、内側に隠れたヒンジで固定されているため、簡単に内部へアクセスすることができないのです。これというのもAppleはMac miniのケースをユーザーが開けることは想定しておらず、分解によって壊れた場合は保証対象外となるようです。

しかしRAM増設を業者に頼むとそれなりにお金がかかるので、保証対象外というリスクを背負いつつも自分で増設してみようと今回は思いました。何かいい方法がないか探してみると、Mac miniを分解するため作られた工具があることを知りました。仁作という会社の『Mac mini専用分解工具』というヘラです。

Macmini_open.jpg
ケースが空いた状態のMac miniと専用ヘラ。

このヘラを使うことによって、商品ページにリンクがあった使い方ビデオ( http://www.nisaku.co.jp/siyou.AVI )の通り、簡単にMac miniをあけることができました。
さらに、ビデオで紹介された使い方に一工夫すると更に簡単に空きます。はじめに片側を押し上げる前に、もう片側にテレカなど薄いものを挟んでおくと、片側を持ち上げた後にもう片側へヘラを差し込むのが簡単になりました。

実はRAM以外にもHDDをサーバ対応の製品(24時間連続運転を想定して作られた製品)に変えようと検討していたのですが、HitachiのE5K160シリーズは国内に在庫がなく、またFujitsuのMHY2 BSシリーズは価格が高いので、一旦見送ることにしました。Mac miniのHDDの大きさが2.5インチというのが非常にネックになっています。

これからサーバとして使えるようにするために、怒涛のセットアップがはじまります。有益そうな作業履歴がありましたら、その都度記事にしていこうと思います。

14:15 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (4) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/615

January 26, 2008

Othelloプログラム(強化学習による実装)

少し前に、昔Ruby書いたオセロのプログラムをC++に書き直した、という記事を書きましたが、その続きを書きたいと思います。ようやくコンピュータ側のルーチンの実装が完了、ないし、メモリが漏れるバグ取りが完了しました(苦笑)。

とりあえず現時点のソースはこの辺りに散らかっています。

コンピュータ側のルーチンの実装にあたっては、とある目的で今後本格的に使いたいと考えている『強化学習』の入門書を1冊読んだ上で行いました。前回のRuby実装では少しこのテーマをかじった程度で実装したので、後から見直してみると何がなんだかわからない実装になっていますね。それでもある程度コンピュータプログラムができていると錯覚できたのは、学習のケースを積めば積むほど、最適な手筋に近い手筋に収束していくという効果(があるらしい)のお陰であったようです。

強化学習
読んでみた本は、ずばり『強化学習』というタイトル。

この本は、非常に読みやすい一冊でした。思い返してみると、本を読みはじめる前に適用したい目標が定まっていたのが非常に良かったのだと思います。特に本を読むにあたって、この方法はあの目標に使えそうだ、この方法とあの方法の違いはこういうところがあるらしい、等のことに着目して読み進められたことが、理解に繋がったのだと思います。なおこの本の原本(『Reinforcement Learning』、英語)はネット上で読めるようです。

読んだ本に基づいていうと、今回の実装は方策オン型のTD(1) Sarsa学習で、学習中の方策にはソフトマックス関数を利用したepsilon-greedy戦略を用いています。また行動価値推定(オセロ盤面の評価関数)については、数手先の盤面の縦・横・斜めのタイリングを行い、テーブルを引くことによって最終局面における黒石と白石の差を推定しています。
これらの設定の下、現在プログラムを鍛えている最中ですが、おおよそ30分100試合程度こなしているようです。予定では1週間後には数万試合を消化し、行動価値、つまりこの局面は有利か不利か、の推定精度が上がっていることを期待していますが、どうなることやら。非常に楽しみです。

23:44 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (2) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/616