Skip to content
/ VSLAM Public

Specially based on Ubuntu:22.04,ROS2:Humble,and using Realsense D435i

Notifications You must be signed in to change notification settings

cvirxsc/VSLAM

Repository files navigation

VSLAM

基于Intel Realsense D435i的视觉惯性SLAM
本项目高度参考沈阳航空航天大学哨兵导航框架(目前已不含视觉分支),感谢他们 !


humble ubuntu22


概述

该项目旨在用深度相机进行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

Flowchart

Flowchart

Usage

1.Maping

Launch D435i Camera

ros2 launch realsense2_camera rs_launch.py

Launch IMU-Tools

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

Launch VINS-FUSION NODE

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

Launch octomap_server

ros2 launch octomap_server octomap_mapping.launch.xml

Rviz2

ros2 launch vins vins_rviz.launch.xml

2.Navigation

Launch D435i Camera

ros2 launch realsense2_camera rs_launch.py

Launch IMU-Tools

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

Launch VINS-FUSION NODE

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

Convert Pointcloud2_To_Gridmap

ros2 launch grid_map_demos pointcloud2_to_gridmap_demo_launch.py

Launch Nav2

ros2 launch nav2_sentry_bringup sentry_launch.py 

Install the Dependency

VINS-FUSION

octomap_server

sudo apt-get install cmake doxygen libqt4-dev libqt4-opengl-dev libqglviewer-dev-qt4
sudo apt-get install ros-humble-octomap-msgs

Gridmap

sudo apt-get install libeigen3-dev

More Information To Here

Navigation2

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

IMU-Tools

git clone -b <YOUR_ROSDISTO> https://github.com/CCNYRoboticsLab/imu_tools.git

About

Specially based on Ubuntu:22.04,ROS2:Humble,and using Realsense D435i

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published