2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

カテゴリー

ブログパーツ

無料ブログはココログ

« 2009年11月 | トップページ | 2010年1月 »

2009年12月

2009年12月30日 (水)

Coronロボの仕様を決めよう

Coronで作るロボットの仕様を決めましょう。
遊びで作るロボットだから、何となく作っても良さそうですが、目的をきっちり決めた方がデザインし易いと思っています。

今回のロボットは、「猫じゃらしで猫を遊ばせる」ロボットにしたいと思います。

家には飼い猫がいます。完全室内飼いのせいか人間と遊ぶのが大好きです。こちらも暇な時は猫じゃらしやスーパーボールで遊んでやりますが、忙しいときは放っておくしかありません。まあ、大体の場合はいじけて寝てしまうのですが、虫の居所が悪いとウチの奥さんを咬みに行きます。咬むと奥さんにかまってもらえるのでそれを学習したのかもしれません。
これがウチの猫ライフの問題点、これをロボット導入で解決しようと言う訳です。

運用方法はこんな感じです。
猫が遊んでくれと来る→ロボット出動→猫じゃらしで巧みに遊んでやる→猫満足→奥さん安泰

と言う訳で主な要求仕様はこうなります。
1:室内を高速で移動できる
2:猫を呼ぶ声や鳥のさえずりを再生できる
3:サーボで猫じゃらしをリズミカルに動かせる
4:なるべく小さく

1と2は猫の興味を引くためです。早く動くものや音声に敏感に反応します。ウチの猫はわりとラジコンなどを怖がらないですが、大きいものは警戒します。そのため4は重要です。

それからこの企画は本編のスピンオフで「ちょこっと」企画なので次の2項目を追加します。
5:本編でのノウハウを投入
6:ロボットの構造や機能はなるべく単純に

さあ、これで何を作るかが明確になりました。

シェーキーのボディは三丁目の香り?

ここのところシェーキーの胴体部分の工作をしています。

一見、単純な箱のようですが、写真を詳しく調べると結構複雑な構成になっています。
おそらく鉄の角パイプで枠組みを作り、内部に当時の標準的なラック型筐体をおさめて、プレスした鉄板でカバーした構造です。オフィスや更衣室のスチールロッカーをイメージしてもらうと近いかなと思います。

今回はこれを木で作ります。主な材料はヒノキの角材とラワン合板です。
まずは木取りです。主な構造体でこれだけの部品になりました。右上のトワエモアのCDは大きさ比較用です。

Dscn0369


まずは枠組みです。定板代用のラワン合板の上にサランラップを敷き、部品を載せて木工用ボンドで組み立てます。正確に組み上がるよう、ボンドが固まるまで待ち針で押えるのは常識ですよね。

Dscn0370

とても21世紀に人工知能ロボットを作っているようには見えません。まるで昭和30年代の模型飛行機の工作です。三丁目の夕日ですねえ。手塚治虫が見たらなんと思うでしょう? 
でも写真をよーく見てください。重しに使っているのは行動型人工知能の名著「知の創成」です。ロボット開発っぽいでしょ?

枠組みが完成したのがこれです。本物の枠組みとはちょっと違いますが、工数を倹約するためです。

Dscn0373_2


この枠組みに外装を取り付ける「レール」を組み付けます。これ、実際の倍くらいの太さにしてあります。スケール通りだとちょっとおとなしすぎるので思い切ってデフォルメしました。

Dscn0376


このレールの内側に2mmのプラ板で作ったカバーを取り付ける予定です。メンテナンスのためカバーは取り外せるようにします。

2009年12月29日 (火)

Coronの試運転

早速Coronを試運転しました。

付属CDから開発環境やライブラリをインストールします。
IDEはEclipseです。インストールしたフォルダにgccというフォルダがあるので、クロスコンパイラはgccを使っているのでしょうか?

Eclipseのワークスペースでソースコードを作成、コンパイルで出来たHEXファイルを"DFU File Manager"というソフトで転送用ファイル形式に変換します。
これを"DfuSe Demonstration"というソフトを使い、USB経由でCoronに書き込みます。Coronにはあらかじめそのためのファームウェアが書き込まれているそうです。

ちょっと厄介ですね。使用しているときには、このように3つのソフトを起動してないと不便です。

Coron

USBで接続しているときは電源はPCから供給されます。電源を用意する必要がないのでテストには便利です。でも、USBからだと、よくて500mA、下手をすると100mAでリミットがかかるので、モーターはちょっと無理です。電源を用意した方がよいでしょう。

電源はUSB、コネクタ、DCジャックの3系統があり、ダイオードで合成してあるので、どこから電源を供給しても同じです。もっともアマチュア的にはDCジャックからが一番手軽でしょう。2.1Φのプラグ、マニュアルにはありませんがセンタープラスです。(試しました)

電源電圧5Vで無限ループ実行時の電流は、約50mAでした。電池動作も問題ないですね。

2009年12月28日 (月)

Coronいただきました!

ある方からCoronいただきました。ありがとうございます!

Coronは最近ちょっと気になっていた超小型ロボットボードです。モノはこんな感じです。

Dscn0343

名刺と比べると長さは2/3、幅も一回り小さいという感じ。かなり小さいです。
テクノロードという会社で開発したもので、ここなどで販売しているそうです。

搭載しているマイコンはSTM32と言う、オールドファン?には耳慣れないものです。パッケージにARMのロゴが入っているので、ARMコアのものでしょう。型番は"STM32F103RET6"のようです。Coronの付属CDにデータシートがありました。それによると、Flash512KB,SRAM64KB,Clock72MHzです。
なかなかの性能です。ADやタイマも内蔵した組み込み機器用のマイコンとしては、相当なものではないでしょうか。マルチタスクOSにも十分対応できそうです。

これはロボット用ボードですから、ロボットを製作するのに便利な機能を実装しています。サーボドライブなんかがそうですが、他社のボードと比べて、ちょっと面白い機能も持っています。

こういったものです。

■音声合成機能
MicroSDのスロットがあり、これにWAVファイルを格納したカードをさすと、プログラムで任意のWAVファイルをスピーカーから再生することが出来ます。アンプも組み込み済み、スピーカーをつなぐだけです。

■ログの記録機能
同じくMicroSDにログを書き出すためのライブラリがあるようです。センサーやモーターのログをパソコンで読めれば、ロボットの調整が楽になりそうです。

このへんが現時点で面白そうな機能です。

それから、貰い物で言うのもナンですが、価格が9800円というのも魅力の一つです。他のロボットボードと比べてかなりリーズナブルです。

このカテゴリでは、このCoronを使った「ちょっとしたロボットプロジェクト」をやってみようと思います。

2009年12月26日 (土)

ジャイロで進行方向をロックする

ジャイロコンパスの補足です。

ジャイロコンパスで進行方向をロックし走行させてみました。その様子がこれです。

画面ではフローリングの目と垂直方向に進むよう制御しています。
あいかわらず、やや電気的安定度に欠ける実験用ロボに、台所用スポンジで作ったインシュレーター付きのジャイロセンサ基板を載せています。
持ち上げて方向を変えても、地球に対する方向を保持しているのがわかると思います。

いろいろ試した結果、ジャイロを「使う」ポイントは

1:機械的振動をなるべくさける
ジャイロの感度を上げていくと、ギアなどのガタガタ言う振動が誤差になり易いです。アンプのハイカット特性を調整するのはもちろんですが、それだけでなく物理的に振動が伝わらないようする工夫も必要です。

2:温度変化を防ぐ
裸でジャイロを使っていると、直射日光にあたったり、エアコンの風にあたったりしただけで、オフセットがずれることがあります。基板をプラケースにいれるだけで、これをかなり緩和することが出来ます。

3:使用時間を短めに
このような簡単なジャイロコンパスはどうしてもずれます。あまり長時間ジャイロに頼るような使用法は向かないようです。試作ロボでは3分くらいかなというところです。

2009年12月24日 (木)

ネットタンサーをC#で制御する

前回はネットタンサーにTeraTermからコマンドを送って動かしてみました。
意外とすんなりいきました。
と、いうことで簡単なコントロールソフトをC#で作ってみました。開発ツールはもちろんVisualC#2008 Express editionです。出来上がりはこんな感じです。

Tcp

ネットタンサー(ウェブも)のIPアドレスを入力し、「接続」ボタンを押します。接続が完了すると画面下のSENSOR DATAエリアにネットタンサーからのセンサーデータが表示されます。左から2,3,4桁目が右、正面、左の赤外線センサーの表示です。手をセンサーに近づけると値が変化します。

接続出来ない場合は、しばらくすると「エラー」とメッセージを出します。

十字に並んだボタンでロボットを動かせます。前後は20cm、左右は15度動くようになっています。

TcpClientクラスを使うと実に簡単に作ることが出来ます。参考までにこのソフトのプロジェクトフォルダをダウンロードできるようにしました。インストールファイルも入っているので、VC#が無くても試してみることが出来ます。

「NTtest.zip」をダウンロード

このコードは受信にタイマーを使うあたり、スタイルが古いです。本当なら受信のスレッドを起動するべきなんでしょうが。まあ、こんなコードでもとにかく動くという参考になればです。

これでネットタンサーのネットワークユニットを使って、シェーキーとPCの通信が可能になりました。

2009年12月20日 (日)

シャーシを組み立てる

先日木取りしたシャーシを組み立てました。


Dscn0281 Dscn0284_2


駆動輪とキャスターの高さを合わせるのがポイントです。4輪とも常に接地するようにすると、路面によっては駆動輪の接地圧が少なくなってスリップすることがあります。そのため前後のキャスターの高さを少し不足気味にしてあります。ちょっと前後にがたつきますが、これくらいにして様子を見ようと思います。

駆動輪のところに小さい緑色の基板が見えますが、これに反射型のフォトインタラプタを取り付けて、駆動輪内側のマークをカウントします。これで移動距離や、旋回角度を計算します。

これからペーパーで生地を仕上げ、塗装した後センサや基板を取り付ける訳ですが、マンションでどうやって塗装しましょう? これが一番問題ですね。

シェーキー全体のシステム構成は図のようになります。

Photo


単純なクライアントサーバモデルです。バスは、RS232Cと同じシリアル通信をワイヤードORしたものです。このように、クライアントが一つだけなら、難しいバス制御は必要ないですから、こんな単純なものでも良いでしょう。
本来は電気的にバファリングしなければならないとこですが、今回は距離が短い(30cmくらい)ので工数削減のため、マイコンのシリアルポートを直接接続してしまいます。
以前、もっと悪い条件でこれをやってみましたが、全く問題はありませんでした。工業製品にはお薦めできませんが、アマチュア的にはアリだと思います。

2009年12月15日 (火)

ネットタンサーをTeraTermで動かしてみる

シェーキーのネットワーク機能はネットタンサーを改造して使うつもりなので、このへんでネットタンサーとPCとの通信を確認しておきたいと思います。

ネットタンサーもウェブも、無線LAN機能が入った頭部とベースの部分がオーディオケーブルのようなもので接続されています。接続部分はヘッドホンなどでおなじみの3Pのプラグになっています。
これがシリアル通信ケーブルになっていて、パソコンとの通信が行われているようです。
さらにバンダイロボット研究所HPの「技術情報8」には、TCPでのポート番号とどんなコマンドを送ればネットタンサーが動くかの情報があります。

試しにTCP機能があるターミナルソフトTeraTermProでネットタンサーに接続し、コマンドを打ち込んで動かしてみましょう。

TeraTermを起動すると、このようなダイアログが表示されます。


Tera

通信方式にTCP/IPを選び、ホストにネットタンサーのIPアドレスを入力します。TCPポート#には「技術情報8」にあるとおり8081と入力、サービスを「その他」プロトコルを「UNSPEC」に設定します。

これで192.168.1.55のホストのポート8081に、無手順で接続するという設定になります。

OKをクリックすると画面にごちゃごちゃと記号の羅列が流れ始めます。これは、ネットタンサーのセンサデータが送られてきている状態です。


Tera_2

これで通信成立、あっけない感じです。早速コマンドを送ってみます。
コマンドはボーグスクリプトそのままなので、モーターパワー20で10センチ前進させるには
fd,20,10と打ち込んで(画面には出ませんが)最後にリターンキーで実行するはず。
問題なく動きました。なるほどこう言う感じなんですね、

ネットタンサーでもネットタンサーウェブでも同じコマンドで動きました。
また、こんな風にブラウザで画像を見ながらコマンドを送ることも出来ます。左がIE、右がTeraTermの画面です。

Tera_3

2009年12月14日 (月)

ロボットシャーシの部品を作りました

日曜日にシャーシの部品を製作しました。猫も満足げです。

Dscn0267

主な部品は12mmの合板から木取りしました。
写真には写っていませんが、今回はハンズで買った小型のノコギリを使用。押しても引いても切れるという優れものです。

キャスターは車輪径75mmの大型です。ウレタン製で転がり音が静かです。階下に気を使わなくてはならないマンション住人としてはありがたい性能です。

Dscn0269


モーター取り付け版は2mmのアルミで製作しましたが、これがなかなか大変でした。会社にはバンドソーもボール盤もあるからこんなものは30分とかからずに作れますが、ウチにあるのは写真の工具だけです。

Dscn0271

電動ドライバーは奥さんとユザワヤへ行った時に1480円で買った安物、2mmの呼び穴を一つあけるのに1分くらいかかりました。リーマーはおそらく高校時代からの愛用品、もうそろそろ寿命でしょう。新たに買ったのは金ノコ。これもハンズです。600円くらいだったかな。コンパクトですが良く切れます。
この金属加工だけで3時間くらいかかったのでは・・・疲れました。

今週は、この部品を組み立てて、シャーシを完成させます。

2009年12月 8日 (火)

小型移動ロボに向いているモーター

シェーキーの外形設計はぼちぼち進んできました。この週末には木取りが出来るといいんですが。

今日は今回使った実験用ロボのような、小型移動ロボのモーターについてです。
ベースに使ったロボットキットのモーターはマブチのFA130のようです。おそらく、2270タイプでしょう。これは0.22mmの巻線が70ターン巻いてあるという意味です。
タミヤの小型ギアボックスには同じモーターを使ったものが多いようですね。

モーターのパワーは、電力、つまり電圧と電流の積で決まります。FA130は乾電池1〜2本という低電圧で適当なパワーを確保するため、電流を多く流すよう回転子の巻き線を決めています。
電池が元気なら、巻き線を減らして(電気抵抗を減らして)電流を流した方がパワーが得られます。

ところが、今回使用したモータードライバでは、ドライブできる電流が少なめなので、どちらかというとモーターの電圧を上げて、パワーを確保しないと、発熱量が増えて具合が悪いことが起こります。

と、いうことはFA130と同じ形で、巻き線のもっと多いモーターがあれば、高電圧で安定に使えるので好都合でしょう。
見つけました。これです。

早速実験用ロボ用に購入しました。送料の方がかかってしまいましたが。

ちょっと乱暴ですが、使いさしの電池を使いロック状態での電流を計ってみました。(あっ、テスタで抵抗を計った方がよかったかな?)ロックさせたときの電池の電圧は0.9Vくらい、タミヤのFA130で900mA、このモーターで550mAくらいでした。確かに巻き線が多いようです。データの18100タイプ(0.18mm100ターン)ではないかと思います。

モーター電圧4.5Vで試してみると、ドライバもほとんど発熱せず、パワーも十分、いい感じです。
タミヤのギアボックスを使った小型移動ロボにはこのモーターが良いようです。

2009年12月 2日 (水)

加速度センサをひとまずあきらめる

えーもうあきらめちゃうの?と、言う感じですが・・・

高感度な加速度センサにはモーターの振動が大きなノイズになるのは前に書きました。しかしこれは帯域を制限することで解消できそうです。あきらめる理由にはなりません。

最も大きな問題は地球に引力があることです。これはちょっと説明が必要ですね。
加速度センサを搭載した実験用ロボで、静止時の加速度センサの出力を調べます。これが仮に2.531Vだったとします。次にロボットを30センチほど走行させて静止させ、再度調べると、例えばこれが2.514V、つまり移動前の静止時の出力と同じでないということが良くあります。

これは移動前と後とではセンサの傾きが微妙に異なっていることを意味しています。車輪も真円ではないし、場所により床の傾きも微妙に違う可能性があるからです。
今回のセンサは、加速度センサデバイスを10倍に増幅しているので、このような微妙な傾きも有意な信号となります。

これで困るのは、静止状態でのセンサ出力の値を特定できないことです。その時そのときで電圧が異なる訳ですから。
ジャイロで言えば、無信号時の電圧が旋回のたびに変わるようなもの、つまり、ドリフトの多い状況と同じになってしまい、きちんと計測することが出来ません。

モチロン、感度を落とせば問題ない訳ですが、シェーキーの加速度は大変小さいので、正しく速度や距離の計算ができないでしょう。

軌道を回る人工衛星のように、重力が非常に小さいなら何とかなりそうですが、1Gの重力がある地球上ではちょっと無理かなあということです。

と、いうことで今回、シェーキーの移動距離は駆動輪のオドメータで計測することにします。

振動問題をふまえてジャイロコンパスの再検討

加速度センサの失敗から、ジャイロセンサも同じ問題を抱えていることがわかりました。
モーターやギアの振動が測定値のノイズになり、コンパスの誤差になることです。

ティッシュペーパーの緩衝材にジャイロセンサを載せたまま、テストパターンを走行させてみると、これまでよりずっと安定です。以前は繰り返し走行させると数回に一度くらいはコンパスが狂って旋回角度がずれることがあったのですが、この改良でこれが相当改善されました。
しかし、これまでは右旋回90度でジャイロコンパスの値が+47000だったのですが、機械的にアイソレーションしたあとでは+50000と計測値に変化が見られました。
これは雑音(振動)が入った結果47000で、きれいになると50000なんでしょうか?それとも何か他の秘密があるのでしょうか?ちょっとミステリーですね。

ともあれ、安定したのはいいことです。
もう一つの問題、ドリフトは、電源投入から数十秒で安定し、その後30分以上も安定な状態が持続する場合もあります。困るのはいつドリフトが発生するのかわからないことです。特別な理由も無く、ある時突然に発生するように感じます。

「コンパス」として使用するにはまだ工夫が必要なようです。いずれ、「耐久」精度試験をする必要があるでしょう。

« 2009年11月 | トップページ | 2010年1月 »