はじめに
ZEDのROSパッケージを実際に動かしてみました.
その時に,nvidia関連で大変苦労したので,メモ.
nvidia関連はここを参考にしました.
動作環境
仕様は以下の表にまとめています.
項目 | 値 |
---|---|
OS | 18.04.3 LTS (Bionic Beaver) |
kernel | 5.0.0-29-generic |
ROS | melodic |
CPU | core i7-6820HQ |
RAM | 16GB |
GPU | NVIDIA Quadro M1000M |
nvidia driverのインストール.
まず,最初にnvidia driverをインストールする.
GUIで操作する場合は,ソフトウエアとアップデート
→追加のドライバー
から,nvidia-driver-410を選択.
選択し,変更の適用
を押すと,自動でドライバーをインストールしてくれる.適用には,結構時間がかかる.
もしくは,
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-driver-410
でインストールできる.
ここまでできたら,一旦再起動.
deb[local]形式で,CUDA10.0インストール
ターミナルでnvidia-smi
コマンドを打ち,現在のnvidia-driverのバージョンが,410.XXになっていることを確認.
ここの配布サイトから,CUDA10.0をdeb[local]形式でダウンロード.
こんな感じで選択しました.
ダウンロードした,ディレクトリに移動.
以下のコマンドを順に実行
sudo dpkg -i cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
ここまでできたら,一旦再起動.
上記でインストールできる場合もあるが、何故か、nvidiadriverが上書きされる場合があるので、下記のように指定してあげたほうが良さそう(2020/06/20)
sudo apt-get install cuda-toolkit-10-0
次に,PATHの設定.
gedit ~/.bashrc
でbashファイルを開き,以下の2行を追加.
export PATH="/usr/local/cuda-10.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
bashファイルを再読込(PATHを通す).
source ~/.bashrc
ここまでできたら,一旦再起動.
nvidia-smi
で確認.
以下のように,DriverとCUDAのVersionが表示されれば,OK.
cat02@dmgs-TPad:~$ nvidia-smi
Wed Sep 25 15:47:19 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.129 Driver Version: 410.129 CUDA Version: 10.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro M1000M On | 00000000:01:00.0 On | N/A |
| N/A 44C P0 N/A / N/A | 805MiB / 2002MiB | 9% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1244 G /usr/lib/xorg/Xorg 95MiB |
| 0 1414 G /usr/bin/gnome-shell 52MiB |
| 0 1646 G /usr/lib/xorg/Xorg 327MiB |
| 0 1850 G /usr/bin/gnome-shell 167MiB |
| 0 2958 G ...uest-channel-token=17855968623154417761 125MiB |
| 0 3241 G ...uest-channel-token=17932134006793618157 30MiB |
+-----------------------------------------------------------------------------+
ZED SDKをインストール
ZEDSDKのインストールは,ここを参照.
ダウンロード先に移動.
実行権限を追加
chmod +x ZED_SDK_Ubuntu18_v2.8.3.run
runファイルを実行
./ZED_SDK_Ubuntu18_v2.8.3.run
基本的に,何か聞かれたら,Y
を入力してエンター
このとき,
fail: "ERROR: Found Cuda 9.1 but the ZED SDK requires 10.0"
的な,ものが表示された場合は,正しくCUDAがインストールされていないので,一度,
sudo apt-get purge nvidia-*
でnvidiaを消去,もう一度最初からやり直してみてください,
正しくインストールできた場合は,ZEDをUSB3.0ポートに接続して/usr/local/zed/tools
にある,ZED Explorer
を実行すると,
Viewerが動く.
camera not deteced
の警告が出たら,USB接続し直してください.
ZED ROS Warpperをインストール
ZED ROS Warpperのインストールは,ここを参照.
RvizのIMUプラグインをインストール.
sudo apt-get install ros-melodic-rviz-imu-plugin
自分のcatkin_ws/src
に移動.
git cloneでスクリプトをダウンロード.
git clone https://github.com/stereolabs/zed-ros-wrapper.git
その後以下のコマンドを実行
cd ..
catkin_make -DCMAKE_BUILD_TYPE=Release
ちゃんとMakeできたら,正しくインストールしている.
このとき,~.soをmakeするファイルがありません.中止
とエラーが出た場合は,一度,devel
とbuild
ファイルを消去し,catkin_make
してみてください.うまく行くかもしれないです.
また,この投稿も参考にしてみてください.
動かす
roslaunch zed_wrapper zed.launch
ZED-miniの場合は,
roslaunch zed_wrapper zedm.launch
詳しくは,先程参照した,ここを見る.
終わりに
SDK,ros wrapper自体のインストールは,問題なかったですが,CUDAのインストールに大変苦労しました.
自分の場合,CUDA10.0は,Nvidia-driver 410.xxじゃないと,うまくインストールできませんでした....
また,複数回CUDAやSDKを入れ直したことによって,パスがぐちゃぐちゃになってしまい.catkin_make
を通すのに,時間がかかりました(泣).
もう少し,パスや環境変数,シンボリックリンクなど,Linuxのシステムについて,色々と触らないと駄目ですね.