ScratchによるKHR-1HV(RCB-3)の制御

無事に学園祭が終わりました。今年の目玉の一つはKHR-1HVによるダンスです。おかげさまで、当日かなりの注目を浴びることができました。徹夜でモーションを完成させたロボットチームはお疲れ様でした。

2体のロボットを同時にスタートさせたいというところから、HTHやRCBCommander3では対応していないためにプログラムで制御しようということになり、せっかくだからScratchで制御しようと進んできました。

何とか使えそうなところまできたので公開いたします。

チェンジファイル:DefartNetworkConnection.cs
Scratchソース:Scratch Source Code

RM-boardの開発環境整備3

前回は開発環境としてluaの組み込みに成功しましたが、やはりITOLABでの基本言語はSmalltalkだろうということで、RM-boardにSmalltalkを組み込むことに成功しました。

といってもSmalltalk/80の現在の主流であるSqueakやCincomではなく、Little Smalltalkを組み込みました。

Little Smalltalkはsumimさんのブログに詳しいですが、ティモシー・バッドの作成した学習用の実装です。

オリジナルのソース:small.v3.tar

これをubuntu上でARM用にクロスコンパイルし、RM-boardに移してsystemImageを構築しました。一部に手直しが必要だっただけで、ほとんどすんなりとコンパイルすることができました。

それからLua用に用意したRM-boardのサーボを制御するルーチンをプリミティブとして実装し、LittleSmalltalkからサーボの制御ができるようになりました。

LittleSmalltalkでどの程度本格的なプログラムが組めるのかまったく未知数ですが、面白そうなのでしばらくはこれで開発を進めてみようと思います。

RM-boardの開発環境整備2

iXsリサーチから提供されているRM-boardの開発環境は、VMWare上のDebianを使ったC言語のクロスコンパイル環境です。

これならRM-boardのパフォーマンスを最大限に生かすプログラムを作れますが、まだ何から手をつけてよいかわからない段階では、いちいちコンパイルして転送して実行するのは面倒くさいです。

何か良い言語がないかと思ったのですが、ゼミでやっているLuaがちょうど良いのではないかと考えました。たしか、4足でJollyPochieチームもLuaを使っていたはずですし。

とりあえず最新の5.1.4をダウンロードすると216Kbyte程度しかありません。シンプルでよいですね。Macではあっけなくコンパイル&実行できました。

次にVirtualBox上のUbuntuに転送し、先に構築したクロス環境でビルドしてみました。そのままではエラーやら出たので、src/Makefileに以下のような行を適当なところに挿入。

CC = arm-linux-gcc
LD = arm-linux-ld

さらにgeneric:の行をコピーして、以下のように変更。
rmboard:
$(MAKE) all MYCFLAGS="-I/usr/arm-linux/include -DLUA_USE_MKSTEMP"

こうしてビルドしてみると見事にluaとluacが出来上がりました。

恐る恐る実機に転送して実行してみると、ちゃんとLuaが起動して実行することができました。

サーボを制御するCモジュールとリンクさせればLuaからコントロールさせることもできそうです。

実験システムとしてはとりあえず満足なのですが、せっかくなので他の手も使えないかと模索中です。これは後ほど。