2、开发环境搭建(上):Ubuntu 20.04系统安装与配置、双系统与虚拟机方案对比、基础开发工具安装(Git、Vim、VS Code)
好,咱们正式开始动手了。
做自动驾驶仿真,第一件事不是写代码,而是搭环境。我见过太多人一上来就急着跑demo,结果折腾半天卡在依赖问题上。说实话,环境搭好了,后面能省80%的坑。这一章,咱们就把开发环境彻底搞定。
2.1 操作系统选型:为什么是Ubuntu 20.04?
你可能要问:现在都Ubuntu 22.04甚至24.04了,为什么还选20.04?
原因很简单——稳定性和生态兼容性。我个人习惯是,做工程开发不追新。Ubuntu 20.04是LTS版本,支持到2025年,而且ROS、Autoware、Carla这些仿真平台对20.04的支持最成熟。我在项目中遇到过,有人用22.04装ROS Melodic,结果一堆依赖冲突,折腾了两天。说白了,工具是拿来用的,不是拿来折腾的。
核心结论:Ubuntu 20.04 + ROS Noetic,是目前自动驾驶仿真最稳的组合。
2.2 双系统 vs 虚拟机:到底怎么选?
很多新手会纠结这个问题。我直接给你答案——看你的硬件和需求。
| 方案 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| 双系统 | 性能接近原生,GPU直通,实时性好 | 切换系统需重启,磁盘分区麻烦 | 需要跑仿真、训练模型、用GPU加速 |
| 虚拟机 | 安装简单,随时快照,不破坏Windows | 性能损失20%-30%,GPU支持差 | 学习测试、轻量开发、不想动磁盘 |
我个人建议:如果你有独立显卡(NVIDIA),且打算认真做仿真,直接上双系统。虚拟机跑Carla或者Autoware,帧率会掉得你怀疑人生。我曾经在虚拟机上跑Carla,结果只有5帧,根本没法用。后来切到双系统,直接满帧60。
小技巧:如果你只是先体验一下,可以用虚拟机装个Ubuntu 20.04,装好ROS和基础工具,跑跑小demo。等确定要深入了,再切双系统也不迟。
警告:装双系统前,一定要备份Windows数据!我见过有人分区时手滑,整个硬盘数据全没了。别问我怎么知道的...
2.3 Ubuntu 20.04 系统安装与配置
安装过程我就不一步步截图了,网上教程一大堆。我只说几个关键点,这些是我踩过的坑。
2.3.1 制作启动盘
用Rufus或者balenaEtcher都行。注意:写入模式选“DD镜像”,别选“ISO写入”。否则启动时会报错。
2.3.2 磁盘分区建议
我习惯这样分:
- /boot:1GB,放内核和引导文件
- /:50GB,系统根目录
- /home:剩余空间,放代码、数据、模型
- swap:16GB,内存不够时顶一下
你想想看,代码和模型都放/home,以后重装系统也不怕丢数据。我当年第一次装系统,把所有东西都塞在根目录,结果重装时全没了...嗯,血的教训。
2.3.3 安装后的基础配置
装完系统第一件事,换源。别用官方源,慢得要命。
# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 替换为清华源(选一个快的就行)
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
# 更新
sudo apt update && sudo apt upgrade -y
然后装一些必备工具:
sudo apt install -y build-essential cmake curl wget net-tools
2.4 基础开发工具安装
环境搭好了,接下来装吃饭的家伙。
2.4.1 Git:版本控制必备
做项目不用Git?那你等着后悔吧。我见过有人写了一个月的代码,不小心删了,找不回来...Git就是你的后悔药。
sudo apt install -y git
git --version # 验证安装
# 配置基本信息
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
我个人习惯再加几个别名:
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.co checkout
这样敲起来快很多。你试试看,用git st代替git status,省三秒也是省。
2.4.2 Vim:终端下的编辑器之王
你可能觉得Vim过时了。但我要说,SSH到服务器上改配置时,Vim是你唯一的选择。不会Vim?那你连个配置文件都改不了。
sudo apt install -y vim
装完建议配一下:
vim ~/.vimrc
写入以下内容:
set number " 显示行号
set tabstop=4 " Tab宽度4
set shiftwidth=4 " 缩进宽度4
set expandtab " 用空格代替Tab
set autoindent " 自动缩进
syntax on " 语法高亮
嗯,这些配置够你日常用了。别去折腾那些花里胡哨的插件,先学会基本操作:i插入、Esc退出、:wq保存退出、:q!不保存退出。就这四个,够你活下去了。
2.4.3 VS Code:主力开发IDE
写代码我还是推荐VS Code。轻量、插件丰富、对Python和C++支持好。
安装方式有两种:
方法一:直接下载deb包
# 去官网下载 .deb 文件
# 然后
sudo dpkg -i code_*.deb
sudo apt install -f # 修复依赖
方法二:用snap(我推荐这个)
sudo snap install --classic code
装完建议装这几个插件:
- Python:微软官方,Python开发必备
- C/C++:微软官方,C++开发必备
- ROS:ROS开发辅助,语法高亮、代码补全
- GitLens:Git历史可视化,谁改了哪行一目了然
- Remote - SSH:远程开发,连到服务器上写代码
我的习惯:VS Code配合Remote-SSH,在本地写代码,在服务器上编译运行。这样既享受了本地IDE的流畅,又利用了服务器的算力。做仿真训练时特别爽。
2.5 本章小结
这一章我们干了三件事:
- 选了Ubuntu 20.04作为开发系统,明确了双系统和虚拟机的取舍
- 完成了系统安装和基础配置,包括换源、分区、装必备工具
- 装好了Git、Vim、VS Code三个核心开发工具
环境搭好了,下一章咱们开始装ROS和仿真平台。到时候你就能跑起来第一个自动驾驶demo了。
记住一句话:环境搭得好,开发没烦恼。别急着写代码,先把地基打牢。
下一章预告:3、开发环境搭建(下):ROS Noetic安装与配置、Carla仿真器部署、Autoware入门
公众号:蓝海资料掘金营,微信deep3321