2022年1月
            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          

カテゴリー

ブログパーツ

無料ブログはココログ

2022年1月24日 (月)

【昔語り8】科学教材社の0-V-2(その2)

アキバ昔語り

上京してアキバデビューしたのは1972年、もうその頃には科学教材社に興味はありませんでした。そのためアキバの傍にあるにも関わらず、若い頃は足が向くことはありませんでした。

ノスタルジーにひかれ、初めて訪問したのは1990年代でした。0-V-2を作ってみたい、コイルはまだ売ってるんだろうか、あわよくばキットが残ってるかもという気持ちで仕事の途中で立ち寄ることに。0-V-2を作りたいんだけど短波帯のコイルはないかと尋ねたところ、ないけれど自作するならボビンは同じだからこれを買って巻き直せと、売れ残りと思しきVHF帯のプラグインコイルを出してくれて、コイルデータの入った製作記事のコピーをもらいました。そのコピーは無くしてしまいましたが、おそらくこの記事のコピーです。ヤフオクで入手した誠文堂新光社の「初歩のアマチュア無線製作読本」の記事です。

ダウンロード - 0v2.pdf

その後仕事も忙しくなり、かなり長い間ほったらかしになっていた0-V-2製作、再スタートしたのはリタイア後、2020年の春先でした。

87879915_2976868795704363_27715613240296 89531291_2992238774167365_56526407321046 89285646_2987195551338354_79196148714050

ヤフオクやアキバの(旧)内田ラジオあたりで、ぼちぼち集めていた真空管セット用の部品が役に立ちました。

コイルはその時買ったVHFコイルのまき直しではなく、ヤフオクで手に入れた新品プラグインボビンで、中波帯と短波帯5〜15MHzの2本を作りました。シャーシは並四用の穴あきシャーシの新品、他の部品もほとんど新品で調達したものです。並四トランスはガード下のトランス屋さんで、おそらく今でも新品が入手できると思います。並四用穴あきシャーシは1〜2年前まではヤフオクで売っているショップがあったのですが、いまはもうやっていないようです。シャーシパンチやハンドニブラを持ってるので、部品に合わせて一から穴あけも面白そうでしたが。

回路構成は製作記事の通り、CRの値は系列の問題と若干の調整で回路図と違うところもあります。また、6BM8の5極部のグリッド抵抗をボリュームにして音量調整もつけてあります。シンプルなACケーブルは、アキバの電線屋さんにいけばあるのはわかってたのですが、コロナなので買いに行くわけにもいかず、アマゾンで簡単に入手できるテーブルタップをちょん切ってます。

久しぶりの「半田付けを楽しむ」工作で大満足でした。製作当時のローカルラジオ局受信の様子です。

と、まあここまでは順調だったのですが、この先この素朴なラジオは21世紀の洗礼を受けることになります。

 

2022年1月23日 (日)

【昔語り8】科学教材社の0-V-2(その1)

アキバ昔語り

このカテゴリでは主に1970年代半ば以降の話をしていましたが、ここで1960年代まで遡りたいと思います。0-V-2のお話です。(0-V-2については特に説明をしません。わからない方にとっては、そもそもこの話は面白くないと思います。)

そのころ僕は田舎の小学生で「子供の科学」や「模型とラジオ」の愛読者でした。記事はもちろん、巻末に入る科学教材社の広告も子供にとっては楽しみなものでした。1968年ごろ、「子供の科学」でアマチュア無線の入門シリーズが始まるとすっかりやられてしまい、親にねだって短波受信機0-V-2のキットを手に入れました。もちろん通信販売です。紙面で紹介されたこのキットは人気を博したらしく、発注から届くまで1ヶ月以上かかったと思います。父親が市外通話で問い合わせたところ、「大人気でシャーシのメッキが間に合わないので生産が遅れてる」旨の回答があったそうです。

待ちに待ったキットは、ダンボールの箱の中に、細く切ったビニールの切れ端(シュレッダークズのようなもの)がぎっしり入っていて、それに埋もれるように部品が入ってました。大量のビニールクズがクッションの役割をしてたわけです。当時は小荷物の扱いが荒く、荷役時にポンポンと放られることもあったからです。

さて、肝心の組立ですが、小学5年生が初めて組み立てるのは、やはり無理があったようです。一通り組み立ててスイッチを入れると、パチンとヒューズが飛んでしまい、怪しいところを直してはヒューズの取り替えを繰り返しましたが、結局動作させるところまではいきませんでした。このセットは父親の同僚でラジオに詳しい人がすっかり作り直してくれましたが、自分で作ったものでないのであまりうれしくはなかったです。(ゴメンナサイ)

隣家の中学生がアンテナを張ってくれ、運用できるようになりました。ハムの交信を聞いてみたかったのですが、ダイヤルのどの辺が7Mc(メガサイクル)のハムバンドかわからず、結局それらしい電波をキャッチした記憶はありません。測定器がない場合はピーピーという断続音を出している5McのJJYを探して、そこから上に探っていくのがセオリーでしたが、なかなかそう上手くはいきません。その代わり短波通信華やかなころですから、モールスや外国語の放送がダイヤルをちょっと回すとどんどん飛び込んできました。ドッドドドッドドという馬の蹄のような音のする電波がよくキャッチされ、隣家の中学生によるとRTTYだということでした。ピーヒョロというFSK以前のものだと思います。のちにYMOのラィディーンで同じような音が使われててちょっと驚きました。

今回はこの0-V-2を再現してみようという企画です。まずは科学教材社へ足を向けてみましょうか。1960年代末の案内図です。アキバのお隣、御茶ノ水が最寄駅です。

Jpg-1

2022年1月13日 (木)

すごいけど残念なSlamtec Mapper M1M1(おしまい)

と、いうわけで、このモジュールについては深追いしないことにしました。

微弱化したあとでいくつか動画を撮りましたので、公開しておきます。

リビングから隣の部屋へ移動させている様子です。車輪からのオドメトリがいらないので、キャタピラがスリップしても平気です。ルンバベースだとマップとの照合が狂って戻ってこれなくなってしまいます。

タミヤの1/25スケールの戦車なら乗っけるだけで自律走行戦車も作れそうです。模型好きとしては興味深いですね。

2022年1月 3日 (月)

すごいけど残念なSlamtec Mapper M1M1(その2)

ROSで自作移動ロボットを作るには大変便利なmapperですが、残念なことがあります。それもかなり本質的な部分で。

それは次の二つです。

1:WiFiのAPとして動作させないといけない。

2:WiFiに日本の技適どころかFCCの番号もなく、OFFにもできない。

まず1の件。このユニットはWiFiのAPモードとして動作し、SSIDにアクセスすることでマップ情報や推定自己位置を取得できます。これはおそらくスマホで簡単に使えるようにするためだと思います。これはこれでいいのですが、これ以外の接続方法がありません。つまり家庭内のWiFiルータにインフラストラクチャモードで接続することができません。

これだと、このユニットで完結しているならよいのですが、クラウド連動などインターネット接続が必要な機器には使えません。スマホで簡単に地図を作るというような用途に限られるようです。もちろんROSで使うときもドライバを入れたubuntuパソコンをこのユニットのSSIDにクライアントとして接続する必要があります。

イーサネットが接続できますが、それも同様です。他のルーターとの共用は簡単にはできません。

もっと残念なのは2です。本体のどこにも無線関係の認証情報が見つけられませんでした。せめてFCCとかが通っていれば、特例申請をして一定期間は合法的に使えるのですが。あくまでもkit扱いということのようです。

というわけで前回の動画は非合法の実験です。鉄筋コンクリートのマンションをシールドボックスに見立ててはいますが、本来はダメです。イーサネットで接続もできるので、WiFiをオフにできればよいのですがそれもできません。

このままではダメなので、改造してWiFiを無許可で使える微弱レベルに落としました。

ユニットのWiFiモジュールから細い同軸でプリントアンテナに接続になってるので、まずこれを外します。これでも5メートルほど電波が飛びます。

つぎにユニット全体をアルミケースに収めました。こんな感じです。

122906662_3642841409107095_4720310235541

これでも3メートル近く電波が飛びます。「微弱」とは言いにくいです。

そこで、こんなふうに基板をアルミ箔でシールドしました。

123290556_3642841449107091_5285259797314

ここまでやるとようやく1メートルほどしか電波が飛ばなくなりました。測定したわけではないので、これで微弱化と言われるとあれなんですが、以前電力を食わない「微弱」wifiの持ち込みがあり、それがこんな感じなのでよしとしました。

これでは接続できないので、技適がちゃんととれてるミニWiFiAPを購入し、イーサネットでmapperと接続しました。バンドで留めてる白い箱がそれです。このAPに接続することで、合法的にmapperが使えるわけです。

Img_3286

この状態で、マップのロードセーブやマップ更新のコントロールなどを試しましたが、結局これはいろいろな理由でお蔵入りになりました。最も大きかったのは安定供給が難しそうということです。アマチュアにとっては便利な部品ですが、群雄割拠のロボットベンチャー(?)にとって、コア技術をこれに頼るということは考えにくく、将来性はなさそうに思います。

未来感のある面白い部品でしたが、ちょっと残念です。

2021年12月27日 (月)

すごいけど残念なSlamtec Mapper M1M1(その1)

初めてレーザースキャナを使ったのはもうずいぶん前のことです。ヤフオクで北陽の測域センサURG-04LXを入手しました。当時10数万円もしていたのを9k円ほどで入手できたのですから、ずいぶんとラッキーでした。しかも新品同様のコンデションで。最近はメーカーも増え、10k円程度の製品も見かけるようになりました。

そういうメーカーの一社、Slamtecが昨年からちょっと変わり種のスキャナを販売しています。Mapper M1M1 kitというモデルです。おなじみseeedが販売元のようです。下のリンクで概要がわかります。

https://wiki.seeedstudio.com/jp/Slamtec-Mapper-M1M1-ToF-20M/

121069350_3595699130487990_7580415904124

その名の通り、SLAMを搭載したボードとスキャナを組み合わせたマップ作成マシンで、この部品だけで、マップの作成、マップを利用した自己位置の推定を行うという、移動ロボットの主要機能が実現してしまいます。その上、オドメトリを与える必要なく、これを手に持ってあちこち歩き回るだけで地図ができるという寸法です。

また、ROSへの対応として、scan、map、odomのトピックを生成します。move_baseを使えば自律移動ロボットの基本部分を構築できるわけです。

これはテストしないといけないということで、2020年の秋頃、こんなロボットを作りました。

121696732_3603992969658606_4703480185064

アマゾンでよく見かけるタンクシャーシに百均の木箱を乗せ、一番上にmapperを搭載。ROS(kinetic)を入れたラップトップからブルーツースでラジコン操縦できるよう構成してあります。mapperからの情報はwifi経由でラップトップに。move_baseを使った自律移動をさせてみました。

これがその様子です。猫柄のマットの上に、餌に見立てた乾電池(笑)があり、そこへ自律移動させてます。目的地の指定はおなじみのrviz。ポイントは途中でロボットを持ち上げて別の場所に移動させても、ちゃんとそこからパスを切り直してマットにゴールするところです。

これはmapperに搭載されたSLAMが、マップからの情報だけではなく、IMUからの情報(おそらく)を元に常に自己位置の推定を行っているからでしょう。以前遊んでいたroombaのように、駆動輪からのオドメトリの比重が高いモデルでは、このようにキッドナップすると自己位置を見失います。

このようにROSで使うには面白い部品なんですが、残念なところも。次回はそれについて書きます。

2021年12月22日 (水)

21世紀の「コンピューターカー」

1969年頃のおもちゃで、コンピューターカーというのがありました。

ギザギザのついたカードを車に差し込むと、ステアリングやギアを自動調整して、一定のコースを走るおもちゃです。

写真の手前にあるのがそれで、これはビュィックのセンチュリークルーザーというドリームカーをかたどってます。

その後ろにあるのが2018年に作った「21世紀版コンピューターカー」です。

いぜん、韓国製のジャイロコンパスと測距輪で決められたコースをナビゲーションできる移動ロボットを作りましたが、今回のものは、それをかなり簡素化し、おもちゃっぽくしたものです。

41673918_2014457458612173_25040119326677

シャーシはアマゾンで売ってたロボットベースで1k円もしないもの、ジャイロコンパスはBNO055という絶対方位モード付きのIMUで、現在3K円ほどで評価ボードが手に入るものです。IMUの加速度センサを使って障害物にぶつかったこともわかるようになっています。主な部品はマイコンとIMUだけです。

動作の様子。ブリキロボットまで往復のミッションですが、途中でチッチとサリーの漫画本にぶつかり、コースを変更して迂回してるのがわかるでしょう。コースはウェイポイントをXY座標で与えることで設定します。障害物に当たると、迂回のウェイポイントがコースに追加されるしくみです。

もちろん、この実験での迂回のウェイポイントは決め打ちで、いつでも上手く迂回するわけではないですが。

車輪エンコーダも測距輪もありません。動作時間で移動距離を推定しています。最低限のオドメトリです。

BNO055はその後、別の製品で量産に使いましたが、なかなか使い勝手の良い部品だと思います。

ただし!アマゾンで売ってるBNO055の基板ユニットには結構な確率で不良品があるようです。10個くらい試したと思いますが、一つは水晶を有効にすると止まってしまい、もう一つはそもそも通信ができませんでした。ピン数が多いリードなしのデバイスなのでハンダ不良と思われます。使ってみるときは、作ったソフトを疑う前に、まず取り替えてみることをお勧めします。

そろそろ再開

Img_3240_20211222125601

だいぶ長い間更新をしていませんでしたが、そろそろ再開しようかと思います。

内容をどうするかはちょっと考え中。写真は駄玩具のロボットプラモ、ゴム動力です。1960年代の中村産業製、ゴムをいっぱいに巻いても5秒くらいしか歩きません(笑

 

 

 

2017年1月 7日 (土)

3Dプリンターで作る簡単turtlebot(おしまい)

最後はCORAの操作法です。簡単に作ってある代わりにちょっと気をつけることがあるので、そこらへんを。

turtlebotスタックでマッピングやナビゲーションをするにはこの投稿をみてください。CORAはソフト系の人向けに開発したので、この辺は詳しく説明しません。「ROSさんお手やわらかに」のカテゴリにはいろいろな情報がありますが、古い投稿はもう時代遅れの可能性もあります。

●roomba操作法

取説を持っていない場合は用意しておいたほうがいいでしょう。日本語版取説はサービスされていないようなので、英語版を。

充電は付属の充電器を直接接続するのが簡単です。充電中は真ん中のランプがオレンジ色にゆっくり明滅します。ミドリになったら充電完了。バッテリーの状態によってはオレンジに早く点滅する場合があります。これはバッテリーを一旦放電してリフレッシュするプロセスのようです。結構時間がかかります。使わないときには充電器を繋ぎっぱなしにしておくのがよいようです。

Dscn3647

minimal.launchでturtlebotを起動する前に、CLEANボタンを押して電源をオンにします。ランプがミドリに点灯します。ローンチが完了すると(画面で終了してからしばらくかかる場合もあり)ポッという音がしてランプが消えます。この時USBシリアル変換器のLEDが忙しく点滅を始めます。roombaとラズパイが通信しているのです。電源を入れてから何もしないで数分間が経過すると自動的にオフになってしまうので、ローンチの直前に電源オンするのがよいでしょう。

電源オフにするには同じボタンを長押しします。電源オンのときにもう一回CLEANボタンを押してしまうと軽快なサウンドがなって掃除を始めてしまいます。そのときは慌てず騒がずCLEANボタンを長押ししてください。電源を切ることで止まります。

Dscn3646

実験終了後はちょっと気をつけることがあります。roombaは外部コントロールモードになっているので、そのままでは電源も切れませんし充電もできません。この投稿に従ってroombaの電源を切ります。電源が切れたかどうかをCLEANボタンを押して確認します。電源オンになればOKです。反応がなければ外部コントロールモードから抜けてません。どうしてもダメならroombaをリセットします。SPOTとDOCKのボタンを同時に10秒ほど押して放します。一拍置いて「ピロリロリロ」という電子音が出ればリセット完了です。

●モバイルバッテリー操作法

モバイルバッテリーがUSBが2ポートある最初に紹介したものなら問題ありません。バッテリーの電源ボタンでシステム全体の電源を入り切りします。電源の切り方はこの投稿の最後の部分をみてください。

1ポートの普通のモバイルバッテリーを2個使っている場合は、kinectとラズパイを個別にパワーマネジメントできます。下の写真のようにそれぞれにバッテリーを接続します。

Dscn3632

kinect側は使うときだけオンにすればよいので、コードのメンテナンスをしてる時などは切っておいて構いません。バッテリーが倹約できます。オフにできないタイプの場合はコネクターを抜き差しする必要があります。

これでROSに入門する準備が整いました。皆さんの健闘を祈ります。

2017年1月 3日 (火)

3Dプリンターで作る簡単turtlebot(raspberry pi3の取り付け)

今回で組み立ては最後です。ラズパイ3とバッテリーを取り付けます。完成写真はこうなります。

Dscn3633

最初にroombaとUSBシリアル変換器をつなぐケーブルを作ります。これはオスーメスのジャンパーケーブルを使います。この部分の拡大写真です。

Dscn3549

配線図はこちらです。roombaのコネクターをよく見て間違えないようにしてください。roombaの1、2ピンにはroombaのバッテリー電圧が出ています。ここには絶対接続しないでください。変換器ばかりかラズパイを壊してしまう可能性があります。

Usbcable

USBシリアル変換器のジャンパーはVCC-5V間に刺します。おそらく購入時にはこの設定になっていると思います。

ラズパイやバッテリーの固定には写真のようなゲル状の家具固定マットを使います。これはダイソーで求めたものです。ハサミで切って好きな大きさにすることができます。

Dscn3605

今回はこのように配置しました。ラズパイは立ててあります。

Dscn3642_2  Dscn3643

モバイルバッテリーは最初の投稿で説明したものです。これは2系統の電源のオン/オフを同時にできるので使いやすいです。もちろん、手持ちのものを流用しても構いません。その場合、kinect用は2A取れるものを用意してください。計算上1Aくらいはコンスタントに消費します。

turtlebotスタックのみを使うならラズパイ3は1Aで大丈夫です。GPUをほとんど使わないのでそれほど電流は食いません。

ここでラズパイ3のセットアップをしてしまいます。長時間かかるので、バッテリーではなくACアダプターから給電します。ubuntu14.04LTSのインストールはこの投稿、ROS indigoはこの辺りからの投稿を読んでください。僕の投稿はあまり系統立てて書かれていないので、いちど「ラズパイでROS」のカテゴリーを流し読みすることをお勧めします。

次回が最終回の予定です。本機のオペレーションの仕方を説明します。

2017年1月 2日 (月)

3Dプリンターで作る簡単turtlebot(kinectの取り付け)

今回はkinectを取り付けます。まず、モバイルバッテリーの5Vから12Vの電圧を作るDC-DCコンバータの電圧を合わせます。DC-DCコンバータは前の投稿を見てそろえてください。

電圧は多回転型半固定抵抗を回して調整します。写真の青い部品がそうです。これの金色のネジを小さなマイナスドライバーで回すわけです。よくある精密ドライバーセットにはマイナスも入っているのでこれを使うのが良いでしょう。

Dscn3626

下の写真のようにDC-DCコンバータ基板にマイクロBのUSBケーブルで電源を供給します。写真ではモバイルバッテリーを使ってますが、モバイルバッテリーは電流がわずかしか流れないときに数十秒で自動的にオフになってしまうので、ACアダプターかパソコンのUSBから電源を取るのがいいでしょう。

Dscn3541

テスターをOUT+とOUT-の端子に当てて電圧をチェックしながら、半固定抵抗のネジを回して約12Vに合わせます。ネジは右に回すと電圧が上がり、左に回すと電圧が下がります。ラジオのツマミとは違って何回も回して調整します。それだけ精密に調整できるわけですが、設定電圧にはそれほど神経質になる必要はありません。±0.2Vくらいの誤差は問題ないです。一人だとやりにくいので、誰かに手伝ってもらいましょう。

次はkinectの接続ケーブルを改造し、DC-DCコンバータに接続します。この工程はハンダ付けが必要です。ケーブルにはkinectに接続するコネクターからUSBケーブルとACアダプターケーブルの2本が出ています。このうちACアダプターにつながっている方のケーブルを、下の写真のようにコネクターから200mm程のところで切断します。USBケーブルと間違えないようにしてください。(写真は試作機のもので200mmより短いです)

Kdc

切断した部分から20mm程の被覆をむいて、白と茶色の電線2本をむき出しにします。下の写真のマス目は5mmです。

Dscn3536

黒い細い線も出てきますが、これは強度確保か隙間埋めのための樹脂線で、切ってしまって構いません。下の写真のようにカッターをあてがい、ケーブルを回しながら少しずつキズを入れていけば、比較的楽にできます。自信のない向きには、切り離したACアダプターの部分は使わないので、そちらのケーブルで練習してから本番に臨めば良いでしょう。

Dscn3624

次にこの茶色と白の電線を剥いてDC-DCコンバータにハンダ付けします。ここはどうしてもハンダ付けでないと信頼性が保てません。茶色の線をOUT+に白の線をOUT-に接続します。

Dscn3544

ハンダ付けは次の手順で行います。

1:電線の被覆を3mm程剥く(外皮と同じくカッターを使うと簡単です。本番前に練習しておきましょう)

2:剥いた導線にハンダをつけて「ハンダメッキ」する

3:基板の端子にもハンダを盛る(少し盛り上がるくらいにハンダを載せます)

4:導線を端子に載せてハンダごてで加熱。両方のハンダが溶けて融合したら完了

被覆を剥く時の力加減は大事です。導線まで切断してはどうしようもありません。電子工作に興味が出てきたら、ワイヤーストリッパーを買うのをお勧めします。

kinectに接続する前に接続のチェックをしておきます。電源につなぎ、コネクターのLEDが点灯することを確認してください。点灯しない場合は接続をチェックします。

Dscn3591

最後に基板を12にはめ13を上から被せれば完成です。13は真ん中が少し膨らみますが、このバネで外れないようにしているためです。

Dscn3593  Dscn3598

最後にkinectをホルダーの中央に載せます。ケーブルはホルダー下部の凸部分のあいだに軽く巻きつけて捌きます。巻きつけはあくまで軽くしてください。きつく巻くと甲羅が歪みます。

Dscn3635

これでほぼ完成です。次回はラズパイやバッテリーを搭載します。

2016年12月29日 (木)

3Dプリンターで作る簡単turtlebot(パーツの組み立て2)

前回まででこのような甲羅が完成しました。

Dscn3613  Dscn3614

ポリバケツのフタみたいにしっかりはしてませんが、まあ一体感のある構造にはなっていると思います。これはroombaにピッタリとはめるために、調整シロとしてパーツ間に多少遊びをもたせているからです。この段階で接合部分をチェックして、接着できてない部分には裏から接着剤を塗りこんで補修します。補修した場合はまたroombaに載せて重しをして固定します。

Dscn3610

次にkinectを乗せるサポーターを組み立てます。まずは下の写真のように1、6、9、11の穴に3mmナットを押し込みます。指で押し込めば入ると思いますが、押し込みが甘いと斜めになったりすることもあるので、最後はドライバーの柄の部分などでしっかり押し込んでください。

Dscn3583

8〜11の部品は下のように組み合わせます。9と11の方向に気をつけてください。これがkinectのサポーターになります。サポーターの上下は3mm X 10mmのビスで固定します。ここがビス止めになっているのは、将来別の3Dセンサーに取り替えられるようにしているからです。面倒な人は接着しても構いません。

Ki1

これを甲羅にビス止めします。10を1に、8を6に取り付けます。下の写真のように出っ張りが二つある方が後ろになるように取り付けます。

Dscn3582

これで完成です。次回はラズパイなどの電装品を取り付けます。

Dscn3602

2016年12月25日 (日)

3Dプリンターで作る簡単turtlebot(パーツの組み立て1)

いよいよプリントしたパーツを、前回の投稿の最後で説明した接着剤とビスナットを使って組み立てます。その前にroombaの準備をしておきましょう。この投稿に従って化粧パネルを外し、この投稿のようにブラシとダストボックスを外します。roombaの分解法はこのサイトが分かりやすいです。

完成するとこのようになります。後部に乗っている黒いものはモバイルバッテリーです。kinectを載せないと、後部が軽いので、タイヤのテンションスプリングで車体が持ち上がってしまうため、重りとして一時的に載せているだけです。

Dscn3600 Dscn3602

まず、1〜7までのパーツをroombaに載せて仮組みをしてみます。端っこになる1と6は下の写真のように凸部をroombaの溝に差し込んで位置決めします。

Attachpos

最初に1と6を置いてから2〜5をぐるりとはめ込み、最後に7を載せます。継ぎ目に大きな段差はないか、軽く押してみてガタツキはないかなどを確認します。前の投稿のパーツ写真のように並べます。パーツ2と5は間違えやすいので気をつけてください。

Dscn3581

これから各パーツを組み合わせて接着し「甲羅」にしますが、「甲羅」とroombaは接着しません。roombaに載せて接着するのは、roombaにぴったりはまるよう、現物あわせをするためです。接着剤が流れ出してパーツとroombaがくっつかないように気をつけてください。

最初に外周部分の1〜6を接着します。下のそれぞれのパーツの下の写真の点線で囲ったタブ(他のパーツに潜り込む部分)に接着剤を塗り、roombaに載せて組み立てます。タブのある部分ならパーツの側面に接着剤を塗っても構いません。そのほうがしっかりします。ただ、タブのない部分の側面には塗らないでください。接着剤が滴れてroombaについてしまう危険があります。

Adh

ABSの接着剤は少し粘りのある液体で、ABSを溶かして接着します。下のような状態で3時間程度放置し、しっかり接着します。部品にはラフトを剥がしたときの凹凸があり、また積層時の歪みがどうしても出るので、接着箇所が密着しない場合もあります。ということで、接着剤はなるべくたっぷりつけたほうが有効です。固まるまで右の写真のように本などを載せて重しとするとよいでしょう。(実際のところもう少し本を載せたほうがいいくらいです)

Dscn3574  Dscn3612

リング部分が形になったら、最後に7を接着します。下の写真の点線で囲った部分に接着剤を塗って、7を載せます。写真上のほう二箇所の小さなタブも忘れずに接着剤を塗ってください。固定するまでまた重しをして3時間ほど放置します。

Adh2

接着剤が固まると一枚の円盤としてそこそこの強度になります。

Dscn3524

次回はkinectのサポーターを組み立てます。

2016年12月21日 (水)

3Dプリンターで作る簡単turtlebot(パーツのプリント)

今回作るロボットはCORAと名付けました。Controller-On-RoombAという意味です。と、いうのはコジツケで、本当はroombaの甲羅です。それから、ロボット亀の大先輩にあやかったところもあります。ELMER、ELSIEというロボット亀を作ったグレイ・ウォルターが、「条件反射するロボット」として作ったのがCORAというロボットでしたからね。

下記から全部品のSTLデータをダウンロードしてください。全部で13パーツあります。

「CORA1.0_STL.zip」をダウンロード

ファイル名がパーツ番号です。全てをプリントすると次の写真のパーツが出来上がります。材料はABSです。

Allp

ウチのAfiniaでプリントすると、1〜8と10のパーツはそれぞれ2時間以上かかります。とても1日では済みません。じっくり取り組んでください。

2と5のパーツは同じに見えますが、違うパーツです。下の写真で黄色で示したリブの長さが違います。エンピツでパーツ番号を書き込んでおくとよいでしょう。

Diff

穴を開けたり、形状を変えたり、CORAをモデファイしたい人のために、123Dのデータを提供します。下記からダウンロードしてください。

「CORA1.0_123D.zip」をダウンロード

次回は組み立てます。ABS用の接着剤と3X10のビスナットを8個、用意しておいてください。接着剤はプラモデル用のものが入手しやすいでしょう。

Dscn3579  Dscn3585

2016年12月20日 (火)

3Dプリンターで作る簡単turtlebot(部品の準備)

まずは主要部品集めです。

メインになるroomba500シリーズとkinectはこの投稿を参考にあつらえます。生産は終了していますが、中古ならまだまだ入手は可能なので安心してください。Hanabot2ではroombaの電源を外部からもらってますが、本機ではその改造はしません。roombaにセットされているバッテリーを動力源として使います。中古品を入手した場合、バッテリーが弱っていることが多いので、新品のバッテリーも用意したほうが無難です。Amazonで互換品を購入できます。

搭載するのはRaspberry pi3です。ケースと16GのマイクロSDも忘れずに用意します。

Imgres

ubuntuではラズパイ3の内蔵無線LANは(いまのところ)使えないので、USB接続の無線LANも必要です。本機ではPLANEXのGW-USNano2を使いました。

51epybjpsl_sl1000_

roombaとの接続にはUSBシリアル変換器を使います。USBからロジックレベルのシリアルに変換するアダプターです。おすすめはこれです。仕事用も含めて5台くらいテストしましたが、ラズパイで問題なく使えてます。黄色いジャンパーピンを5V,Vcc間に刺して、ロジックレベルを5Vにして使います。

616w6gztnhl_sl1100_

この変換器とroombaの接続は、本来なら7PのMINI DINプラグを使うところですが、今回はハンダ付けの工程を減らすために、オスーメスのジャンパーワイヤをroombaのコネクタに差し込んで接続しました。これならプラグへのハンダ付けがいりません。なるべく長いワイヤのほうが使い勝手が良いので、このようなワイヤを割いて使いました。モチロン、ハンダ付けを厭わなければ、MINI-DINを使ったほうが確実です。

713hsj2zdol_sl1100_

ラズパイ3とkinectの電源はスマホ充電用のモバイルバッテリーを使います。ラズパイとkinectの2系統が必要なので、バッテリーを2個用意するか、このような2系統の出力が取れるものを使います。電源ボタンでON/OFFできるもののほうが使い勝手が良いですが、スペックに記載がないことが多いですね。これはON/OFFできました。

61iraqyvohl_sl1500_

ラズパイ3の電源は5V/2.5Aとなっていますが、これはグラフィックなどをフルパワーで使った時のようで、turtlebotでは1Aもとれれば十分のようです。このバッテリーは1Aと2Aのポートが用意されているので、1Aのポートをラズパイ用、2Aのポートをkinect用としました。モチロン、両方2Aのほうが安心なのは言うまでもありません。

kinectの電源は12Vなので、モバイルバッテリーからの5Vそのままでは給電できません。DC-DCコンバータで5Vを12Vに変換します。Amazonでよく見かけるこれを使いました。おなじみマイクロBのUSBケーブルでモバイルバッテリーに接続できます。出力電圧は多回転ポテンショメータ(青い部品)で設定します。

Dcdc

このコンバータにkinectの電源ケーブルを接続します。本機で唯一ハンダ付けが必要な工程です。写真右のOUT+とOUT-というパッドにワイヤーをハンダ付けするだけなので、初心者でも容易だと思います。

接続用のUSBケーブルは30cmくらいの短いものが使いやすいようです。たとえばこのようなものを2本用意します。

C09313

次回は3Dプリンタでroombaに乗せるボディを作ります。

2016年12月 3日 (土)

生き物らしく動くロボットを作りたい

僕はもっぱら自分の好奇心の趣くままにロボットの研究をしています。興味の対象はその時々で変わりますし、僕は飽きっぽい方なので、やってることはバラバラです。

でも、漠然とした目標はあり、それは「ロボットと暮らしたい」ということです。
それを実現するためには色々な要素があります。自律性とか知能化もそうですが、もう少し感性的なこともあります。つまり、一緒に暮らしていて苦にならないという性能です。ざっくりしてますが、猫を飼っている経験からすると、「ふるまいが生き物らしく見えるロボット」というのはその解決法の一つかもしれません。たとえばこれはそれに対するアプローチの一つです。

サブサンプションで赤いボールを追いかけるだけのロボットですが、「早い」というだけで、生き物らしく、つまり何らかの知性を感じる動きになっているのではないかと思います。このように振る舞うロボットならば、ルンバのように機械的に(まさに機械ですから)動き回るロボットより、一緒に暮らしやすいのかもしれません。

こういうことを積み上げていけば、いつか一緒に暮らしても苦にならない、そんなロボットが生まれるかもしれませんね。

2016年12月 2日 (金)

3Dプリンターで作る簡単turtlebot(プロローグ)

久しぶりの投稿です。

今まで僕が投稿してきたHanabot2は、簡単に安く作れるよう工夫をしてきました。実際のところ、少しの木材とラジオ工作程度の電子回路、ノコギリやドリルなんかの基本的な工具のみで組み立てられるようになっているので、中学生でも製作可能、と思ってました。

ところが、ある人と会ってお話しした際に、「情報系の研究室にはノコギリはまずない」という事実が判明しました。するってえと木工はできないんですかと聞くと「昭和じゃないんだから」。なるほど、僕の判断基準は昭和の「模型とラジオ」なわけですから、ギャップがあって当然ですね。当時の模型雑誌はこういうのを少年に作らせるんですから。

Dscn3560  Dscn3561

これはラジコンカーキットの解説ではなく、ベニヤ板とかブリキから部品を切り出してボディもファンもサーボも自作する記事です。どうです、これに比べたらHanabot2の自作なんて屁でもないでしょう。

まあ、そんなコトを威張っていてもしょうがありません。情報系の研究室でも簡単に作れるようなturtlebotコンパチ機を開発するコトにしました。中身はHanabot2と同じkinectとroomba500シリーズを使ったものです。

まず基本的に、ノコギリを使わないでボディを作れるようにします。つまり木材は使いません。全て小型3Dプリンタで分割製作します。こんな感じです。ミドリのパーツがプリンタで製作したボディパーツです。

Dscn3524  Dscn3525

各パーツは120X120mmのサイズに収まっており、家庭用の3Dプリンタで出力できます。僕はAfiniaを使っています。これを組み合わせて接着し、roombaに乗せるわけです。これでroombaの上面が空母の甲板のようにフラットになり、ここにラズパイなどを自由に配置することができます。組み上げた形がこの写真です。

Dscn3633

Hanabot2は全体の電源を1個の大型バッテリーに集約していましたが、そのため、電圧変換や充電回路を搭載した「電源基板」を製作する必要がありました。そこそこの数を部品をハンダ付けし、ワイヤーで接続するので、ハンダ付け初心者には大変なところがありました。そこで、今回のモデルでは、スマホの充電に使う「モバイルバッテリー」を使い、電源基板や接続ケーブル作らなくて済むようにしました。

また、バッテリーやラズパイの固定には、ダイソーなどで手にはいる「家具の転倒防止」のゲル状シートを使うので、付け外しが簡単にできます。普段使っているモバイルバッテリーをロボットの実験用として一時的に使うことも簡単です。写真で四角いのがシートです。これの上にバッテリーなどを乗せると、ロボットの走行程度の振動では、簡単に外れたりずれたりしません。

Dscn3531

ハンダ付けは2ヶ所しかありません。モバイルバッテリーの5Vからkinect用の12Vを作り出すDC-DCコンバータの部分のみです。ハンダが苦手な人でもこれなら安心です。

現在、成形品の最終確認中です。帰宅後の作業だと、2パーツくらいしかプリントできないので結構時間がかかってます。奥さんに頼んで昼間プリントしてもらおうかとも思いましたが、信頼性の問題があり断念しました。まだ年賀状なみに気楽にプリントできるものではありません。次でTエンドの予定ですので、近いうちに公開できると思います。

続きはこちら

2016年11月 6日 (日)

ROSを使ってイベント用ロボットを試作したハナシ

ここのところ、Hanabot2を使った、イベント用ロボットの原理試作(機能確認用の試作品)を作っていました。本業絡みなので写真や詳細な情報は載せられないのですが、Hanabot2そのもののアッパーデッキに追加の装置を乗っけてシステムアップしたものです。メインの機能は、パーティ会場のような人の多いところで、人間を見つけると近づいて簡単なゲームをし、人間が勝つと景品を渡すというものです。まあ、だれでも思いつくような凡庸なロボットです。

新たに追加したのは、PIC24Fを使ったスマートインターフェイス基板(赤外線リモコン信号の受信、熱センサアレイ、サーボ4個のドライブ、LEDドライブ、幾つかのスイッチIFなど)、これはUSBシリアルでラズパイにつながります。小型のパソコン用スピーカー、サーボモーターによるパンチルトユニット、幾つかの押しボタンやメカセンサやLEDランプなんかです。ラズパイのI/Oは使っていません。

試作品ではminimal.launchと3dsenseor.launchのみを立ち上げ、マップを使用しないでロボットを制御しました。kinectと熱センサアレイで近くの人を探してゲームをねだります。持っている景品がなくなると、ロボットはベースステーションまでもどりますが、そのナビゲーションにはリモコンの赤外線を使ったビーコンを利用しています。音声合成(Open jtalk)で喋りますが、音声認識は使っていません。全体のシーケンスを司るノードをはじめとし、数個のpythonプログラムで構成されています。

追加のハードウェアはサーボも含め、すべてHanabot2のバッテリーから給電しています。9時から13時まで4時間の連続デモンストレーションで、バッテリー電圧は11.2Vまで下がりました。終端電圧の10Vまではまだ余裕があります。思ったより長持ちすることがわかりました。

こんなロボットでも、実際に作って運用してみると、いろいろと気がつくことがあります。折に触れてブログで紹介できればと思ってます。

2016年10月12日 (水)

ubuntuラズパイ3のシリアルターミナルを有効に

前回作ったラズパイ3用のubuntu14.04は、シリアルターミナルを有効にしてありませんでした。ここでやってしまいます。

基本的にはここでやったのと同じですが、内容がちょっと違います。

/boot/cmdline.txtの内容は下記にします。(1行です)

net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyS0,115200 kgdboc=ttyS0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

シリアルコンソールがttyS0になってますので、新規に作成するのは/etc/init/ttyS0.confです。内容は下記にします。コピペしてください。

start on stopped rc or RUNLEVEL=[12345]
stop on runlevel [!12345]
respawn
exec /sbin/getty -L 115200 ttyS0 vt102

これでrebootするとシリアルターミナルからログインできるようになります。ラズパイとシリアル変換器の接続はここを見てください。

2016年9月29日 (木)

ラズパイにOpen-Jtalkを入れる

ROSが動いているubuntuラズパイにフリーの日本語TTS、Open-Jtalkをインストールして、ロボットが喋れるようにしましょう。まず最初にwavファイルが再生できるようにセットします。下記でインストールしますが、僕の場合はすでにインストールされていました。念のためにやっておきます。

$ sudo apt-get update
$ sudo apt-get install alsa alsa-utils

これだけではダメで、/boot/config.txtの最後に下記の1行を追加し、オーディオ機能をONにします。

dtparam=audio=on

さらに自分をaudioグループに追加します。ぼくはhanaokacyanなのでコマンドは下記になります。ここでrebootしてここまでの設定を反映させます。

$ sudo adduser hanaokacyan audio

最後に下記のコマンドでオーディオ出力をミニジャックに設定します。ここでrebootしてここまでの設定を反映させます。

$ amixer cset numid=3 1

ラズパイのミニジャックはビデオ信号入りの4極ですが、普通のステレオミニプラグを差し込むとオーディオだけが取り出せる(ビデオはGNDにショートされますが、直列抵抗が入っているので故障はしません)ので、ヘッドフォンや外部スピーカーなどがそのまま使えます。今回は写真のように折りたたみ式の外部スピーカーを使いました。

Dscn3513

サンプルwavファイルがalsaとともにインストールされてるので、下記のコマンドで音("front center"という音声)がでます。

$ aplay /usr/share/sounds/alsa/Front_Center.wav

音量の変更は次のコマンドでミキサーを表示して行います。↑↓キーで音量を変更できます。ただ、僕の環境では設定音量を保存できませんでした。電源を落とすまでは設定音量ですが、再起動すると初期の音量に戻ってしまいます。保存する方法もあるようですが、うまくいきませんでした。

$ sudo alsamixer

もっともミキサーを表示することなく、音量を変更できるコマンドもあります。最後の数値(%)で音量を指定しますが、リニアではないので70~100くらいで大幅に音量が変わります。ともあれ、このコマンドで起動する度にシェルスクリプトや.bashrcなどで音量を再設定してやれば実用上は問題なさそうです。

$ amixer sset 'PCM' 80%

肝心のJTalkのインストールは例によって他の方のインストール法をそのままやってみました。こちらのサイトです。この手順のとおりでpythonで喋らせることができました。次回はその応用でROSを使って喋らせてみます。

2016年9月27日 (火)

ラズパイubuntuの日本語化

Hanabot2で日本語音声合成を使ってみたくなりました。音声合成はOpen-JtalkというフリーのTTSを使うことにしましたが、そのためにはraspberry pi3に載せたubuntu 14.04LTSを日本語化しなければなりません。

あちこちのサイトにあるように、まず日本語パッケージをインストールします。

$ sudo apt-get update
$ sudo apt-get install language-pack-ja-base language-pack-ja ibus-mozc

あとは下記コマンドで日本語設定します。

$ sudo update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"

念のためrebootして再度ログインしてみます。nanoを起動して日本語化されてればOKですが・・・

Japanedit

僕は一発ではダメでした。色々調べたところ/etc/default/localeの中身を下記のようにする必要がありました。

LANG=ja_JP.UTF-8
LANGUAGE=ja_JP:ja
LC_ALL=ja_JP.UTF-8

最後のLCは表示されるメッセージのどこを日本語化するかを細々設定できるモノのようで、ALLですべてが日本語化されます。僕の場合はこれがPOSIXとかになってました。さらに、僕の場合はsshのターミナルに問題があって(ROS用のThinkpad T61のメニュー表示などを英語化している関係で)日本語表示がターミナル上で文字化けしてしまいました。こちらはターミナルの問題なので、そっちで対応しました。

現状ではモニタを接続して起動すると文字化けしてます。多分、日本語フォントをインストールしてシステムフォントをそっちに切り替えれば良さそうですが、いまのところプライオリティが低いので、後回しにします。

次回、日本語TTSのOpen JTalkをためします。

«pythonでturtlebotコンパチ機を人物追跡させる