tasogarex’s blog

ITガジェットやライフハックとしてのゲームについて書いています。ITコンサルティング会社勤務シニアマネージャー。一児の父です。

ラズパイ日記 外部からのWebIOPi

探索くん1号のプログラムに、カメラ台サーボモーターコントロールシステムを合体させます。

python

html

javascript

stylesheet

それぞれに統合を行います。

結果ブラウザには探索くんコントローラとストリーミング撮影画面とともにカメラ台サーボを操作するスライダーを出すことに成功。ところがスライダー操作してもカメラ台サーボがうまく動きません。

 

この方のブログでPython ソースコードをみて、はたと気が付きました。

http://deviceplus.jp/hobby/raspberrypi_entry_032/

 

で、デコレータだ!

WebIOPiからコールバック関数でつなぐマクロのデコレータ宣言

@webiopi.macro

はマクロ関数一つ一つにつけなければいけない。

というわけでスライダーからサーボを動かすマクロにもデコレータしてあげました。

そしせついに、レスポンス等チューニングにはまだ改善の余地があるものの、

可動カメラ付き自走式サーバー

「探索くん1号」

完成です!


f:id:tasogarex:20170217081503j:image


f:id:tasogarex:20170217081516j:image

うーんすごい配線量だ。

ユニバーサル基板や外装、配置を工夫して美しいロボットへトランスォームさせたいですね。

探索くん2号の野望を抱きつつ、探索くん1号プロジェクトはひとまず完了。

次は会話型ロボットに着手しようと思います。

 

 

 

ラズパイ日記 ロボットクリエイターとデザイナー

ラズベリーパイでロボットを作り始めてから自分の中である変化が置きました。

実は僕は絵と字が大の苦手で、生まれてこの方、美術からは距離を置いてきましたのですが、ここにきて猛烈にデザイン(造形)なる領域への興味が湧いてきたのです。

 

以前、EVOLTA、ロビ、RoBoHoNで有名なロボットクリエイターの高橋智隆さんの講演をたまたま聴く機会があったのですが、高橋さんは自らををロボットの開発者というよりはロボットデザイナーに近いとおっしゃっていました。

パーツの材質や整合性や色合い、人間味と親近感を覚えるロボットとしての外観を徹底的にお一人で追求していると。

当時は失礼ながら変わった方だなーと思ってきいていましたが、今になってすごく気持ちがわかる気がします。

ロボットに苦労して想定していた機能を実装し終わってみると、なんだか無機物に魂を込めたら動き出したような気になります。

しかし見た目の方は配線だらけでパーツや基盤も剥き出し。


f:id:tasogarex:20170215211910j:image

これはこれで良さはあるのですが、デバイス配置や外装を最適化してもっとスタリッシュにしたい欲が湧いてきます。

で、色々考えるわけです。

配線をユニバーサル基板に貼り付けたらこれだけ小さくなるとか、ラズパイを縦にしてみるかとか。キャタピラにカバーをつけたら。デバイスを内包させて、人形ロボットにする場合、カメラ部分はジオン系モビルスーツが参考になりそうとか。

そんなことを考えながら、ロビやRoBoHoNを見てみると、なんて美しいデザインなんだろうと驚愕します。


f:id:tasogarex:20170215222354j:image

まずこのコンパクトさ!かつスリムな胴体なのに10軸以上のサーボモーターを搭載してるなんて。とんでもなく緻密なデザインです。

 

かのMHマイスター、レディオス・ソープさんも、おっしゃっています。

「可動ラインが見えない。物凄い耐久性の証だ」

究極のデザインには機能美も宿るのです。

 

それはさておき、いざ頭に描いたデザインを実現するためには、外装をつくらなければなりません。

まずはじめに浮かんだのはプラモデルでしたが最適なサイズや、形状の組み合わせを市販キットから探し求めるのは現実的ではありません。

じゃあ型取りからか。これも1から着手するには果てしないです。

そこで閃きました!

ピコーン!無双三段

ではなく、「3Dプリンター」だ!

そう、世の中を賑わせ早数年経ちますが、まるで僕が造形に目覚めるのを待っていたかのように3Dプリンターが一般人でも実用レベルになってきているではありませんか。

キタコレ!ということ我が探索くんの2号化プロジェクトは3Dプリンターを使ってスタイリッシュなトランスフォームを目指していきたいと思います。

 

 

 

 

 

 

 

 

 

 

 

ラズパイ日記 外部からのWebIOPi

今回は外部LTE接続におけるWebIOPiとmjpeg-streamerの設定チェーンアップです。

 

まずはカメラから

フレームレート:15から5に

解像度:640*480を320*240に

jpeg画質:50のまま変更せず

 

結果かなりコマ落ちは改善されフリーズもしなくなりました。

 

それでも5fpsに対し1秒に1回程度の画像更新なのでまだたくさんコマ落ちしている模様。2fpsぐらいでいいかも

解像度は5.5inchのスマホ画面でぎりぎりかなといった画質なのでこの辺で良さそうです。

 

割りと改善したのでゆるドメしていたカメラとカメラ台を本格設置することにしました。

カメラ台は2軸サーボモーターで左右上下に旋回てきるよう設計、

この結果カメラモジュールが上下逆さまになったので設定に以下を追加します。

垂直反転と水平反転をTrue

ところがこれをやったところ処理が遅くなってしまった。反転のせいか、サーボが2つ追加接続された影響かは不明だがサーボのプログラムはまだインプリ前の事象でした。

 

さてそのサーボプログラムですが、

軽くはまりました。

サーボ操作プログラムをWebiopiのconfigに設定したところWebiopiが起動しなくなったのです。

原因はWiringpiのインポートエラーによるものでした。

原因にたどり着くために苦戦しましたが以下の方のブログで救われました。ありがとうございます。

http://takashin10mura.blogspot.jp/2016/06/wiringpipython.html?m=1

 webiopiにはデバッグモードがあったんてすね。便利。これによってエラーを特定できたわけです。

Wiringpiの再インストールも一癖あり、Unicodeエラーをシュートしないといけませんでしたがなんとかなりました。

無事ブラウザから探索くんのカメラ台を上下左右に操作できました。

次回はいよいよ探索くん1号最終章。

自走プログラムとカメラ台プログラムを合体させます。

 

ラズパイ日記 探索くん1号 外部からのWebIOPi

ようやく外部からインターネット経由で探索くん1号を操作することに成功。

カメラによるストリーミング撮影も同時に起動できている。

前回の予定手順から少し変更してここまでたどり着きました。

 

1. ラズパイのipアドレスDHCPから固定ipに変更する(ルーターにて固定DHCPを設定)

2. ルーターでポート開放する

 8000: WebIOPi

 9000: jmpeg-streamer

3. ルーターにてポートマッピングを設定しルーター宛ポート番号8000/9000のアクセスを上記ラズパイのローカルip8000/9000にマッピング設定

4. 外部からグローバルipにアクセスする

 

振り返ってみると大したことをやっていないのですが苦労しました。原因は大きく3つ。

・作業前の自宅ネットワーク設定が全然把握できていなかった

・ポートマッピングの仕様と設定方法の習得に時間がかかった

DDNSと固定グローバルIPの必要有無が判断できなかった

 

と色々ありましたが動いたので苦労も報われました。

というのも束の間、新たな課題です。

 

外部からのLTE経由だと操作もカメラも反応がかなり遅い。

コントローラ

LANのときは上下左右ボタンは押している間だけ探索くんが動きたのですが、外部からのLTEだと 押したら2秒遅れで動き出ししかも時々止まらなくなる。

カメラ

コマ落ち、遅延、しまいには更新されない

 

というわけで、通信スループットに適した各種設定のチューンアップが必要となりました。

 

 

 

 

ラズパイ日記 探索くん1号外部インターネットからWebIOPi

引続き課題対応中

 

Weavedに払った$24分は足掻いたものの結局jmpeg-streamerとWebIOPiの同時起動はできなかった。

代替案として、Weavedを使わずに外部からのアクセスを試みることに

ステップは以下の通り

 

1. ラズパイのipアドレスDHCPから固定ipに変更する

2. ルーターにてポート開放する

 8000: WebIOPi

 9000: jmpeg-streamer

3. 外部からグローバルipにアクセスする

 

1で早速躓く。ネットワークはいつやってもすんなり行かないのが常。

ip固定したらインターネット接続できなくなる

眠かったので終了

通勤中調べてみると

固定する前にルーター側でDHCPipアドレス範囲を確認し、その範囲外になるようにしなければならないようだ。

今夜やってみよう。

 

ラズパイ日記 探索くん1号 外部インターネットからWebIOPi操作

探索くん1号の完成からはや一ヶ月半たってしまいました。

1月は忙しくてラズパイにほとんど触れられず、2月に入ってようやく再開できました。

探索くん1号にカメラをつけて、Webコントローラ上にストリーミング動画も見せるところまでは、書籍の演習通りに実施して成功しました。

さらにそれを外部インターネットからできるようにして、会社から自宅の探索くんを操作してやろうというのが今回の目標です。

さてここでお約束のトラブル発生です。

■事象

外部インターネットからアクセスすると、

WebIOPiとjmpeg-streamerを同時に有効化することができない。ブラウザ上でWebIOPiコントロールすることはできるし、streamer設定サイトでラズパイカメラの映像配信もできるが、WebIOPiサイトでstreamer配信ができない。

■原因

恐らくはWebIOPiがポート番号8000でjmeg-streamerがポート番号9000となっていることが関係していそうだが、不明

■対応

WebIOPiを外部インターネットから操作するために使用しているWeaved.comというサービスのフリーアカウントでは同時起動できるサービスが一つまでとなっていたのでBuilders Planを購入(年間$24)。

しかし事象に変化なし。

悔しいので$24分は足掻いてみようと思います。

乞うご期待。

ラズパイ日記 探索くん1号

2016年12月11日(日)

書籍の演習に沿ってラズパイ工作を続けてはや一ヶ月。ついに最終10章にたどり着きました。

最終章ではこれまでのすべての演習要素を取り入れた仕組みになっており、キャタピラロボットをWebから操作するという大作でした。

そして着手から約10時間という過去の演習より遥かに大きい工数でしたがなんとか完成しました!

演習の装置には名前をつけていませんでしたがこれは紛れもなくロボットですので特別につけました。

 

名付けて、「探索くん1号」です。


f:id:tasogarex:20161212082739j:image

 

なんといっても特徴は、自走型、かつWebから操作できるところです。前進、後退、旋回が可能で補助アームキャタピラがあるので小さな段差も乗り越えられます。

次回はこの探索くんにカメラをつけてみようと思います 。