ロボットによく使われるセンサの1つとして,ステレオカメラがあります。人の目と同じように,カメラが2つついていて,その視差を利用して3次元的な情報を得るセンサです!(これについて気が向いたら記事書こう(´っ・ω・)っ ググればたくさん理論がでてくるよ(/・ω・)/)

 

ステレオカメラの1つにZED Stereo Cameraという製品があるのですが,それをUbuntu上のROS Kineticで動かそうとしてZED SDKのバージョンとLinux KernelのバージョンとCUDAのバージョンが合わなかったことにハマったので,それについての解決策を書いておきます。技術者向けの記事になるのかな(*ノωノ)

ちなみに,ROSというのはロボットのためのミドルウェアでRobot Operating Systemのこと。KinetcはROSのバージョン。気が向けばROSについての記事も書こう(/・ω・)/

ZEDを動かすにはGPUを使うため,CUDAが必要。それから,ZED SDKというものが必要。

起こった問題というのが,ZED SDKのバージョンとLinux KernelのバージョンとCUDAのバージョンが合わなかったことに起因する問題でした。

  • 問題が起こった時のPC環境
    • OS : Ubuntu 16.04
    • Linux Kernel ver. : 4.13 (uname -r で調べられます)
    • CUDA ver. : 8
    • GPU : GTX 1050 Ti
  1. 最初にZED SDK ver. 2.2をインストールしました。
    1. 現時点で最新バージョンのZED SDK ver.2.2.1はCUDA9にのみ対応していたので,一個前のver. 2.2をインストールした次第です(*ノωノ)
    2. 動きません!
    3. ZED SDK ver. 2.2が対応しているLinux Kernelのバージョンが4.4以下のため,4.13である私のPCでは動きませんでした(・ω・)
  2. CUDAを最新版にアップグレードして,ZED SDKの最新版(ver. 2.2.1)をインストール!
    1. 動きませんでした!
    2. 適当にCUDAの最新版にアップグレードしたら、ver. 9.1でございました(´・ω・`) でもでも!ZEDのページにはCUDA9で動く!って書いてあるから9.1でも動くやろ!って。。思ってた。。。動かん( 一一)
  3. CUDA  9.0にダウングレードして,ZED SDKの最新版(ver. 2.2.1)をインストール!
    1. うーごーいーたーーーー!!!!
    2. sudo apt-get isntall cuda-9-0 でver. 9.0のCUDAをインストール
    3. そしたら!!!動いた!!!
    4. ROS Kineticでも動くことを確認しました(∩´∀`)∩
      1.  roslaunch zed_wrapper display.launch が正常に動いた

 

まとめ

現時点で最新版のZED SDK ver. 2.2.1はCUDA9.0のみでしか動かない。CUDA8の場合はZED SDK ver.2.2だけど,Linux Kernelのバージョンが4.4までしか対応してないから,4.13のPCでは動かない。

よって,Linux Kernelのバージョンが4.4より上のPCは,CUDA9.0をいれてZED SDK ver. 2.2.1を入れよう!CUDAの更新を適当にやるとCUDA9.1が入っちゃうからダメだよ!!!

Categories:

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA