2015年6月26日金曜日

JavaScript エディタ難民からの脱出か

ここんとこ、JavaScriptのエディタとしてbracketsを使っていたが、AdroidStadioのコード保管になれてしまい、JavaScriptでもIDEを使いたくなった。

document.getElementById("dataSet").addEventListener("click", function()…
とか,ナウなJavascript はつづりが長くてぜったいスペルミスする。

大体、学生のときから英語のスペルはぜんぜん覚えれなかったし、保管機能は大変重宝する。
AdroidStadioの元のIntelliJ IDEAもJavaScriptに対応してるみたいだけど、Ultimate Edition(有料)でないと出来ないとのこと。
おんなじ会社のWebStormもいいらしいんだけど、こちらも有料で日本語版はないみたい。

なので、無料のIDEをさがして、ためしにNetbeansに移行してみた。
ばっちり日本語化もされている。
サイトを見ると Getting Started with Creating a Cordova Application なんてあって、
HTML5でモバイルアプリケーションを作るCordovaにも対応しているみたい。
起動はかなり時間がかかるが、ピキピキ動くし問題ない。
昔使っていたEclipseのようなもっさり感はなかった。

これで行こう!

2000年ころからLinuxサーバ管理でViを使ったから、CGIのエディタはGvimを使っていて10年くらい。
HTMLを書くのには結構苦労した。その後2010年以降はSakuraをはじめいろいろエディタを設定しては試すが、長続きしないエディタ難民だった。
けど、やっぱIDEがいいな。
これからはNetbeansに落ちつくんじゃないかと思っているが、果たして。。。




netbeans のマスコット、ねこび〜ん

ドロイドドローンのコース設定画面

携帯電話通信網でリモートコントロールするローバーこと ドロイドドローンのWeb側でコース設定をする画面がとりあえず動くようになりました。

画面は http://www.cirlution.com/dev/droidrone.html で動かせます。
画面の配置とかは、まだぜんぜん手をつけていませんのであれなんですが。


ドロイドローンの撮影した写真はまだないのでストリートビューの写真サービスをつかって模擬的に表示させています。
GoogleMAPで高度を扱うAPIも入れて、いちお、空飛ぶドロイドローン用に高度設定もできるようになっています。

ちなみにGPSの高度は標高ではなく楕円体高の表示とのことで、Android端末のGPS高度と上記のGoogleMap標高と異なると思います。

このためドロイドローンの出発地点で両者を比較して、GPSの高度をGoogleMap標高に補正するようにし、地上高(地面から高さ何メートル)で指定出来る予定。

GPS/地図の高度データが信用ならない理由

まぁ、実際にはGPSもGoogleMap標高も誤差が大きそうだから、超音波センサーで地上との距離を測る方法になるでしょう。

ローバーから送られてくるGPSデーターの保存に HTML5のWeb Storage使おうかと思ったけど、どうもこれは同期処理らしい。そこんとこどうよ?てことで、やっぱXMLHttpRequest非同期処理CGIのファイルロックでで行っている。
最近ではXMLHttpRequestなんかはJQueryでやるんだろうけど、わからないのでつかってない。
その内覚えよう。

このWebサービスは、現在、会社のサイトを置いてあるレンタルサーバーで行っています。

いずれ、保守のしやすさから、GitHubのWebサービスで 公開したいが、GitHubでは当然CGIは動かない。
CGIが必要無いように将来的にはGoogleDriveをJavascriptで使っていきたい。

また、Androidのほうも写真だけでなく、Live動画やリヤルタイム操縦もしたい。
リアルタイム操縦はGCM (Google Cloud Messaging ServiceはAndroidでPUSH通知を行うためのGoogleのサービス) をつかいたい。
しかしペアリングでサーバーが必要みたい。

ということでやっとAndroidのコーディングに戻れる。

2015年6月5日金曜日

エンジン2重反転プロペラのドローンで飛行時間を長くしたいけど

前回のドローンの話しで、農業用マルチコプター Zion AC 940 の飛行時間は10分くらい。
LiPoバッテリーでブラシレスモーターをブンブンまわせば、どうしたってそのくらいでしょう。

じゃ、エンジン駆動のドローンにしたら長時間飛べるのはないのか?

テレビニュースで見たんだけど

で、一般的なドローンが電動なのに対し、試験飛行では、ガソリンエンジンを搭載してより長時間・長距離の飛行を可能にしたヘリコプター型の試作機が登場。
とのこと、これのほかにエンジンのドローンは見当たらない。

詳しく調べようとインダストリーネットワーク(株)の本家サイト見ましたが、しばらく更新が止まっていて何も書いてない。


エンジンドローンは オープン・X という名前らしい。

エンジン、ドローンでググると,ラジコン用O.S.エンジンで有名な小川精機製もドローンを出していました。
エンジン駆動を期待しましたが、モーターのようです。残念。

基本的にドローンの制御は加速度センサーと、モーターPWMでのPID制御ですが、
中型以上のドローンは強力なブラシレスモーターを使っています。
ブラシレスモーターはPWMをラジコン用ESC(Electric Speed Controller)で制御してます。

さて、このモーターをエンジンに変えるといっても、エンジン出力を微妙に変えPID制御するのは大変そうです。
で、池上さんのアイデアは浮遊力はエンジンで、姿勢制御はモーターというハイブリットなドローンはどうかということ。
姿勢制御のモーターもブラシ付きモーター程度でできるのなら回路も簡単で安価です。

しかし、エンジンの欠点は振動で、空撮とかには向かない。

で、ロータリーエンジンは振動がすくないとのことだ。
治具メーカーが模型ヘリ用に独自開発したとのこと。

先ほどのラジコン用O.S.エンジン 小川精機製 はロータリーエンジンは販売中止になってた。
多気筒星型、水平対向エンジンなど振動が少なそうなエンジンはある。

ただ、ドローンもそうですが、プロペラの回転による反トルクを消す為に、対称に半回転プロペラを配置するのがいいようです。

なので、エンジンの浮遊力(推力が本当?)は二重反転式ロータータンデムローターになるでしょう。



2重反転のエンジンを調べていたらヤフオクに面白い物があった。


第二次大戦でアメリカ軍が使用していた遠隔操縦機の2サイクルの2重反転式のエンジン 


逆回転用のエンジンを2つ水平対向に配置したものだろう。
逆回転用クランクシャフトの配置でピストンはわずかに前後しているようにみえる。
これ見たら、ルパンの最終回に出てくるロボット「ラムダ」に似てると思いました。


このアイデアでいくと、単気筒エンジン2つのピストンを対向にして逆回転させるということになるが、こうなると、大きくなるがタンデムローターがいいのだろうか。しかし、逆回転のエンジンはないようで、2ストなら無理に逆回転できるようだが、どちらにしてもスターターで2つエンジンかけるのは大変だ。

ただ、ラジコンのエンジンの1万以下の安いやつは、白金カイロのようなグロー式点火なので、点火タイミングを同期させるのは出来なそうだ。
点火にキャパシター・ディスチャージド・イグニッション(CDI)つかったプラグのエンジンもあるようですが、高価でした。
というわけでこのアイデアは小さいドローン用のグローエンジンではボツ。

振動を消す為にピストンの反対方向の慣性がでる偏芯重りをつけるとか
点火しないピストンを逆方向に動くようにくっつけて空回りさせる、とか
空回りピストンで、ついでにコンプレッサにして、圧縮空気をペットボトルにためて、噴射して機体制御に使う。
とか考えつきました。圧縮空気の制御の方が大変か。
圧縮空気でコンプレッサピストンまわしてスターターにするのはいいかも。
圧が低いときは空気ためて、圧が高くなるとピストンまわすようにする制御もいいかも知れない。

あと振動を制御する方法として
加速度センサーから振動周期を読み取って、反位相の振動を振動モーターで作り、振動を相殺する。です。 
アンドロイドのカメラなら加速度センサーとカメラが一体で、振動モーターも付いてる。
振動モーターのPWMはスイッチのON命令細かくすれば可能か?
とも思いましたが、機種によって振動モーターの種類もちがうからダメですね。
相殺振動モーターは外付けですね。
振動の大きさが変わること考えるとステッピングモーターがいいのかな?
X-Y-Z方向の振動あるとすると3つつける?って複雑ですね。

このように、安いエンジンで振動を消す方法を考えていますが、
まぁ、昔ながらのラジコンのプロの方はいろいろしているみたいです。
私のようなど素人がなんとも出来ないものかもしれません。

モーターの2重反転プロペラは、おもちゃのラジコンヘリから、いろいろあるんですが。
が面白そうでした。

プロペラのシュミレーションなんかは プロペラ・風車の設計解析ソフトXROTORの使い方であたんですが、2重反転は出来ないとのこと。
Flowsquareはプロペラ解析できるのかな?

導出した数学モデルをコンピュータ上でシミュレーションできる環境を数値解析ソフトウェアである
MATLAB を用いて構築した。
とのことですが、数学モデルはさっぱりわかりませんでした。

いろいろ調べていて
は参考になりました。

まぁいずれにせよ、だいぶ先の話になりそうです。


2015年6月4日木曜日

ドローン のオープンソースについて

前の会社、SCF で、設計、購買システムでお世話になった先輩が退職し、2015年4月1日に株式会社IKGMを、起業しました。

その池上さんから「ちょっと寄ってきなよ」と電話をもらったので、西春近の事務所によって見ました。

昔から農業の自動化関連に研究している方で、エンルート社の農薬散布に特化した、農業用マルチコプター Zion AC 940 を購入する予定とのこと。
(Zionってジオン軍意識しての命名かな?)


昨今、ドローンの墜落、事故などがフューチャー?されていますが、農業用であれば農地の上をドローンが飛んで何かあっても作業者がいなければ安全ですし、農地は基本、私有地なのでまぁ自由に飛ばせるわけで、むしろ規制がかかれば、ドローンを飛ばしたい人は農業用に使えば?
ということになるかもしれません。色々応用もできそうです。

そんなわけで、TPPや高齢化で農業の無人化、省力化の将来性はいろいろあり、そこんところに目をつけているとのことで、なるほど~と感じました。

話をしていると、これらのドローン制御のハード、ソフトはオープンソースだよ。と教えてくれました。

ちっこいドローン Bitcraze社製 Crazyflieナノクアッドコプター10DOFは 
前からオープンソースとは知っていましたが、大学研究レベルなのでオープンかと思ってた。

高級なドローンは、どうせ買えないと、詳しく調べてなかったですが、
大体のドローンがオープンソースのようで、恥ずかしながら知りませんでした。

これは興味津々。
オープンソースのドローン制御を調べてみました。

合衆国のドローンメーカーとしては最大の3D Robotics社。
2014/10/13 に
Dronecode:Linux財団と3D RoboticsがオープンソースのUAVソフトウェアプラットフォームを開発

とのことでオープンソース化したようです。
オープンソースの本家は https://www.dronecode.org/

ハードウェアーのほうは
3D ROBOTICS AUTOPILOT SYSTEM FLIGHT CONTROLLER
にあるように、制御装置のFLIGHT CONTROLLER(FCというらしい)は
APM 2.6 と Pixhawk というのがあるみたい。

APM は Arduinoベースにオープンソースで開発したマルチコプター制御とのことらしい。
アルデユパイロット オートパイロット・スイート が本家

日本語情報では
Arduino(アルドゥイーノ)基板と ArduCopter(アルドコプター) 
Arduinoを頭脳にした、多回転翼型の飛行体の製作記録
なんかが詳しそうです。
Japan Drones 株式会社もコントローラーのAPM 2.6を販売 しています。

ArduCopter は、世界各国から集まった DIYDrones (http://diydrones.com/)のボランティアプログラマーが作り上げた ソフトウェアーです。 
APM で使用しているハードウェアーと、ソフトウエアは、全てオープンソースです。
 オープンソースとは、ハード、ソフト共に、全ての情報を無償提供で公開し、どなたでもご利用いただけ将来の開発や 発展に役立てる事が目的です。

とのこと
Japan ArduCopter Group
 http://diydrones.com/group/japan-arducopter-group
のあたりで情報が手にはいりそうです。

Pixhawk は 32 bit STM32F427 Cortex M4 core ということらしい。
Cortex M0 core なら良かったが、M4なのはLinux入れるからかな。
https://pixhawk.org/ が本家かと、
オープンソースハードウェアと謳っていますが、英語ばかり。

3D Robotics社以外では、

よく聞く ARDrone2.0
本格的なプログラミングができるラジコンヘリ・・・ ARDrone2.0 より
ARDroneは制御のためのAPI仕様書が自由にダウンロードできる。とのこと。
Wifi制御なので、IPネットワークのはしるOSが必要となるが、
ARDroneの中ではBusyBoxという軽量版のLinuxが動作していて、無線LANを使えばログインができる。
とのこと。
ドロイドローンにはWifiはいりませんが、離陸と着地の近距離はプロポ操縦者いたほうがいいのかな。

MultiWii という FC
マルチコプター : MultiWii ってなんだ より
MultiWii は、任天堂社の Wii のコントローラーに内蔵されているセンサーと Arduino を接続した物が最初。とのこと。
この発想、一番俺向きっぽいな。
http://picworld.e-monster.jp/category/multiwii/ が一覧。
超音波センサーで高度を測るというのはいいアイデアですね。
MultiWii SE V2.5 CRIUS 設定方法 てのもあった。


で、オープンソースのドローン儲かるのか?とビジネスモデルを考えると、

・オープンソースだからといってみんなが自作するわけでもない。
・自作したほうが高くつく。
・基板設計や安定した回路は売っている基板の方が実績がある。
・協力者が増える、開発や実験はユーザーでいろいろやって検証できる。
・使用は自己責任と謳って販売できる。
・楽しい。

ほかがオープンが多いから、そうでないと敬遠されますね。
なんかの基板作って売れたらいいな-とおもいました。

空飛ぶほうは、いろいろアイデアあって、次回でドローンのエンジン、モーターハイブリットを考えてみました。