Ego_planner复现

前言:高飞老师已经开源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

sudo apt-get remove gazebo* 
sudo apt-get remove libgazebo*
sudo apt-get remove ros-melodic-gazebo* #kinetic noetic对应修改
# !!!注意不要把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

sudo apt-get update

sudo apt-get install gazebo9 

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 的源码下载

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

(3)编译gazebo_ros

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

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

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

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

4.下载gazebo 模型

(1)登录下载

b0387e459882427abffbc1d0b8b33097.png

(2) 放置模型

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

876a4dba2740453cbb5ab3e3a4e453ba.png

 

cd 下载/
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

 登陆下载。

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

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

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

(二)非ubuntu 18.04

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

1.准备科学上网工具

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

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

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

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

2.下载PX4

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



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

38696dc9354941eaa0cadc4406c25265.png

4. 安装mavros

1.二进制安装

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

(1)安装mavros

sudo apt install ros-kinetic-mavros ros-kinetic-mavros-extras 		# for ros-kinetic
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras 		# for ros-melodic
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh

sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #这步需要装一段时间

(2)源码安装

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

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

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

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

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

8b0e3101ccc24ef79448006e1376c1aa.png

下载之后

mkdir -p ~/control/ROS/mymavros_ws
cd 下载/
unzip -d ~/control/ROS/mymavros_ws
cd ~/control/ROS/mymavros_ws

下面这行命令运行会报错

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

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

sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update
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环境配置成功。

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

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

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

rostopic list  //列出所有话题
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)安装依赖

# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev

(2)编译安装

tar zxf ceres-solver-2.1.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.1.0
make -j3
make test
make install

(3)测试安装是否成功

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

出现这个代表安装成功

  iter      cost      cost_change  |gradient|   |step|    tr_ratio  tr_radius  ls_iter  iter_time  total_time
     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
     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
     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
     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
     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
     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
     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

Solver Summary (v 2.1.0-eigen-(3.4.0)-lapack-suitesparse-(5.10.1)-acceleratesparse-eigensparse-no_openmp)

                                     Original                  Reduced
Parameter blocks                        22122                    22122
Parameters                              66462                    66462
Residual blocks                         83718                    83718
Residuals                              167436                   167436

Minimizer                        TRUST_REGION

Dense linear algebra library            EIGEN
Trust region strategy     LEVENBERG_MARQUARDT

                                        Given                     Used
Linear solver                     DENSE_SCHUR              DENSE_SCHUR
Threads                                     1                        1
Linear solver ordering              AUTOMATIC                 22106,16
Schur structure                         2,3,9                    2,3,9

Cost:
Initial                          4.185660e+06
Final                            1.803390e+04
Change                           4.167626e+06

Minimizer iterations                        7
Successful steps                            7
Unsuccessful steps                          0

Time (in seconds):
Preprocessor                         0.121654

  Residual only evaluation           0.065968 (7)
  Jacobian & residual evaluation     0.303356 (7)
  Linear solver                      0.436650 (7)
Minimizer                            0.890535

Postprocessor                        0.001684
Total                                1.013873

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

unzip -d ~/control/ROS opencv-3.4.11.zip
cd ~/control/ROS/opencv-3.4.11
mkdir build
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 

 文件末尾加入

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
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

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

测试vins定位效果

连接飞控

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

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

source ~/control/ROS/realsense-ros/devel/setup.bash
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

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

 

 

  • 14
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YBH最帅!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值