之前在zed接入ros是基于Jetson NX 开发板,而Jetson NX 是自带CUDA10.2版本的。这次是基于x86板,所以要自行安装CUDA
1.前言
如果你之前执行过:sudo apt-get install nvidia-cuda-toolkit,查看cuda版本:nvcc -V ,不是你要安装的目标版本,则需要先卸载,执行命令:
sudo apt-get autoremove nvidia-cuda-toolkit
如果卸载失败,可以先查询,然后依次序依次完全卸载CUDA:
sudo dpkg -l | grep cuda
sudo dpkg -P 包名 # 使用命令卸载cuda及cudnn包
2.安装cuda10.2
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-2-local-10.2.89-440.33.01/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
参考官网地址:CUDA Toolkit 10.2 Download
安装完成之后,查看安装的版本及路径:
cat /usr/local/cuda/version.txt
whereis cuda
在.bashrc文件末尾中添加
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
#完成之后,source ~/.bashrc
3.安装ZED SDK
官网下载与对应ubuntu 和CUDA 版本的 SDK:安装SDK
chmod a+x ZED_SDK_Ubuntu18_cuda10.2_v3.7.4.run
./ZED_SDK_Ubuntu18_cuda10.2_v3.7.4.run
一路YES, 安装完成。
这里遇到WARNING: 报错:Python API 安装失败,解决:
cd /usr/local/zed/
git clone https://github.com/stereolabs/zed-python-api.git
cd /zed-python-api/src
pip3 install -r requirements.txt
python3 setup.py build
python3 setup.py install --user
安装完成后,验证在python3下import pyzed
python3
import pyzed
4.验证
./ZED_Explorer
其中./ZED_Sensor_Viewer 启动不起来,还是老错误:Segmentation fault (core dumped), 不影响后面的使用,继续~~
5.安装ZED2 ROS工具
cd ~/catkin_ws/src
git clone https://github.com/stereolabs/zed-ros-wrapper.git
cd ../
rosdep install --from-paths src --ignore-src -r -y
catkin_make -DCMAKE_BUILD_TYPE=Release
source ./devel/setup.bash
问题1:
其中,安装依赖(rosdep install --from-paths src --ignore-src -r -y)时报错:zed_nodelets: Cannot locate rosdep definition for [zed_interfaces]
解决:
cd src/
git clone https://github.com/stereolabs/zed-ros-interfaces.git
重新执行编译:
rosdep install --from-paths src --ignore-src -r -y
问题2:
运行launch文件总是报错
查阅资料,需要编译之前始终清理 catkin 工作区的缓存:
cd ~/catkin_ws/
rm -rf build
rm -rf devel
catkin_make -DCMAKE_BUILD_TYPE=Release
问题3:
因为将catkin 工作区的缓存清理, 所以之前已经安装的包需要再重新编译一遍
6.运行
roslaunch zed_wrapper zed2.launch
rostopic list
参考链接:
https://github.com/stereolabs/zed-ros-wrapper
https://blog.csdn.net/xiaojinger_123/article/details/121142167
https://blog.csdn.net/hhaowang/article/details/115401380
http://t.csdn.cn/3JODy