D435i的/camera/imu没有发出来,可能是因为librealsense realsense-ros D435i的固件版本不匹配的原因。确实用2.50.0的realsense-viewer就读不出,用其他版本的realsense-viewer就读得出imu数据
在合众NX上遇见过这样的情况,所以记录下来。
要想完全卸载之前二进制安装过的librealsense(有两种方式,一种二进制直接安装librealsense,一种二进制安装realsense2_camera间接安装了librealsense)
需要用命令 dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
后面重装了librealsense和realsense-ros读取imu报错是因为缺少librealsense2-udev-rules,然后说没有权限什么的。装上后就可以正常读取IMU数据并发出/camera/imu话题了。
我需要写下以后装realsense驱动的教程
git clone -b v2.36.0 https://github.com/IntelRealSense/librealsense
cd librealsense|mkdir build|cd build
cmake ..
make -j8
sudo make install
再下对应2.2.15的realsense_ros
mkdir realsense_ws|cd realsense_ws|mkdir src|cd src
git clone -b 2.2.15 https://github.com/IntelRealSense/realsense-ros.git
cd ..|cd ..
catkin_make
遇到fine_if方面的报错,在对应报错cpp里面搜索find_if,在前面没有std::的find_if前面加上std::
error: ‘find_if’ was not declared in this scope
texture_frame_itr = find_if(frameset.begin(), frameset.end(), [&texture_source_id, &available_formats] (rs2::frame f)
D435i刷5.12.06的固件,用2.36.0版本的realsense-viewer刷
2.36.0版本的realsense-viewer在这里下载:
https://github.com/IntelRealSense/librealsense/releases?page=2
5.12.06的固件在这里下载
https://dev.intelrealsense.com/docs/firmware-releases