Python系列15篇全部结束了。从今天开始进入Linux与开发工具系列——机器人软件工程师的基本功。先说个真实的事。刚入行的时候我在Windows上用虚拟机装Ubuntu跑ROS。虚拟机分配了2G内存跑rviz卡得要死一开Gazebo直接死机。面试官问我开发环境怎么搭的我说用VirtualBox跑的Ubuntu面试官问了句为什么不装双系统虚拟机有什么性能问题——我答不上来。后来才知道机器人开发对Linux环境有要求。虚拟机方便但性能有损失双系统性能好但切换麻烦WSL2是折中方案但也有局限。选哪种得根据你的实际需求来。安装方式的选择虚拟机最安全的选择。不影响你现有的Windows系统随时可以快照备份、回滚。缺点是GPU加速支持有限跑Gazebo仿真会比较卡。如果你的工作主要是写代码、编译、跑简单的ROS节点虚拟机够用。推荐VMware Workstation现在个人免费了或者VirtualBox。安装时注意分配至少4G内存、40G硬盘、开启3D加速。Ubuntu 22.04 LTS是目前的最佳选择——ROS2 Humble的官方支持版本。双系统性能最好的方案。Linux直接跑在硬件上GPU、USB设备直通没有虚拟化的开销。跑Gazebo仿真、调试真实传感器双系统是最靠谱的。缺点是切换系统需要重启而且安装时如果操作不当可能丢失Windows数据。建议用单独的硬盘或分区不要动Windows的系统盘。WSL2Windows 10/11的内置功能本质上是一个轻量级虚拟机跑Linux内核。优点是集成度高可以在Windows里直接访问Linux文件系统VS Code有WSL插件可以无缝远程开发。缺点是对USB设备支持有限——如果你需要接激光雷达、相机等外设WSL2可能搞不定。我的建议学习和写代码用WSL2或虚拟机需要跑仿真或接硬件时切到双系统或直接在Linux上工作。安装后的基础配置装完Ubuntu先做这几件事。更新系统sudo apt update sudo apt upgrade -y安装基础工具sudo apt install -y build-essential cmake git curl wget vim tmux htopbuild-essential包含gcc、g、make等编译工具链cmake是构建系统后面装ROS和编译项目都要用。配置中文环境可选设置里把语言改成中文安装中文输入法。如果你英文阅读没问题保持英文也行——终端里中文有时候会显示乱码。调整终端快捷键Ubuntu默认的终端是GNOME Terminal。可以装一个terminator支持分屏调试多个ROS节点时很方便sudo apt install terminator安装ROS2以Ubuntu 22.04 ROS2 Humble为例。官方安装步骤是这样的# 1. 设置locale sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALLen_US.UTF-8 LANGen_US.UTF-8 # 2. 添加ROS2软件源 sudo apt install software-properties-common sudo add-apt-repository universe sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \ -o /usr/share/keyrings/ros-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release echo $UBUNTU_CODENAME) main | \ sudo tee /etc/apt/sources.list.d/ros2.list /dev/null # 3. 安装ROS2 sudo apt update sudo apt install -y ros-humble-desktop # 4. 设置环境变量 echo source /opt/ros/humble/setup.bash ~/.bashrc source ~/.bashrc装完之后跑个测试ros2 run demo_nodes_cpp talker # 另一个终端 ros2 run demo_nodes_py listener看到talker发消息、listener收到消息就说明ROS2装好了。创建工作空间ROS2项目用colcon构建系统。创建一个工作空间mkdir -p ~/robot_ws/src cd ~/robot_ws colcon build source install/setup.bash以后你的ROS2包都放在src目录下用colcon build编译。记得每次打开新终端都要source一下setup.bash已经加到.bashrc里了就自动的。常见问题网络问题国内访问ROS官方源可能很慢。可以换成镜像源比如清华或中科大的ROS镜像。编辑/etc/apt/sources.list.d/ros2.list把packages.ros.org替换成镜像地址就行。显卡驱动如果要跑Gazebo仿真需要装NVIDIA显卡驱动。Ubuntu的软件和更新→附加驱动里可以直接选。装完之后跑nvidia-smi验证一下。如果显示GPU信息就说明驱动正常。虚拟机里的Gazebo如果Gazebo在虚拟机里黑屏或很卡试试关闭3D加速或者切换到软件渲染。性能会很差但至少能跑。长期做仿真的话还是建议双系统。Python版本冲突Ubuntu 22.04自带Python 3.10ROS2 Humble也是基于这个版本。不要随意升级系统Python版本否则可能破坏ROS2的依赖关系。如果需要其他版本的Python用pyenv管理。面试中怎么聊面试官问开发环境想看的不是你会不会装系统而是你对不同方案的trade-off有没有理解。一个好的回答先说你用了什么方案为什么这么选。然后说说你遇到的问题以及怎么解决的。比如我用虚拟机开发但发现Gazebo太卡后来换成了双系统仿真流畅多了。如果你还能聊聊WSL2的使用经验、Docker在开发中的应用——那就是加分项了。安装配置中的常见坑Ubuntu安装过程中最容易踩的坑有几个一是双系统引导问题UEFI和Legacy BIOS模式搞混了就会启动不了二是显卡驱动NVIDIA驱动装不好会导致桌面环境崩溃这时候要进tty终端用命令行修复三是ROS安装时依赖冲突通常是因为sources.list没配对或者忘了执行apt update。面试时如果被问到环境搭建的困难这些都可以作为真实案例来讲。还有一个常见坑VMware虚拟机的网络模式选择。NAT模式简单但不能被外部直接访问桥接模式更灵活但需要和物理网络在同一网段。做机器人开发时建议用桥接模式方便和真实硬件通信。给正在准备面试的你如果你还在用Windows建议尽快搭一个Linux开发环境。不用很完美能跑ROS2、能编译代码就行。面试的时候能说出我平时在Ubuntu下开发用VS Code远程连接比我在Windows上用虚拟机听起来专业得多。下篇聊Linux文件系统结构——/home、/etc、/dev各是干什么的。如果这篇文章对你有帮助欢迎点赞、在看、转发三连。 你的支持是我持续更新的最大动力。「机器人软件开发面试·从入门到精通」连载系列上一篇第80篇 Python面试高频题——机器人岗位常考的Python知识点 下一篇预告第82篇 Linux文件系统结构——/home /etc /dev各是干什么的有任何问题欢迎评论区留言我会尽量回复。