SSブログ

Microsoft Robotics Studioを試す [LEGO]

先日買った本を読み始めて、とりあえず動かしてみることにした。
まずは、シミュレータで動かすことにして、最小限のプログラムを組む。

Manufestというロボットの各種情報セットは、NXTのTribotのSimulatorを選択し、実行。

タイムアウトエラーになってしまった。必要なソフトウエアのダウンロードとインストールは問題なく出来ている。が、原因はうすうすわかっている。ためしに別のマシン(Pen4 3.2GHz 水冷)で実行したら実行できた。やはりというか、古いマシンではシミュレータを実行するためのグラフィック能力が低くてだめだったようだ。確かにこのマシン(SONY VAIO PCG-GR90E Pen III 0.93GHz)ではGoogle Earthも動かせなかったからなぁ。
ま、シミュレータをあきらめれば、NXTの開発環境として使えるでしょう。


またまた本を買う [LEGO]

インストールしただけで使い方がさっぱりわからずお蔵入り状態だったMicrosoft Robotics Studioだが、日本語の解説本が出たので早速買った。先日秋葉に行ったとき見つけたのだが、値段も張ったし他にも本を買って重くなるので、新刊だから地元でも買えると思って見送っていた。

やはり日本語ドキュメントは助かる。知らない間にバージョンも1.5になっていた。.NET Framework SDKやVisual C#のインストールも必要らしい。C#でMindstorms NXTのプログラムも出来てしまうようだ。これなら未完成なJAVA環境を使う必要もない。天下のMicrosoftの力量を思い知らされた。1人か数人で作っているleJOSとは比べ物にならない。
この本にはC#の入門解説も相当量(全体の1/4強)も書かれているので、JAVAの理解も半ばだがC#もやらねばならなくなった。うれしいような大変なような。


NXTでJAVAを動かしてみる [LEGO]

旅行やら地方巡業など「外泊」が続いて「電子男」としては何も活動していなかったが、今日は久しぶりにNXTをいじってみた。先日購入した洋書にしたがって、NXTでJAVAを動かしてみることにした。
RCXでもJAVAプログラミングはやっているので手順は把握している。最初に簡単なプログラムを作り、leJOSのコンパイル用バッチファイルlejosjcでコンパイル。次にNXTのファームウエアをダウンロードしようとするが、本にあるlejosfirmdlがない。RCXではこれでファームの更新をしていたが、解凍したleJOSのファイル類一式見てもどこにもない。Readme.htmlを読んでみると、コンパイル後のclassファイルを、ファームウエアとリンクして、一括してダウンロードするようだ。
結局のところNXT用ファームウエアは完成していないようだ。書籍の方は、完成した前提で書かれているのか。leJOSのトップページにお詫びのようなことが書いてあったのはそのためだったのか。
仕方ないので、Readme.htmlにしたがってリンクしlejosdlコマンドでダウンロードするがNG。
「"libusb0.dll"が見つからない」というエラーが出る。いろいろ調べると、Windows側にlibusbなるUSB関連のライブラリが必要なようだ。早速こちらからダウンロードしてインストールした。
これでうまくいった。NXTの裏にあるリセットボタンを長押ししてファームウエア更新モードにして、lejosdlコマンドでダウンロードし、お決まりのHellow Worldを表示してみた。まずはめでたし。

しかし、ダウンロードするたびに毎回リセットするのも億劫だし、「ファームウエア更新モード」というのがわかりにくい。表示が全部消えて、「チッ、チッ」と言う音がするだけだ。電源をOFFにする方法もわからない。結局、いじり倒した後、正規のファームウエアに戻して今日はおしまい。


LEGOのJAVA本が来た [LEGO]

Amazonで4週間くらい前に発注していたLEGOのJAVA本が納品された。洋書なので全部英語だが、それほど難しくもなさそう。この本のNXT版といった内容ではなく、たくさんの作品例とそれを動かすJAVAプログラムが満載されている。簡単なものから徐々に難易度が上がり、「行動制御」は最後のほうに掲載されている。ブロックの作成過程もきちんと紹介されているので、英語でも試しながら読み進めそう。なかなかいい本と見た。

ただ、期待したBluetoothでのプログラムダウンロードは実現していない。USBケーブルでダウンロードするしかなさそう。BluetoothはiCommandというPC側からNXTを制御する手法のみサポートしているようで、RCXに比べこの点がいまいちだ。


LEGOのJAVA本(洋書)を発注した [LEGO]

ちょっとご無沙汰だったLEGO Mindstorms NXTだが、leJOSがBluetoothに対応したのと同じタイミングで、新しいLEGO本が出版されたので早速発注した。
買ってから2年間寝かせることになったこの本のNXT版ともいえる。が、しかし。当然日本語版は出ていないので、洋書を買うことになった。かなりのチャレンジだ。

3~5週間かかるとのことだが、Amazonのことだから2ヶ月くらいかかるのかもしれない。まぁ気長に待つとする。

Maximum Lego Nxt: Building Robots With Java Brains

Maximum Lego Nxt: Building Robots With Java Brains

  • 作者: Brian Bagnall
  • 出版社/メーカー: Variant Press
  • 発売日: 2007/04/15
  • メディア: ペーパーバック


TippySrの修正点 [LEGO]

先日ひとまず区切りにした角度センサー(正確には回転センサーだが)を使ったTippySrの修正箇所をメモしておくとする。
この本の「第8章 回転センサを用いたナビゲーション」には誤りが少なくも2箇所ある。
最初は、P209の組み立て画像。ステップ17、18の画像がステップ11、 12と同じものになっている。本来は左右に自由に回転できるキャスター部分を作成する画像だと思われる。こんな風に作ってみた。

動きは申し分ない。

次は、P211のTippySrのソースコード。LeftBumpとRightBumpの2つのタッチセンサーが使われているが、左右の車軸につけた回転センサーですでに2つ使っているので合計4個のセンサーを使うソースコードになっている。RCXにはセンサーは3個しかつけられない。このことは本書の訳注にも書かれているので、これをヒントに以下のように修正してみた。

  Behavior b1 = new Move(nav);
  Behavior b2 = new Bump(nav);
  Behavior b3 = new GoHome(nav);
  Behavior [] bArray = {b1, b2, b3};

結局LeftBumpとRightBumpは同じ処理をしているので、Bumpというクラス1個にしただけだ。たいしたことではないがうまくいったので悦に入っている。自己満足。


角度センサーを2つ使ってRotateNavigator [LEGO]

先日(といっても1ヶ月ほど前だが)入手した角度センサーを2個使ったロボットを作ってみた。この本も、このあたりになると組み立て図に抜けがあったり、センサーを4個も使ったプログラムになっていたりで(RCXは3個がMAX)、記載通りにはいかない。少しは自分で考えてみろという筆者の意図かもしれないが。

というわけで、何とか本の意図通りに動かすことができた。
ここまでやってみて、クラスを始めとするオブジェクト指向の概念もなんとなく理解できたような気もするし、JAVAによるプログラミングの容易さや保守性のよさを垣間見れた気がした。
これで、この本でのお勉強はおしまいにして、LEGOの方はNXTに戻ろうと思う。NXTでもJAVA環境が使えるので、同じことをやってみても面白い。以前書いたようにNXTのモータは賢いのでメカの方は簡単に実現できる。あとはJAVAプログラミングだけか。


いろいろ本を買う [LEGO]

「地方巡業」中にネットで見つけてAmazonで購入申し込みした本が、本日納品された。

最初は、簡易プログラム言語のインタプリタをJAVAで作る本。構文解析とかコード生成などの小難しい理論はさておいてとにかく作ってみようという本。
最近JAVAのお勉強中ということもあり、ネットでの書評も相当なものなので買ってみた。まぁ読みやすそうであるが、先日買って案の定お蔵入りしているOSをつくる本と同様、文体も内容も安直なところがやや気になる。何でもかんでも簡単に済まして、とにかく作ってみましょうというのは結局何も残らないような気がしなくもない。まぁ、目的がJAVAのお勉強だからこれで十分なのだが。

そういえばAmazonの書評に「原書は洋書だが翻訳が良いので読みやすい」と書いてあったが、数ページ読めばわかるが完全に和書だ。筆者名「randy」だけで翻訳本と判断したとすれば、中身もろくに読まずに書評を書いたことになる。やはり他人の評価など当てにすべきでないと、改めて認識させられた。特にネットでの評価はだ。

次は、LEGO MIndstorms NXTの応用編的な本。この本のシリーズ本でプログラミングに重点を置いている。NXTを2セットも使ったり、プログラミング言語がNBCだったりで、ちょっとずるい気がする。サウンドセンサーを2つも使って音のする方向を検出してみたり、モーターを5個も使った2足歩行のロボットを作ってみたりで、すぐには試せないモノばかりだ。まぁしかたない。いずれ役に立つでしょう。
旧RCXのセンサーが単なるコネクタ変換だけで接続できるいう記載があり、これは面白いと思った。



角度センサーをヤフオクでゲット [LEGO]

古いLEGO本でJAVAのお勉強を地道にやっている。後半の章で角度センサーを2つ使うネタがある。RISには付属していないのだが1つは持っている。もうひとつをヤフオクでゲットした。
約2年ぶりにヤフオクを利用したが、攻防は最後の1分なのは相変わらずだ。狙いを定めて金額上限を決めて、終了40秒前に入札した。大成功。競合に50円の差で勝利。気分いい。この出品者からは数ヶ月の間に3回角度センサーが出品されているが、その中での最安値で落札できてさらに気分いい。その角度センサーが今日納品された。

動作確認もかねて、たまたま作っていた簡易距離計につなぎ変えてみた。見事動作。

今では貴重品の角度センサーだが、Mindstorms NXTには不要だ。NXTのモーターは、回転数を設定して駆動できる。RISのように、角度センサーで回転を計数し、モーター駆動にフィードバックするようプログラムする必要はない。おまけに、回転速度も変えられるので、ギアでメカ的に回転数を落とすこともない。それだけすごいNXTだが、今ひとつネットで盛り上がらない。サイトもブログもあまり見かけない。ま、当ブログの管理人自身が盛り上げればよいのだろうけど。


Microsoft Robotics Studioをインストールしてみた [LEGO]

以前MicrosoftがLEGO Mindstormsの開発環境を出すようなことを記事で読んでいたのだが、もうすでにMicrosoft Robotics Studio (1.0)として公開されていた。
早速こちらからダウンロードしてインストールしてみた。RCXにもNXTにも対応しているとのことだが、起動してみただけでは何がなんだかわからない。Visualなプログラミングだけでなく、VBやC#などでも開発できるとのこと。すごいのだけどまだ日本語での説明がないので今のところさっぱり。


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。