Monthly Archives: May 2006

ロボットの本質は同じ…

別プロジェクトの基本的なプログラムがなんとか完了した。まだ、改良や追加すべき点は多々あるが、UIであるPCソフトに移ろうと思う。UI部分は今回のプロジェクトとBlueMarionetteで共通して使える。ロボットの本質は同じなんだなと感じたところ。ここへ来て開発のペースが少し落ちたような感じだが、完成度が高まってくると実際のブツが無いと先に進みにくくなってくるなぁー。
別プロジェクトは今週中にナントカしよう。

ソニーダンシングチーム脱会

後先も考えずにオーダーした VAIO U であるが、キャンセルした。理由は納期が遅いのと、ロボの資金繰りがショートしてしまったからだ。
とりあえず、手元のPCでロボは色々と仕込んでみようと思う。今回のVAIO Uは成功するような感じなので、改良版が遠からず出るだろうとも睨んでいる。
さてさて、別プロジェクトであるがちょっと難航した。LPC2138 で GPIO を使おうとしたが、一部うまく使えないポートがあったのだ。プログラムを作るまで、わからないのが痛かった。仕方がないのでポートをOn/Offする短いプログラムを RoboShell のディスパッチャに記述して、On/Offの動作を確認してから本格的なプログラム開発を行った。ソフトの開発に手間取ったので、回路製作は明日以降だな。明日もソフトの改良は続けなければいけないので、やはり今週いっぱいはかかってしまうと思う。

懲りずに…

ロボを作るための模索は今日も続く…。先日、これを買ったと報告したばかりだったけど、今度はこれを買ってしまった…。まだ、RoboShell Console は検討段階だと言うのに…。コントローラは Saitek で統一できたので、良しとしよう。次はドライバをインストールして、モーション用のコマンドの割り当てでも行えるようにしておこう。
ロボと平行して行っている別プロジェクトのための部品をいくつか購入してきた。大物は例によって一番最後になるけど導入したら即使えるように今から入念に準備をしておくのだ!!
色々と資料を検討しながら、回路設計。一応、出来上がったので時間を作って製作する予定。早ければ今週中には回路は出来上がりそう。ソフトは先に作る予定。入出力が決まれば、ソフトはすぐに出来るのだ。

Full Metal Gene…

外は雨だし、体の調子も良くない。こういう時は仕方なしに思索に耽る事になる。ほとんど妄想に近いが、思わないものはカタチにならないし、強く思えば願いも叶うような気がする。
今思っているのは、ロボの機体製作だ。機械設計・金属加工の領域なのでほとんど未知の領域だ。ただ、やるべきことはぼんやりとだが見えてきた。
まだ、はっきりした事は言えないけど、道筋も少しだけど見えてきた。RoboShellは金属とシリコンの塊から、生命に昇華できるのではないかと考えている。機械と生命の違いは、生命は自分自身をコピーする能力を有していることだそうだ。そう、自分で自分を生み出せるのではないか…?種を明かすとがっかりするので、黙っておく…。予備実験が終わり次第、作業を本格化させることにする。

KRS-4014HV

各所で絶賛のKRS-4014HVを買ってみた。制御電圧が+5V必要みたいなんだけど、ロジック的には3.3Vでもいけるのではないかと言うことで試してみることにしたのだ。現在のRoboShellのシステムでは3.3Vに統一している。サーボはCPLDの出力を100Ω(ダンパ抵抗)を直列に入れて3.3KΩ(プルアップ抵抗)で吊ってあるのだ。そこに接続してみると問題なく動作した。これで3.3Vのままで良さそうだ。このモータはシリアルでも角度設定が出来るみたいなんだけど、コマンドが書いていない…。困ったもんだ。
ついでにRoboShellの動作を見直すことにした。GyroDistributionの結果をSetPWM で加算するようにした。これにより、コードが短縮できた。
そろそろ、機体製作も考えないと…。

Gyro Signal Distribution

ジャイロ信号を シグナルコンディショニングを施した後に、各種の補正を行いサーボモータの角度設定パルスに値を足し込んだり、引いたりするわけだ。各サーボモータによって補正係数は当然異なるので、これらの補正係数は個別に設定できるようにした。ゲインとオフセットの設定はターミナルから変更可能だ。実際に動作させながら、変更も可能。設定用に RoboShell Composer を拡張する予定。

SONY Dancing Team

うーん、勢いというか…、とりあえず注文してしまった VAIO Type U。ロボリモコンとか、通勤電車の映画鑑賞とか…色々と夢が広がるけど…。これ、今のデスクトップの置き換えに狙っている。そう、サブ機じゃなくてメインマシン。大丈夫かな?次に狙っているのが、PS3。これがまともなデスクトップ機として使えれば、これをメインマシンにする予定。ソニーで統一されてきたな…。ソニーに踊らされているなぁー。うーん。こういうのを
ソニーダンシングチーム
と言うんだろうな…。
まぁ、いいや。しばらく踊り狂うことにしよう。

ADC シグナルコンディショニング

ジャイロ搭載に向けて、色々な仕掛けを組み込んでいる。その中の一つが、シグナルコンディショニングだ。ADCから取り込んだデータはそのままだと、使いにくい場合がある。対象物(今回はジャイロ)に合わせた信号の前処理を行っておくと何かと便利だ。そこでフィルタ後のADCの値をシグナルコンディショニングする。やり方は…
gSignalCondition = gFilteredADCValue * gain + offset;
となる。現在、利用できるADCのチャンネル数は8ch。その全てのチャンネルにおいて上記の処理をおこなう。処理タイミングは 5msec タイミングだ。これはADCの入力、フィルタと同期している。
次はいよいよジャイロだ。ジャイロの回路はまだ出来ていないが、10ビットADCで取り込んだ場合は0-1023の値が来る。これを適切なダイナミックレンジに設定して、PWMの値として足したり、引いたりすればフィードバック制御になるわけだ。

RoboShell Console

RoboShell のモーション再入防止のメカニズムと、RoboShell Composer での Export 時の変数名指定機能が実装出来たので、今度は RoboShell Console の検討を始めた。
RoboShell Composer は当初はこの名前だったが、役割が大きく変わったので RoboShell Composer になったわけだ。RoboShell Console はロボットを動作させるためのUIを司るシステムだ。現在、UIはジョイスティックと FPS 用キーボードの組み合わせを考えている。
現在利用しているジョイスティックは、Saitek Cyborg Evo である。これを右手で操作しロボの歩行を制御しつつ、FPS用のキーボード Cyber Snipaで指定したモーションを呼び出すわけだ。
だんだん、面白くなってきた。

改良はまだまだ、続く…。

RoboShell, RoboShell Composer ともに基本的な機能の実装は終わったので、後は使い勝手の向上を図るようにする。それとは別に RoboShell Console の検討も始めることにする。
RoboShell:
モーションの排他的な処理:
同一優先順位のモーションが重なったときは、後から来たモーションはキャンセルされる。キューに入れることもしない。これはモーションの応答性を高めるためである。ただし、転倒時の起き上がりなどのモーションは通常のモーションより優先順位を高める。起き上がりのモーションは自動起動だが、マニュアルでも起動できるようにする。
RoboShell Composer:
プレイバック機能に任意の Move から Move までの実行機能を付加する。具体的なUIは、プレイバック機能を選択したときにどの番号からどの番号までを入力するダイアログを表示して、プレイバックを実行する。
その他、UIの見直しを行い使い勝手を向上させる。
RoboShell Console:
操作系のPC側のソフト。ジョイスティックやキーボードの読み取りを行い、コマンドに変換した後にシリアル出力を行う。たくさんのモーションを効率的に誤操作なしに行えるUIを構築する。