2023年3月
      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  

カテゴリー

ブログパーツ

無料ブログはココログ

« 2011年3月 | トップページ | 2011年5月 »

2011年4月

2011年4月29日 (金)

スキャナ式レンジセンサを手に入れる

管理人のページ:よもやま話

ひょんなことから、本物の移動ロボットによく使われる北陽電機のスキャナ式レンジセンサ、URG-04LXの中古を手に入れました。しかも2台です。

Dscn1650

これは性能はいいのですが、13万円以上もするので、あまり気軽に購入出来るものではありません。ローコスト版(といっても9万円ほど)もありますが、そちらはI/FがUSBのみなのでボードマイコンで使うには具合が悪いです。

今回は1台9800円と格安で購入できました。もちろん中古ですが、外観はぴかぴかで新品のよう、動作も問題ありませんでした。
それにしても、これはなんでこんなに高いのでしょう。やはり需要がないんでしょうね。

そのうち、何か作ってみようかと思っています。

2011年4月24日 (日)

こんな感じのロボットです

ロボット作ろう:新リモートブレイン

完成した新しいロボットボディです。

Dscn1638  Dscn1637


あまりカッコ良くないですが、あくまで実験用ということで我慢しましょう。ロボットに名前をつけなくていはならないのですが… 出来が出来だけにイメージがわきません。もうちょっと考えることにします。

電源回りは、エネループ4本でまかないます。サーボやセンサを動作させた状態だと(カメラはOFF)150mAくらい待機電流を食っているので、サーボとPSDをON/OFFするFETスイッチを設けました。これらを切ると、待機電流は十数mAになります。さすがはXBeeですね。これなら電池寿命を気にせずにプログラム開発が出来ますし、「お留守番ロボット」としての実用化も出来そうです。
もちろん、これらの電流はあくまで待機時のもので、走行中やターレット動作中には、数百mAの電流を消費します。

また、これも燃費に関わるロボットの重量は、目標の1Kgを割り込み800g台になりました。実は最初オーバーしていたので、金属製のスタッドをすべてナイロンに変えてダイエットしました。少々ふにゃふにゃする感じがしますが… 多分気のせいです。

すでにテストプログラムで動作試験を済ませているので、近いうちに動画をアップします。

現在TeraTermでプログラムをロボットに送っていますが、ちょっと時間がかかるので、専用のダウンローダを製作しました。

HANA-BASICではプログラムが一行入力される度に、中間言語に変換し、フラッシュメモリに書き込むため、数十ミリ秒の処理時間がかかります。これは主にフラッシュメモリへの書き込み時間ですが、この間、次の行の受信はできません。このためTeraTermの設定で一行送信した後、次の行の送信開始まで200ms間を空けるようにしています。
実際はプログラムの内容によってこの時間が決まり、200msはかなり余裕を見た時間になっています。

今回のダウンローダではロボットからの入力督促プロンプト「>」が受信されたら次の行を送るようになっています。通常はプロンプトの受信まで、つまり1行の処理にかかる時間が数十ミリ秒程度のコードが多いので、ダウンロードの速度が4倍くらい早くなりました。

これが、ロボットをインターネットにつなぐブリッジのひな形になります。

2011年4月20日 (水)

Hanaokacyan Robotic Interface?

ロボット作ろう:新リモートブレイン

本題に入る前に、前回の投稿の補足を。
ブレットボードの下には駆動用のサーボをシャーシに止めているビスがあります。これは皿ビスを使ってシャーシとほぼツライチになるようにし、ブレットボードを載せる邪魔にならないようにしています。

さて本題。
Hanaokacyan Robotic Interface(HRI)とは大げさな呼び名ですが、中身は簡単です。HANA-BASICでフラッシュメモリが接続されているI2Cバスにぶら下がって、移動やラジコンサーボ、センサのハンドリングを行うサブシステムです。通常のI2Cスレーブデバイスとして機能します。PICマイコンに実装し、デバイスアドレスは0x01(0000 001X)を割り当てました。

HRIには48本の16ビットレジスタがあり、それぞれサーボの位置や移動コマンド、センサの読み出し情報などに対応しています。これに値を書き込んだり読み出したりすることで、ロボットボディを制御するわけです。
HANA-BASICからはアドレス参照子@で読み書きできるようにしました。レジスタのアドレスは@50~@97までを割り当てています。

現在、下記の機能に対応しています。

■ラジコンサーボ6台の位置、回転速度の制御
■2台のコンティニュアスローテーションサーボによる指定距離の前後進、指定角度の旋回
 (移動時にホイールエンコーダによる直進補正あり)
■8CHの10ビットAD変換
■PSDのAD変換値から距離への変換
■オドメータによるヘディング情報

たとえばサーボ0はレジスタ@50に割り当てられ、0~255の数値で位置を指定するようになっています。これを中点にもっていきたいならば、BASICプログラムで@50=127とやればいいわけです。

「ヘディング情報」とは、左右の駆動輪のオドメータを比較することで、ロボットが向いている方向を示したものです。キッドナップ(ロボットを持ち上げて他の場所に移動させること)されない限り、方位センサのように使えるので何かと便利です。
もっともオドメータの元情報は、前にも書いたように分解能1.7mmほどの荒っぽいホイールエンコーダですし、駆動輪のゴムタイヤはシェーキーで使ったOリングに比べて幅広なので、しばらく動き回るとヘディングの誤差が目立ってくるとは思いますが、モノは使いようではないかと思います。

これらの機能を、16F886よりポートの多い16F887に搭載しました。容量的にはスカスカです。

次回はロボットボディのまとめです。

2011年4月18日 (月)

XBeeの通信速度が早くなるハナシ

ロボット作ろう:新リモートブレイン
花岡ちゃんのウィークエンド

新しいリモートブレインロボットには、猫のぞきカメラと同様のユニットを搭載してあります。

テストしてみると、猫のぞきカメラでは18秒ほどかかっていた撮影シーケンスが、なんと8秒ほどと短くなっていることに気がつきました。まだ詳しく分析していないのですが、XBee間の転送レートがざっと3倍くらいにはなっているのではないでしょうか。

HANA-BASICとXBeeを共用するため、ソフトにいくつか改造を加えたものの、それほど大きな変更はありません。となると、XBee間の設定をブロードキャストからユニキャストに変えたのが原因では?ということになりますね。

どうもよくわかりません。もう少し実験する必要がありそうですが、リモートブレインが出来上がってからということで…


2011年4月17日 (日)

出来合いパーツで作るロボットボディ(ブレットボード)

ロボット作ろう:新リモートブレイン

試作機なので回路はブレットボードに載せることにします。部品点数が結構多いので信頼性に問題あるかなとも思いますが… ロボタをキャスターバッグに入れて、あちこちデモに持ち歩いた経験からすると、ブレットボードに組上げた回路は意外と堅牢です。オシャレなレンガ敷の歩道をガタガタと引っ張って歩いても、配線が外れたりすることはありませんでした。

とはいえ、ユニバーサル基板に組むよりは面積を食いますし、なにより見た目が良くありません。

ブレットボードは10mmのスタッドで外周を押え、大きなワッシャを付けたビスで上に抜けないようにすれば、タミヤのユニバーサルプレートにカンタンに固定できます。
ブレットボードの裏には接着用のステッカーがあり、裏紙を剥いでシャーシに貼付けることもできますが、そうすると二度とはがせなくなります。無理にはがそうとすると、コンタクト金具がステッカーに付着して外れ、ブレットボードをダメにしてしまうこともあります。
本機ではボードの下に駆動輪を止めているビスがあるため、メンテを考えてスタッドで押えることにしました。


Dscn1593

写真は仮組で、実際はブレットボードの連結用のダボにかかるようにスタッドを配置し、前後にずれないように取付けました。ブレットボードはこれを3枚使用し、真ん中になるボードのバスバーを抜いて組み合わせています。

回路を実装するとこんな感じです。バッテリーデッキを外して全体が見えるようにしていますが、ごちゃごちゃしてますねえ。ラジオ少年のためのキレイな製作記事を遺してくれた、故・泉弘志先生に顔向けが出来ません。


Dscn1632_2

主な回路ユニットは、HANA-BASIC猫のぞきカメラ、それにHRI(Hanaokacyan Robotic Interface)です。

HRIは新顔ですが、シェーキーのドライブサーバをひな形にして製作したものです。HANA-BASICのI2Cバスに接続し、一定距離の移動や旋回、ラジコンサーボの制御、PSDとのインターフェィスなどを受け持ちます。

HRIの解説は次回に

2011年4月11日 (月)

出来合いパーツで作るロボットボディ(センサターレット)

ロボット作ろう:新リモートプレイン

センサはiRoverと同様にパン・チルトの出来る雲台に載せます。使用した雲台はこれです。

Dscn1590

ミニサーボ2個付きで$15と格安ですが、作りはそれなりでペイロードは期待できません。今回はシリアルカメラとPSDを搭載します。

本機ではパンサーボに360度回転できるGWSのS-125-1Tを使っています。これはラジコンヨットのセイルウインチに使うものですが、ロボットの首の回りを良くするにはもってこいです。シェーキー用に用意しておいたものを流用しました。

センサを搭載した様子がこれです。左がターレット前方、右がターレット後方です。

Dscn1598_2  Dscn1599

カメラと同じ方向を向いているのはPSDのGP2Y0A02YKです。これは20cm〜150cmくらいのレンジの測距センサです。ショートレンジセンサとしてGP2Y0A21YKがアタマの後ろについています。ターレットは360度パンできるので、どちらのセンサも全周をスキャンできます。

カメラはウィークエンドでおなじみのLinkSpriteのシリアルカメラです。

今回、パン用のサーボを改造してポテンショメータの電圧を引き出しました。これをADに接続し、サーボ動作中のある時点での角度をリアルタイムに読もうというわけです。センサで周囲をスキャンする時、これがあると処理がスピーディになります。

Dscn1605_2  Dscn1606

左側の写真がサーボ内部の様子です。このサーボではポテンショメータの黒リードがスライダでしたので、そこに黄色のリードをハンダ付けしました。サーボケースのケーブルブッシュを切り取って、その隙間からリードを外に引き出してあります。
もちろんこの信号線にノイズが乗ると、サーボがガチャつく原因になるので、気をつかって実装する必要があります。

次回はブレットボードと回路まわりの説明をします。

2011年4月 9日 (土)

出来合いパーツで作るロボットボディ(駆動部)

ロボット作ろう:新リモートブレイン

新しいボディの各部を見ていきます。今回は駆動部です。

コンテニュアスローテーションサーボモータで構成します。サーボのPWM信号で連続回転する特殊なサーボモーターです。ラジコンカーのスピコンと同じようにスピードや回転方向も変えられます。
普通のサーボの出力ギアのストッパーを削り取り、ポテンショメータを固定抵抗に置き換えれば自作もカンタンですが、今回はなるべく自作しない方針なので、GWSのこれを使いました。車輪はこれです。サーボホーンの代わりに取り付け出来ます。回転センサはサーボに付けて車輪の回転を読む「ホィールウォッチャー」と言う部品です。これの一世代前(外観はほとんど同じ)のヤツです。5年程前に購入してお蔵入りになっていたものです。主要部品は左側の写真。組み立てると右側の写真のようになります。組立に必要なネジやスペーサーもついています。

Dscn1574  Dscn1578

車輪の内側にはホィールウォッチャー付属のエンコーダシールを貼ります。貼付け面にリング状のリブがあり、その上に乗せる感じで貼付けます。貼付け面はわずかでシールの大部分は宙に浮いた形ですが、固めのアルミシールなので問題は無いようです。

Dscn1577_2

ホィールウォッチャーは2個のフォトリフレクタでエンコーダの模様を読み、90度位相のずれたパルスを出力します。これにより32分割のエンコーダで、1回転あたり128カウントのオドメータとして機能します。車輪の直径が69mmなので、1カウント当たり1.7mmの分解能になります。十分とは言えませんが、メカニカルな精度から見れば、こんなもんかなと言うところです。

僕が使ったのは一つ前のモデルなのでパルス出力だけですが、最新のWW-11は内部にインテリジェントなオドメータ機能があり、パルス出力以外に、オドメータの読みや回転方向や速度をシリアルで読み出すことも出来ます。制御系のソフトに不慣れな人でも、カンタンにオドメトリによる位置制御にトライできますね。また、ロボタで使ったsolaboticsのギアードモーター用のWW-12というモデルもあります。これはrobotshopでも取り扱っています。

この駆動部を写真のブラケットを使ってシャーシに取付けます。シャーシにはタミヤのユニバーサルプレートの一番大きいものを使用、ブラケットはスタッドで取付けます。プレート上にはブレットボードを載せるので、ビスのアタマが出ないように皿ビスを使います。

Dscn1585  Dscn1588_2

これで駆動部は完成です。次回はセンサターレットです。

2011年4月 3日 (日)

今回のハードは簡単に作ります

ロボット作ろう:新リモートブレイン

今回の原発事故で「日本はロボット先進国」ではないということがハッキリしました。まだまだ僕らアマチュアにもやるべきことはあるようです。

ロボットが最も役に立つであろう初動での情報収集もままならず、「白い煙は時々茶色になったり黒くなったりしている」云々という、第一次世界大戦での斥候報告みたいな情報をたよりに作業せねばならない現場の困難は、想像を絶するものがあったのではないでしょうか。

技術的な観点からは、諸外国と日本に大きな開きは無いのでしょう。違いがあるのはロボットの使い方のような気がします。
日本では産業用以外のロボットは、まだまだ開発途中というイメージがあるようにおもいます。目標の性能がまだまだ出ていない、だから使えない、と言うことです。一般の人より、開発に携わる人のほうに、こう思っている方が多いのではないかとも思えます。
一方、特にベンチャーの盛んなアメリカでは、とりあえず出来たところまでで実用化の道を探ろうという考え方があるように思います。性能の足りない分は運用方法で補おうということですね。
ロボット商品では、iRobotのルンバがいい例なのでは?

同じiRobotの軍用ロボットなんかは、ラジコンのおもちゃみたいな感じですが、兵士が背負って運べるとか、使い慣れたゲームパッドをコントローラにするとか、窓から投げこめるなどなど、現場で鍛え上げた運用ノウハウが詰まっているように思います。もっとも戦場というマーケットあってのことですが。

今まで何回かアメリカの人と仕事をしたことがあるのですが、日本人に比べて、自分のアイデアをナントカ世に出したいという思いが強いように感じました。僕らから見るとモノになるのかなあと言うようなアイデアでも、会社を作り、いろいろな方面に売り込みを掛けます。大変なエネルギーです。
また、受け入れる企業の方も日本に比べると柔軟で、とりあえずやってみるかという雰囲気があるように思います。

ロボットに限らず道具というものは、ある程度量産し、多くの人の手に渡ることで、実用品として「こなれて」いくものです。改良点が明確になったり、使い方のノウハウが生まれたりするからです。また、使う側にも、手元にあるなら使ってみるかという意識も生まれます。

とにかく工夫して使い続けること、これが肝心なことのような気がします。1台や2台の試作品しかないのでは、これは難しい。それに、今回の原発事故のケースのように、マニュアルに組込んでいないモノをいきなり持ち込んでも、成果をあげるのは難しいのではと思います。

…脱線が過ぎました。本題に入りましょう。

これから始めるプロジェクトはロボットの「人工知能」の部分を主題に据えたいので、評価用ハードの方はなるべく簡単に作ることにします。この評価用のキカイで確認したうえで、改めて模型化を考えます。

これまで製作してきたシェーキーは、「模型」だったので、ロボットボディすべてを自作しなくてはなりませんでしたが、この評価機は、なるべく自作部分を少なくして工数を倹約します。つまり、市販部品を活用することにします。
さらに、キカイを小型軽量化して、楽に実験できるようにします。目標は1Kg以下です。

また、制御系は「花岡ちゃんのウィークエンド」で試作したXBeeのシステムやシリアルカメラ、Tiny-Basicを応用することにします。XBeeを使うのは、通信系を省エネ化して、大きなバッテリを搭載すること無く長時間の連続動作を可能にするためです。

週末2日でボディの形は出来てしまいました。こんな感じです。詳しくは次回に。

Dscn1595

« 2011年3月 | トップページ | 2011年5月 »