【OpenNI】Xtionのデバイス情報

下記、SensorInfoのdumpです。

PS1080は、PrimeSense社のSoCです。

 

[notice ] [1] PS1080 [PrimeSense] (1d27/0600@253/5)

 

[notice ] ==== IR SENSOR ====

[notice ] FPS=30,X=320 Y=240 PixcelFormat=Grayscale 16-bit

[notice ] FPS=30,X=320 Y=240 PixcelFormat=RGB 888

[notice ] FPS=60,X=320 Y=240 PixcelFormat=Grayscale 16-bit

[notice ] FPS=60,X=320 Y=240 PixcelFormat=RGB 888

[notice ] FPS=30,X=640 Y=480 PixcelFormat=Grayscale 16-bit

[notice ] FPS=30,X=640 Y=480 PixcelFormat=RGB 888

[notice ] FPS=30,X=1280 Y=1024 PixcelFormat=Grayscale 16-bit

[notice ] FPS=30,X=1280 Y=1024 PixcelFormat=RGB 888

[notice ] FPS=25,X=320 Y=240 PixcelFormat=Grayscale 16-bit

[notice ] FPS=25,X=320 Y=240 PixcelFormat=RGB 888

[notice ] FPS=25,X=640 Y=480 PixcelFormat=Grayscale 16-bit

[notice ] FPS=25,X=640 Y=480 PixcelFormat=RGB 888

[notice ] [1] PS1080 [PrimeSense] (1d27/0600@253/5)

 

[notice ] ==== COLOR SENSOR ====

[notice ] FPS=30,X=320 Y=240 PixcelFormat=RGB 888

[notice ] FPS=30,X=320 Y=240 PixcelFormat=YUV 422

[notice ] FPS=60,X=320 Y=240 PixcelFormat=RGB 888

[notice ] FPS=60,X=320 Y=240 PixcelFormat=YUV 422

[notice ] FPS=30,X=640 Y=480 PixcelFormat=RGB 888

[notice ] FPS=30,X=640 Y=480 PixcelFormat=YUV 422

[notice ] FPS=25,X=320 Y=240 PixcelFormat=RGB 888

[notice ] FPS=25,X=320 Y=240 PixcelFormat=YUV 422

[notice ] FPS=25,X=640 Y=480 PixcelFormat=RGB 888

[notice ] FPS=25,X=640 Y=480 PixcelFormat=YUV 422

[notice ] FPS=30,X=1280 Y=1024 PixcelFormat=RGB 888

[notice ] FPS=30,X=1280 Y=1024 PixcelFormat=Grayscale 8-bit

[notice ] [1] PS1080 [PrimeSense] (1d27/0600@253/5)

 

[notice ] ==== DEPTH SENSOR ====

[notice ] FPS=30,X=320 Y=240 PixcelFormat=1 mm

[notice ] FPS=30,X=320 Y=240 PixcelFormat=100 um

[notice ] FPS=60,X=320 Y=240 PixcelFormat=1 mm

[notice ] FPS=60,X=320 Y=240 PixcelFormat=100 um

[notice ] FPS=30,X=640 Y=480 PixcelFormat=1 mm

[notice ] FPS=30,X=640 Y=480 PixcelFormat=100 um

[notice ] FPS=25,X=320 Y=240 PixcelFormat=1 mm

[notice ] FPS=25,X=320 Y=240 PixcelFormat=100 um

[notice ] FPS=25,X=640 Y=480 PixcelFormat=1 mm

[notice ] FPS=25,X=640 Y=480 PixcelFormat=100 um

 

 

【OpenNI】OSX9 + NiTE2.2 + OpenNI 2.2 + OpenFrameworks 0.8 + Xtion

Open NIを大分使っていなかったのですが思い切って新しいのに切り替える事にします。

いつのまにかOpenNiもNiteも2になってました。

2用にライブラリも作ろう。

 

【preparation】

Open Ni2.2 / Nite2.2 / of0.8 /marvericで行いました。

※macport使います。brewでもOK。

 

まず、port installedでパッケージ確認

sudo port install libtool

sudo port install libusb +universal (もしエラーが出れば、sudo port selfupdateをしてみる)

 

NiTE-2.2のinstall

./install.shを実行すると下記が出来る。

NiTEDevEnvironment

Registフォルダ

 

・OpenNI-2.2のinstall

./install.shを実行すると下記が出来る。

OpenNIDevEnvironment

Registフォルダ

 

・OpenNIDevEnvironment、NiTEDevEnvironment のファイルの内容をユーザーhomeの.bashprofileに追記。

export OPENNI2_INCLUDE=/Users/jiropost/dev/OpenNI-2.2/Include

export OPENNI2_REDIST=/Users/jiropost/dev/OpenNI-2.2/Redist

export NITE2_INCLUDE=/Users/jiropost/dev/NiTE-2.2/Include

export NITE2_REDIST64=/Users/jiropost/dev/NiTE-2.2/Redist

 

 

・binにNiTE-2.2/Regist OpenNi2.2/Registからファイルをコピー

スクリーンショット 2014-01-30 9.55.43

 

 

 

 

 

 

・Targets > Build Settings のHeader Search Pathと、Library Pathに下記を追加。

NiTE-2.2/Regist

OpenNi2.2/Regist

 

・Targets > Build PhasesのLink Binary With Librariesに下記を追加

libNiTE2.dylib

libOpenNI2.dylib

 

・一度ビルドして、アプリケーションパッケージを右クリックして

パッケージを開くを選択する

Contents > MacOS以下に $(SRC_ROOT)/bin/以下のライブラリ等をコピーする。

ユーザートラッキングするときに./Nite2/s.datがないといわれて

しまいます。ビルド時の設定でなんとかできないんでしょうか。

nite::NiTE::initialize();

nite::UserTracker userTracker;

     userTracker.create()    ここでエラー

スクリーンショット 2014-01-30 18.09.16

 

 

・以下テストアプリ

 

#include “testApp.h”

#include <OpenNI.h>        <-  TARGETSのほうにincludeしたので#include “OpenNI.h”変えましょう。

//————————————————————–

void testApp::setup(){

openni::Status rc = openni::STATUS_OK;

openni::Device device;

openni::VideoStream depth, color;

const char* deviceURI = openni::ANY_DEVICE;

rc = openni::OpenNI::initialize();

printf(“After initialization:\n%s\n”, openni::OpenNI::getExtendedError());

rc = device.open(deviceURI);

if (rc != openni::STATUS_OK)

{

printf(“SimpleViewer: Device open failed:\n%s\n”, openni::OpenNI::getExtendedError());

openni::OpenNI::shutdown();

return 1;

}

 

ライブラリは又今度

good luck,

【Raspberry Pi】シリアルの利用注意点(0x0Dが0x0Aに変わる)

UARTを使用したときに、0x0D送信したのに受信側では0x0Aに変わっている時があります。

これは、ttyがターミナルモードになっているためです。

バイナリデータ送信をしたいときは、rawモードの設定が必要です。

以下設定のサンプルです。

 

fd_sci0 = open(”/dev/ttyAMA0”, O_RDWR | O_NOCTTY| O_NDELAY); // | O_NDELAY|O_NONBLOCK);

if (fd_sci0 == -1)

{

perror(“close error”);

return;

}

struct termios options;

 

tcgetattr(fd_sci0, &options);

options.c_cflag = B115200 | CS8 | CLOCAL | CREAD;

options.c_iflag = IGNPAR | ICRNL;

options.c_oflag = 0;

options.c_lflag = 0;

cfmakeraw(&options); // <—-ここが重要

tcflush(fd_sci0, TCIFLUSH);

tcsetattr(fd_sci0, TCSANOW, &options);

printf(“ttyAMA0 opened\n”);

 

good luck,

 

OS X 9 + ofxGstreamerを使う

Marveric + XCode5  + of0.8 + ofxGstreamerを使います。

 

・gstreamer インストール

https://github.com/arturoc/ofxGStreamerを参照し、このサイト(http://gstreamer.freedesktop.org/data/pkg/osx/)からをpkgをインストール。

 

gstreamer-1.0-1.2.2-universal.pkg 

gstreamer-1.0-devel-1.2.2-universal.pkg

gstreamer-1.0-1.2.1-universal-packages.dmg

 

/Library/Frameworks/GStreamer.framework以下に色々ファイルがインストールされます。

 

※ gstreamer-1.0-1.2.1-universal-packages.dmg のなかで下記のパッケージをインストール。

gstreamer-1.0-libav-1.0.8-universal.pkg
gstreamer-1.0-codecs-restricted-1.0.8-universal.pkg
gstreamer-1.0-net-restricted-1.0.8-universal.pkg

 

・openFrameworksワークスペースのHeaderSearch PathとFramework Pathを変更

header path

/Library/Frameworks/GStreamer.framework/Versions/Current/Headers

Framework path

/Library/Frameworks/GStreamer.framework

 

・new PGを使えば何もしなくてよいかもですが、私は手動でopenframeworksのプロジェクトにファイルをコピーしました。要するにaddon_config.mk相当の事が必要です。

スクリーンショット 2014-01-27 20.55.30

 

 

 

 

 

 

 

 

 

ofGstUtils.cpp/h

ofGstVideoGrabber.cpp/h

ofGstVideoPlayer.cpp/h

 

・Gstreamer.Frameworksをプロジェクトdrag&dropします。【※追記】

スクリーンショット 2014-01-29 10.37.57

 

 

 

 

 

 

 

 

・/Library/Frameworks/GStreamer/Headers/assert.hはリネームする【※追記】

ofxOpenCV等と一緒にビルドすると、エラーになりました。

こちらassert.h_等にリネームしておきます。

 

アプリは下記のようになります。

void testApp::setup(){

player.setPlayer(ofPtr<ofGstVideoPlayer>(new ofGstVideoPlayer));

player.loadMovie(“out.mp4”);

}

 

//————————————————————–

void testApp::update(){

    player.update();

}

 

//————————————————————–

void testApp::draw(){

    ofSetHexColor(0xFFFFFF);

    player.draw(0,0);

}

 

以上です。

good luck,

 

 

【Raspberry Pi】UVCカメラを使う(WATEC WAT-01U2)

Full-HD USB WEB CAM ( WATEC WAT-01U2 )

をRaspberry Piで使ってみた。

 CSマウント(Cマウントアダプタもあり)なのでレンズが変更できうれしい。

写りも明るいしよいです。

購入は秋葉原のトモカ電気さんが販売代理店されていてスムーズにご対応頂けました。

・インストールするパッケージ ※motionはwebで確認用

sudo apt-get install uvccapture guvcview luvcview

apt-get install fswebcam
apt-get install motion

/etc/motion/motion.confを編集
control_localhost off
webcam_localhost off
framerate 30

 

$ sudo motion
で起動
ブラウザからwebcam画像の確認
http://xxx.xxx.xxx.xxx:8080 設定画面
http://xxx.xxx.xxx.xxx:8081 画像

 

good luck,

 

 

 

下記ご参考に、、 

pi@RSPI1 /sat/img $ fswebcam —list-controls

—- Opening /dev/video0…
Trying source module v4l2…
/dev/video0 opened.
No input was specified, using the first.
Available Controls Current Value Range
————————— ——————- ——-
Brightness -103 (9%) -128 – 127
Contrast 85 (33%) 0 – 255
Saturation 94 (36%) 0 – 255
Hue 0 (50%) -40 – 40
White Balance Temperature, Auto True True | False
Gamma 100 (20%) 48 – 300
Gain 0 (0%) 0 – 24
Power Line Frequency 50 Hz Disabled | 50 Hz | 60 Hz
White Balance Temperature 4600 (48%) 2800 – 6500
Sharpness 1 0 – 4
Backlight Compensation 0 0 – 1
Adjusting resolution from 384×288 to 320×240.

 

【Raspberry Pi】SDをバックアップする & SDへの書き出し

【OS X】

・SDカードをMACにさし、SDカードのマウントポイントをチェック

#mount

すると、/dev/disk1s1とかでマウントされている。

 

・丸ごとバックアップする為にunmountする

$sudo diskutil unmountDisk /dev/disk2

 

・SDカードをバックアップ

#sudo dd bs=1m if=/dev/disk2 of=./sf_1110.img

 

・SDにイメージを書き出し

#sudo dd bs=1m if=./sf_1110.img of=/dev/rdisk3

・書き出しが完了後RPiにカードを差し電源ONでboot.

good luck.

 

 

【Raspberry Pi】RCAコンポジット利用時の注意

2.5inch TFT LCDを使っているが、左端がかけている。

http://www.switch-science.com/catalog/1434/

 

/boot/config.txtの下記の箇所を編集すると治る。

# uncomment the following to adjust overscan. Use positive numbers if console

# goes off screen, and negative if there is too much border

overscan_left=40

overscan_right=40

overscan_top=16

overscan_bottom= 16

 

 ちなみに OFでは、NTSC720x480で認識してました。

 

下記参考サイト

http://elinux.org/RPiconfig#Which_values_are_valid_for_my_monitor.3F

http://www.komoto.org/etc/aspect.html

 

【Raspberry Pi】VLCでrtspストリーミングをする

【Raspberry Pi】

sudo raspivid -o – -t 0 -w 640 -h 480 |cvlc -vvv stream:///dev/stdin –sout ‘#rtp{sdp=rtsp://:8554/}’ :demux=h264

 

【OS X】

・VLC Playerを起動

・”ネットワークを開く >”を選択し、

rtsp://192.168.xxx.xxx:8554/

と入力しplay.

 

4,5秒遅れてから表示される。

これ以上の解像度はきつかったです。

 

good luck,

 

【Raspberry Pi + OF】shaderを使う時の注意点

OFでgl/shaderサンプルを動かしたら動かなかった。

下記を追加して動作OKでした。

good luck ,

 

・main.cppに追記

 

#include “ofMain.h”

#include “testApp.h”

#include “ofGLProgrammableRenderer.h”

//========================================================================

int main( ){

    ofGLProgrammableRenderer * renderer = new ofGLProgrammableRenderer();

    ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(renderer));   // switch to GLES2 renderer.

ofSetupOpenGL(1280, 720, OF_WINDOW);// <——– setup the GL context

 

// this kicks off the running of my app

// can be OF_WINDOW or OF_FULLSCREEN

// pass in width and height too:

ofRunApp( new testApp());

}

 

 

【Raspberry Pi】時刻を合わせる (ntp)

Rapsberry Piは電源を切る毎に時計がずれてしまいます。

これはRTCにボタン電池などで電源が供給されていない為です。

以下時刻同期するためのntpクライアント設定方法です。

 

・/etc/ntp.confに下記を追加します。

 

# You do need to talk to an NTP server or two (or three).

#server ntp.your-provider.example

server 0.jp.pool.ntp.org iburst

server 1.jp.pool.ntp.org iburst

server 2.jp.pool.ntp.org iburst

server 3.jp.pool.ntp.org iburst

 

iburst オプションで、最初に試行した時で接続できなかったときだけパケット送信するようになります。

 

good luck.

【参照元】

https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon_(%E6%97%A5%E6%9C%AC%E8%AA%9E)

http://www.pool.ntp.org/en/

【Raspberry Pi】openFrameworksのaddonを追加する

Raspberry PiでOFをaddonを追加する。

ここでは例として、ofxTrueTypeFontUCをインストールする。

#cd (YOUR_OF_PATH)/openFrameworks/addon

#git clone https://github.com/hironishihara/ofxTrueTypeFontUC.git

 

・空のプロジェクトを作成

#cp (YOUR_OF_PATH)/openFrameworks/apps/myApps/emptyExample  (YOUR_OF_PATH)/openFrameworks/apps/myApps/(NEW_APP)

#cd (NEW_APP)

#vi addons.make

————————————–

ofxOpenCv

ofxTrueTypeFontUC

————————————–

 

・画像データ/フォント(.ttf .otf)等がある場合は bin/dataへコピー

#cd (YOUR_OF_PATH)/openFrameworks/apps/myApps/(NEW_APP)/bin

#mkdir data

#cp ~/image.jpg data

 

・プロジェクトをビルド

#make

 

・実行して確認

#make run

 

good luck.

【Raspberry Pi】GW-450D KATANAを使う

SONY DSC

GW-450D KATANAを使えるようにします。

・ドライバをdownloadする。

 MT7610U USBを選択

http://www.mediatek.com/_en/07_downloads/01_windows.php?sn=501

 

・ドライバを解凍

#mv mt7610u_wifi_sta_v3000_dpo_20130627.tar.bz2 /usr/src

#cd /usr/src

#tar xjvf mt7610u_wifi_sta_v3000_dpo_20130627.tar.bz2

#cd mt7610u_wifi_sta_v3000_dpo_20130627

 

・commmon/rtusb_dev_id.cに追記

/* module table */

USB_DEVICE_ID rtusb_dev_id[] = {

#ifdef MT76x0

        {USB_DEVICE(0x2019,0xab31)}, /* GW-450W KATANA */

{USB_DEVICE(0x148F,0x7610)}, /* MT7610U */

{USB_DEVICE(0x0E8D,0x7610)}, /* MT7610U */

{USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7630, 0xff, 0x2, 0xff)}, /* MT7630U */

{USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7650, 0xff, 0x2, 0xff)}, /* MT7650U */

#endif

{ }/* Terminating entry */

};

 

・os/linux/config.mkを編集

 

# Support Wpa_Supplicant

# i.e. wpa_supplicant -Dralink

HAS_WPA_SUPPLICANT=y

 

# Support Native WpaSupplicant for Network Maganger

# i.e. wpa_supplicant -Dwext

HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

 

・Makeする

30分時間程待つ…(時間かかるのでraspi-configでターボモードにしておいた方がよい)

#cd /usr/src/mt7610u_wifi_sta_v3000_dpo_20130627

#make

#make install

 

・ /etc/wpa_supplicant/wpa_supplicant.conf を編集

 WPA2-PSKの場合

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

 

network={

    ssid=”YOUR_SSID”

    proto=RSN

    key_mgmt=WPA-PSK

    pairwise=CCMP TKIP

    group=CCMP TKIP

    psk=”YOUR_PASSWORD”

}

 

 ・WEPの場合

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

 

network={

scan_ssid=1

key_mgmt=NONE

ssid=”YOUR_SSID”

wep_key0=”YOUR_PASSWARD”

wep_tx_keyidx=0

}

 

/etc/network/interfaces

auto lo

 

iface lo inet loopback

iface eth0 inet dhcp

 

auto ra0

iface ra0 inet dhcp

wpa-driver wext

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

 

・ファイルコピー

#mkdir /etc/Wireless/RT2870STA

# cp RT2870STA.dat  /etc/Wireless/RT2870STA/RT2870STA.dat
# vi /etc/Wireless/RT2870STA/RT2870STA.dat

SSID=YOUR_AP

AuthMode=WEPAUTO

EncrypType=WEP

Key1Type=1           << 0:hex  1:ascii

Key1Str=YOUR_AP_PASSWORD

Key2Type=0

Key2Str=

Key3Type=0

Key3Str=

Key4Type=0

Key4Str=

 

・再起動する

#reboot

#ifconfig

ra0で認識されている

#iwlist ra0 scanning

 

good luck!

SONY DSC

 

【Raspberry Pi】h.264 streamingをする (raspivid + nc)

OSXでmplayerをインストール

brew install mplayer


>osx nc -l 5001 | mplayer -fps 31 -cache 1024 –
>pi raspivid -t 999999 -o – | nc [insert the IP address of the client] 5001

 

【RASPBERRY PI】
raspivid -t 0 -w 1920 -h 1080 -hf -fps 30 -n -o -| nc -l 5000

備考
・-nがないと、freezeするので注意。
・802.11gだと、 640×480位がmax

【MAC OS X】
・receive streaming & play
nc 192.168.111.101 5000 | mplayer -fps 100 -demuxer h264es -cache 8192 –

・receive streaming & dump
nc 192.168.111.106 5000 | mplayer -fps 100 -demuxer h264es -cache 8192 -dumpstream -dumpfile a.h264 –

 

【h264->mp4】

MP4Box -fps 30 -add out.h264 out.mp4

 

http://www.designspark.com/jpn/blog/jpn-raspberry-pi-camera-module-setup