【OF】Play movie with Alpha.

ofxGStreamer can play movie with alpha.

it doesn’t contain code.  only setting.

need to install gstreamer.

check under site.

https://github.com/arturoc/ofxGStreamer

 

#include "ofApp.h"

#include "ofGstVideoPlayer.h"

//--------------------------------------------------------------
void ofApp::setup(){

    player.setPlayer(ofPtr<ofGstVideoPlayer>(new ofGstVideoPlayer));
    player.setPixelFormat(OF_PIXELS_BGRA);
    player.loadMovie("alpha.mov");
    player.play();
}

//--------------------------------------------------------------
void ofApp::update(){

    player.update();

}

//--------------------------------------------------------------
void ofApp::draw(){

    ofBackground(255,0,0);
	player.draw(0,0);

}

//--------------------------------------------------------------
void ofApp::keyPressed(int key){

    if(key==0x31){
        player.loadMovie("alpha.mov");
        player.play();
    }
    else if(key==0x32){
        player.stop();
        player.close();
    }

}
#pragma once

#include "ofMain.h"

class ofApp : public ofBaseApp{

	public:
		void setup();
		void update();
		void draw();

		void keyPressed(int key);
		void keyReleased(int key);
		void mouseMoved(int x, int y );
		void mouseDragged(int x, int y, int button);
		void mousePressed(int x, int y, int button);
		void mouseReleased(int x, int y, int button);
		void mouseEntered(int x, int y);
		void mouseExited(int x, int y);
		void windowResized(int w, int h);
		void dragEvent(ofDragInfo dragInfo);
		void gotMessage(ofMessage msg);
		
    ofVideoPlayer player;

};

 

 

REACH RTK

RTK(リアルタイムキネマティック)はDGPS(Diifferential GPS)の一種で、位置の分かっている基準局(ベース)が発信する補正データを利用してGPS計測結果の誤差を修正して精度を高める技術です。

下記参考:http://www.emlid.com/navio-rtklib/

 

EMLIDのREACH RTKを二つ用意します。

春ぐらいに注文して、最近やっと届いたやつです。

いつも、届くのにすごく時間がかかるからすごく不安になりますが今回もちゃんと届きました。

reach

 

 

一つは、ベース用(固定局)でもう一つはローバー用(移動局)です。

【設定編】

1. REACHにUSB電源接続
2. アンテナをReadchのMCXソケットに接続
3. Reachは、最初 WiFi-hotspotモードになっている。
PCなどからWifiのreadh:66:acのようなアクセスポイントに接続する。
パスワードは、「 emlidreach 」

4. ブラウザから下記にアクセスして、Reachのデバイスネームと、
接続するWifi Networkを設定する。

http://reach.local:5000
または、
http://192.168.42.1:5000

5. どこかWifiに接続するようにした時にデバイスのIPがわからなくなるので、
FingなどのIP検索アプリケーションで端末を探せるにしておくとよい。

今回、ベースを 「 mk_station1」ローバーを「 mk_rover1」にしたので、

ブラウザから下記を入力するとReachView App(ブラウザアプリ)が見れます。

http://mk_station1.local/

http://mk_rover1.local/

このときPCもReachと同じWiFiネットワークに繋がっている必要があります。

 

【使い方編】

ReachView App(ブラウザアプリ)を使い設定を行います。
ReachViewには、3つのタブがあります。
Status / Config / Logs
Configタブには、RTKのパラメータ(位置検出モード等)を設定する。
Logsタブには、ログのrawデータのlinkがある。

※最初にLogタブからUpdateして、最新版にします。

 

【Configタブ】

Reachにはベースステーション、ローバーの動作モードがあります。
デフォルトでは、Reachはローバーとして設定されています。
ベースステーションは固定局で補正データを送るものです。固定して動かしません。

こちらにはあらかじめ設置場所の緯度経度高度情報をいれておきます。
また補正データのメッセージフォーマットや、送信インターフェース(TCP/シリアルなど)を設定します。

デフォルトでは、
outstr-path tcpsvr
ポートは9000
formatは、RTCM3
になってます。

 

スクリーンショット 2015-12-13 午後11.44.05

ベースの位置情報をあらかじめ入れていないときの動作は下記に詳しく書かれています。

http://docs.emlid.com/reach/reachview-app/#setting-up-base-station

・ローバーとして設定

http://mk_rover1.local/
にアクセスし、
Config で「Rover」を選択

reach_kinematic_default.confを選択。

positioning mode: kinematic
input source for base correction:

tcpcli (TCP clientの意味)
192.168.xxx.xxx        BaseのIPアドレスを設定。
rtcm3    メッセージフォーマット

ポートは、9000
にします。

位置情報を保持しておきたい場合、Solution out put pathにfile設定して、llhを設定すると、sol_xxxxxx.logで保存されます。

スクリーンショット 2015-12-13 午後10.35.42

【Statusタブ】

Status:-
ソフトが実行する情報がない。アンテナが付いてないとか、十分に時間が経ってない。

Status:single
ローバーが、GPSレシーバーからデータ取得できているが、まだベースと接続できていない。

Status:float
ベースに関連付けられていて、位置情報が補正されているが、整数の曖昧さが解決できてない。

Status:fixed
位置情報はベースに関連付けられていて整数の曖昧さも解決できている。
高い位置情報精度が得られている状態。

float,fixedであれば、RTKが正確にセットアップできている。

衛星のレベルと、アンテナの設置状況がRTKのパフォーマンスに影響を及ぼす。
精度よく位置情報を取るためには、少なくとも45以上のSNRレベルで5つの衛星が必要。

スクリーンショット 2015-12-12 午後5.13.32

棒グラフのグレーの部分が、補正データを受信しているというマークになるようです。

fix_status

こんなふうになれば良い状態みたいです。

一旦ここまで。