视觉SLAM

这篇博客主要要参考了“XTDrone 视觉SLAM环境配置”,原作者提供的教程前面关于依赖的都没介绍,也可能是在ORBSLAM2编译依赖这里详细介绍了,但是全英文对我来说太有挑战了,我就没认真看

本教程以ORBSLAM2为例。ORBSLAM3已经在XTDrone上测试过,编译和使用方法与ORBSLAM3高度类似,大家如果有需要,可以根据此教程同理使用ORBSLAM3

安装各种依赖

sudo apt install -y libgl1-mesa-dev
sudo apt install -y libglew-dev
sudo apt install -y cmake
sudo apt install -y libpython2.7-dev
sudo apt install -y python-pip
sudo python -mpip install numpy pyopengl Pillow pybind11
sudo apt install -y pkg-config
sudo apt install -y libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
sudo apt install -y ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev
sudo apt install -y libdc1394-22-dev libraw1394-dev
sudo apt install -y libjpeg-dev libpng-dev libtiff5-dev libopenexr-dev


# 1)安装 GLEW:
sudo apt-get install -y libglew-dev
# 2)安装 libuvc:
git clone https://github.com/ktossell/libuvc
cd libuvc
mkdir build
cd build
cmake ..
make && sudo make install

提前解决 libuvc.so.0问题

sudo /sbin/ldconfig -v

安装0.5版本的pangolin

先下载并解压缩到ubuntu的用户目录:
https://github.com/stevenlovegrove/Pangolin/releases/tag/v0.5
再进行安装

这里我是解压到主目录下
在这里插入图片描述

cd Pangolin-0.5 #这里要根据文件夹的名称修改
mkdir build
cd build
cmake ..
make -j8
sudo make install

ORBSLAM2编译(这里开始就和原作者的流程一样了)

注意该ORBSLAM2是在原版本基础上略做修改,其虽然支持ROS,但不是标准的ROS架构,因此不能采用catkin build编译

cp -r ~/XTDrone/sensing/slam/vslam/ORB_SLAM2/ ~/catkin_ws/src/
mkdir ~/catkin_ws/scripts/
cp ~/catkin_ws/src/ORB_SLAM2/xtdrone* ~/catkin_ws/scripts/
cd ~/catkin_ws/src/ORB_SLAM2
chmod +x build.sh
./build.sh
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/catkin_ws/src/ORB_SLAM2/Examples/ROS #将这句放到~/.bashrc中,以后使用更方便
chmod +x build_ros.sh
./build_ros.sh

代码里已经给大家提供了仿真使用的相机的标定文件,大家不用自己计算;想深入研究ORBSLAM2的标定文件,可以参考这个链接

由于Noetic自带的OpenCV版本是4.2.0,在编译时需要先修改CMakeList.txt (这一部分因为之前我在没安装依赖之前就该了,后面安装依赖之后没报错,不知道不改是不是也行)

find_package(OpenCV 4.2 QUIET)
if(NOT OpenCV_FOUND)
   find_package(OpenCV 2.4.3 QUIET)
   if(NOT OpenCV_FOUND)
      message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
   endif()
endif()

编译过程中还会出现如下错误,添加对应头文件:(这个错误我也没遇到)

error: ‘CV_RGB2GRAY’ was not declared in this scope
#include <opencv2/imgproc.hpp>

其余报错同理。

启动仿真

启动PX4仿真,以下以室内场景一为例,其余场景同理

cd PX4_Firmware
roslaunch px4 indoor1.launch

在另一个终端启动ORBSLAM2,一开始需要等一会儿,它在载入词袋

cd ~/catkin_ws/scripts/
sh xtdrone_run_stereo.sh

·默认xtdrone_run_stereo.sh脚本是用于iris_0的,如果是给别的vehicle提供,需要修改该脚本,将iris_0换为其他vehicle
在这里插入图片描述

现在视觉定位信息就通过mavros发到PX4,查看/iris_0/mavros/local_position/pose可以看到有正确的数据

在另一个终端启动,

cd ~/XTDrone/communication
python multirotor_communication.py iris 0

建立通信后,启动键盘控制,即可飞行

cd ~/XTDrone/control/keyboard
python multirotor_keyboard_control.py iris 1 vel

视觉SLAM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值