当前位置:   article > 正文

Ego_planner复现_vins +ego-planer 语雀xtdrone

vins +ego-planer 语雀xtdrone

前言:高飞老师已经开源ego_planner项目,并且有较为详细的安装和使用步骤,看他的足矣,写此文章,作为记录。

一.设备列表

1.nuc12pro 机载电脑

2.CUAV x7+ pro 飞控

3.d435i 深度摄像头

4.电机  电调

5.6s 5300mah

6.at9s 遥控器

二.环境配置

前言:

我们用到的主要参考资料:1.xtdrone  仿真平台基础配置 · 语雀

2.小鱼的一键安装系列 | 鱼香ROS 

3.FAST_Drone_250 github

4.Vins_fusion github

5.https://github.com/IntelRealSense

主要软件的版本

ubuntu 18.04(更高版本20.04应该是可以的,不过我并没有安装过)

ros:melodic   

opencv :3.4.1.1 

librealsense:2.48.0   

1.ROS 安装

使用鱼哥的一键安装

wget http://fishros.com/install -O fishros && . fishros

鱼哥yyds!!!    注意:选择ROS1、更换并清除软件源、添加ros源。鱼哥一键安装还有很多功能,推荐把vscode 也安装了

如果想要自己更换软件源,推荐我自己写的,自我感觉写的很清楚。

ubuntu 换源

2.gabo9重新安装

主要参考仿真平台基础配置 · 语雀,作者推荐gazabo9,原因是他对gazebo9_ros进行过修改,但是不跑仿真,这步就可以不做,我还是做了,虽然我也不跑仿真

1.卸载gazebo

  1. sudo apt-get remove gazebo*
  2. sudo apt-get remove libgazebo*
  3. sudo apt-get remove ros-melodic-gazebo* #kinetic noetic对应修改
  4. # !!!注意不要把ros删掉了

2.重新下载gazebo9

添加源地址

sudo sh -c 'echo "deb  http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

 安装gazebo

  1. sudo apt-get update
  2. sudo apt-get install gazebo9
  3. sudo apt-get install libgazebo9-dev

3.安装gazebo-ros

 (1)安装依赖

sudo apt-get install ros-melodic-moveit-msgs ros-melodic-object-recognition-msgs ros-melodic-octomap-msgs ros-melodic-camera-info-manager  ros-melodic-control-toolbox ros-melodic-polled-camera ros-melodic-controller-manager ros-melodic-transmission-interface ros-melodic-joint-limits-interface

(2)编译gazebo-ros

先进行xtdrone 的源码下载

  1. cd ~/control/ROS
  2. git clone https://gitee.com/robin_shaun/XTDrone.git
  3. cd XTDrone
  4. git submodule update --init --recursive

(3)编译gazebo_ros

  1. mkdir ~/catkin_ws
  2. cd ~/catkin_ws
  3. cp -r ~/control/ROS/XTDrone/sitl_config/gazebo_ros_pkgs src/
  4. catkin build #开发者测试使用catkin_make会出问题,因此建议使用catkin build

如果没有build 编译工具,照终端提示下载即可。

编译成功后执行如下两条指令,判断gazebo_ros是否安装成功

roscore 
  1. source ~/catkin_ws/devel/setup.bash
  2. rosrun gazebo_ros gazebo

4.下载gazebo 模型

(1)登录下载

b0387e459882427abffbc1d0b8b33097.png

(2) 放置模型

~/.gazebo在主目录下,大家进去发现没有,Ctrl+H就出来了

876a4dba2740453cbb5ab3e3a4e453ba.png

 

  1. cd 下载/
  2. unzip -d ~/.gazebo/ models.zip

 

3.编译PX4

主要参考仿真平台基础配置 · 语雀,它有px4 1.11 和 px41.13,这里选择了px4 1.11,原因就是我复现的时候,1.13固件刚出不久,问题比较多,现在修复的差不多了,1.14都出测试版了。可以尝试一下1.13,新版本肯定有新功能,当然也有新bug。

这里主要介绍两种方法

(一)ubuntu 18.04

74bec24c110d40a496a9a1e70a8a3690.png

 登陆下载。

  1. mkdir -p control/ROS
  2. cd 下载/
  3. unzip -d unzip -d ~/control111/src/ PX4_Firmware.zip // unzip -d 是解压到指定目录下
  4. cd ~/control/src/PX4_Firmware/
  5. make px4_sitl_default gazebo

中间会缺包,用pip正常下载即可

出现gazebo 界面就是编译成功了,出现界面即使报错问题不大。

(二)非ubuntu 18.04

18.04可以是因为xtdrone编写者,编译PX4的时候是在18.04环境下编译的,到其它版本ubuntu可能会不适用,这时候就要用传统编译方法了。

1.准备科学上网工具

这里列出两个吧,都不是免费的

注册 — 筋斗云  这里是有一个邀请链接,9.9一月 15gb

Pigcha加速器官网  这个就贵,但是网速快,比较稳定

大家有需要就下载,自己有工具就跳过此步。

2.下载PX4

  1. mkdir -p control/ROS
  2. cd ~/control/ROS
  3. git clone https://github.com/PX4/PX4-Autopilot.git
  4. //如果上面网速太慢,可以加个代理 https://ghproxy.com/
  5. git clone https://ghproxy.com/https://github.com/PX4/PX4-Autopilot.git
  6. mv PX4-Autopilot PX4_Firmware //重命名
  7. cd PX4_Firmware
  8. git checkout -b xtdrone/dev v1.11.0-beta1 //切换标签 ,详情介绍等我有空写篇文章
  9. git submodule update --init --recursive //科学上网运行
  10. bash ./Tools/setup/ubuntu.sh //下载东西
  11. make px4_sitl_default gazebo

还是编译出gazebo 就代表成功。

38696dc9354941eaa0cadc4406c25265.png

4. 安装mavros

1.二进制安装

  二进制安装比较方便,但是后续使用会出launch的现找不到对应的包情况,但是我总是找不到修改launch的地方,所以如果有修改的情况,尽量源码安装。二进制安装可能在/opt/ros/melodic 里面? 有知道的可以告诉我一下。

(1)安装mavros

  1. sudo apt install ros-kinetic-mavros ros-kinetic-mavros-extras # for ros-kinetic
  2. sudo apt install ros-melodic-mavros ros-melodic-mavros-extras # for ros-melodic
  3. wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
  4. sudo chmod a+x ./install_geographiclib_datasets.sh
  5. sudo ./install_geographiclib_datasets.sh #这步需要装一段时间

(2)源码安装

mavros 源码 百度网盘安装   提取码: xkcr

我这里不讲传统安装方法,那会有很多问题,我直接跳过有问题的几步,因为那几步的最终结果不过也是下载我提供的包。

Ubuntu18.04下MAVROS源码安装教程_进击的饭团儿的博客-CSDN博客

mavros源码安装与配置_Jiali_0323的博客-CSDN博客

它的这个就是官方安装的例子,下载软件包是直接进行到 如下图所示

8b0e3101ccc24ef79448006e1376c1aa.png

下载之后

  1. mkdir -p ~/control/ROS/mymavros_ws
  2. cd 下载/
  3. unzip -d ~/control/ROS/mymavros_ws
  4. cd ~/control/ROS/mymavros_ws

下面这行命令运行会报错

rosdep install --from-paths src --ignore-src -y

这里可以换成小鱼哥的本文之后,世上再无rosdep更新失败问题!

  1. sudo pip3 install rosdepc
  2. sudo rosdepc init
  3. rosdepc update
  4. rosdepc install --from-paths src --ignore-src -y

可能最后一句命令会报错,再重新rosdepc init   rosdepc update 就可以了。

./src/mavros-master/mavros/scripts/install_geographiclib_datasets.sh

这里时间会久一点,缓慢等待一下。

catkin build

编译一下,用catkin_make也可以。

gedit ~/.bashrc
source ~/control/ROS/mavros_ws/devel/setup.bash

检测mavros 是否安装好

roscd mavros

若终端显示:~/control/ROS/mavros_ws/src/mavros-master/mavros,则表示MAVROS环境配置成功。

另一种检测方法就是连接真的飞控(我是这么做的,因为我主要还是实际飞行)

  1. sudo chmod 777 /dev/ttyACM0 //赋予USB口权限
  2. source ~/control/ROS/mavros_ws/devel/setup.bash
  3. roslaunch mavros px4.launch

成功运行后,打印话题信息,有信息就是连接成功

  1. rostopic list //列出所有话题
  2. rostopic echo /mavros/imu/data_raw

5.realsense_ros  librealsense 安装 适用于(T265、d435)

大家可以参考我的这篇文章:T265 安装(Realsense SDK和Realsense-ros)_YBH最帅!!!的博客-CSDN博客

 

6.vins_fusion 安装 

参考文章:视觉惯性里程计(VIO) · 语雀

XTDrone: 基于PX4、ROS和Gazebo的无人机通用仿真平台 - Gitee.com

GitHub - HKUST-Aerial-Robotics/VINS-Fusion: An optimization-based multi-sensor state estimator

Installation — Ceres Solver

vins-fusion环境配置、安装与测试_6¿6的博客-CSDN博客

1.ceres2.1.0 安装

(1)安装依赖

  1. # CMake
  2. sudo apt-get install cmake
  3. # google-glog + gflags
  4. sudo apt-get install libgoogle-glog-dev libgflags-dev
  5. # Use ATLAS for BLAS & LAPACK
  6. sudo apt-get install libatlas-base-dev
  7. # Eigen3
  8. sudo apt-get install libeigen3-dev
  9. # SuiteSparse (optional)
  10. sudo apt-get install libsuitesparse-dev

(2)编译安装

  1. tar zxf ceres-solver-2.1.0.tar.gz
  2. mkdir ceres-bin
  3. cd ceres-bin
  4. cmake ../ceres-solver-2.1.0
  5. make -j3
  6. make test
  7. make install

(3)测试安装是否成功

bin/simple_bundle_adjuster ../ceres-solver-2.1.0/data/problem-16-22106-pre.txt

出现这个代表安装成功

  1. iter cost cost_change |gradient| |step| tr_ratio tr_radius ls_iter iter_time total_time
  2. 0 4.185660e+06 0.00e+00 1.09e+08 0.00e+00 0.00e+00 1.00e+04 0 7.59e-02 3.37e-01
  3. 1 1.062590e+05 4.08e+06 8.99e+06 5.36e+02 9.82e-01 3.00e+04 1 1.65e-01 5.03e-01
  4. 2 4.992817e+04 5.63e+04 8.32e+06 3.19e+02 6.52e-01 3.09e+04 1 1.45e-01 6.48e-01
  5. 3 1.899774e+04 3.09e+04 1.60e+06 1.24e+02 9.77e-01 9.26e+04 1 1.43e-01 7.92e-01
  6. 4 1.808729e+04 9.10e+02 3.97e+05 6.39e+01 9.51e-01 2.78e+05 1 1.45e-01 9.36e-01
  7. 5 1.803399e+04 5.33e+01 1.48e+04 1.23e+01 9.99e-01 8.33e+05 1 1.45e-01 1.08e+00
  8. 6 1.803390e+04 9.02e-02 6.35e+01 8.00e-01 1.00e+00 2.50e+06 1 1.50e-01 1.23e+00
  9. Solver Summary (v 2.1.0-eigen-(3.4.0)-lapack-suitesparse-(5.10.1)-acceleratesparse-eigensparse-no_openmp)
  10. Original Reduced
  11. Parameter blocks 22122 22122
  12. Parameters 66462 66462
  13. Residual blocks 83718 83718
  14. Residuals 167436 167436
  15. Minimizer TRUST_REGION
  16. Dense linear algebra library EIGEN
  17. Trust region strategy LEVENBERG_MARQUARDT
  18. Given Used
  19. Linear solver DENSE_SCHUR DENSE_SCHUR
  20. Threads 1 1
  21. Linear solver ordering AUTOMATIC 22106,16
  22. Schur structure 2,3,9 2,3,9
  23. Cost:
  24. Initial 4.185660e+06
  25. Final 1.803390e+04
  26. Change 4.167626e+06
  27. Minimizer iterations 7
  28. Successful steps 7
  29. Unsuccessful steps 0
  30. Time (in seconds):
  31. Preprocessor 0.121654
  32. Residual only evaluation 0.065968 (7)
  33. Jacobian & residual evaluation 0.303356 (7)
  34. Linear solver 0.436650 (7)
  35. Minimizer 0.890535
  36. Postprocessor 0.001684
  37. Total 1.013873
  38. Termination: CONVERGENCE (Function tolerance reached. |cost_change|/cost: 1.769756e-09 <= 1.000000e-06)

2.安装opencv-3.4.11

  (1)安装依赖环境

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

(2)下载安装opencv

 opencv下载地址Releases - OpenCV

09015dba62304066b31ccf5d7e53e942.png

  1. unzip -d ~/control/ROS opencv-3.4.11.zip
  2. cd ~/control/ROS/opencv-3.4.11
  3. mkdir build
  4. cd build

 编译

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

 

sudo make -j8  // -j8 表示使用 8 个线程进行编译。 单线程:sudo make

 安装

sudo make install

 

(3)配置生效

sudo gedit /etc/ld.so.conf

 添加一行

include /usr/local/lib

更新系统共享链接库

sudo ldconfig

配置bash

sudo gedit /etc/bash.bashrc 

 文件末尾加入

  1. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  2. export PKG_CONFIG_PATH

 退出,保存配置

source /etc/bash.bashrc

更新

sudo updatedb


(4)检查

查看 OpenCV 的版本信息是否匹配

pkg-config --modversion opencv

出现opencv 版本号即可

 

(5)安装ros与opencv的桥接工具包

sudo apt-get install ros-noetic-cv-bridge ros-noetic-tf ros-noetic-message-filters ros-noetic-image-transport

3.编译安装vins

  1. cd ~/catkin_ws/src
  2. git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
  3. cd ../
  4. catkin_make
  5. source ~/catkin_ws/devel/setup.bash

测试vins定位效果

连接飞控

  1. sudo chmod 777 /dev/ttyACM0 //赋予USB口权限
  2. source ~/control/ROS/mavros_ws/devel/setup.bash
  3. roslaunch mavros px4.launch

开启d435 摄像头,请使用我修改过后的文件

  1. source ~/control/ROS/realsense-ros/devel/setup.bash
  2. roslaunch realsense2_camera rs_camera.launch

开启vins

rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml

打印坐标信息  记得改这个

rostopic echo /vins...

走一走,看它漂不漂,这里高飞老师团队做的教程视频很好

提示信息 - 深蓝学院 - 专注人工智能与自动驾驶的学习平台

主要看 9-10节 ,剩下看文档就行

7.fast_drone_250、ego_planner 安装

ego_planner 有原始版本,但是我们照着深蓝学院的教程做,那就去下载fast_drone_250

https://github.com/ZJU-FAST-Lab/Fast-Drone-250.git

注意下载后删掉src 这里的两个包,重复了,并且版本不同会报错。

72cb0d0edeb0463c980e8776534b5339.jpeg

  1. git clone https://github.com/ZJU-FAST-Lab/Fast-Drone-250
  2. cd ~/control/ROS/Fast-Drone-250
  3. catkin_make
  4. source ~/control/ROS/devel/setup.bash
  5. roslaunch ego_planner single_run_in_sim.launch

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/489677
推荐阅读
相关标签
  

闽ICP备14008679号