2017年1月15日日曜日

OpenCV3.2 開発環境:WindowsにXserverを立ち上げる

基本的に、私の作業記録なので、悪しからず、、、(^^♪

1.目的
Raspberry Piで、OpenCVを使ったロボット自走用の画像処理アプリケーションの開発をしている。
開発はRaspberry Piをホストに、WindowsやMacからリモート接続して実施している。

Macからの接続は問題なく行える。WindowsではCygwinを使ってリモート接続の環境構築をしていたけど、C:/Cygwin64以下が10GBを超えて、かつWindows上でも開発をしたいので、環境変更をする事にした。

利用する開発環境は可能な限り、マシン依存にしたくなので、、、
・GNUコンパイラーをつかう
・IDEは、Eclipse CDT

従って、OpenCVは、buildして環境構築する。

2.実施項目
(1)Teratermのインストール
これは、そのままインストールする。
そして、「設定」→「SSHポート転送」で、
「リモートの(X)アプリケーションをローカルのXサーバーに表示する」に
チェックをいれる。
そして、「設定」→「設定の保存」で、上書きをした。

3.Xmingのインストール
SourceForge.netからダウンロードする。

インストール時には、Select Componetsの画面で、
「Don't install an SSH client」にチェックする。
その後は、デフォルトでインストール

4.起動
(1)Xmingの起動
         XlaunchではなくてXmingを使う。

(2)Teratermで、リモートログイン

これで、すっきり(^^♪

Peace!!



2017年1月14日土曜日

An Installation opencv 3.2 on Raspberry Pi 3

更新 2017/06/03

Raspberry Pi 3に、opencv 3.2 をインストールした忘備録

大まかな手順は、

1.依存するソフトのインストール

2.ソースをopencv.orgからダウンロードし、解凍、および作業dir作成

3.cmake

4.make

5.opencv インストール

では、記録の始まり


1.依存するソフトのインストール

http://plantuml.com/download から、plantumljarをダウンロードする
sudo cp plantuml.jar /usr/share/java

sudo /sbin/ldconfig

sudo apt install -y build-essential cmake  pkg-config

sudo apt install cmake-qt-gui

sudo apt install mesa-utils

sudo apt install libgl1-mesa-dri

sudo apt install -y libjpeg-dev libtiff5-dev  libpng12-dev libjasper-dev

sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev

sudo apt install -y libgtk2.0-dev

sudo apt install libprotobuf-dev protobuf-compiler

sudo apt install libvtk5-dev libvtk5-qt4-dev

sudo apt install python-vtk tcl-vtk

sudo apt install -y libatlas-base-dev gfortran libeigen3-dev

sudo apt install libv4l-dev

sudo apt install -y python3-dev

sudo apt install libqt4-core libqtgui4 libqt4-test libqt4-opengl-dev

sudo apt install -y sphinx-common doxygen

こっちを使う

インストール -----------------------------------------
sudo apt-get install -y build-essential git cmake pkg-config cmake-qt-gui mesa-utils  libgl1-mesa-dri libjpeg-dev libtiff5-dev libpng12-dev libjasper-dev  libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk2.0-dev libprotobuf-dev protobuf-compiler libvtk5-dev libvtk5-qt4-dev python-vtk tcl-vtk  libatlas-base-dev gfortran libeigen3-dev libv4l-dev python3-dev libqt4-core libqtgui4 libqt4-test libqt4-opengl-dev sphinx-common doxygen


python3の開発環境があれば下はいらない。30分位かかる
sudo apt-get install python3-dev python3-pip

-----------------------------------------------------------

sudo cp plantuml.8053.jar /usr/share/java
( http://plantuml.com/download からダウンロードする)
cd /usr/share/java
sudo ln -s plantuml.8053.jar plantuml.jar
ls -l plantuml.jar
cd ~/opencv_3.2.0/build
sudo apt install -y sphinx-common doxygen
sudo /sbin/ldconfig

2.ソースをopencv.orgからダウンロードし、解凍、および作業dir作成

ダウンロード後に、~/で解凍すると次のディレクトリーができるので、その中に入って、作業ディレクトリーを作成

参考
wget https://github.com/opencv/opencv/archive/3.2.0.zip
wget https://github.com/opencv/opencv_contrib/archive/3.2.0.tar.gz

wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip

unzip opencv-3.2.0.zip
unzip opencv_contrib-3.2.0.zip

cd opencv-3.2.0

mkdir build

cd build

3.cmake

cmake -D CMAKE_BUILD_TYPE=RELEASE \
     -D CMAKE_INSTALL_PREFIX=/usr/local \
     -D INSTALL_PYTHON_EXAMPLES=ON  \
     -D PLANTUML_JAR=/usr/share/java/plantuml.jar  \
     -D ENABLE_NEON=ON \
     -D WITH_TBB=OFF -D BUILD_TBB=OFF  \
     -D WITH_QT=ON -D WITH_OPENGL=OFF \
     -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules \
     -D BUILD_opencv_freetype=OFF \
     -D BUILD_EXAMPLES=OFF ..

上記のcmakeは、サンプルプログラムのbuildがOFF
もし、buildするならONにする。

4.make

make -j4

5.opencv インストール

sudo make install
sudo ldconfig

samples/cppに移動してお決まりのlenaさん

g++ `pkg-config opencv --cflags --libs` facedetect.cpp -o facedetect

./facedetect  --cascade="../../data/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 ../data/lena.jpg




Peace!!

補足
fatal error: sys/videoio.h: No such file or directory
このエラーは、cmake でopencv_contrib-3.2.0を、
opencv-contrib-3.2.0と間違った指定で発生
で、3時間つぶした(´;ω;`)

2016年12月7日水曜日

An installation of GCC ver.6.2 on Raspberry Pi3

緯度経度の平面直角座標系に変換するプログラムで、最適化をすると計算結果が異常値になるので、gcc 6.2でどうなるかと確かめるために、ソースからコンパイルしてインストールした。

で、手順は、、、

1.スワップファイルを1024に増やす

sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE=1024

そして、リブートする。

で、ビルドが終わったら、元の100に直す。


2.ソースのダウンロードとビルドの準備

cd
mkdir code
cd code
wget http://nl.mirror.babylon.network/gcc/releases/gcc-6.2.0/gcc-6.2.0.tar.bz2
tar xvf gcc-6.2.0.tar.bz2
cd gcc-6.2.0
contrib/download_prerequisites
mkdir obj
cd obj


3.ビルドとインストール 6時間位かかる

../configure -v --enable-languages=c,c++ --prefix=/usr/local/gcc-6.2 --program-suffix=-6 --with-cpu=cortex-a53 --with-fpu=neon-fp-armv8 --with-float=hard --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf

make -j5

sudo make install


4.環境設定

export PATH=/usr/local/gcc-6.2/bin:$PATH

5.スワップサイズを元に戻す

sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE=100

で、終わり。。。

で、最低化オプションしていしての、実行結果は、、、

cp ./gcc-6.2.0/obj/gmp/mpz/init.lo ./gcc-6.2.0/obj/gmp/mpq/init.lo
cp ./gcc-6.2.0/obj/gmp/mpz/init.lo ./gcc-6.2.0/obj/gmp/mpf/init.lo

cp  /home/pi/code/gcc-6.2.0/obj/gmp/mpz/abs.lo /home/pi/code/gcc-6.2.0/obj/gmp/mpq/abs.lo
 cp ./stage1-gmp/mpq/aors.lo ./gmp/mpq/aors.lo

cp ./stage1-gmp/mpq/canonicalize.lo ./gmp/mpq/canonicalize.lo

cp ./gmp/mpz/clear.lo ./gmp/mpq/clear.lo

cp ./gmp/mpz/cmp.lo ./gmp/mpq/cmp.lo


で、、、、エラー続出で、だめでした。。。(´;ω;`)



2016年12月6日火曜日

緯度経度を平面直角座標系に変換するプログラムと奇々怪々gcc

緯度経度(GPSデータ)から平面直角座標に変換するプログラム

とりあえずRESTで使っていたけど、

自由に使いたいので、C言語で自作。

もとは、この計算式

ちなみに、GPSのフォーマットは、$GPGGA

で、、、

奇々怪々、Raspberry Pi Jessieのgcc (Raspbian 4.9.2-10) 4.9.2

最適化オプションを付けると、計算値がおかしくなる。-O2, -O3は確認

gcc ソース -0 実行名称 -lm



2016年11月27日日曜日

ロボットとロボットクラウドのlighttpd 1.4.43 やっと一緒になった

僕のロボット関連では、Webサーバにlighttpdを使っている。

理由は、Appachのように重装備なサーバは必要ないし、

ロボット(Raspberry Pi Jessie)でも、

ロボットクラウド(CENT OS)でも動き、速度面や使い勝手がいいから。

懸案のメモリーリークのバグも今年前半に改善されて、

本格運用に耐えれる状態。

ただ、インストール時の環境設定が、Raspberry PiやCENT OSなでは微妙に

異なっていていたり、パッチワーク的に設定していたために両社の設定が

微妙に異なている。

サーバも本格的に運用をすることになり、この際、整理をする事にした。

ダサい事に、REST関連はOLD CGIで動かしているので、

はずかしい、、、

cgi.confの設定をテストしながら確かめた。

で、結論は、下(^^)

# /usr/share/doc/lighttpd/cgi.txt

server.modules += ( "mod_cgi" )

$HTTP["url"] =~ "^/cgi-bin/" {
        cgi.assign = ( "" => "" )
}

## Warning this represents a security risk, as it allow to execute any file
## with a .pl/.py even outside of /usr/lib/cgi-bin.
#
#cgi.assign      = (
#       ".pl"  => "/usr/bin/perl",
#       ".py"  => "/usr/bin/python",
#)

なぜか、Jessieでは、/etc/lighttpd/conf.d/conf-enabledに

conf.d/conf-available/10-cgi.conf のシンボリックリンクを張ればよい

けど、、、

CENT OSは、Versionが6.8なのかもしれないが、

modules.confで設定で設定(コメントアウトを外す)して、

cgi.confを上記に合わせなければならない。

ちなみに、lighttpd.confのstatic-file.exclude-extentionsは変更しない。

という事で、ロボットも、ロボットクラウドも環境が一緒になったので

とっても、、、、

PEACE!!





2016年11月10日木曜日

帯状疱疹にかかりました

神経痛の痛みを味わっています。(´-`;
免疫力が落ちて、脊髄に潜んでいる誰もが持っているウィルスが神経を伝って暴れる病気
9月に感染症になって強い抗生物質使って、
その後も体いじめ続けて、
かつ、久々の仕事ストレスmaxだったし、、、
何事も急にやってはいけません。反省。
ある年齢の方は、症状1の時にお気を付け下さい。
以下は、ご興味あれば、、、Peace!

症状は四肢の一つに現れます。
症状1
後で発症する部分の肌が、外見何も無いのに下着で擦れる時に
「ピリピリ」と痛む。この時に薬飲めば、、、
症状2
神経が痛んでくる。足の筋鈍痛が走る感じ
症状3
疱疹が肌に現れてくる
僕の場合は足の背面に出来ていたから自分では分からなかった。
症状4
神経の痛みが激痛に成る。神経ブロックなどの処置が必要
僕はここまでは行って居ない。
医者からは、暖かい部屋でゴロゴロしながら体休めなさい
薬を飲むと一週間程度治まってくる。この薬が高い。
痛みは一月位続く
場合によっては、ウィルスによって破壊された神経の痛みが後遺症となり続く。ドキドキです。


2016年11月8日火曜日

An installation of lighttpd on Raspberry Pi

Raspberry Piで稼働させるWebサーバーは、

lighttpd が良いと考えて採用している。

ポイントは、

軽量であること。。。

これに関しては、monkeyも候補なんだけど、

いろいろ試した結果、lighttpdにした。

で、

sudo apt-get install lighttpd

でインストールするとバージョンが古いので

ソースをダウンロードしてbuild

https://www.lighttpd.net/download/

ダウンロードファイルは最新を、、、この時点では、1.4.43

tar zxfv lighttpd-1.4.43.tar.gz

cd lighttpd-1.4.43

sudo apt-get install libbz2-dev

これは、./configureでbzip2のエラーが出てきた時の対応です。
予めやっておいた方が時間の短縮

./configure

make

sudo make install

sudo systemctl start lighttpd


で、アクセスしてこの画面が出てきたらOK



Peace!!