理科系の勉強日記

Linux/Ubuntu/Mac/Emacs/Computer vision/Robotics

視差画像とV-disparity

背景

ステレオ視差画像から平面を抽出する一つの手法として、視差画像をV-disparity画像に変換するというものがある。今回は視差画像からV-disparity画像への変換の練習をしてみる。

結果


試みに視差画像のy方向にノイズを加えてみた。その結果がV-disparity画像に現れている。
V-disparity画像、U-disparity画像のそれぞれにオブジェクトが可視化された。

github.com

V-disparity画像

V-disparity画像とは、視差画像における画像平面上下方向の視差の出現頻度を表した画像である。
実装に沿って表現すると、縦軸が画像と共通(V)で横軸が視差(disparity)からなる画像で、
各画素が「あるVでのある視差値の出現回数」を表している。
同様に、横軸を画像と共通(U)にして縦軸を視差(disparity)としたものをU-disparity画像と呼ぶ。

sdfファイルをrviz上のRobotDescriptionで表示する(後半)


実行環境

Ubuntu14.04
Gazebo 2.2.3
sdf 1.4
ROS indigo
(そろそろGazebo7に戻りたい…)

背景

前半編でsdfからurdfを生成してrobot_descriptionに登録する方法を学んだ。
今回は、collada(daeファイル)をrvizで見られるか確認ついでに、sdfからurdfを変換する部分も一発で行うlaunchファイルを作る。

手順

  • sdfファイルの作成
  • package.xmlの変更
  • launchファイルの作成
  • 実行
続きを読む

sdfファイルをrviz上のRobotDescriptionで表示する(前半)


実行環境

Ubuntu14.04
Gazebo 2.2.3
sdf 1.4
ROS indigo

背景

sdfを使ってモデルを作ったのにrvizのRobotDescriptionがurdfしか対応してないと知ってショックを受けた。
調べてみると、pysdfというROSのパッケージを使ってsdf to urdfの変換ができるようだ。
rvizでモデルを表示する練習(とblog更新)を兼ねてここに記録を残す。

手順

  • 準備 pysdfのインストール
  • sdfファイルの作成
  • pysdfでsdfをurdfに変換
  • launchファイルの作成
  • 実行
続きを読む

Ubuntu14.04でeth0が見つからない

新しく手に入れたThinkPad x260にUbuntu14.04 LTSをインストールしたが、有線も無線もつながらない。Ethernetケーブルを挿してifconfigしてみると、普段現れるはずのeth0が見当たらず、loだけが表示されている。

~$ lspci | grep Ether  
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection I219-V (rev 21)

対応するドライバはどうやらe1000eで、これを新しくインストールすれば良いらしく、早速他のPCでダウンロードしたものをコピー、解凍後に現れるsrcディレクトリ下で

sudo make install e1000e

とした。次にこれをmodprobeでカーネルモジュールに追加する。

sudo modprobe e1000e

要求したキーは許可されてません、というようなエラーが出て追加されなかった。

完全に途方に暮れていたが、ネットを見ているとBIOS設定でSecure Bootを無効にすればよいと書いてあった。すると無事e1000eをmodprobeでカーネルモジュールに追加することができ、有線でネットに繋げられるようになった。

面倒臭いので無線はまた今度にしよう。

ATAM install on Ubuntu 14.04 LTS

基本的には公式[1]の通り。ただし、windowsでのインストールのみなので、メモを残す。

まずOpenCV3.0を入れる。ROSと一緒に入ったOpenCVが2.4だったので、ソースを落としてきてcmakeした。
ググったらインストール方法はでてくる[2]が、non-freeをコンパイルしようとするとこける。
githubからopencv_contrib-3.0.0みたいなのを落としてきて、コンパイルすれば通る。
# 最新のOpenCV3とcopencv_contribがマッチしていないのが原因。
# WITH_OPENCL, WITH_OPENCLAMDBLAS, WITH_OPENCLAMDFFT, WITH_OPENCL_SVMもつける

次に、cvsbaをインストールする。これもcmakeだが、オプションはいらないらしい。

続いてCLAPACKをインストールする。
これもATAM公式に書いてある通り、-D CMAKE_BUILD_TYPE=RELEASEだけつけてインストールした。

最後にATAMのコンパイルだが、これはcmakeに以下のオプションを指定した。
やってることはCLAPACKへのパスを指定しているだけ。
# 公式に従ってcvsbaを移動させたりするのを忘れずに。

cmake -D OpenCV_DIR=/home/kenta/opencv-3.0.0/build -D LAPACK_LIB=/home/kenta/clapack-3.2.1-CMAKE/build/SRC/liblapack.a -D BLAS_LIB=/home/kenta/clapack-3.2.1-CMAKE/build/BLAS/SRC/libblas.a -D F2C_LIB=/home/kenta/clapack-3.2.1-CMAKE/build/F2CLIBS/libf2c/libf2c.a ..

[1]ATAM公式
https://github.com/CVfAR/ATAM

[2]UbuntuでOpenCV3.0をコンパイルする
http://thr3a.hatenablog.com/entry/20150731/1438312544

ardrone simulatorでPTAM

環境:
VM fusion 7
Ubuntu 14.04 LTS
ROS Indigo

ROSのインストールについては公式参照。

ardrone関係については、基本的にはここをみてインストールした。
http://wiki.ros.org/tum_ardrone

catkinなので(?)、cloneしてきてcatkin_wsでcatkin_makeを繰り返せばOK。


以下コマンドを各ターミナルで実行する。
# キーボードでもドローンを操作できるのでジョイスティックは別になくてもよい。

$ roslaunch cvg_sim_gazebo ardrone_testworld.launch 
$ rosrun ardrone_autonomy ardrone_driver _navdata_demo:=0 _loop_rate:=500
$ rosrun tum_ardrone drone_stateestimation
$ rosrun tum_ardrone drone_autopilot
$ rosrun tum_ardrone drone_gui


▲左上:PTAMのMAPとドローンの軌跡、左下:ドローンからの映像

ROS indigo, OSX 10.10.5

ROS indigoを[1]を参考にmac(OSX 10.10.5)にインストールしたのでメモ。

$ brew config

HOMEBREW_VERSION: 0.9.5
ORIGIN: https://github.com/Homebrew/homebrew
HEAD: 0f37e2943bba265b42bb2087ea24b86dcc614c35
Last commit: 4 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: quad-core 64-bit haswell
OS X: 10.10.5-x86_64
Xcode: 7.1.1
CLT: 7.1.0.0.1.1444952191
Clang: 7.0 build 700
X11: 2.7.7 => /opt/X11
System Ruby: 2.0.0-p481
Perl: /usr/bin/perl
Python: /usr/local/bin/python => /usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
Java: 1.8.0_31

ここで詰まった。

$ rosdep install --from-paths src --ignore-src --rosdistro indigo -y

依存関係がうまくいってないようなので、installをcheckにして、なにが足り無いのかをチェック。

$ rosdep check --from-paths src --ignore-src --rosdistro indigo -y

表示されているものを適当に入れていく。(brewかpipか書いてるので超親切)

最後は[2]にある通りに、

$ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Releas

を実行して、

$ source ~/ros_catkin_ws/install_isolated/setup.bash

でインストール完了(のはず)。


参考
[1] Installing ROS Indigo on MacOSX Yosemite
http://qiita.com/furushchev/items/bc0d2b9d6c84741645f0

[2] Installation Instructions for Indigo in OSX
http://wiki.ros.org/indigo/Installation/OSX/Homebrew/Source
http://wiki.ros.org/indigo/Installation/OSX/Homebrew/Source

追記 2015.11.21

ogre1.7ではrvizが動かないという問題が発生

追記 2015.11.27

結局、VM Fusion 7にUbuntu14.04 LTSをインストールした。
VirtualBoxだと、3DアクセラレーションONでrviz, gazeboが落ちるが、OFFにするとgazeboがカクカクする。