基于Intel Realsense D435i的视觉惯性SLAM
本项目高度参考沈阳航空航天大学哨兵导航框架(目前已不含视觉分支),感谢他们 !
该项目旨在用深度相机进行SLAM建图及导航,各个功能包功能如下:
建图算法
:octomap_mapping
里程计
:VINS-Fusion-ROS2
定位\重定位
:VINS-Fusion-ROS2
2.5D栅格地图
:grid_map-humble
IMU滤波
:imu_tools-humble
导航及路径规划
:navigation2-humble
其中docker文件含构建Ubuntu22.04、ROS2:Humble,以及Intel Realsense SDK、ROS2功能包的dockerfile。构建容器后可用于Robomaster人工智能挑战赛的快速开发。
关于Intel Realsense SDK、ROS2功能包的环境构建,有以下两种方法:
-
docker容器构建
-
本地构建镜像
docker build --no-cache -t {Image_name}:{tag} . #例:docker build --nocache -t slam:test .
-
构建容器
# 需要挂载设备dev docker run --name {container_name} -it {Image_ID} \ -v /dev:/dev #例:docker run --name realsense_test -it 065ba1f13207 \ -v /dev:/dev
-
-
本地环境构建(默认Humble环境,否则参考ROS2 Humble)
-
安装最新的 Intel® RealSense™ SDK 2.0
参考Intel官方文档Linux Debian Installation Guide
jetson用户参考Jetson Installation Guide -
安装Intel® RealSense™ ROS2 wrapper
创建工作空间mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src/
克隆项目
git clone https://github.com/IntelRealSense/realsense-ros.git -b ros2-development cd ~/ros2_ws
安装依赖(网络问题请参考rosdepc,rosdep后直接+c即可)
sudo apt-get install python3-rosdep -y sudo rosdep init rosdep update rosdep install -i --from-path src --rosdistro $ROS_DISTRO --skip-keys=librealsense2 -y
构建
colcon build
刷新到环境变量
source /opt/ros/humble/setup.bash cd ~/ros2_ws . install/local_setup.bash
-
ros2 launch realsense2_camera rs_launch.py
ros2 launch imu_complementary_filter complementary_filter.launch.py
Or
ros2 run imu_complementary_filter complementary_filter_node --ros-args -p use_mag:=false -r /imu/data_raw:=/camera/imu
ros2 run vins vins_node ~/DIRPATH/VINS-Fusion-ROS2/config/realsense_d435i/realsense_stereo_imu_config.yaml
ros2 run loop_fusion loop_fusion_node ~/DIRPATH/VINS-Fusion-ROS2/config/realsense_d435i/realsense_stereo_imu_config.yaml
ros2 launch octomap_server octomap_mapping.launch.xml
ros2 launch vins vins_rviz.launch.xml
ros2 launch realsense2_camera rs_launch.py
ros2 launch imu_complementary_filter complementary_filter.launch.py
Or
ros2 run imu_complementary_filter complementary_filter_node --ros-args -p use_mag:=false -r /imu/data_raw:=/camera/imu
ros2 run vins vins_node ~/DIRPATH/VINS-Fusion-ROS2/config/realsense_d435i/realsense_stereo_imu_config.yaml
ros2 run loop_fusion loop_fusion_node ~/DIRPATH/VINS-Fusion-ROS2/config/realsense_d435i/realsense_stereo_imu_config.yaml
ros2 launch grid_map_demos pointcloud2_to_gridmap_demo_launch.py
ros2 launch nav2_sentry_bringup sentry_launch.py
- OpenCV3.4.1
- Ceres Solver-2.1.0
- Eigen-3.3.9
sudo apt-get install cmake doxygen libqt4-dev libqt4-opengl-dev libqglviewer-dev-qt4
sudo apt-get install ros-humble-octomap-msgs
sudo apt-get install libeigen3-dev
sudo apt install -y ros-humble-nav2*
sudo apt install -y ros-humble-gazebo-*
sudo apt install -y ros-humble-xacro
sudo apt install -y ros-humble-robot-state-publisher
sudo apt install -y ros-humble-joint-state-publisher
sudo apt install -y ros-humble-rviz2
sudo apt install -y ros-humble-pcl-ros
sudo apt install -y ros-humble-pcl-conversions
sudo apt install -y ros-humble-libpointmatcher
sudo apt install -y ros-humble-tf2-geometry-msgs
sudo apt install -y libboost-all-dev
sudo apt install -y libgoogle-glog-dev
git clone -b <YOUR_ROSDISTO> https://github.com/CCNYRoboticsLab/imu_tools.git