等了快半个月的ZED2相机今天拿到手啦,开始ZED2和VINS之旅吧。
本篇博客主要记录ZED2相机SDK 安装过程以及在ROS下的环境搭建、编译使用等,搭建后期开发环境。
官网上选择与你的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即可以,安装完成。
1)
cd /usr/local/zed/tools
./ZED_Depth_Viewer
错误,黑屏,不显示图像信息和深度信息
终端错误信息,显示CUDA错误:
目前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
哭哭哭~,静下心来,分析这个问题,可能是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
cd /usr/local/zed/tools
./ZED_Sensor_Viewer
这里可以看到加速度计、陀螺仪、四元数、气压计、磁力计及温度等传感器信息。
安装命令:
$ 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文件:
可查看所有topic
查看所有node
查看topic具体信息:
查看/imu/data信息:三轴角度、角速度、加速度和相应的协方差矩阵(卡尔曼滤波中求取卡尔曼增益和状态转移矩阵)
查看pose信息:
可在该工作空间下安装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