文章目录
一、硬件部分二、环境配置1.安装ROS2.编译realsense(1)查看版本(2)编译librealsense(3)编译realsense-ros(4)查看是否安装成功(5)更新D435i的固件 3.启动建图D435i无topic数据NX是Nvidia推出的一款迷你电脑,可以理解问一个可以装系统的单片机。NX是基于arm架构的,不同于我们电脑使用的x86或amd架构,在安装过程中会有一些区别。
一、硬件部分
NX的接口资源还是非常丰富的,官方版有4个USB接口。而且可以根据自己的使用需求买非官方的载板,我实验室采购的小载板是准备装在250或者330无人机上的。
IntelRealSense用于双相机的VIO,其中T265是视觉辅助IMU进行室内定位,D435是深度相机用于建图。
二、环境配置
首先要在NX上安装ubuntu,建议去NX官网下载镜像文件安装,不要安装官方发布的ubuntu版本,这一步最好和CUDA一起让商家给你装好。
另外值得注意的是,arm架构的源和x86/amd是不同的,要单独去搜arm的源!!
1.安装ROS
网上关于这个的教程非常多,大体就是按照官网教程往下推:
/cn/Installation/Ubuntu
不知道是不是错觉,arm架构下经常遇到网络问题导致安装不下去,比如添加key这一步。
2.编译realsense
开源网址:/IntelRealSense
这里面有两个有用的项目:
librealsense:realsense的依赖库realsense-ros:提供ros的扩展支持,比如launch文件就在这里
值得注意的是,你会发现官方只建议了在x86/amd架构下进行SDK安装,实际在nx上SDK安装librealsense确实存在一些问题,所以这里统一使用源码编译。
(1)查看版本
安装之前好好看一下自己下载的是哪个版本,一定要保证realsense-ros是支持你安装的版本的,一定要注意!
①首先进入/IntelRealSense/realsense-ros/releases/tag/2.3.1
②在Tags里选择版本,ROS1对应的是2.x的版本,ROS2对应的是3.x的版本。
③向下拉,首先看到Supported RealSense SDK这一项,下面写了对应的librealsense的版本,记住这个版本。
④再向下,Recommended Firmware中的表格里写了D400系列相机的固件版本,同样记住这个版本,这个非常重要!!
(2)编译librealsense
打开刚才记下的librealsense版本,开始源码编译,再次提醒注意版本:
git clone /IntelRealSense/librealsense.git #如果你记下的版本就是最新版本,就用这个,否则就需要在分支中下载老版本的.zipcd librealsensemkdir buildcd buildcmake ..make #漫长的等待sudo make install
(3)编译realsense-ros
首先创建工作空间
mkdir -p ~/catkin_realsense/srccd ~/catkin_realsense/src
下载源码
git clone /IntelRealSense/realsense-ros.gitcd realsense-ros/git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1` #查验cd ..
编译工作空间
catkin_init_workspacecd ..catkin_make cleancatkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Releasecatkin_make install
最后添加source文件
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrcsource ~/.bashrc
(4)查看是否安装成功
把相机分别单独连接到nx上,然后终端输入
realsense-viewer
应该是可以分别识别出两个相机的,并且应该可以看到视频、IMU和深度图像信息。
(5)更新D435i的固件
如果你在realsense-viewer中看到的D435i的固件比之前记下的低,那么你就需要升级固件。
固件下载地址:/docs/firmware-releases
然后参照官方教程:/docs/firmware-update-tool进行安装。
最后可以使用rs-fw-update -f
查看固件版本对不对。
3.启动建图
启动双相机的基本命令就是
roslaunch realsense_camera rs_d400_and_t365.launch
然后打开Rviz
Rviz
添加想查看的图像、点云、坐标系信息,可以查看是否能正常运行。
D435i无topic数据
在测试过程中,我发现D435i没有彩色图像和点云输出,最开始发现开启D435i后,nx其中一个cpu核一定是100%占用(sudo jtop
),那么应该就是默认参数太高了,需要进行调整。
在花费了很长时间的研究后,在github官方界面的issues的一个反馈里,找到了一个参考,原文是这么解决的:
roslaunch realsense2_camera rs_camera.launch filters:=pointcloud depth_width:=424 color_width:=424 depth_height:=240 color_height:=240 depth_fps:=15 color_fps:=15 pointcloud_texture_stream:=RS2_STREAM_ANY
这里解释一下,rs_camera.launch
相当于D400系列的通用启动文件,里面有很多初始化参数,比如上面就分别设置了:开启点云,深度和彩色图像的长宽和帧率。
那么同理,在rs_d400_and_t265.launch
里一样可以修改这些参数,打开.launch
文件我们可以看到文件架构,参数先声明后引用,如果参数声明时没赋值,就读取后面引用内的参数数值。
再次roslaunch这个文件,打开Rviz我们可以发现已经出现了图像和点云信息。
注:这些参数肯定不是最优,后续怎么用自己调整就好了,比如我不需要彩色图像和imu数据,就在launch文件里改就行了。
至于为什么不分别启动rs_camera.launch和rs_t265.launch,你自己试一下就知道了。