GPSのデータをGPSBabelでGoogle Earth用に変換

ぐろーばるぽじしょにんぐしすてむ

 

電子工作的にGPSのデータ列を文字列で得た時にGoogle Earthで見るための方法のメモです。

電子工作としてGPSモジュール買ってくるとNMEA0183フォーマットというセンテンスでデータ列を得ることが多いです。個人的には最近はu-bloxのrawデータの方が多いですけど・・・

データを得てもグラフィカルに表示できないとGPSの良さが出てこないので、Google Earthなどに表示させたいですよね。

多くのセンテンスが出力されているときはGoogle Earthの[ツール]→[GPS]からファイルからインポートをすればいいですが、$GPGGAなどのセンテンスだけを出力させているときはうまく表示出来ません。

そんなときは、GPSBabelというGPSデータ列の変換ソフトを使うとうまくいきます。

$GPGGAのセンテンスだけがあるテキストファイルを用意。ここでは拡張子を.nmeaにしてます。

GPSBabelを起動します。

上段のFormatからNMEA0183を探します。(ここで如何に変換形式が豊富かよくわかる)

変換するファイルを選択。ここでOptionで

Read/Write GPGGA sentences、Conplete data~~~~にチェックマークを入れてデータを取った日付を入れます。例えば「2013年8月2日」なら「20130802」とか。他のチェックマークはお好きな様に。

Outputのところでフォーマットを「Google Earth (Keyhole) Markup Language」にして、出力したいファイル名を入れておきます。

Outputのオプションはお好きなようにだが、「Altitude are absolute~~~~」にチャックを入れないと高度方向に移動した時に地面にベッタリ張り付いた情報になってしまうのでチェックマークを入れます。

 

そして「適応」を押すとkmlファイルが作られるので、Google Earthがインストールされていれば、ダブルクリックでGPSデータが表示。

ここに出しているのは缶サット甲子園2013でMini-CAMUIロケットに載せてもらったGPSのデータ。植松電機の敷地内から高度100m程度打ち上げられていることが見て取れます。

KMLファイルという形式にしてしまえば、スマートフォンにデータを移してスマホのGoogle Earthで表示出来たりで、旅行でも何かにロガーを乗っけたデータでも人に見せられるようなデータにすることが出来ます。

(高校生向けに書いたけど、高校生はこのブログにはたどり着かないよなぁ・・・)

社会人になって2ヶ月

学生終えて、2ヶ月でバタバタしてました。色んなスピードが早いのですごく楽しいです。

渋谷のFabcafeという場所でロケット☆メイカーズという堀江さんやプラネタリウムの大平さんやロボット作っている高橋さんと一緒にトークイベントでやってたり

ニコニコ生放送 ロケット☆メイカーズ

ロケット☆メイカーズ トークショー@FabCafe渋谷

ハフィントン・ポストというネットメディアで堀江さんの連載の中身になってたり

ハフィントン・ポストロケット開発日誌

あとは大学にいた頃より自由に楽しくやってる感じです。お金の余裕も出ますし。良い事尽くめですね。そろそろ製作的にも面白くなってきそうです。

↓かわいいアイコンを書いてもらいました。うれしい。

就職しました。

就職しました。すごく迷惑を掛ける形での就職になって申し訳ありません。

何かの形で返せるように頑張ります。

Inaprop -プロペラ設計・解析ソフト- 紹介

Inapropというソフトを作りました.
β版という扱いですが,ある程度使えると思うので公開します.
β版ということでまだまだ自分でも確認しているバグもあります.エラーが起こったら報告していただければ幸いです.

Inapropリポジトリのexeファイル置き場

のView Rawからダウンロードしてもらうのが最新版です.

追記2014/08/11

英語での紹介ページを作りました。右上から日本語にも飛べます。

http://inaprop.ina111.org/

 

概要

Inapropは低レイノルズ数領域,具体的には人力飛行機や飛行船などの領域で使うプロペラを設計できるソフトです.低レイノルズ数という言い方は不適当で低円盤荷重という方が適当かもしれません.

exeファイルで公開していますので,インストールの必要はありません.
Windows専用です.Windows Vista,7での動作は確認していますが,他の環境は確認していません.

まだ機能を充実させていないので,正確な値は出力しません.人力飛行機でのおおよその値を見るのには使えます.特に低レイノルズ数領域でのDAE51という翼型の揚力係数以外の翼型の性能を反映させていない部分が致命的です.また,プロペラのような回転体において2次元翼型の性能と実際のプロペラの翼型性能はある程度の誤差があることが報告されていることも留意が必要です.
翼型データが固まっていないのでピッチ角(グラフでphi)の値は信用しないで下さい.ここは優先的に修正したいと思っています.
応援されれば機能追加する予定ですw

ちゃんとした機能のものが必要な場合,XROTORというソフトをオススメしています.

機能

  • 3つの設計手法に対応
  • 最小全損失のプロペラの設計手法(渦法)
  • 最小誘導損失のプロペラの設計手法(Larrabeeの手法,Adkins & Liebeckの手法)
  • 設計したプロペラのパラメータ変更時の解析
  • 複数プロペラの比較
  • 設計プロペラのCSV形式出力

必要なもの

Microsoftの.Net Framework 4が必要になります.

覚書

渦法(vortex method)においてはプロペラの渦法の論文も出されている原田さんから教わったことを元にしています.一般にはオープンになっていませんが,原田さんにコンタクトを取れば頂けるMatlabプログラムであるHiyokoPropをC#に書き直しているものです.このMatlabプログラムが非常にわかりやすく,勉強になるものになっています.
Larrabee method, Adkins & Liebeck methodについては該当論文を参考にプログラムに書き下しています.
渦法では計算時間がかかるのは損失最小のプロペラを計算するのに大域最適化問題を解くためにシミュレーテッドアニーリング法を使用しているからです.計算時間を考えて分割点が少ない上に収束条件が甘く設定しているのでガタガタになりますが,何度かやるとたまにいい結果が出ます.
Larrabee methodの方では誘導損失最小となるプロペラ条件を仮定していることから収束計算が無く,一瞬で計算が終わります.

ファーストリリース現在,解析の部分と翼型の性能を計算結果に反映させる機能をGUIと結びつけていません.テストが十分でないためです.今年の秋頃に時間があれば作り直します.

ライセンス

深く考えているわけではありませんが,MITライセンスに従います.
無償,無保証,利用/改造/再配布OK,著作権表示義務あり,二次利用においてソース公開義務なし,二次利用においてライセンス変更OK

リンク

最新版のソースはここに置いています.理論面ではここのRefarenceの論文集を参考になるかと思います.私の文章より紹介している論文を読むのが理解の近道です.

XROTOR周りの話は参考になると思います.

ソフトの立ち位置と利用場面をよく理解して,素敵に紹介してもらっています.

 

 

人力飛行機の主翼設計を銀本より良くするたった一つの方法

タイトルは流行りの煽り文句です.9割嘘です.自分で書いてイライラしますね.

下にも同じリンク貼ってるけど,今回作ったプログラム

プログラム:https://gist.github.com/ina111/5053876

解説:https://gist.github.com/ina111/5053903

(追記)pythonで書き直しました。こちらの方が現代では使いやすいと思います。

https://gist.github.com/ina111/f0cedfb1c9e9055af72f8af26f31daca

(追記終わり)

鳥人間関係で面白いネタを教えてもらったので,議論するのもなんなのでサクッと作ってみました.

人力飛行機など(効率重視の飛行機ならなんでも)の主翼の設計をする時の話です.

まえがき

飛行機を低出力で飛ばすためには揚抗比というのが大事になります.揚力の大きさに対しての抗力を小さくしろってことです.人力飛行機では抗力の中でも誘導抗力というものが全体の1/3もあります.これは翼の上下面で圧力差が出来ることから翼端で渦発生し,その生成エネルギーで消費されるものです.

この誘導抗力を最小にする主翼の平面形というのは航空力学の教科書に載っています.それが楕円循環分布と呼ばれる.揚力の分布が楕円状になるものです.昔の航空機で主翼の平面形が楕円形になっているものがあったりします.循環っていうのは揚力や誘導抗力などを上手く数式で表せる便利なやつです.

主翼の設計方法

十分な揚力が得られる翼面積を保ちつつ,誘導抗力が小さくなるように楕円循環分布に従うように主翼の平面形を決めていきます.

教科書に書いてるこの方法が,イケテナイです.

楕円循環分布は揚力とスパン幅が一定の場合の誘導抗力が最小の循環分布です.つまり,空力面だけでの最適な形です.

空力だけではなく構造も含めて最適な主翼が設計したいなら曲げモーメントと誘導抗力を同時に制限して最適問題を解かないといけません.

そのことを書いた論文がR.T.JonesのNACA(NASAの前身)のテクニカルノート(TN-2249,”The spanwise disribution of lift for minimum induced drag of wings having a given lift and a given bending moment”)です.これは平面翼について解析的に書いてあります.

これを非平面翼で数値計算で解いて日本語で書いてあるのが浅井先生のNAL(JAXAの前身)のテクニカルレポート(TR-797,”非平面翼の最適設計-揚力と翼根曲げモーメントを与えた時の最小誘導抵抗-“)です.

プログラム

このTR-797をMatlab(Octave)で実装してみました.200行程度だったのでGithubのサービスの中のGistを使ってみました.詳しくは論文と下の解説を読んで下さい.論文を読んで下さい(大事なので2回)

プログラム:https://gist.github.com/ina111/5053876

解説:https://gist.github.com/ina111/5053903

プログラム中のbetaの値を0.9にしています.これは翼根での曲げモーメントを楕円循環分布での値から0.9倍にした制限をかけた時の誘導抗力が最小になる揚力の分布が以下になります.

翼根のあたりでより多くの揚力がが必要な分布になっています.

この条件(Gistに載せているデフォルトの条件)のときはbeta=0.9で飛行効率0.92となりました.だいたい1[N]ぐらいの違いでしょうか.この違いが構造重量で吸収できるようなら,楕円循環分布を捨てて,こちらの循環分布を用いるべきなことがわかります.

実際は構造を上手く攻めたり,できるかどうか,あと複数パラメータ振ってみての比較をするかどうかで,採用できるかどうか変わってくるかと思います.

感想

揚力線理論なプログラムは組んだこと合ったけど,渦格子法っぽいプログラムは初めて組んだので,これで人力飛行機なプログラムはかなり満足しました.やり残したことキチンと無くして社会人になりたいですね.