0
0

More than 1 year has passed since last update.

Raspberry Pi3 Model B aeroTAP 3Dカメラ接続環境構築手順

Last updated at Posted at 2022-08-16

はじめに

最近、改めてRaspiberry pi3 Model Bに3Dカメラを接続したので、最新情報での簡単構築手順について説明します。最新版OSでRaspberry pi3を設定」していると、問題もあり、また多くの時間がかかったのでここで設定した環境のイメージをアップしておきました。
早速 aeroTAP 3D USBカメラを接続して使っていたい方は、イメージをダウンロードしてご利用ください。

Raspberry Pi3 aeroTAP 3D USBカメラキットはこちらから購入できます。

できること

環境設定ができると、Raspberry pi3上でaeroTAP 3D USBカメラ用のサンプルプログラムを実行したり、3Dカメラをネットワーク3Dカメラサーバーとして稼働したりすることができます。

また、aeroTAP 3D USBカメラを使うためのpythonの環境も構築し、サンプルを実行します。

準備するのも

  • Raspberry Pi3 Model B (Raspberry Pi4でもほとんど同様の手順となります)
  • aeroTAP 3D USBカメラ ( G1, GSまたはG2 )
  • ネットワーク( Wifiなど )
  • aeroTAP SDKおよび cam2webは、下記からダウンロード

Raspberry Pi3の初期設定

Raspberry pi Imagerを使ってSDカードを作成します。
Raspberry pi Imagerをダウンロードして、実行します。
RaspiImager.png

  • Release 4.2 Narch 2022

イメージを作成したら、Raspberry Pi3に差し込んで、起動します。
起動後必要な設定を行ってください。

  • Wifi設定
  • ユーザー作成 (piユーザー)
    アップデートが自動的に開始され、再起動します。(約2時間ほどかかりました)

再起動後 [Preference]>[Raspberry Pi Configuration]を起動して、SSHを有効します。

  • SSH (ファイル転送に使います)

RaspiのIPアドレスを確認しておいてください。ここでは、192.168.3.73とします。

環境構築

ダウンロードした aeroTAP SDKおよび cam2web.tar.gzをRaspiにアップロードしてください。

ファイルの転送にはFileZillaが便利です。

最低必要なライブラリのインストール

aeroTAP-sdk サンプルを実行するために以下のライブラリが必要です。

qiita.rb
sudo apt install libusb-dev
sudo apt install libudev-dev freeglut3-dev
sudo apt install libv4l-dev
sudo apt install libpng-dev libjpegp-dev
sudo apt install cmake

サンプルコードのビルド

アップロードした aeroTAP-SDK.tar.gz, cam2webを展開します。

qiita.rb
pi@raspberrypi: tar -xvzf aeroTAP-SDK.tar.gz
pi@raspberrypi: tar -xvzf cam2web.tar.gz

RGBDビルド

RGBDは、aeroTAP 3Dカメラからカラー画像を深度マップを取得して表示するサンプルです。
以下の手順でビルドします。

qiita.rb
pi@raspberrypi: cd aeroTAP/sample/RGBD
pi@raspberrypi:~/aeroTAP/sample/RGBD $ mkdir build
pi@raspberrypi:~/aeroTAP/sample/RGBD $ cd build
pi@raspberrypi:~/aeroTAP/sample/RGBD/build $ cmake ..
pi@raspberrypi:~/aeroTAP/sample/RGBD/build $ make

正常にビルドされているか確認してください。aerotap_RGBD 実行ファイルが作成されます。
実行してみてください。距離を色で表現した深度マップが表示されたWindowが開きます。

qiita.rb
pi@raspberrypi:~/aeroTAP/sample/RGBD/build $ ./aerotap_RGBD

画像をクリックすると、[カラー画像]>[グレースケール画像]の準備に切り替わります。

深度マップ カラー画像 グレイスケール画像
depth.png color.png gray.png

aeroTAP 3D USB G2カメラでの画像

[Esc]キーで終了します。

起動パラメータ

ソースコードを確認しても分かりますが、以下のパラメーターが利用可能です。

qiita.rb
	std::cout << "Options: -j MJPG,  -u uSB2.0, -f Enable Post Filter \n"
				 "Resolution: -r0 qvga, -r1 VGA, -r2 Wvga, -r3 HD\n" << std::endl;
  • -j オプションでカラー画像をMJPGモードで取り込みます。FPSを高速化できます。
  • -u USB20に接続している場合のオプションです。自動で認識されていない場合のみ指定します。
  • -f 深度マップを簡単にPost処理します。
  • -rX X:0 320x240, 1 640x480, 2 640x400 or 640x360, 3: 1280x720 ( GS or G2のみ)

Raspberry pi 3/4 Nano Pi等のUSB3.0に接続しても aeroTAP 3D USBカメラは、動作しません。USB2.0で接続してください。

PalmTrackビルド

PalmTrackは、aeroTAP 3Dカメラからのカラー画像/深度マップから手のひらを検出して表示するサンプルです。
以下の手順でビルドします。

qiita.rb
pi@raspberrypi: cd ~/aeroTAP/sample/PalmTrack
pi@raspberrypi:~/aeroTAP/sample/PalmTrack $ mkdir build
pi@raspberrypi:~/aeroTAP/sample/PalmTrack $ cd build
pi@raspberrypi:~/aeroTAP/sample/PalmTrack/build $ cmake ..
pi@raspberrypi:~/aeroTAP/sample/PalmTrack/build $ make

正常にビルドされているか確認してください。aerotap_PalmTrack 実行ファイルが作成されます。
実行してみてください。
距離を色で表現した深度マップが表示されたWindowが開きます。手のひらをカメラに向け、検出されると矩形が表示されます。

qiita.rb
pi@raspberrypi:~/aeroTAP/sample/PalmTrack/build $ ./aerotap_PalmTrack

画像をクリックすると、[カラー画像]>[グレースケール画像]の準備に切り替わります。
[Esc]キーで終了します。

cam2web カメラサーバーの作成

cam2web.tar.gzを展開して、ビルドします。cam2web 実行ファイルが作成されます。

qiita.rb
pi@raspberrypi:~/ $ tar -xvzf ./cam2web.tar.gz
pi@raspberrypi:~/ $ cd cam2web/src/apps/linux
pi@raspberrypi:~/ $ cd cam2web/src/apps/make

cam2webを実行します。

qiita.rb
pi@raspberrypi:~/cam2web/src/apps/ $ ./cam2web

ライブラリ libaeroTAP-sdk.so が見つからないとエラーが表示される場合は、LD_LIBRAYRY_PATHを設定してください。
export LD_LIBRARY_PATH=/home/pi/aeroTAP/lib/linux_arm.pi3/

ブラウズ

PCからブラウスして見てください。3Dカメラからの深度マップ画像をストリーミングできます。

qiita.rb
http://192.167.3.73:8000/

直接動画をストリーミングする場合:
http://192.167.3.73:8000/camera/mjpeg

画像を取得する場合:
http://192.167.3.73:8000/camera/jpeg

IPアドレスは、RaspiのIPアドレスを指定します。ポート番号 8000がデフォルトです。起動オプションにより解像度、表示内容、ポート番号などを変更することができます。以下のコマンドで利用可能なパラメーターを表示できます。
cam2web -?

複数のネットワーク3Dカメラからの取得

複数ネットワーク3Dカメラを構築したら、中央PCから同時に参照したくなります。下記のサイトにサンプルプログラムをアップしましたので、お試しください。

Pythonで扱う3Dカメラ

aeroTAP 3D USBカメラを扱うためのPythonライブラリは、aeroTAP/lib/pythonフォルダーにあります。実行するには、Python + Opencvの環境が必要です。

今回、Raspberry Pi3 Model BのOSバージョン

  • Debian 11.4
  • Python 3.9.2 (default, Mar 12 2021, 04:06:34)
    すでに python3, pip3はインストールされているようでした。
    その場合、下記のコマンドでnumpy. opencvがpython3で使えるようになるはずですが、import cv2でエラーが発生します。
sudo pip3 install numpy
sudo pip3 install opencv-python
sudo pip3 install opencv-contrib-python

python3
>>>import cv2

ネットでいろいろ調べたことろ下記の方法で解決できました。

まず、不足しているライブラリのインストール

sudo apt-get install libhdf5-dev libhdf5-serial-dev libatlas-base-dev

opencv-contribをアンインストールして、3.4.14.51をインストール

sudo pip3 uninstall opencv-contrib-python
sudo pip3 --default-timeout=1000 install opencv-contrib-python==3.4.14.51

python3
>>>import numpy
>>>import cv2

numpyでエラーがでます。

ImportError: numpy.core.multiarray failed to import

numpyの更新

pip install numpy --upgrade

python3
>>>import numpy
>>>import vc2

エラーなく、成功しました。

pythonサンプルの実行

LD_LIBRARY_PATHを設定(設定していない場合)して、

export LD_LIBRARY_PATH=/home/pi/aeroTAP/lib/linux_arm.pi3/

cd ~/aeroTAP/lib/python

aerotap.py サンプル

カメラを接続して、pyファイルを実行してください。

python3 ./aerotap.py

aeroTAP 3D USBカメラからカラー画像と、深度マップをカラー表示します。
デモは、'q'キーで終了、または一定フレーム数で終了します。

aerotapPalm.py サンプル

こちらは、手のひら検出を使った例です。

python3 ./aerotapPalm.py

aeroTAP 3D USBカメラからカラー画像、手のひらを検出すると矩形を表示します。
デモは、'q'キーで終了、または一定フレーム数で終了します。

pythonライブラリが正しく実行できたら、pythonライブラリを使って独自のアプリに挑戦し手見てください。

作成したRaspberry Pi3用イメージ

久しぶりに最新環境でRaspberry Pi3を設定すると、多くの問題で時間を浪費してしまいました。
ここで設定したRaspberry pi3のSDカードイメージをアップしておきましたので、aeroTAP 3D USBカメラで利用したい場合は、こちらのイメージを使っていただければ簡単い作業に入れます。

raspi3-March2022-aerotap.rar

ダウンロード、展開後、Win32DiskImagerを使って、SDカードに書き込んでください。

ユーザーID/パスワードは、pi/pi です。

起動後、WiFiなどネットワークの設定を行ってください。

イメージには、aeroTAP SDK, cam2webがすでに含まれていますが、最新版をGithubからダウンロードしてご利用ください。

参考文献

[NumPyとOpenCVのimportでエラーが出る件] https://qiita.com/thinknee/items/9489119c8b85d9323132
[ラズパイ(Raspberry Pi)へのOpenCVのインストール方法・手順] https://python-academia.com/raspberrypi-opencv/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0