安装Conda并配置PX4无人机仿真环境
安装Conda并配置PX4无人机仿真环境
一、Conda简介与安装准备
Conda是一个开源的包管理和环境管理系统,特别适合管理Python环境,能有效解决多版本Python共存、依赖冲突等问题。它主要包含两个版本:
- Anaconda:一个完整的发行版,内置了丰富的科学计算包,适合数据科学和机器学习。
- Miniconda:一个精简的发行版,只包含Conda、Python和少量核心依赖,更轻量,适合自定义环境。
对于PX4开发,推荐安装Miniconda,以避免不必要的包冲突。
在开始之前,请确保系统满足以下条件:
- 操作系统:本文以Ubuntu 22.04为例,但Conda同样支持Windows和macOS,操作逻辑基本一致。
- 存储空间:至少预留5GB可用空间。
二、Miniconda安装步骤
-
下载安装脚本(科学上网)
打开终端,使用wget命令下载最新的Miniconda安装脚本(Linux x86_64版本):wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh也可以从Anaconda官网下载其他系统的版本。
-
安装Miniconda
依次执行以下命令:# 赋予脚本执行权限 chmod +x Miniconda3-latest-Linux-x86_64.sh # 运行安装脚本 bash Miniconda3-latest-Linux-x86_64.sh- 安装过程中,按回车键阅读许可协议,然后输入
yes同意条款。 - 接着会提示确认安装路径,通常直接回车使用默认路径即可。
- 重要:当脚本询问是否初始化Conda时,选择
yes,这会将Conda添加到你的系统环境变量中。
- 安装过程中,按回车键阅读许可协议,然后输入
-
激活安装
安装完成后,执行source ~/.bashrc让环境变量生效。之后,你的终端命令提示符前应该会显示(base),这表示你正处于Conda的base环境中。 -
验证安装
运行conda --version,如果终端输出了Conda的版本号(例如conda 24.9.2),恭喜你,安装成功了!
三、配置PX4开发环境
使用Conda为PX4创建一个独立的Python环境,避免与系统其他项目产生依赖冲突。
-
创建专用环境
建议为PX4创建一个新的隔离环境,例如我创建的是一个名为px4-dev,Python版本为3.8的环境:conda create --name px4-dev python=3.8创建完成后,使用
conda activate px4-dev激活该环境。激活后,命令行提示符前的(base)会变为(px4-dev)。 -
安装PX4工具链(不在
px4-dev环境)
PX4官方提供了自动化的环境配置脚本,用于安装系统级的编译工具和库。
如果你当前已处于某个 Conda 环境,要执行conda deactivate命令先退出,让脚本在系统基础环境下运行,以避免潜在的环境冲突。
前置条件:已克隆PX4源码仓库(此步骤可能会耗费较长时间),参照博文《克隆PX4仓库并清理历史记录推送到Gitee的完整指南》:git clone https://github.com/PX4/PX4-Autopilot.git --recursive cd PX4-Autopilot然后,运行官方脚本安装所有必要的依赖和工具:
bash ./Tools/setup/ubuntu.sh该脚本会自动安装Gazebo仿真器、ARM工具链等PX4编译和仿真所需的全部依赖。
-
安装必要的Python包(在
px4-dev环境)
确保安装PX4开发可能用到的关键Python包:pip install pyserial empy toml numpy pandas jinja2 pyyaml pyros-genmsg packaging
此处列举的包不一定全,需要根据编译的提示自己再补充下载。
四、验证与环境使用
-
验证环境
一切就绪后,先进入名为px4-dev的隔离环境,然后编译和启动一个基础的Gazebo仿真来测试环境:# 激活该环境 conda activate px4-dev # 在PX4-Autopilot目录下 make px4_sitl gazebo-classic如果Gazebo能够成功启动并显示无人机模型,说明PX4环境已经配置成功!
-
环境的使用与管理
- 激活环境:每次打开新的终端进行PX4开发时,都需要先运行
conda activate px4-dev。 - 退出环境:执行
conda deactivate。 - 删除环境:若不再需要,可通过
conda remove --name px4-dev --all删除。
- 激活环境:每次打开新的终端进行PX4开发时,都需要先运行
