じどう化とか

ロボット、IoT、AIとか

ClearGraspを使って、透明なボトルをRealsenseで撮影したい!それもWindows(WSL)で

Google AI blogのClearGraspを利用して、透明なボトルを撮影してみる。いつかマッチングをさせたい。という内容です。

現在我が家には、Linux環境がないのでWindowsで行いたいのですが、ClearGraspは構成上でonly Linuxとなっています。このためWSLから実行するために用意しました。

思い出しながら書いているので抜けてるかもしれませんがご容赦ください

github.com

環境を用意

WSLのインストール

WSL2のインストールと分かりやすく解説【Windows10/11】 | チグサウェブ

WSLでUSBを動かせるようにする

【第4回】WSL2にUbuntu 22.04 LTSを導入する(Webカメラを使う) - パソコン関連もろもろ

WSL2 USBカメラ+他のUSB機器 2022年09月06日版

他には、動作試験用にfswebcamやGeditもインストール

3DとRealsense周りは以下の物をインストール

  • Pytorch
  • CUDA

WSL2 上の Ubuntu での NVIDIA CUDA ツールキット, NVIDIA cuDNN, PyTorch, TensorFlow 2.7 のインストールと動作確認(Windows 上)

  • LibRealsense

RealsenseをセットアップしてROSやUnityで使う方法

【第4回】WSL2にUbuntu 22.04 LTSを導入する(Webカメラを使う) - パソコン関連もろもろ

/bin/sh: 1: bc: not found

buを別でインストール

3.9.1-landiskクロスコンパイル - forester3の日記

 

本体の用意(での問題点)

  • $ sudo apt-get install libhdf5-10 libhdf5-serial-dev libhdf5-dev libhdf5-cpp-11
    で"libhdf5-10"と"libhdf5-cpp-11"がインストールできず。
    "sudo apt update"などやったが効果なし。
    結局問題のあった"libhdf5-10"と"libhdf5-cpp-11"を取り除いて実行
    $ sudo apt-get install libhdf5-serial-dev libhdf5-dev
    なんでこれでよいかがわからない。
  • $ pip install -r requirements.txt
    でCould not find a version that satisfies the requirement opencv-python==4.1.2.30と怒られる。opencv-python==4.1.2.30が無いとのこと。
    requirements.txtをopencv-python==4.7.0.68と書き換え
  • depth2depthは"api/depth2depth/gaps"に入っており自分でコンパイルする。
  • depth2depthをコンパイル中、GL/Glu.hが無いといわれる。

    以下を実行した。
    $ sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
  • python起動し足りなかったライブラリは入れていく
  • eval_dept_completion.py を実行の際に__init__.py周りでエラーが出た。__init__.pyの書き方を少し修正した。

  • live_demoを起動するために、パイプラインソフトを起動するとエラーが出る。
    • realsense.cppの解像度を変更、154,156行のフレームレートも30fpsに固定

    合わせてcamera.pyも修正
  • ダウンロードした”cleargrasp-checkpoints”はフォルダ"data"以下に"cleargrasp"といフォルダを作って入れる
  •  libcuda.soのリンクが見つからない

    "~/.bashrc"に以下を追加
    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/lib/wsl/lib/:$LD_LIBRARY_PATH
  • camera.pyでエラーが出る。

    284行目のlongをint64に修正

普段の起動

wslにUSBを紐づける

USBのリストを確認して、1-5をwslに紐づける

wsl側

>usbipd wsl list

>usbipd wsl attach --busid 1-5

以下、画像は1-5を紐づけた様子

wsl側でカメラの接続を確認

$ lsusb

カメラの権限を変更する

$ sudo chmod 777 /dev/video*

カメラ準備完了

デモを動かす。まずはRealsenseの画像をTCP経由(パソコン内)で渡すソフトを起動する。このソフトは"&"をつけて起動したまま次のコマンドへ行く。

$ cd ~/cleargrasp/live_demo/

$ ./realsense/build/realsense &

続いてスクリプト本体を起動する

python live_demo.py -c config/config.yaml