3. 操作系统与基础软件准备

做地面站仿真联调,第一步就是搭环境。这事看着简单,但我在项目里见过太多人卡在这一步——不是系统版本不对,就是依赖库装不全,折腾半天连个Hello World都跑不起来。

我个人习惯用Ubuntu。为什么?因为PX4、ArduPilot这些飞控固件,还有MAVSDK、QGroundControl这些地面站工具链,官方支持最好的就是Ubuntu。你非要用Windows或者macOS也不是不行,但后面编译、调试、串口权限这些坑,够你填一阵子的。

3.1 推荐操作系统版本

目前最稳的两个版本:

版本 内核版本 推荐理由 注意事项
Ubuntu 20.04 LTS 5.4 ROS Noetic官方支持,PX4工具链最成熟 Python默认3.8,够用但偏老
Ubuntu 22.04 LTS 5.15 Python 3.10,新硬件驱动更好 ROS2 Humble首选,但部分旧包需手动编译

我个人建议:如果你主要做PX4 + ROS1,选20.04;如果做ROS2或者新项目,直接上22.04。我最近一个项目就是22.04 + ROS2 Humble,串口驱动和USB摄像头识别都比20.04顺畅不少。

⚠ 注意: 别用Ubuntu 24.04。虽然它很新,但很多地面站相关的依赖库还没适配,你装到一半会发现某个包死活装不上——我上个月刚踩过这个坑。

3.2 安装系统后的第一件事

系统装完,先别急着装地面站软件。先把基础依赖搞定。我一般按这个顺序来:

  1. 更新软件源——换国内源,不然下载慢到怀疑人生
  2. 安装编译工具链——gcc、g++、make、cmake
  3. 安装Python环境——Python3、pip、venv
  4. 安装版本管理工具——git
  5. 安装其他常用库——串口、网络、图形界面相关

下面是一键安装脚本,我每次搭新机器都跑一遍:

# 更新软件源
sudo apt update && sudo apt upgrade -y

# 安装编译工具链
sudo apt install -y build-essential cmake gcc g++ make

# 安装Python环境
sudo apt install -y python3 python3-pip python3-venv python3-dev

# 安装版本管理工具
sudo apt install -y git git-lfs

# 安装常用依赖
sudo apt install -y libssl-dev libusb-1.0-0-dev libudev-dev
sudo apt install -y libgtk-3-dev libgl1-mesa-dev libglu1-mesa-dev
sudo apt install -y libx11-dev libxext-dev libxrender-dev libxrandr-dev
sudo apt install -y libpulse-dev libasound2-dev
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

# 安装串口工具
sudo apt install -y screen minicom picocom

# 安装网络调试工具
sudo apt install -y net-tools curl wget
💡 小技巧: 装完记得运行 sudo usermod -a -G dialout $USER 把自己加到dialout组,不然后面连飞控串口时总提示权限不够。加完要注销重新登录才生效。

3.3 Python环境配置

Python是地面站仿真的核心语言。MAVSDK-Python、DroneKit、PyQt5/PySide6这些库全得靠它。我建议用虚拟环境,别把系统Python搞乱了。

我曾经在一个项目里直接往系统Python里pip了一堆包,结果某次升级把系统依赖搞崩了,连apt都用不了——那叫一个酸爽。从那以后,我每个项目都建独立的虚拟环境。

# 创建项目虚拟环境
python3 -m venv ~/gcs_sim_env

# 激活环境
source ~/gcs_sim_env/bin/activate

# 升级pip
pip install --upgrade pip

# 安装常用Python包
pip install numpy matplotlib pyserial
pip install pyqt5 pyqt5-tools
pip install pymavlink dronekit
pip install mavsdk

这里有个细节:pymavlink 和 mavsdk 是两个不同的MAVLink库。pymavlink偏底层,适合做协议解析;mavsdk封装更好,适合快速开发。我一般两个都装,看场景切换。

3.4 Git配置与SSH密钥

地面站项目通常从GitHub或GitLab拉代码。我建议配好SSH密钥,省得每次输密码。

# 配置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 生成SSH密钥
ssh-keygen -t ed25519 -C "your.email@example.com"

# 查看公钥,复制到GitHub/GitLab
cat ~/.ssh/id_ed25519.pub

嗯,这里要注意:ed25519比rsa更安全,也更快。我见过有人还在用1024位的rsa,那玩意儿现在基本等于没锁门。

3.5 验证环境是否装好

装完别急着走,跑一遍验证脚本,确保所有工具都能用:

# 验证编译工具
gcc --version
g++ --version
cmake --version
make --version

# 验证Python
python3 --version
pip3 --version

# 验证Git
git --version

# 验证虚拟环境
source ~/gcs_sim_env/bin/activate
python -c "import pymavlink; print('pymavlink OK')"
python -c "import mavsdk; print('mavsdk OK')"
python -c "import PyQt5; print('PyQt5 OK')"

如果所有命令都返回正常版本号,恭喜,基础环境搭好了。

📌 核心要点:
  • Ubuntu 20.04/22.04 LTS是首选,别追新版本
  • 基础依赖用apt一键装,别手动编译
  • Python一定要用虚拟环境,保护系统
  • 配好SSH密钥,后面拉代码省事
  • 装完一定要验证,别留隐患

3.6 本章知识体系

下面这张图把整个环境准备流程串起来了。你照着这个顺序走,基本不会漏东西。

操作系统与基础软件准备 — 知识体系 选择操作系统 Ubuntu 20.04 LTS Ubuntu 22.04 LTS 系统更新 & 基础依赖安装 (apt install) 编译工具链 gcc/g++/cmake/make Python环境 python3/pip/venv 版本管理 git/git-lfs/SSH 系统库 串口/图形/网络 环境验证 (版本检查 + 库导入) ✅ 环境就绪 ⚠ 别忘了加dialout组 ⚠ 虚拟环境要激活再用

这张图从左到右、从上到下就是完整的搭建流程。你照着这个顺序走,每一步验证通过再往下,基本不会出问题。我每次搭新机器都拿这张图当checklist,省心得很。