簡易的にMATLABからSlackに通知する

はじめに

みんな大好きMATLABをぶん回してると,いつ終わったのか通知が欲しいってなります.

TwitterにしようとしたけどSlackのほうが慣れてるのでSlackで実装しました.

実装

webwrite(url,'{"text": "送信したいメッセージ"}')

これだけです.めっちゃ楽!!!!

urlはslack apiのWebhookのやつです.

後半はJSONに従って書けばいいので,text以外にもいろいろ指定できます.

参考

qiita.com

この記事を参考にしました.

正直まんま使えばいいじゃんって感じですが,webwrite関数使うならもっと簡単にわかりやすく書きたかったので必要最低限だけ書きました.

Webhookのurl取得のときに送信先channel選択するから,webwriteのときにchannel指定しているメリットがよくわかりませんが,僕の勉強不足かな?

とにかく,標準関数でぽんと送れてよかった.

slack apiで画像アップロードの落とし穴

f:id:anbalioh:20170609150021p:plain

 

なんかぱぱっと作れる監視システムが欲しかったので,python+opencv+slackで実装してみました.

 

下記の記事を参考に,apiを叩きましたが,アップロードできませんでした.

qiita.com

 

調べてみると,どうやらAPPに権限が必要で,設定してあげなきゃっぽいです.

 

「Permission Scopes」に「Upload and modify files as user」を追加します.

こんな感じ.

f:id:anbalioh:20170609145908p:plain

 

これで画像をアップロードできました!

ps2epsiでepsを吐いてくれるpythonスクリプト+exe

 

spaghetti.hatenablog.com

 

今日書いたばっかりのこの記事の続きです.

 

ps2epsiは今のところ不具合がないのでps2epsはやめてこっちに移行しようと思います.

 

コマンドラインでprnをepsに吐けるようになったらあとはスクリプト化するだけ.

ということでpythonで作りました.

 

なんでわざわざフルパス取得してるの~?って感じですが,配布用にこのpythonをexeに変換したくて,その副産物です.

python prn2epsi.py」で実行するだけなら相対パスで問題ありません.

 

pythonから生成したexeはDropBoxで配布しています.

www.dropbox.com

 

必要条件ですが,

  • Ghostscriptのインストー
  • Ghostscriptのbinとlibにパスを通す(ps2epsiを使えるようにするため)

です.GSView使っていればGhostscriptは入っているのでパスと通すだけです.

binとlibは「Program Files\gs\gs9.21\」にあります.

 

肝心の使い方ですが,

┗フォルダー
  ┣ prn2eps.exe
  ┣ ps
   ┃ ┗ prnファイル
  ┗eps

 って感じに配置してもらって,psファイルに変換したいprnファイルを入れて,exeを実行すればepsフォルダに生成されます.

なんでprnってフォルダにしないの?という疑問には知恵袋で解決してください(笑)

なぜWindowsで「prn」というファイルは作れないのですか? - Windo... - Yahoo!知恵袋

 

 

exeの動作は2台のPCでしか確認してないんでまだ怪しいかもしれませんので問題があったら連絡お願いします.

ps2epsでBounding Boxがうまく変わらないときの対処

PowerPoint から TeX 用の EPS ファイルを生成する方法 – ソフトウェア開発日記


パワポで作った図とかExcelで作ったグラフをTeXに貼る際,このリンクのようにEPSを保存すると思います.



でも,

GSViewで「PS to EPS」するのめんどくさい!!!

ってなりますよね.



で,スプリクトを作るためにコマンドプロンプトから同じことをやろうとすると「ps2eps」に出会うわけです.

ps2epsはTeXLive2016に同封されているので別途入れる必要はないです.

使い方は,

ps2eps -f -B {ファイル名}.prn

です.

オプションの-fは上書き保存,-BはBounding Boxのオプションです.

オプションはなくても大丈夫ですが,一応...



本来ならこの使い方でBounding Boxがいい感じに変更されるんですけど,変化しない場合もあるんですよ.

僕の場合ですけど,ノートPCの方はps2epsで成功するけど,デスクトップは失敗します.

TeXLiveのバージョンかなあ?



それで失敗する対策として,「ps2epsi」っていうのがGhostscriptに同封されています.

使う前にbinとlibにパスを通します.
使い方は

ps2epsi {変換前のファイル名}.prn {変換後のファイル名}.eps

です.



これでps2epsでBounding Boxがうまく変わらなくてもなんとかできるようになりました.

2017年度やりたいこと

めっちゃいまさらですが、2017年度にやりたいことです。

 

Pythonの無限の可能性に挑戦する

そのままです。

Pythonでどこまで遊べるか、、、遊び倒したいです。

 

RCJ世界で優勝する

今年はルールの変わり目なので、目標としては悪くないと信じてます。

まだロボット作ってないのがやばい。

 

プロコンに出る

今週末に予選資料提出開始なんですが、まだ何も書いてません()

 

論文を書く

まあ5年生なので絶対書かなきゃいけないんですけど、評価されるような論文を書くっていうことです。

Windows10でChainer+CUDA8.0のメモ

Windows10でChainer+CUDA8.0を安定して導入できるようになったので,その備忘録です.

Anacondaのインストー

下記サイトよりダウンロードしてインストールします.

Download Anaconda Now! | Continuum

インストールの最後に「パスを追加する」があるのでチェックを付けます.

(インストラーでパスを追加すると失敗すると聞いたことがありますが,僕自身なったことはないです)

ああ,僕はpython3.6マンです.

Chainerのインストー

コマンドプロンプト

pip install chainer

を実行し,chainerをインストールします.

Chainerの確認

GPU処理を実装する前に,Chainerの動作確認をしておきます.

GitHubからChainerをZIPでダウンロードします.

GitHub - pfnet/chainer: A flexible framework of neural networks for deep learning

ZIPを解凍したら「\examples\mnist」をコマンドプロンプトで開きます.

そこで,

python train_mnist.py

と入力し,サンプルを実行します.

20回頑張ってくれたら成功です.(30分程かかった気がする)

VisualStudio2015のツールボックスのインストー

C++ツールボックスが必要なので,ダウンロードします.

別にVS本体は必要ないので,このリンクとても優秀だと思います.

Download the Visual C++ Build Tools (standalone C++ compiler, libraries and tools)

インストールする際に,詳細インストールを選択し,Windows10 SDKにチェックを入れてください.

これがほしいのに,標準だとチェックが抜けています.

CUDA8.0のインストー

NVIDEA様よりCUDA8.0をダウンロードします.

CUDA Toolkit | NVIDIA Developer


(オプション)cuDNNのインストー

ニューラルネットをいい感じに処理してくれるっぽいのであると便利です.

NVIDEA Developer Membership(無料)に登録する必要があります.

NVIDIA cuDNN | NVIDIA Developer

インストール方法はダウンロードすると出てくるけど,CUDAのプログラムファイルにコピーするだけ.

nvccのパスを通す

環境変数「PATH」にパスを追加

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

環境変数「INCLUDE」にパスを追加

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt

「10.0.10240」は適当に読み替えてください.

Chainerの再インストー

一回アンインストールしないとGPUを認識しません.

pip uninstall chainer

でアンインストールします.

pip install chainer --no-cache-dir -vvvv

で再インストールします.

再起動

再起動しないとエラーが出ます.

Chainer+CUDAの確認

先程のchainerの確認にオプション「-g 0」をつけるとGPUが有効になります.

つまり,

python train_mnist.py -g 0

ってことです.

うまくいかなかったら再起動してみてください.

感想

Win10でChainer+CUDA8.0ってめちゃくちゃ情報多いのに,沼にハマったのであんばら流ということでまとめました(笑)

特にVisualStudio2015周りは闇でした...

RCJの無線のルールが変わるっぽい

RCJ関係の記事です.

(タイトル見りゃわかる)

 

TWELITEという無線モジュールがあります.

mono-wireless.com

 

これを使おうと思って仕入れたんですが,1つ問題が...

f:id:anbalioh:20170429223841p:plain

 

昔からずっとですが,ロボット2台の無線通信は「Bluetooth」or「ZigBee」しか使えないんです.

 

しかし,TWELITEは「IEEE802.15.4準拠」としか書いてなくて,ZigBeeプロトタイプじゃないっぽい.

無線詳しくないけど,とにかくダメそう...

 

と思いましたが,今年からできたRCJForumでこんなやりとりが.

f:id:anbalioh:20170429224959p:plain

junior.forum.robocup.org

 

 おお,つまりはTWELITEもOKってことか!?!?

 

といっても不安なので,このフォーラムのリプでTWELITEも使えるか質問しました.

 

来年から無線を考えている方は参考に!