ロボットによく使われるセンサの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
- 最初にZED SDK ver. 2.2をインストールしました。
- 現時点で最新バージョンのZED SDK ver.2.2.1はCUDA9にのみ対応していたので,一個前のver. 2.2をインストールした次第です(*ノωノ)
- 動きません!
- ZED SDK ver. 2.2が対応しているLinux Kernelのバージョンが4.4以下のため,4.13である私のPCでは動きませんでした(・ω・)
- CUDAを最新版にアップグレードして,ZED SDKの最新版(ver. 2.2.1)をインストール!
- 動きませんでした!
- 適当にCUDAの最新版にアップグレードしたら、ver. 9.1でございました(´・ω・`) でもでも!ZEDのページにはCUDA9で動く!って書いてあるから9.1でも動くやろ!って。。思ってた。。。動かん( 一一)
- CUDA 9.0にダウングレードして,ZED SDKの最新版(ver. 2.2.1)をインストール!
- うーごーいーたーーーー!!!!
- sudo apt-get isntall cuda-9-0 でver. 9.0のCUDAをインストール
- そしたら!!!動いた!!!
- ROS Kineticでも動くことを確認しました(∩´∀`)∩
- 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が入っちゃうからダメだよ!!!
No responses yet