-
Notifications
You must be signed in to change notification settings - Fork 427
安装及编译
操作系统:Ubuntu 18.04 Ubuntu 18.04 镜像下载
注:理论来说,Prometheus项目也支持其他ubuntu版本。 注:如果需要使用视觉检测模块,建议使用ubuntu18.04,否则会遇到opencv版本问题(需自行解决)。
根据使用场景选择硬件平台:
-
软件在环仿真测试
- 在笔记本或台式机中进行配置!!!(不能在树莓派、TX2、NX等机载电脑中配置仿真环境!!!)
- 启动盘制作及双系统安装教程
- Gazebo仿真对CPU要求较高(对GPU和内存要求较低),注意:不建议使用虚拟机
- 执行完本文档后,请查阅仿真飞行配置
-
机载飞行测试(经验不足的开发者请先进行本地仿真测试)
- 在机载电脑中进行配置!!!
- 机载设备推荐: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-*
-
安装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仿真环境配置教程为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项目根目录,并执行对应的编译脚本,第一次编译用时较久,请耐心等待
cd Prometheus sudo chmod 777 ./compile_all.sh (第一次运行才需要执行此赋权命令) ./compile_all.sh
-
特别强调说明:
- 目前每个模块都是一个独立的ros包,编译脚本会负责全部或部分编译模块代码,每个包的命名规则为
prometheus_xxx
- 因此如果你只做控制或者只做视觉,只需要编译对应的脚本即可,极大降低开发难度(比如你编译的时候你不感兴趣的代码报错了,也许这个报错你完全不需要考虑)
- 目前每个模块都是一个独立的ros包,编译脚本会负责全部或部分编译模块代码,每个包的命名规则为
-
编译脚本说明:
-
compile_all.sh
默认编译项目中所有代码,因此编译时请确认每个模块都没有报错 -
compile_control.sh
则只编译控制部分代码,若只需要使用控制部分代码,运行./compile_control.sh
即可,其他编译脚本其自行查阅理解
-
代码目录 | 功能 |
---|---|
Modules | 各模块功能的源代码 |
Simulator | 仿真飞行相关代码 |
Experiment | 真实飞行相关代码 |
模块 | 目录 | 功能 |
---|---|---|
控制模块 | Modules/control | 底层控制 |
规划模块 | Modules/planning | 路径规划 |
SLAM模块 | Modules/slam | 定位与建图 |
目标检测模块 | Modules/object_detection | 目标识别与检测 |
地面站模块 | Modules/ground_station | 地面监控与消息打印 |
任务模块 | Modules/mission | 上层任务 |
公用模块 | Modules/common | 各模块公用代码 |
自定义消息模块 | Modules/common/msgs | 本项目自定义消息 |
感谢使用Prometheus自主无人机软件平台!