TX2在ROS下使用Realsense D435i跑rtabmap和octomap

  • 使用环境:Ubuntu 16.04(JetPinstallation_jetson.md一段话:“NVIDIA的L4T提供了基于Ubuntu的发行版,带有基于4.9版的自定义内核。内核的配置和部署方式与桌面Ubuntu映像不同,两个显着差异是默认配置中包含的内核模块列表以及新映像的刷新方式。”

步骤如下:
(1)注册服务器的公钥:

sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE 

(2)将服务器添加到软件源列表中:
Ubuntu 16:

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo xenial main" -u 

Ubuntu 18:

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo bionic main" -u 

(3)安装SDK:

sudo apt-get install librealsense2-utils sudo apt-get install librealsense2-dev 

(4)重新连接RealSense设备并从终端运行:realsense-viewer验证安装

  • 方法二:下载librealsense源码包编译,该方法有一个好处就是可以下载指定版本的librealsense包,方便与后续下载的realsense-ros版本匹配。

步骤如下:
(1)下载源码包

git clone https://github.com/IntelRealSense/librealsense.git 

*若想下载指定版本的librealsense,可从Releases页面下载。
(2)构建和修补Jetson L4T的内核模块

cd librealsense2 ./scripts/patch-realsense-ubuntu-L4T.sh   

(3)编译librealsense2 SDK

sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev -y ./scripts/setup_udev_rules.sh   mkdir build && cd build   cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=release -DFORCE_RSUSB_BACKEND=false -DBUILD_WITH_CUDA=true && make -j$(($(nproc)-1)) && sudo make install 

(4)连接Realsense设备,运行realsense-viewer并检查结果

2.安装realsense-ros

这一步要注意与librealsense的版本匹配问题。详见realsense-ros发行说明
TX2在ROS下使用Realsense D435i跑rtabmap和octomap
推荐采用源码包方式安装,方便修改launch等文件。
步骤如下:
(1)先创建工作空间

mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src/ catkin_init_workspace 

(2)下载realsense-ros到src里
若最新版本realsense-ros与librealsense版本不匹配,自行到releases里下载。

git clone https://github.com/IntelRealSense/realsense-ros.git cd realsense-ros/ git checkout `git tag | sort -V | grep -P "^2.d+.d+" | tail -1` #检查所下载的版本是否是想要的 cd .. 

(3)编译

cd .. catkin_make clean catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release catkin_make install echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc 

(4)插上相机测试一下

roslaunch realsense2_camera rs_camera.launch 

ROS下使用D435i跑rtabmap和octomap

参考SLAM-with-D435i

  1. 安装以下三个包:imu_filter_madgwick、rtabmap_ros和robot_localization
sudo apt-get install ros-kinetic-imu-filter-madgwick   sudo apt-get install ros-kinetic-rtabmap-ros   sudo apt-get install ros-kinetic-robot-localization   
  1. 启动
    这里启动的是realsense-ros包里带的opensource_tracking.launch
roslaunch realsense2_camera opensource_tracking.launch 

效果如下:
TX2在ROS下使用Realsense D435i跑rtabmap和octomap

注意到上图中ColorOccupacyGrid插件报错,原因是缺少安装Octomap在ROS中的包。

  1. 安装octomap-ros
sudo apt-get install ros-kinetic-octomap* 
  1. 重新使用D435i启动节点
roslaunch realsense2_camera opensource_tracking.launch 

效果如下:
TX2在ROS下使用Realsense D435i跑rtabmap和octomap

版权声明:玥玥 发表于 2021-05-06 16:39:36。
转载请注明:TX2在ROS下使用Realsense D435i跑rtabmap和octomap | 女黑客导航