ZED2相机SDK安装使用及ROS下使用

等了快半个月的ZED2相机今天拿到手啦,开始ZED2和VINS之旅吧。

本篇博客主要记录ZED2相机SDK 安装过程以及在ROS下的环境搭建、编译使用等,搭建后期开发环境。

ZED2相机实图

ZED2相机SDK安装使用及ROS下使用_第1张图片
ZED2相机SDK安装使用及ROS下使用_第2张图片

SDK安装

官网上选择与你的Ubuntu系统和CUDA版本对应的SDK版本下载安装。
SDK下载

chmod +x ZED_SDK_Ubuntu18_cuda10.2_v3.5.0.run
./ZED_SDK_Ubuntu18_cuda10.2_v3.5.0.run

报错:Python API 安装失败(有些同学这一步安装是没问题的)

主要原因应是stereolabs下行宽带不行。

解决:

git clone https://github.com/stereolabs/zed-python-api
cd /zed-python-api/src
pip3 install -r requirements.txt
python3 setup.py build
python3 setup.py install --user

执行之后,如果没有报错应该就没问题了,在python3下import pyzed,没报错就是安装完成了。

重新安装,安装提醒是否希望安装ZED Python API,选N即可以,安装完成。

ZED_Depth_Viewer、ZED_Sensor_Viewer测试

1)

cd /usr/local/zed/tools
./ZED_Depth_Viewer

错误,黑屏,不显示图像信息和深度信息

终端错误信息,显示CUDA错误:
ZED2相机SDK安装使用及ROS下使用_第3张图片目前CUDA版本为11.4,但nvidia-smi错误,怀疑是CUDA版本与NVIDIA驱动版本不搭,所以卸载CUDA11.4,安装CUDA11.0,可参考博客:ubuntu20.04卸载cuda11.4重装cuda11.0。
解决NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver

CUDA 更新为11.0后,重新执行:

./ZED_Depth_Viewer

ZED2相机SDK安装使用及ROS下使用_第4张图片哭哭哭~,静下心来,分析这个问题,可能是nvidia驱动或是CUDA 的问题,经排查,发现是nvidia驱动没完全安装成功,opengl没有安装,解决:
之前安装nvidia驱动时

sudo ./NVIDIA-Linux-x86_64-470.82.00.run --no-x-check --no-nouveau-check --no-opengl-files

卸载nvidia驱动,重新安装

sudo ./NVIDIA-Linux-x86_64-470.82.00.run 

重新测试,成功,yeah~
ZED2相机SDK安装使用及ROS下使用_第5张图片

cd /usr/local/zed/tools
./ZED_Sensor_Viewer

ZED2相机SDK安装使用及ROS下使用_第6张图片这里可以看到加速度计、陀螺仪、四元数、气压计、磁力计及温度等传感器信息。

安装ZED2 ROS工具

安装命令:

$ cd ~/ZED_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

编译过程中,提示缺少什么包就安装什么包,其中错误

Make Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "zed_interfaces"
  with any of the following names:

    zed_interfacesConfig.cmake
    zed_interfaces-config.cmake

  Add the installation prefix of "zed_interfaces" to CMAKE_PREFIX_PATH or set
  "zed_interfaces_DIR" to a directory containing one of the above files.  If
  "zed_interfaces" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  zed-ros-wrapper/zed_nodelets/CMakeLists.txt:41 (find_package)

只需要安装一个zed_interfaces再重新编译一下就可以了,注意安装路径/ZED_WS/src

git clone https://github.com/stereolabs/zed-ros-interfaces

编译成功后,便可在ROS 下打开相机,运行ZED2

roslaunch zed_wrapper zed2.launch

错误1:Resource not found: xacro
解决:sudo apt-get install ros-noetic-xacro

错误2:ERROR: cannot launch node of type [robot_state_publisher/robot_state_publisher]: robot_state_publisher
解决:
这是robot_state_publisher包缺失导致的问题

sudo apt-get install ros-kinetic-robot-state-publisher

如果显示无法定位此文件,则重新填一遍秘钥

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
 
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

之后更新一下软件包索引

sudo apt-get update

再次运行测试launch文件:
ZED2相机SDK安装使用及ROS下使用_第7张图片可查看所有topic
ZED2相机SDK安装使用及ROS下使用_第8张图片查看所有node
在这里插入图片描述查看topic具体信息:
查看/imu/data信息:三轴角度、角速度、加速度和相应的协方差矩阵(卡尔曼滤波中求取卡尔曼增益和状态转移矩阵)
ZED2相机SDK安装使用及ROS下使用_第9张图片查看pose信息:
ZED2相机SDK安装使用及ROS下使用_第10张图片可在该工作空间下安装zed-ros-examples

$ cd ~/ZED_WS/src
$ git clone https://github.com/stereolabs/zed-ros-examples.git
$ cd ../
$ rosdep install --from-paths src --ignore-src -r -y
$ catkin_make -DCMAKE_BUILD_TYPE=Release
$ source ./devel/setup.bash

运行几个自带的SDK看看效果:

1)roslaunch zed_display_rviz display_zed2.launch
2)roslaunch zed_rtabmap_example zed_rtabmap.launch

效果如下:
1)
ZED2相机SDK安装使用及ROS下使用_第11张图片2)
ZED2相机SDK安装使用及ROS下使用_第12张图片
ZED2相机SDK安装使用及ROS下使用_第13张图片

你可能感兴趣的:(SLAM,ZED2,ubuntu,sdk)