先日行われたロボカップに使用したDefart4システムのソースを公開します。ビルドするには、公開したソース以外のファイルが必要となりますので、興味のある方はお問い合わせページより、伊藤までご連絡ください。smalltalkソース:little015.tgzライブラリソース:rmlib012.tgz正式なものについては追って公開する予定です。週末にロボカップが始まるという状況で、ようやくイクシスリサーチのRM-eyeと近藤科学のRCB-3との接続確認を行いました。RM-eye上のCN3と、RCB3の高速シリアル接続端子とをストレートケーブルで接続します。CN3をCN2と勘違いしていたため昨日1日つぶしてしまいましたが、きちんと動作確認することができました。Ver.1.1)のp11にはクロスケーブルを使用すると記載があるので注意が必要です。RM-eye-というソフトウェアでは自動実行の手順を書き込むことができるのですが、その内容が保存されないため、毎回設定が必要で、えらく面倒な様子です。RM-boardRM-boardの開発環境整備4しばらく浅草ギ研のS-Eyeの接続にハマっていました。ボーレート設定の読み違えという初歩的なミスで、数日間を費やしてしまいました。サポートの方、ごめんなさい。S-Eyeが接続できることがわかったのと、RM-eyeで二値化画像が得られることがわかったのとで、今度は開発環境整備の方を進めることにしました。smalltalkはくせ者なのですが、せっかくSmalltalkで書けるのだからと採用を予定しています。今日はPC上のsqueakとのネットワーク接続を試みました。smalltalkにTCPの通信機能を実装している暇はないので、単純にstdinとstdoutを置き換える形で実装してみました。smalltalkを操作できるようになりました。サーボもつないで動かしてみたのですが、ホームポジションの設定がまずかったらしく、レレレのおじさんのような格好になってしまいます。下半身強化のため足部を外していたのでよかったですが、つながってたらかなり悲惨なことになっていそうです。これからサーボ制御まわりに取りかかります。RM-boardRM-boardの開発環境整備3前回は開発環境としてluaの組み込みに成功しましたが、やはりITOLABでの基本言語はSmalltalkだろうということで、RM-boardにSmalltalkを組み込むことに成功しました。Smalltalkを組み込みました。Smalltalkはsumimさんのブログに詳しいですが、ティモシー・バッドの作成した学習用の実装です。オリジナルのソース:small.v3.tarこれをubuntu上でARM用にクロスコンパイルし、RM-boardに移してsystemImageを構築しました。一部に手直しが必要だっただけで、ほとんどすんなりとコンパイルすることができました。それからLua用に用意したRM-boardのサーボを制御するルーチンをプリミティブとして実装し、LittleSmalltalkからサーボの制御ができるようになりました。LittleSmalltalkでどの程度本格的なプログラムが組めるのかまったく未知数ですが、面白そうなのでしばらくはこれで開発を進めてみようと思います。RM-boardRM-boardの開発環境整備2iXsリサーチから提供されているRM-boardの開発環境は、VMWare上のDebianを使ったC言語のクロスコンパイル環境です。これならRM-boardのパフォーマンスを最大限に生かすプログラムを作れますが、まだ何から手をつけてよいかわからない段階では、いちいちコンパイルして転送して実行するのは面倒くさいです。何か良い言語がないかと思ったのですが、ゼミでやっているLuaがちょうど良いのではないかと考えました。4足でJollyPochieチームもLuaを使っていたはずですし。最新の5.1.4をダウンロードすると216Kbyte程度しかありません。シンプルでよいですね。Macではあっけなくコンパイル&実行できました。次にVirtualBox上のUbuntuに転送し、先に構築したクロス環境でビルドしてみました。そのままではエラーやら出たので、src/Makefileに以下のような行を適当なところに挿入。arm-linux-ldさらにgeneric:の行をコピーして、以下のように変更。-DLUA_USE_MKSTEMP"こうしてビルドしてみると見事にluaとluacが出来上がりました。実機に転送して実行してみると、ちゃんとLuaが起動して実行することができました。サーボを制御するCモジュールとリンクさせればLuaからコントロールさせることもできそうです。実験システムとしてはとりあえず満足なのですが、せっかくなので他の手も使えないかと模索中です。RM-boardRM-boardの開発環境整備ようやく本格的にRM-boardに取り組むことにしました。以前にやったことをおさらいしながら、最初はRM-boardでサーボを動かすことを目標に進めていきます。必要なのは開発環境です。メインで使っているのがSnowLeopard/MacBookです。Player上のDebianです。Debian上の環境をそのままSnowLeopardに持ってくるのは面倒くさそうなので、同様に仮想化ソフトを使おうと思います。普段からVirtualBoxを使っているので、できればその上で開発したいと思います。Playerのイメージを直接読み込むことができるので、仮想メディアマネージャでHDDのイメージを追加し、新しい仮想マシンを定義して起動させてみました。Panicになってしまいます。/dev/consoleが開けないのが原因のようですが、よくわからないので直接的な起動はあきらめました。VirtualBoxにはubuntuをインストールしていたので、これに先ほどのイメージをマウントし、ソフトウェアのビルドに必要なファイル一式をコピーして使うことにしました。RM-boardのベースになっているarmadilloに関係するファイルや、サンプルプログラムは/home/user配下にあるのでそのままコピーします。これだけではarmのコンパイラやライブラリなどが不足するため、findなどでファイルを探しながら、ビルドに必要なソフトを見つけ出しました。必要なものは、/usr/lib/gcc/arm-linux/と/usr/arm-linux/のフォルダ一式と、/usr/bin/以下のarm-で始まるファイルおよび、genext2fsのようです。これらをubuntuの同じディレクトリにコピーして、サンプルプログラムをビルドすると、test_appというファイルが出来上がりました。rmeye.o$サーボをつないでいない状態で、scpを使ってコピーし実行させてみると、とりあえず画面に何かしらのメッセージが出るので動いているようです。469(Ctrl-Cで停止)サーボをS23に接続した状態で起動すると、サーボが動き出すことも確認できました。RM-boardRM-boardiXsリサーチから届いたRM-boardの実験中です。試したことを忘れないように記録していきます。XPにドライバを入れて、そちらで接続することにしました。BoxでUSBを認識させるようにして、付属CDのドライバを組み込みました。アダプタのシリアル側はCON1に接続しました。ボードのピン配置図がなくて困りました。(20100112追記)使用したケーブルはストレートケーブルです。2.ハイパーターミナルの設定ハイパーターミナルを起動して、以下の設定でポートをオープンしました。ビット/秒:115200、データビット:8、パリティ:なし、ストップビット:1、フロー制御:なし(20100112追記)シリアルポート名はデバイスマネージャで事前に確認しておきます。同時に購入したスイッチング電源とRM-boardを接続して電源入れたら何も起こりませんでした。(LEDも点灯せず)すぐに電源を切って調べてみたら、スイッチング電源に接続されていたケーブルのピン接続が間違っていました。(怖い怖い)Pin1にGNDを、Pin2にVCCを接続して再度電源を投入したら無事に起動し、ハイパーターミナルにブートメッセージが表示され、ログインすることもできました。4.IPアドレスの設定RM-board取扱説明書Ver0.9には、IPアドレスは固定されている風に書かれていたのですが、RM-board立ち上げマニュアルを参照するとDHCPと書かれていました。結局後者が正解で、ハブに接続したところきちんとIPが設定されました。pingは通らないのと、初期状態でtelnetしてもrootログインが許可されていないのでログインできません。コンソールの方でユーザを増やしてtelnetログインすることはできました。(Flashに書き込んでいないので電源オフにしたら設定が消えてしまいますが)(20100113追記)ユーザーを追加せずともguestにパスワードなしでログインした後、suでrootになることができました。活動歴お問い合わせPharoたん最近の投稿スクラッチカンファレンスで口頭発表を行いました。