最近我们新购买了英特尔的实感深度摄像机。它是由红外摄像机和普通的摄像机结合的传感器。这个传感器在网上找资料的时候评价很好,所以我们就买了这个传感器。这个传感器本身的价格也不贵,貌似折算成人民币要2400多块钱。作为动辄好几万好几万的自动驾驶常感器来说,这个传感器感觉还可以。对于动辄好几万的。自动驾驶传感器,比如激光雷达或者是gps惯性导航单元什么的,感觉这个传感器还是蛮便宜的。 还有一个选择这个传感器的原因就是,他是英特尔的。各种包的支持多一些。
我们希望用这个传感器基于ROS上开源的RTAB-map进行实时地图建模。至于为什么要用RTAB-map库,只有一个原因: 看起来很酷!(其实还有一个原因:课题需要。。。)
如果考虑未来的话,在自动驾驶中,可以用来实时建模,也可以提高识别物体的准确性。同时把行驶中的所有的深度传感器的数据整合起来,合成一个整体的地图的话,应该在制作高精技术的时候有所帮助。但是因为是用红外线的,识别的距离和精度都很有限,能不能用就看以后的测试结果了(不期待,性能很有限)。就算不是自动驾驶中使用,也可以用来在低速的移动机器人上面应用。
不管咋样,我就是看上了RTAB-map,太酷~
废话不多说,现在开始配置英特尔实感深度摄像机。
01. SDK安装&ROS catkin
实感深度摄像机,它本身是支持ROS的。而且我们现在的平台也是基于ROS的。所以我们安装这个驱动的时候,是要以在ROS上跑为目的而安装的。 所以,找到realsense ros的维基百科。也就是下面这个链接。当然,这个链接里面的内容不多,它更大的作用是提供很多很多传送门(链接)。
realsense2_camera - ROS Wikiwiki.ros.org进去之后读相关的文章,了解一下内容。之后我们要做的就是安装驱动。这里需要说明一下的就是安装驱动,安装ros kinetic, catkin workspace 的配置都是独立的。我们根据提供的安装链接进去,那么看见的就是下面第二个网站
intel-ros/realsensegithub.com然后在这里想提醒一下的就是,尽量按照步骤一Debian的方式去安装SDK。 也就是下面这个链接。(下面图片,点击step1里面的Debian Package 时跳出的页面)。最后如果在ubuntu的terminal上输入realsense-viewer的时候,实感相机的摄像机数据和深度数据会显示在viewer上。这时候就说明SDK安装成功。(但是在这个步骤,你应该看不见这些图像会出现在viewer上,图像会显示frame not received in 5 seconds。。,怎么办?先不用管,继续跟着做)
IntelRealSense/librealsensegithub.com然后就是第二步安装ROS。但在配置step1之前,我的电脑上就已经安装ROS。所以步骤一步骤二,没有一定的前后顺序。都是安装好就可以了。
第三个步骤中,想要提示一下的就是在我画红圈的地方别忘了下载那个文件,然后放到ROS的src里面。其余的跟着做就可以了。
在这个说明的最下面还有很多其他相关的内容,比如用多个摄像机的时候要怎么做,比如ROS的launch file 应该怎么跑。这边我还没有进行实测,所以就不多说了。
20200810 更新: 按照官方说明一般就可以。 但是如果出现找不到 realsense2 2.37版本,那么就去catkin_ws/src/realsense_ros/realsense2_camera/CMakeList.txt里面,找到find_package(realsense2 2.37.0)改为find_package(realsense2 2.36.0)
(If catkin_make reports errors, remove the installed realsense related with command at bottom of debian-package link)
那么好了,现在所有的东西都安装好了。然后,我们再打开terminal,输入realsense-viewer的时候,应该要显示什么东西了把?
还是不行
为什么?
因为,这个深度摄像机的初始firmware的版本太低。如果仔细看realsense-viewer的时候,在窗口的下面(还是右上角。。忘了)会有红色的小字显示,现在的firmware的版本太低,要达到minimum 要求。我觉得这个是个小坑,因为,安装的说明上没有说一定要更新firmware。。
02. Firmware update in ubuntu(16.04))
为什么一定要强调是在ubuntu上呢?因为以前是不可以在这个ubuntu系统上更新固件的,以前更新固件的话,一定要在windows的系统(10)里面更新。但是不知道什么时候他们更新了一下,让这个硬件可以在ubuntu上直接更新固件。
更新固件的方法也很简单,他们有一个详细的说明。就是下面这个链接。
Linux* Firmware Update User Guide for Intel® RealSense™ D400 Series...www.intel.com进去之后会看见下面图片一样的页面。点开被红圈圈出来的文件linux* Device 什么什么 user guide(pdf)。打开这个文件我们就可以根据文件中的8,9页的说明进行固件更新。
其他的步骤直接复制粘贴就可以啦。但是在第8步的时候,我出现了一些问题。嗯,我的智商出现了问题。
就是下面这个命令行中,不仅 -b 后的002, -d 后面的002 要根据自己情况更改,还需要更改的就是最后面的5 9 2 0.
5 9 2 0是什么呢?是固件软件的版本。
我们如果下载最新版的。固件升级文件的话,是 5 10 3 0. 所以这些数字也要换掉。也就是要指定好下载的Signed_Image。。。3_0.bin这个文件。
我今天一直就是输入5920,然后一直说他怎么就安装不上。最后花时间为自己的智商买了单。。。o(╥﹏╥)o
之后就简单了,更新固件只需要不到半分钟就完成了。
intel-realsense-dfu –b 002 –d 002 –f –i /home/intel/downloads/Signed_Image_UVC_5_9_2_0.bin
更新完固件。建议重新启动一下机器。然后在打开终端输入realsense-viewer,这时我们就可以看到图像传送到了viewer上。
ROS上有很多资源和example,大家可以参考参考。有好的资源也可以推荐推荐。
分享是个美德~
最终还是完成了安装。万幸。
如果没完成的话。那真是很遗憾。
毕竟一整天的大部分的时间都花在了更新这个固件上面。
有时候真的会为配置硬件花费很多的时间。希望这个文章可以为买这个设备的同学少浪费点时间。
20181108
家里
林明
20200915 update
When we launch the rs_rgbd.launch file, then we can get the data with /camera/depth-registered/points which data type is sensor-msgs/Pointcloud2. The Hz of this data can be set in the rs-rgbd.launch file. The default value is 30. However from the rqt-topic monitor, we can find the HZ of this data is only about 0.61( actually, it drop from 60HZ just in 20 seconds).
However, when we use
rostopic hz /camera/depth-registered/points
then the frequency shows in the
The realsense d435 connects to the computer directly and the computer spec is intel i7, 8th, 12GB.
附加脚本:
#! /bin/bash
# 1 install realsense sdk first
# ddynamic issues : missing dependency with ddynamic_reconfigure · Issue #812 · IntelRealSense/realsense-ros
sudo apt-get update
sudo apt-get install ros-kinetic-ddynamic-reconfigure
cd ~
sudo apt-key adv --keyserver OpenPGP Keyserver --recv-key C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE
sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u
sudo rm -f /etc/apt/sources.list.d/realsense-public.list
sudo apt-get update
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg
# With dev package installed, you can compile an application with librealsense using
# g++ -std=c++11 filename.cpp -lrealsense2Uninstalling the Packages:
#Important Removing Debian package is allowed only when no other installed packages directly refer to it. For example removing librealsense2-udev-rules requires librealsense2 to be removed first.
#Remove a single package with:
#sudo apt-get --purge <package-name>
#Remove all RealSense™ SDK-related packages with:
#dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
# 2 install ros package
cd ~/catkin_ws/src/
wget https://github.com/intel-ros/realsense/archive/2.1.3.zip
unzip realsense-2.1.3
#catkin_init_workspace
cd ..
#catkin_make clean
#catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make
catkin_make install
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install ros-kinetic-rgbd-launch
roslaunch realsense2_camera rs_camera.launch