Author Archive: yoshiaki

5GHz映像FPVのドローンを飛ばすまで 免許証、申請、免許状周辺の話。

この記事では、「FPV(First Person View)のドローンを飛ばしたい!!」という方向けに、どんなことが必要かを書いています。

私自身がゴーグルをつけたドローンレーサーに未来感を感じていろいろ調べ始めた中で、間違った情報や適当まとめサイト、アマゾンのレビュー上の情報などに混乱した経緯があるので、なるべく正しく書いていこうと思います。

そもそも、FPVドローンとはこの記事では、5.8GHz帯の電波を利用して映像を送受信して操作するドローンと定義します。
この5.8GHz帯の電波には、アマチュア無線4級以上の免許の他に、電波を送信するドローンに対して無線局の登録が必要になります。ドローンを操作するコントローラーとなるプロポの電波は、2.4GHz帯でこれについては免許や登録はいりません。(2.4GHzは、いわゆるWiFi電波帯)
また、映像を2.4GHz帯の電波で送受信することは可能ですが、FPVドローンとしては画像の遅延が発生するために操作不可能となります。この電波利用に関しては、200g以下などの条件は特に関係ありません。
これらのことを知った上で、アマゾンのドローンのレビューを見ると面白いです。
アマゾン「検索:ドローン」

ということで、FPVドローンレースをするには、アマチュア無線4級の資格と、使用するドローンに対して無線局の開局が必要です。

上記を踏まえてこの記事では、下記の順番でFPVドローンレーサーまでの道のりを記載します。

1、ドローンの種類を決める

FPVドローンを、Tiny Whoopなどの小さいドローンで始めるか、本格的なレースドローンで始めるかを決めます。私が一番時間がかかってしまったのはこれです。もちろん、どちらもFPVドローンなので免許と手続きが必要です。どっちがどっちでという説明よりも、動画を見てもらえれば一目瞭然なのでYouTubeを貼っておきます。
Tiny Whoop

レースドローン

Tiny Whoopは屋内でも飛ばせるので、首都圏でも広まりつつあります。レースドローンは200gの上限を超えてしまうのと、速度も170km/hを超える機体もあることから、広い河原や山や広い倉庫とかではないと飛ばせるところが限られます。
ただ、世界的にはレースドローンのイベントは賞金総額1億2千万円のドバイのレースや、今年は韓国レースに日本人が参加するなどの広まりを見せています。

【優勝】岡聖章 決勝飛行映像 | ジャパンドローンチャンピオンシップ in ハウステンボス FPVドローンレース部門

【世界最速】ドローン大会優勝者15歳のフライト【賞金1億1300万】

ちなみに、小型のFPVドローンには、下記のような撮影の可能性も秘められています。大型撮影ドローンにはできない撮影ができます。

オンナノコズ:”Onnanocos” × Micro Drone

で、決まったらドローン本体は早めに購入してください。ドローンについてくる送信機の系統図というものが、ドローンを総務省に申請する時に必要となります。

2、アマチュア無線4級を取得する

これはもうやるしかないです。資格取得には、下記の2通りあります。
・勉強をして試験に合格する。
・養成課程を受講する。
日本無線協会

試験に合格して取得を狙う場合は、テキスト過去問を勉強して受験となります。60〜70%くらいの合格率です。私は、テキストを勉強したのちに、過去問に取り組みましたが、理解より効率的な合格を狙うなら過去問のみで良いと思います。
わからないまま、答えだけ覚えても不安な方はテキストも学習すれば良いと思います。
ちなみに、過去問の中からほぼ丸っと同じ問題が出るので、内容は難しくても答えはわかるという状態になると思います。
私が購入したのは下記でした。2週間前からテキストをパラパラ読み始めて、途中から焦り始めて、半日x4日は勉強しました。焦った割には、問題がそのままだったので当日は大丈夫でした。
試験は、午前中にあり、1時間後には発表され免許の申請をその場で行えます。1〜2週間で免許が届きます。

3、総務省 電波利用 電子申請・届出システムLiteでいろいろする

まず、こちらの総務省 電波利用アマチュア無線4級の免許を受け取ったら電子申請・届出システムLiteで、新規ユーザー登録を済ませてください。
ユーザーIDが電子申請なのに郵送で届きます。割とすぐに。(1〜2日でした)

次に、このサイトで、無線局の開局申請を、途中までします。途中まで行うと、その履歴をzipファイルで自分のMacやPCに保存できます。
このzipファイルを使って、技術基準適合の保証書をゲットします。
JARD(一般財団法人 日本アマチュア無線振興協会)のサイトで、開局申請(途中)zipファイルを提出して、技術適合保証を受けます。

1週間くらいで、技術基準適合の保証書がメールでPDFファイルになって届くので、再度総務省 電波利用 電子申請・届出システムLiteにて、開局申請(途中)zipファイルをアップロードして途中から申請を再開します。
この時に、保証書のPDFファイルを追加ファイルとしてサイト上にアップロードして、申請を完了させます。

これで、2〜3週間待てば、ドローンから5.8GHzの映像を乗せた電波を発射できるようになります。

ちなみに、下記のようにMacで申請できるかチェックしてみたところできなそうな表示が出ますが、普通に最後までエラーなく進みました。
電波利用申請Macでも申請できました

LINEで送る
[`evernote` not found]
LinkedIn にシェア

【エラー】TypeError: (‘Keyword argument not understood:’, ‘data_format’)

TypeError: ('Keyword argument not understood:', 'data_format')

以前作成した画像分類機を起動したところ下記のエラーが出てしまった。

TypeError: ('Keyword argument not understood:', 'data_format')

この対処法を探してみると、
stackoverflowのサイトに同じエラーの投稿があった。
https://stackoverflow.com/questions/50830736/typeerror-keyword-argument-not-understood-data-format

Kerasのバージョン不一致によるエラーとのこと。解決策として、作成済みファイルを作った時のKerasと、このファイルを実行しようとしている時のKerasのバージョンを合わせることでエラーが解決するらしい。

リンク先のサイトでは、

$ pip install --upgrade keras

こちらの実行で、Kerasを最新版にアップグレードすることで解決するとのこと。
で、私の環境では、以前の実行しようとしているファイルを作成した時のKerasのバージョンが調べられず、作った日時はわかっていたので、その時の最新のKerasのバージョンを予測して、Kerasをインストールしなおしたがエラーは変わらず。

一応、Kerasのバージョンを遡って実行した方法を書きます。

Kerasのバージョン確認

$ pip list | grep Keras

Kerasをアンインストール

$ sudo pip uninstall keras

Kerasのバージョン指定してインストール

$ pip install keras==2.0.2
*PermissionError: [Errno 13] Permission denied:

で、拒否される場合は、

$ sudo pip install keras==2.0.2

と、

sudo

をつけて実行する。

他のライブラリのバージョン確認やインストールについては、
Python、TensorFlow周辺の環境設定まとめを参照。

結局、Pythonの環境を現在の最新のバージョンで作り直し、KerasやTensorflowなどをインストールして、以前のKerasを用いて作ったファイルを作り直した。その後、同じ実行環境で、画像分類機を実行したところ成功した。

このような、バージョン管理については、成功した環境を、

$ python -m pip freeze

これで書き出したあとに、.txtファイルに保存しておき、再現したいときに

$ python -m pip install -r requirements.txt

これを実行して一括インストールすることでうまくいくと思う。
このrequirements.txtの書き方は、

numpy==1.11.0
six==1.10.0

このように羅列する。

他にも似たようなエラーの投稿を見つけた。
こっちは、末尾の文字列が、data formatではなく、nb depthになっている。
https://stackoverflow.com/questions/44135232/keras-typeerror-keyword-argument-not-understood-nb-depth

この場合は、カーネルサイズを指定する必要があるとのこと。

# こっちはエラー
kernel_size=3
model = Sequential()
    model.add(Convolution3D(nb_filters[0], kernel_size,nb_depth=nb_conv[0], nb_row=nb_conv[0], 
    nb_col=nb_conv[0],input_shape=(1, img_rows, img_cols, patch_size), 
    activation='relu'))

「フィルタの数の直後にカーネルサイズを指定する必要があります。たとえば、次のようになります。」

# こっちが正しい。
kernel_size = 3
model.add(Convolution3D(nb_filters[0], kernel_size, nb_depth=nb_conv[0], nb_row=nb_conv[0], 
    nb_col=nb_conv[0],input_shape=(1, img_rows, img_cols, patch_size), 
    activation='relu'))
LINEで送る
[`evernote` not found]
LinkedIn にシェア

Python、TensorFlow周辺の環境設定まとめ

tensorflow

Environmentを有効化

$ source activate 自分で決めた環境名

例、$ source activate tf140

Pythonのバージョン確認

$ python --version

TensorFlowのバージョン確認

$ pip list | grep tensorflow

Kerasのバージョン確認

$ pip list | grep Keras

Kerasのバージョン指定してインストール

$ pip install keras==2.0.2
*PermissionError: [Errno 13] Permission denied:

で、拒否される場合は、

$ sudo pip install keras==2.0.2

と、

sudo

をつけて実行する。

最新版のKerasをインストール

$ pip install --upgrade keras

Kerasをアンインストール

$ sudo pip uninstall keras

現在どの環境で作業しているか調べる

$ conda info --envs

現在のpipバージョンを調べる

$ pip list

現在のPythonのバージョンを調べる

$ python -m pip -V

現在のパッケージのバージョンを調べる

$ python -m pip freeze

パッケージのインストール

$ python -m pip install パッケージの名前

*バージョン指定したいときは、パッケージの名前の後に==バージョン
例、

$ python -m pip install numpy==1.11.0

パッケージのアンイントール

$ python -m pip uninstall パッケージの名前

pipで一括インストール

$ python -m pip install -r requirements.txt

*requirements.txtの書き方。
numpy==1.11.0
six==1.10.0
(成功したテスト時のバージョンを記録しておくと再現性が高まる。上記のパッケージのバージョンを調べる

freeze

で書き出して残しておけばOK)

ディレクトリの指定

$ cd /ディレクトリ

ディレクトリの中身の確認

$ ls

Tensorflowのインストール

$ pip3 install --upgrade tensorflow 
LINEで送る
[`evernote` not found]
LinkedIn にシェア

Flaskで OSError: [Errno 48] Address already in use が表示された時の対処法。

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Flaskで

$ python -m flask run

を実行したら、下記のようなエラーが出てしまいました。

OSError: [Errno 48] Address already in use

 

解決策は、該当のprocessIDをオフにすれば良いらしいです。
まず、processIDを下記のコマンドで調べます。

$ lsof -i :5000 | grep python

*5000の部分は、http://127.0.0.1:5000/の5000を開きたい場合は、5000を記述します。他の数列の場合は、それに置き換えてコマンドを実行してください。

このコマンドを入力すると、

OSError: [Errno 48] Address already in use

このように、processIDを調べることができます。調べた数列を、下記のコマンドのprocessIDの部分と置き換えて入力するとオフにすることができます。

$ kill processID

例、

$ kill 1299

 

killコマンドがちょっと怖いですが、思い切ってやってみたら解決しました。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Deep Learning(深層学習)で画像分類機を作成 その3

前回の「Deep Learning(深層学習)で画像分類機を作成 その3」でAnacondaを準備し、EnvironmentsにTensorFlowをインストールしました。

PythonやAnacondaをすでにインストールしている場合は、余程メモをつけたり記憶力がよくないと、色々やっているうちにどの環境に何をインストールしたかわからなくなることもあります。

そんなときは、ターミナルから

$ conda info --envs

を打ってみましょう。Anacondaの他にも過去に設定したことのあるディストリビューションも一覧できます。
ここで現在の環境は、環境名とディレクトリの間に「*」が表示されています。

 

で、この表示の中から、前回使用した環境を選んでアクティベートします。

$ source activate xxx

xxxは前回の「tf140」を選択したい場合は、

$ source activate tf140

とコマンド入力を行えば、その環境に切り替わります。

*Windowsの場合は、

$ activate xxx

と、

source

は不要です。

 

また、AnacondaやPythonのバージョンをアップデートしたい場合は、

$ conda update conda
$ conda update --all
$ conda update python

など、それぞれ必要に応じて行います。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Deep Learning(深層学習)で画像分類機を作成 その2

Anaconda

今回は、AnacondaでTensorFlowを開発するための環境設定を行います。

Anacondaのインストールが完了して開くと、Anaconda Navigatorのホーム画面が表示されます。

Anaconda Environments

次に、Environmentsを開き、環境を設定します。下方にあるCreateのアイコンをクリックしてください。

Environments Create

環境を作るため、Nameにわかりやすい名前(今回はTensorFlowのバージョン1.4.0を使用するためtf140と入力します)、PackagesはPythonにチェックを入れて、バージョンを選択します。今回は、3.6にします。(*Pythonは2系と3系で互換性がないため、書籍やウェブを参考に開発を進めるときは、このバージョンが何で開発されているかに注意が必要です。)

設定が終わったら、Createをクリックすると新しいEnvironmentsが1つ追加されます。少し時間がかかるので待ちましょう。

Anaconda Environments

Environmentsが追加されたら、▶︎のアイコンをクリックします。

Open Terminal

そうすると、上記のポップアップが開くので、Open Terminalをクリックします。

 

Terminal

ターミナルが開き、最後の行を確認すると先ほどEnvironmentsの設定でNameに入力した文字列が丸括弧の中に表示されています。(tf140)

$ pip install tensorflow

もし、pipが最新版じゃない場合は、

$ pip install --upgrade pip

でアップグレードできます。ここで、TensorFlowがインストールできたかどうかを確認するため、

$ python

とコマンドを打ち、Enterを押します。
すると、Pythonの対話的な実行環境に入ることができます。

>>>

とコマンドラインが出るので

import tensorflow

と入力します。

>>>

しばらくして、このようにコマンドラインが表示され入力待ちの状態になれば、tensorflowのインストールは完了です。

exit()

と入力して Pythonを終了し、次に

exit

と入力しコマンドプロンプトを終了します。

以上で、開発の準備が完了です。

 

再開するときは、AnacondaのEnvironmentsから、該当のEnvironmentを開きOpen Terminalを選択し、Terminal上で

$ python

とコマンドすることで再開できます。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Deep Learning(深層学習)で画像分類機を作成 その1

https://www.anaconda.com

Deep Learningで、画像分類機を作ります。
そのために、Python、TensorFlowやKerasライブラリを用いて機械学習の方法を導入します。

まず、準備編としてAnacondaを導入します。Anacondaの導入は、anaconda.prgサイトからダウンロードして行います。MacもWindowsも他のOSのバージョンもあります。

AnacondaとはPythonのディストリビューションで、簡単に言えばPythonとその周辺の付随機能を使いやすくまとめたアプリと考えるとわかりやすいと思います。ややこしくて理解が難しい場合は、上記でPythonを用いての部分をAnacondaを用いてに替えて理解しても大丈夫です。

AI(人工知能、機械学習)を使用し開発・分析などをするにあたって、OSS(オープンソースソフトウェア)のライブラリであるTensorFlowを使用したいと行き着いたら、自然とまずはPythonを使ってみようかというのが私の場合でした。

Pythonをそのまま単独で使うと、バージョン管理やOS環境の管理に苦労してなかなか開発が進まなかったりするということが起こります。(*しょっぱなから苦労しました)

そこで、様々なライブラリやバージョンを管理しながら、Mac、LinuxやWindowsも使用できるAnacondaを利用するという選択肢が出てくるのです。

Anacondaのダウンロード、インストールはとても簡単なので、まずは自分のOSに合うAnacondaを準備してください。

次回は、画像分類をするための解説を記事にします。

 

 

LINEで送る
[`evernote` not found]
LinkedIn にシェア

MBAを卒業し中小企業診断士1年目を振り返る。その2

language Exchange

MBAを卒業し中小企業診断士1年目を振り返る。その1

の続きです。

昨年(2017年)1〜2月に申請書に取り掛かり、受託した調査事業について、こちらもどのように依頼を受けたかという話についてです。

これは、本当にたまたま

  • ある企業Aが「業務が煩雑なので受発注システムを入れて省力化したい」という要望を受けていた。
  • 大学院の先生に「IT導入補助金についての質問」をこちらからしていた。
  • あるITベンダーのB社に、システムについての質問をしていた。

上記は私が動いていたことだけど、A社側からもB社の受発注システムについてすでに説明を受け、資料をもらっていました。また、大学院の教授は調査事業について、私にやってみないかと提案があり、B社にも同様の提案をしていました。そして、A社、B社もともに繋がっていたため、自分の会社はアドバイザーとして、この2社とともにコンソーシアムを組み調査事業に申請することになったのです。

偶然が重なり、運命のようなものを感じて、これは絶対やってみたいという気持ちになり、かなり力を入れて申請書を作成した。

 

どのようにしたら、調査事業に参画できるかについては、

  • 各方面に資格ややってみたいことについて言って回る
  • フットワークの軽いベンダーと知り合いになっておく(HPから質問するだけでもいいと思う)
  • 経産省やITコーディネータ協会のようなところに属する先生と予定のある事業について聞いてみる

こんなことをすると、調査事業に参画できるかもしれない。

また、調査事業とはどんなものかは、それぞれ違うと思うけど、私の経験した中で印象的だったもののうち大変だったのは、業務日誌などの記録が大変、事前に立てたスケジュール通り進まなくても超過した分は費用が出ない、プロジェクト期間中は費用は一旦持ち出し、かと思う。

日誌については、当たり前かもしれないけど事細かに記録したし、スケジュールについてはいろんな調整で超過した。プロジェクト費用は特に、今回はグローバルなプロジェクトだったこともあり、飛行機代などできつかった。人件費(小さい企業なら自分の給料)がプロジェクト終了後に入るので、幾らかは会社に貯めておかないと受託後にキャッシュがなくなる。

と、まあ、上記に書いたネガティブ部分以上の得るものがあったのは言うまでもない。

 

そもそも、補助金の申請サポートやコンサルティングについても、実績紹介に書きにくい業態であるため、このような公的でさらに国の公開資料に乗ること自体が駆け出し中小企業診断士に取っては信用力の面で大きなメリットになります。実際に、プロジェクトの推進能力は一気に向上すると思います。

特に海外でのやり取りや、今回特に離島に近い僻地に出向いて行ったプロジェクトだったため、フライトの遅延に伴う乗り継ぎ不能時の対処については、プロジェクト外だけどサバイバル能力がついたと思います。非英語圏でのチケット取り直し、払い戻し請求や、急な夜中のホテルの手配など一人取り残されて、PCのバッテリーが少ない中で行うという感じ。。

実際のプロジェクトの推進については、簡単に言えばプロマネ的や、まさにITコーディネータ的なことがメインとなっていました。

 

で、話はかわり、この1年間の間にも国(経産省)の方向性がかなりITやコネクテッド・インダストリーに傾いてきたと感じています。

 

ドイツのIndustry4.0、日本のSociety 5.0、経産省のコネクテッド・インダストリーと国が方向性を指し示す中で、AI、Iot、ビッグデータの活用、ドローン、ロボットなどがすでに社会に浸透し始めていて、その技術の境界がなくなり始めていると感じています。

よく目に入るITサービスは次々とAPIなどで連携が可能となり、さらにそれを簡単にするプラグインが出たり、IFTTTなどのサービスで自動化ができたり、バックグラウンドが非IT系だとしても応用可能なサービスが増えたように思えます。

 

また、これらIT系の知識や、コミュニケーションのための英語も必要な場面が多々ありました。これも偶然ですが、米国人の友人や他海外の友人がたくさんできた一年でもありました。

英語を勉強し直すためにも、海外の友達とIT系のテーマでLanguage Exchangeの合宿をしようかと思っています。興味のある方は教えてください。

 

ということで、内容がバッラバラになってしまいましたが、1年くらいぶりのブログでした。

この1年はITと英語を頑張ろうと思っています。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

MBAを卒業し中小企業診断士1年目を振り返る。その1

MBAとは 卒業

現在2018年3月末に差し掛かるところ。
ちょうど去年の今頃、MBAを卒業して中小企業診断士の資格を取得しようという頃でした。

 

で、このブログも1年ほど放置状態になってしまい、その間何があったかを書こうと思います。つまり、中小企業診断士1年目でどんなことをして、どんな風になっているかの指標になればと思い書きます。

 

去年の最後の実習と卒業論文の真っ只中で、ものづくり補助金と経済産業省中小企業庁の調査事業の申請を1月、2月と依頼され受託を目指して資料集めや申請書作成をしていました。

自分の会社としても初めての国家プロジェクト参画なので、とにかく精一杯に書いたつもりでした。

 

さて、中小企業診断士1年目の方に向けてという意味合いで考えると、どうやってそのような補助金や調査事業への依頼を受けたかを知りたくなると思います。

 

まず、ものづくり補助金の申請書の依頼について、こちらは「中小企業診断士になります!」と各方面に行くたびに言っていたのが功を奏し、ある会社の社長から「あるシステムを入れたいのだけど、その費用を補助金などでどうにかならないか?」という質問がきたことがきっかけです。

 

たまたま、その社長が中小企業診断士というものがどういうものか知っていたから「補助金」「助成金」のサポートというキーワードに繋がったのかと思いますが、本来ならもう少し中小企業診断士と、そのサポート(サービス)内容を紐づけて宣伝した方がいいかもしれません。

 

そして、その会社の事業内容から商品・サービス、経営環境などを学びながら、現状の成長性や当該システムを導入した時の変化などをシミュレートして申請書を作成しました。

結果、無事受託され中小企業診断士の免許を受け取る前から一つの仕事に携わることができました。

 

次に、昨年1〜2月に申請書に取り掛かり、受託した調査事業について

続く

 

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Gmailで外部メールの送受信設定を行う。(さくらインターネットの場合)その2

さくらインターネットでGmail送受信設定

Gmailで外部メールの送受信設定を行う。(さくらインターネットの場合)その1

の続きです。

その1で準備した

  1. 送信サーバ これは、初期ドメイン名と同じです。 例 xxx.sakura.ne.jp
  2. アカウント これは、メールアドレスです。例 ○○○@xxx.jp
  3. メールパスワード これは、さくらインターネットで設定したメールパスワードです。 例 任意の文字列

を用います。

まず、Gmailの画面の右上にある、下記の設定アイコンをクリック

さくらインターネットでGmail送受信設定

 

設定画面で、下記のアカウントとインポートタブをクリックし、画面の真ん中あたりまでスクロールして、他のメールアドレスを追加をクリックしてください。

さくらインターネットでGmail送受信設定

 

すると、次のポップアップ画面が表示され設定ができるようになります。

さくらインターネットでGmail送受信設定

①名前:ここはなんでも大丈夫です。ご自分の名前や担当者としての名前などを入力しましょう。例、〇〇部 部長 xxx、代表取締役 ooo 等

②メールアドレス:ここには、先ほど設定したメールアドレスを入力してください。↓の青文字で準備したメールアドレスです。

2:アカウント これは、メールアドレスです。例 ○○○@xxx.jp

③入力が終わったら、次のステップ>>をクリック

 

下記の画面に切り替わったら、それぞれのデータを入力していきます。

さくらインターネットでGmail送受信設定

すでに準備した3つのデータを入力していきます。
上記のは、それぞれ、下記の1. 2. 3. に対応していますので、そのまま入力し、④アカウントを追加>>をクリック。

  1. 送信サーバ これは、初期ドメイン名と同じです。 例 xxx.sakura.ne.jp
  2. アカウント これは、メールアドレスです。例 ○○○@xxx.jp
  3. メールパスワード これは、さくらインターネットで設定したメールパスワードです。 例 任意の文字列

最後に、下記の画面に切り替わるので、その1で転送設定したGmailアドレスに確認コードが記載されてメールが届いているかご確認ください。

(*Gmailで受信しても、迷惑メールフォルダに入っていることもあります。)

さくらインターネットでGmail送受信設定

メールが確認できたら、記載のリンクをクリックして認証するか、コードを下記の画面に従って入力→確認を行ってください。

 

最後に、Gmailの新規メール作成で、Fromのところにあるをクリックして、送信アドレスが追加されているか確認してください。

 

以上で終了です。お疲れ様でした。

この記事が役に立ったら、共有してくださいね!

LINEで送る
[`evernote` not found]
LinkedIn にシェア