第1章:环境准备——工欲善其事,必先利其器

做仿真开发,说白了就是跟操作系统、Python、代码版本打交道。我刚开始接触自动驾驶仿真时,光装环境就折腾了两天。嗯,今天咱们就把这些基础打牢,后面写代码才不慌。

本章核心目标:搭建一套稳定、可复用的开发环境,为后续仿真开发铺平道路。

1.1 Ubuntu系统安装——为什么选它?

你可能想问:为什么非要用Ubuntu?Windows不行吗?我个人习惯用Ubuntu做仿真开发,原因有三:

  • 生态优势:ROS、Carla、Autoware这些仿真工具,原生支持Linux
  • 包管理方便:apt-get一键安装,省去手动编译的麻烦
  • 性能稳定:我曾在项目中遇到过Windows下内存泄漏的问题,换到Ubuntu后稳定多了

推荐版本:Ubuntu 20.04 LTS(长期支持版,2025年才停止维护)。

安装步骤(精简版)

  1. 下载ISO镜像(官网或清华镜像源)
  2. 制作启动U盘(推荐Rufus或balenaEtcher)
  3. 分区建议:/ 分区50GB,/home 分区剩余空间,swap 分区8GB
  4. 安装时选择「最小安装」,省去不必要的软件包

小技巧:安装时断网,可以跳过更新,安装速度翻倍。装完再换国内源,apt update一下就好。

1.2 Python环境配置——版本选择与虚拟环境

Python版本这块,我踩过坑。Ubuntu 20.04自带Python 3.8,但仿真项目经常需要3.9或3.10。怎么办?

我的建议:不要动系统自带的Python,用update-alternatives管理多版本。

# 安装Python 3.9
sudo apt update
sudo apt install python3.9 python3.9-dev python3.9-distutils

# 设置优先级(数字越大优先级越高)
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2

# 切换版本
sudo update-alternatives --config python3

注意:千万别用sudo apt remove python3.8,系统组件依赖它,删了桌面环境可能崩掉。我曾经手贱试过,嗯,重装了系统。

虚拟环境——隔离的艺术

每个仿真项目依赖不同,用虚拟环境隔离是基本素养。我推荐venv,轻量且Python自带。

# 创建虚拟环境
python3 -m venv sim_env

# 激活
source sim_env/bin/activate

# 退出
deactivate

你想想看,如果所有项目都装全局,依赖冲突时有多头疼?虚拟环境就是你的「项目保险箱」。

1.3 Anaconda安装与使用——数据科学家的瑞士军刀

Anaconda是什么?说白了就是一个Python发行版,自带150+科学计算包。做仿真数据处理、机器学习模型训练,用它特别顺手。

安装步骤

  1. 去官网下载Linux版.sh安装文件
  2. 终端执行:bash Anaconda3-2024.10-Linux-x86_64.sh
  3. 一路回车,最后输入yes同意协议
  4. 安装完成后,重启终端或source ~/.bashrc

常用命令速查

命令 说明
conda create -n myenv python=3.9 创建名为myenv的环境,指定Python版本
conda activate myenv 激活环境
conda deactivate 退出环境
conda list 查看已安装包
conda install numpy 安装包
conda remove -n myenv --all 删除整个环境

避坑指南:我曾经在conda环境里用pip装包,结果和conda包冲突,环境崩了。记住:优先用conda install,conda没有再用pip。混用时要小心。

1.4 Git版本控制基础——代码的后悔药

做仿真开发,代码改来改去是常态。没有Git,你可能会像我一样,文件夹里出现final_v2.py、final_v3_final.py这种鬼名字。Git就是你的时光机。

核心概念

  • 仓库(Repository):代码的家
  • 提交(Commit):拍一张快照
  • 分支(Branch):平行宇宙,互不干扰
  • 合并(Merge):把平行宇宙合并回来

日常操作流程

# 初始化仓库
git init

# 添加文件到暂存区
git add main.py

# 提交到本地仓库
git commit -m "初始化仿真主程序"

# 查看状态
git status

# 查看提交历史
git log --oneline

分支管理——仿真开发的利器

做仿真时,我习惯这样分分支:

  • main:稳定版本,只合并经过测试的代码
  • dev:日常开发分支
  • feature/sensor_model:开发新传感器模型
  • fix/lidar_bug:修复激光雷达bug
# 创建并切换到新分支
git checkout -b feature/lane_detection

# 切回主分支
git checkout main

# 合并分支
git merge feature/lane_detection

重要提醒:合并前一定要先git pull更新本地仓库,否则可能出现冲突。我曾在合并时忘了pull,结果冲突文件改了一下午。

知识体系总览

下面这张图,帮你理清本章的知识结构:

仿真环境准备 Ubuntu系统 20.04 LTS 推荐 分区策略 国内源配置 Python环境 多版本管理 venv虚拟环境 依赖隔离 Anaconda 环境创建/删除 包管理 conda vs pip Git版本控制 提交/分支/合并 分支策略 冲突解决 四者协同,构建稳定开发环境

本章小结

环境准备看似琐碎,但基础打牢了,后面写代码、跑仿真才能顺畅。Ubuntu提供稳定平台,Python和Anaconda管理依赖,Git守护代码安全。这四个工具配合好了,你的仿真开发效率至少提升一倍。

记住:别嫌麻烦,花半天时间把环境配好,后面省下的时间是以天计算的。我当年就是图省事,结果后面反复重装系统,血的教训啊。

可可精品资料库