Skip to content

安装及编译

Eason Yi edited this page Apr 10, 2023 · 21 revisions

安装及编译

操作系统及硬件平台要求

操作系统Ubuntu 18.04 Ubuntu 18.04 镜像下载

注:理论来说,Prometheus项目也支持其他ubuntu版本。 注:如果需要使用视觉检测模块,建议使用ubuntu18.04,否则会遇到opencv版本问题(需自行解决)。

根据使用场景选择硬件平台:

  1. 软件在环仿真测试
    • 在笔记本或台式机中进行配置!!!(不能在树莓派、TX2、NX等机载电脑中配置仿真环境!!!)
    • 启动盘制作及双系统安装教程
    • Gazebo仿真对CPU要求较高(对GPU和内存要求较低),注意:不建议使用虚拟机
    • 执行完本文档后,请查阅仿真飞行配置
  2. 机载飞行测试(经验不足的开发者请先进行本地仿真测试)
    • 在机载电脑中进行配置!!!
    • 机载设备推荐:Nvidia TX2, Nvidia Nano, INTEL NUC
    • 根据预算及实验需求综合选择
    • 执行完本文档后,请查阅机载飞行配置(此部分暂时不开源)

特别注意:双系统镜像和Docker均不是最推荐的安装方式!安装及仿真环境配置虽然对于新手有一些繁琐,但一定是最合理的开发方式,同时也是学习的过程。

依赖项安装

必备依赖项安装

  • 安装ROS,安装教程:https://www.ros.org/

  • ROS安装的最后一步rosdep一定要安装正确,不然仿真中没法spawn模型

  • 通过二进制的方法安装Mavros功能包(如果你已经使用源码的方式安装过Mavros功能包,请先将其删除),安装教程: https://github.com/mavlink/mavros

    安装Mavros包
    sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras
    安装GeographicLib(这一步如果一直下载不下来请翻墙或切换手机热点多次尝试,请耐心等待,这一步就是比较慢)
    wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
    sudo ./install_geographiclib_datasets.sh
    

建图模块依赖项安装

  • 安装rtabmap

    sudo apt-get install ros-melodic-rtabmap*
    
  • 安装Octomap:

    sudo apt-get install ros-melodic-octomap-*
    

激光SLAM依赖项安装

  • 安装cartographer

    sudo apt-get install ros-melodic-cartographer*

视觉检测依赖项安装

如果需要运行数字识别SiamRPN跟踪,需要安装PyTorch

目前ROS仅支持python2,所以确保你的CUDA版本为10.1或9.2

# 首先查看CUDA版本
nvidia-smi
# CUDA 10.1
pip2 install torch==1.4.0 torchvision==0.5.0
# CUDA 9.2
pip2 install torch==1.4.0+cu92 torchvision==0.5.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html
# CPU only,如果没有Nvidia显卡,则安装CPU版本(影响检测性能)
pip2 install torch==1.4.0+cpu torchvision==0.5.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

规划模块依赖项安装

  • 安装非线性优化工具箱 NLopt,安装方法如下

    git clone git://github.com/stevengj/nlopt  
    cd nlopt  
    mkdir build  
    cd build  
    cmake ..  
    make  
    sudo make install  
    

Prometheus项目下载(V1)

注意:本章Prometheus仿真环境配置教程为Prometheus-v1版本的教程, 需要注意,由于Prometheus-v2版本更新,Prometheus-v1和Prometheus-v2相关项目分支存在差异

Prometheus-v2:Prometheus为main分支,prometheus_px4为1.12.3分支

也就是说如果你要配置Prometheus V1,那么在最开始不能直接git clone,那样会直接下载最新Prometheus 你需要指定分支v1.1下载 如下

git clone -b v1.1 https://gitee.com/amovlab/Prometheus.git

#进入目录检查一下分支
cd Prometheus
git branch
#显示* v1.1代表分支下载正确

Prometheus-v1:Prometheus为v1.1分支,prometheus_px4为1.11.1分支

这个和上面同理,下载时需要指定分支,如下

git clone -b Prometheus_PX4_1.11.1 https://gitee.com/amovlab/prometheus_px4.git

#进入目录检查一下分支
cd prometheus_px4/
git branch
#显示* Prometheus_PX4_1.11.1代表分支下载正确

如果需要搭建Prometheus-v2版本,需要前往 Prometheus V2 Wiki手册

  • 环境变量配置,打开一个新终端,输入gedit .bashrc并回车,在打开的bashrc.txt文件中添加 source /home/$(your computer name)/Prometheus/devel/setup.bash,或者使用如下命令(需编译后才会出现该文件!)

    echo "source (Path To Prometheus)/devel/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    

Prometheus项目编译

  • 打开至Prometheus项目根目录,并执行对应的编译脚本,第一次编译用时较久,请耐心等待

    cd Prometheus
    sudo chmod 777 ./compile_all.sh (第一次运行才需要执行此赋权命令)
    ./compile_all.sh
    
  • 特别强调说明:

    • 目前每个模块都是一个独立的ros包,编译脚本会负责全部或部分编译模块代码,每个包的命名规则为prometheus_xxx
    • 因此如果你只做控制或者只做视觉,只需要编译对应的脚本即可,极大降低开发难度(比如你编译的时候你不感兴趣的代码报错了,也许这个报错你完全不需要考虑)
  • 编译脚本说明:

    • compile_all.sh默认编译项目中所有代码,因此编译时请确认每个模块都没有报错
    • compile_control.sh则只编译控制部分代码,若只需要使用控制部分代码,运行./compile_control.sh即可,其他编译脚本其自行查阅理解

代码概览

代码框架

代码目录 功能
Modules 各模块功能的源代码
Simulator 仿真飞行相关代码
Experiment 真实飞行相关代码

Modules介绍

模块 目录 功能
控制模块 Modules/control 底层控制
规划模块 Modules/planning 路径规划
SLAM模块 Modules/slam 定位与建图
目标检测模块 Modules/object_detection 目标识别与检测
地面站模块 Modules/ground_station 地面监控与消息打印
任务模块 Modules/mission 上层任务
公用模块 Modules/common 各模块公用代码
自定义消息模块 Modules/common/msgs 本项目自定义消息

模块关系图

image-20210505142908333

Clone this wiki locally