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顺畅不少。
3.2 安装系统后的第一件事
系统装完,先别急着装地面站软件。先把基础依赖搞定。我一般按这个顺序来:
- 更新软件源——换国内源,不然下载慢到怀疑人生
- 安装编译工具链——gcc、g++、make、cmake
- 安装Python环境——Python3、pip、venv
- 安装版本管理工具——git
- 安装其他常用库——串口、网络、图形界面相关
下面是一键安装脚本,我每次搭新机器都跑一遍:
# 更新软件源
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 本章知识体系
下面这张图把整个环境准备流程串起来了。你照着这个顺序走,基本不会漏东西。
这张图从左到右、从上到下就是完整的搭建流程。你照着这个顺序走,每一步验证通过再往下,基本不会出问题。我每次搭新机器都拿这张图当checklist,省心得很。