新手选用ROS虚拟机,推荐直接选择Ubuntu 20.04搭配ROS Noetic的官方镜像组合,或使用现成的Ubuntu 22.04加ROS 2 Humble环境,前者资料齐全且教程最多,后者面向未来开发趋势。
搞清楚ROS虚拟机下载哪个版本好的底层逻辑
很多新手一上来就盯着镜像文件大小和版本号纠结,其实选版本的核心依据是你的学习目标和电脑硬件。
ROS 1和ROS 2怎么选?
- ROS 1(如Noetic):适合学习经典框架、跑通古月居或ROS Wiki教程,行业共识认为ROS 1在学术教学和存量项目中的占比依然很高。
- ROS 2(如Humble):适用于机器人通信实时性要求高的场景,是现在企业招聘和产品研发的主流方向。
如果你是刚接触ROS的学生,建议直接用ROS Noetic,因为它能匹配到绝大多数2020年之后的CSDN博客和B站教程,如果你打算做毕业设计或求职项目,可以一步到位选ROS 2 Humble。
虚拟机软件选VMware还是VirtualBox?
对新手而言,这一点比选ROS版本更重要,VMware Workstation Player(免费版)对USB设备透传和3D加速的兼容性更好,跑Rviz和Gazebo时不容易卡死,VitrualBox虽然更轻量,但偶尔会遇到摄像头或串口映射不上的麻烦。
新手安装配置ROS虚拟机的完整实操
下载虚拟机软件与Ubuntu镜像
VMware Workstation Pro(现在对个人用户已免费)直接去官网下载,安装时一路下一步,Ubuntu镜像建议从清华 tuna 开源镜像站下载,速度远快于官方源。
镜像选择要注意:
- 新手选Ubuntu 20.04.6 LTS(对应ROS Noetic)
- 想要ROS 2环境就下Ubuntu 22.04.3 LTS(对应ROS 2 Humble)
- 不要下载24.04,适配ROS 2 Jazzy的教程还不多,容易踩坑
创建虚拟机时的三个关键设置
新建虚拟机时,别用默认配置,请按以下参数分配:
- 内存:至少给到4GB,8GB最好,如果你的电脑物理内存是16GB,建议直接分8GB给虚拟机。
- 处理器:分配2个核心以上,否则编译ROS功能包会非常慢。
- 磁盘容量:设置60GB,并且选择“将虚拟磁盘存储为单个文件”,性能更好,实际上ROS本体只占几个GB,但Gazebo模型和编译缓存很容易撑爆20GB。
安装Ubuntu系统的关键坑位
启动虚拟机后选择“Install Ubuntu”,在安装类型中选“清除整个磁盘并安装Ubuntu”(这是虚拟磁盘,不会影响你Windows上的东西),等待重启后,先执行:
sudo apt update sudo apt upgrade
这里有个新手容易忽略的动作:安装VMware Tools或open-vm-tools,在VMware菜单栏点击“虚拟机 → 安装VMware Tools”,或者在终端执行:
sudo apt install open-vm-tools-desktop
这样才能让虚拟机窗口可以自适应缩放,也能实现宿主机和虚拟机之间的文件拖拽复制。
安装ROS核心组件
以ROS Noetic为例:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt install curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo apt update sudo apt install ros-noetic-desktop-full
需要提醒你的是,ros-noetic-desktop-full包含Rviz、Gazebo、TF库和大量常用功能包,强烈建议直接装这个版本,不要省空间装精简版。
初始化依赖:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential sudo rosdep init rosdep update
rosdep update如果失败,多试几次或切换到手机热点,这一步是后续编译功能包的必经之路。
搭建开发环境并测试
将ROS环境写入bashrc,避免每次开终端都要重新source:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc
创建并编译工作区:
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make
最后验证安装效果:
roscore
看到started core service [/rosout]字样,说明你的ROS虚拟机安装配置已经成功。
网络配置与性能优化的进阶建议
解决虚拟机里ROS通信不上宿主机的问题
如果你想把虚拟机的ROS环境和宿主机Windows里的程序做通信,需要把VMware的虚拟机网络设置改成桥接模式,在“虚拟机设置 → 网络适配器”里选择桥接,这样虚拟机会和宿主机处于同一局域网,用ifconfig查看IP后,直接通过IP通信。
虚拟机卡顿的三大优化手段
很多同学的笔记本装完ROS虚拟机后运行Gazebo非常卡,这里给出三个最管用的优化思路:
- 关闭Windows上的Hyper-V和内核隔离功能,这个功能会跟VMware的虚拟化层冲突,导致性能打对折。
- 在虚拟机视图里把图形控制器改为“自动检测”,并勾选“加速3D图形”。
- Gazebo加载模型时对CPU单核性能敏感,如果运行卡顿,可以给虚拟机分配4个处理器核心。
常见问题快速排查
ROS虚拟机下载哪个版本好,如果电脑配置比较旧?
如果你的电脑内存不足8GB,建议选择 ROS Kinetic + Ubuntu 16.04 的老版本组合,这个组合运行占用更低,但要注意的是Kinetic已经停止维护,只适合体验学习,不适合新项目开发,更推荐的做法是使用轻量级桌面版Ubuntu(Xubuntu) 搭配ROS Noetic,安装时选择最小安装,跳过无关软件。
总结ROS虚拟机选择核心结论
新手阶段不需要追求最新版本,ROS Noetic + Ubuntu 20.04 + VMware Workstation Pro 是目前最稳妥的ROS虚拟机下载组合,这个组合教程丰富,能让你把精力放在机器人算法和SLAM建图等核心内容上,而不是被环境配置折磨到放弃。
关于ROS虚拟机安装配置的高频问题
问:ROS Noetic和ROS 2 Humble能装在同一台虚拟机里吗?
可以,你先按本文安装好ROS Noetic,然后通过sudo apt install ros-humble-desktop安装ROS 2 Humble,启动时分别用source /opt/ros/noetic/setup.bash和source /opt/ros/humble/setup.bash切换环境,但新手不建议这么做,两套环境同时存在容易搞混catkin_make和colcon build的命令差异。
问:为什么rosdep update总提示网络错误?
原因是rosdep默认访问github的raw文件被墙,解决方案有两个,其一,在终端设置代理后重试,其二,使用国内镜像的rosdepc工具,执行pip install rosdepc,然后用rosdepc update代替原命令,根据实际使用体验,rosdepc在校园网环境下成功率明显更高。
问:虚拟机里的Ubuntu系统可以访问Windows下的文件夹吗?
VMware共享文件夹功能可以做到,位置在“虚拟机设置 → 选项 → 共享文件夹”,选择Windows下的任意目录后,Ubuntu里会自动挂载到/mnt/hgfs/对应文件夹名,对于ROS下载安装包或导入数据集文件,比用U盘拷贝方便很多。