2010年12月23日木曜日

Ubuntu 10.04 への Kinect ドライバのインストールとROSのインストール

ROS とか kinect とかのインストールに、いろんなサイトを集めることで成功したので
以下にまとめる。
基本的に 参考URL のコピペなので、うまくいかないときは参考URL先も参照。

インストール
参考URL
     Japanese: http://tclip.blog38.fc2.com/blog-entry-103.html
     English http://www.keyboardmods.com/2010/12/howto-kinect-openninite-skeleton.html


インストール手順

  1.  必要なパッケージのインストール

    sudo apt-get install git-core cmake libglut3-dev pkg-config build-essential libxmu-dev libxi-dev libusb-1.0-0-dev doxygen graphviz

  2. gitのプロキシ設定 (必要なら)

    git config --global http.proxy proxy-address:portnumber

  3. 作業ディレクトリ作成

    mkdir /opt/kinect

  4. OpenNI インストール

    cd /opt/kinect
    git clone https://github.com/OpenNI/OpenNI.git
    cd OpenNI/Platform/Linux-x86/Build
    make && sudo make install


  5. Kinect ドライバインストール

    cd /opt/kinect
    git clone https://github.com/ros-pkg-git/Sensor.git
    cd Sensor/Platform/Linux-x86/Build
    make && sudo make install


  6. NITE インストール

    http://www.primesense.com/?p=515 の右側 Download NITE から、
    Download NITE SDKを /opt/kinect にダウンロード。
    32bit マシンなら x86, 64bit マシンならx64 を選択。

    cd /opt/kinect
    tar -xf NITE-Bin-Ubuntu-x86-1.3.0.17.tar.bz2
    cd NITE-Bin-Ubuntu-x86-1.3.0.17
    sudo ./install.bash

    # キーは 0KOIk2JeIBYClPWVnMoRKn5cdY4=

  7. xml ファイルの編集
    Niteのディレクトリの Data/*.xml を編集

    3rd line:
        <license key="0KOIk2JeIBYClPWVnMoRKn5cdY4=" vendor="PrimeSense"/>
    17th line:
        <MapOutputMode fps="30" xres="640" yres="480"/>
  8. kinect の テスト

    kinect をPCに接続 (plug kinect)
    Nite-1.3.0.17/Samples/Bin 以下のプログラムを実行
      • Sample-Players 人の識別, 骨格モデル?の検出
        Sample-PointViewer 手を降る or 手を前に突き出すことで手の位置検出、追従
  9. コツ

    kinect から2~3 m 離れると認識されやすい。
    Sample-Players で骨格トラッキングされるのは青く識別された人だけ?

ROS関係のインストール
ROS のインストール
まずは以下を参考に ROS をインストールする。http://www.ros.org/wiki/cturtle/Installation/Ubuntu
ただし、apt-get する必要があるパッケージは以下
        sudo apt-get install ros-cturtle-base


ROS ni パッケージ
参考URL
http://www.ros.org/wiki/kinect : hack版ドライバ freenect 用 ROS Stack
http://www.ros.org/wiki/ni : 公式版ドライバ用 ROS Stack
基本的には下。モータとかを使うには上を使うらしい。

インストール手順

  1. rosinstall のインストール

    sudo apt-get install python-setuptools git-core
    sudo easy_install -U rosinstall

    最後に .bashrc の編集を指示されるのでしたがう

    もしrosinstall の install に失敗したら
    以下から tar.gz をダウンロード
    http://pypi.python.org/pypi?%3Aaction=search&term=rosinstall
    tar.gz を解凍し、できたディレクトリに移動しえ、以下でインストール
    sudo python setup.py install

  2. ROS-NI をダウンロード and インストール

    echo "- git: {local-name: ni, uri: 'https://github.com/ros-pkg-git/ni.git', version: master}" > /tmp/ni.ri
    rosinstall ~/ni /opt/ros/cturtle /tmp/ni.ri
    . ~/ni/setup.sh
    rosmake ni


    .bashrc に ~/ni/setup.sh を追加しておくと便利。

  3. USBデバイスファイルの準備

    sudo cp `rospack find ps_engine`/install/55-primesense-usb.rules /etc/udev/rules.d/
    sudo adduser YOUR USERNAME users
    reboot


  4. テスト
    二つの端末で実行

    1st terminal
    roslaunch openni_camera openni_kinect.launch

    2nd terminal
    rosrun rviz rviz
    左上の: Fixed Frame を /openni_depth_frame に、Target Frame を にする。    左下の Add ボタンをクリックし、 Point Cloud2 を選択
    Topic に /camera/depth/points2 を選択
    マウスの右・左・中ボタンを駆使して表示を見る

    もし、rviz で失敗したら
         sudo apt-get install nvidia-cg-toolkit --reinstall

    もし、nvidia-cg-toolkit のインストールも失敗したら
    http://developer.nvidia.com/object/cg_download.html から Cg toolkit の deb パッケージをダウンロード
    次コマンドでインストール。ただしファイル名は環境によって変わる。
    sudo dpkg -i Cg-3.0_November2010_x86.deb

2010年12月19日日曜日

今日のワイン

ボルドー LA GARROUSSE 2006年 (Grand Vin de Bordeaux)
香りがフルーティでおいしい。
それから、カナートの地下食料品売り場 SUZUYA のフランスパンもおいしかった。
あとはフランスで買ったブルーチーズの組み合わせ。

すばらしい。

2010年12月6日月曜日

特定のディレクトリを除いてfind

ホームディレクトリ以下の、
ignore ディレクトリを除く、すべてのディレクトリから .txt を探したいとき

find $HOME -path "$HOME/ignore" -prune -o -name "*.txt"

参考URL:
http://d.hatena.ne.jp/yanma_4/20080721/1216617075

2010年12月2日木曜日

python emacs でタブを 4つのスペースにする

This line did not worked (29 Jan. 2011)
(add-hook 'python-mode-hook (function (lambda () (setq indent-tabs-mode nil))))



These lines worked.
(add-hook 'python-mode-hook
                   '(lambda()
                        (setq indent-tabs-mode nil)
                        (setq indent-level 4)
                        (setq python-indent 4)
                        (setq tab-width 4)))