很长时间没有使用笔记本打开realsense D435i相机,再次使用时发现不灵了,报错如下:
[ INFO] [1633692792.103425171]: Setting Dynamic reconfig parameters.
08/10 19:33:12,131 WARNING [140467643610880] (types.cpp:78) hwmon command 0x7d( 0 0 0 0 ) failed (response -21= No data to return)
terminate called after throwing an instance of 'rs2::invalid_value_error'
what(): hwmon command 0x7d( 0 0 0 0 ) failed (response -21= No data to return)
[camera/realsense2_camera_manager-2] process has died [pid 9929, exit code -6, cmd /opt/ros/kinetic/lib/nodelet/nodelet manager __name:=realsense2_camera_manager __log:=/home/ipsg/.ros/log/843ea48e-282b-11ec-95f0-646e69f48e3d/camera-realsense2_camera_manager-2.log].
log file: /home/ipsg/.ros/log/843ea48e-282b-11ec-95f0-646e69f48e3d/camera-realsense2_camera_manager-2*.log
怀疑应该是底层版本库的问题,解决该问题的办法朝着更新驱动版本进行。在能够打开该相机的电脑上测试发现,能够打开的驱动版本如下:
[ INFO] [1633747478.439432323]: RealSense ROS v2.2.15
[ INFO] [1633747478.439514903]: Built with LibRealSense v2.40.0
[ INFO] [1633747478.439577111]: Running with LibRealSense v2.40.0
而我的电脑上的LibRealSense版本为:2.31。应该就找到问题了,尝试安装2.40版本的底层驱动。
(1)下载源码驱动:
git clone https://github.com/IntelRealSense/librealsense
cd librealsense
(2)安装依赖项
sudo apt-get install libudev-dev pkg-config libgtk-3-dev
sudo apt-get install libusb-1.0-0-dev pkg-config
sudo apt-get install libglfw3-dev
sudo apt-get install libssl-dev
sudo apt-get install ros-kinetic-ddynamic-reconfigure
(3)Install Intel Realsense permission scripts located in librealsense source directory:
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
(4)这边需要注意把realsense拔下来,Build and apply patched kernel modules for,根据不同的ubuntu版本安装:对于Ubuntu 14/16/18 LTS:
./scripts/patch-realsense-ubuntu-lts.sh
sudo dmesg | tail -n 50
这里可以看一下UVC是否安装成功了。
(5)基于cmake编译
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make
sudo make install
-DBUILD_EXAMPLES=true 这个选项表示带演示和教程的。
(6)进入/librealsense/build/examples/capture,试一下效果
./rs-capture
显示除深度图、彩色图和陀螺仪相关画面便安装成功!
(7)因重新安装了librealsense底层驱动,现对realsense-ros源码重新编译,直接catkin_make
即可。编译成功之后,打开相机测试:
roslaunch realsense2_camera rs_camera.launch filters:=pointcloud
添加展示项:PointCloud2
,选择topic:camera/depth/color/points
,
再将Fixed_frame设置为camera_link
。然后就可以看到点云效果的展示。
至此以完成驱动的更新安装及测试,测试成功可用!
参考博客:
https://blog.csdn.net/Night___Raid/article/details/106122412