news 2026/7/22 21:04:30

Windows下使用VirtualBox搭建ROS开发环境完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows下使用VirtualBox搭建ROS开发环境完整指南

1. 项目概述

在机器人开发领域,ROS(Robot Operating System)已成为事实上的标准框架。但对于刚接触ROS的开发者来说,最头疼的问题往往不是ROS本身的学习曲线,而是开发环境的搭建过程。特别是在Windows系统上直接安装ROS会遇到各种兼容性问题,这也是为什么我们需要通过VirtualBox虚拟机来创建Ubuntu系统作为ROS开发环境。

我最近刚完成一个机器人视觉项目,过程中完整走了一遍从零搭建ROS开发环境的流程。这里把我的实操步骤和踩过的坑都记录下来,特别适合以下人群参考:

  • 机器人相关专业的在校学生
  • 刚接触ROS的开发者
  • 需要在Windows系统上开发ROS程序的技术人员
  • 想尝试ROS但不想影响现有系统的爱好者

2. 环境准备与虚拟机创建

2.1 VirtualBox安装与配置

首先需要下载并安装VirtualBox,这是Oracle提供的免费开源虚拟机软件。我推荐使用最新稳定版(目前是7.0.x系列),因为老版本可能存在一些已知问题。

安装时需要注意:

  1. 确保勾选"创建桌面快捷方式"和"注册文件关联"
  2. 安装过程中会短暂断开网络连接,这是正常现象
  3. 安装完成后建议重启电脑

提示:如果安装过程中出现"严重错误"提示,通常是系统缺少必要的运行库。可以尝试安装最新版的Visual C++ Redistributable后再试。

2.2 Ubuntu镜像选择与下载

对于ROS开发,Ubuntu版本的选择很关键。因为不同版本的ROS对Ubuntu有特定要求:

  • ROS Noetic:推荐Ubuntu 20.04
  • ROS Melodic:推荐Ubuntu 18.04
  • ROS Humble:推荐Ubuntu 22.04

我选择的是Ubuntu 22.04 LTS版本,对应的ROS版本是Humble Hawksbill。这个组合目前最稳定,社区支持也最好。

下载镜像时建议从官方镜像站获取:

https://releases.ubuntu.com/22.04/

选择"ubuntu-22.04.3-desktop-amd64.iso"这个文件(约4GB)。

2.3 创建虚拟机实例

在VirtualBox中点击"新建",按以下参数配置:

  • 名称:ROS_Dev(可自定义)
  • 类型:Linux
  • 版本:Ubuntu (64-bit)
  • 内存大小:建议至少4096MB(4GB)
  • 硬盘:创建虚拟硬盘,建议40GB以上,选择VDI格式,动态分配

创建完成后,还需要进行一些关键设置:

  1. 系统 → 处理器:分配至少2个CPU核心
  2. 显示 → 显存:调到128MB
  3. 存储 → 控制器IDE:挂载下载的Ubuntu ISO镜像
  4. 网络 → 连接方式:桥接网卡(方便主机与虚拟机通信)

3. Ubuntu系统安装与基础配置

3.1 Ubuntu安装过程

启动虚拟机后,按照以下步骤安装Ubuntu:

  1. 选择"Install Ubuntu"
  2. 语言选择English(后续开发时可以减少编码问题)
  3. 键盘布局保持默认
  4. 安装类型选择"Normal installation"
  5. 分区选择"Erase disk and install Ubuntu"(不用担心,这只会影响虚拟硬盘)
  6. 时区选择"Shanghai"
  7. 设置用户名和密码(建议密码不要太复杂,后续经常要用到)

安装过程大约需要20-30分钟,完成后会提示重启。重启前记得在VirtualBox设置中移除安装镜像,否则会再次进入安装界面。

3.2 基础系统配置

首次登录后,建议立即进行以下配置:

  1. 更新软件源:
sudo apt update && sudo apt upgrade -y
  1. 安装增强功能(提供更好的显示效果和剪贴板共享):
sudo apt install -y build-essential dkms linux-headers-$(uname -r)

然后在VirtualBox菜单选择"设备" → "安装增强功能",挂载后运行:

sudo ./VBoxLinuxAdditions.run
  1. 配置共享文件夹(方便主机与虚拟机交换文件):
sudo adduser $USER vboxsf

然后在VirtualBox设置中添加共享文件夹,指定主机路径和挂载点(如/home/yourname/shared)

  1. 安装必要工具:
sudo apt install -y git curl wget terminator

4. ROS开发环境搭建

4.1 ROS安装

按照官方推荐的方式安装ROS Humble:

  1. 设置软件源:
sudo apt install -y software-properties-common sudo add-apt-repository universe
  1. 添加ROS仓库:
sudo apt install -y curl 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
  1. 安装ROS基础包:
sudo apt update sudo apt install -y ros-humble-desktop
  1. 设置环境变量:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc source ~/.bashrc

4.2 开发工具配置

  1. 安装colcon构建工具:
sudo apt install -y python3-colcon-common-extensions
  1. 安装ROS开发工具:
sudo apt install -y python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential sudo rosdep init rosdep update
  1. 创建工作空间:
mkdir -p ~/ros2_ws/src cd ~/ros2_ws colcon build

4.3 VSCode配置

  1. 安装VSCode:
sudo apt install -y wget wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' sudo apt update sudo apt install -y code
  1. 安装ROS插件:
  • 打开VSCode
  • 进入Extensions(Ctrl+Shift+X)
  • 搜索并安装"ROS"和"Python"插件
  1. 配置工作区:
code ~/ros2_ws

在VSCode中打开终端(Ctrl+`),就可以直接在IDE中开发ROS程序了。

5. 常见问题与解决方案

5.1 虚拟机性能优化

问题:虚拟机运行卡顿 解决方案:

  1. 在VirtualBox设置中启用3D加速
  2. 分配更多CPU核心(不超过主机核心数的一半)
  3. 增加显存(最多256MB)
  4. 在Ubuntu中安装轻量级桌面环境(如Xfce)

5.2 ROS安装问题

问题:rosdep初始化失败 解决方案:

sudo rm -rf /etc/ros/rosdep/sources.list.d/20-default.list sudo rosdep init rosdep update

问题:找不到ROS命令 解决方案:

source /opt/ros/humble/setup.bash

5.3 网络连接问题

问题:虚拟机无法上网 解决方案:

  1. 检查VirtualBox网络设置是否为"桥接模式"
  2. 在Ubuntu中重启网络服务:
sudo service network-manager restart

问题:主机与虚拟机无法ping通 解决方案:

  1. 确保两者在同一网段
  2. 检查Ubuntu防火墙设置:
sudo ufw disable

6. 开发环境验证

6.1 基础功能测试

  1. 启动ROS核心:
roscore

应该看到类似输出:

... logging to /home/username/.ros/log/xxxxx started core service [/rosout]
  1. 运行小海龟示例:
ros2 run turtlesim turtlesim_node

另开终端运行:

ros2 run turtlesim turtle_teleop_key

此时应该能用键盘控制小海龟移动。

6.2 VSCode开发测试

  1. 在VSCode中创建ROS包:
cd ~/ros2_ws/src ros2 pkg create --build-type ament_python my_first_package
  1. 编写简单发布者: 编辑my_first_package/my_first_package/publisher.py
import rclpy from rclpy.node import Node from std_msgs.msg import String class MinimalPublisher(Node): def __init__(self): super().__init__('minimal_publisher') self.publisher_ = self.create_publisher(String, 'topic', 10) timer_period = 0.5 self.timer = self.create_timer(timer_period, self.timer_callback) self.i = 0 def timer_callback(self): msg = String() msg.data = 'Hello World: %d' % self.i self.publisher_.publish(msg) self.get_logger().info('Publishing: "%s"' % msg.data) self.i += 1 def main(args=None): rclpy.init(args=args) minimal_publisher = MinimalPublisher() rclpy.spin(minimal_publisher) minimal_publisher.destroy_node() rclpy.shutdown() if __name__ == '__main__': main()
  1. 编译并运行:
cd ~/ros2_ws colcon build --packages-select my_first_package source install/setup.bash ros2 run my_first_package publisher

应该能看到不断输出的"Hello World"消息。

7. 进阶配置与优化

7.1 使用鱼香ROS一键安装

对于想快速搭建环境的用户,可以使用国内开发者维护的"鱼香ROS"一键安装脚本:

wget http://fishros.com/install -O fishros && . fishros

按照提示选择安装ROS和相关工具。

7.2 配置ROS工作区自动补全

在~/.bashrc中添加:

source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash

7.3 使用Docker容器开发

对于需要隔离环境的项目,可以考虑使用ROS Docker镜像:

sudo apt install -y docker.io sudo usermod -aG docker $USER docker pull osrf/ros:humble-desktop

7.4 性能监控工具

安装htop监控系统资源:

sudo apt install -y htop

运行:

htop

在实际开发中,我发现这套环境配置对于大多数ROS开发任务已经足够。特别是配合VSCode的ROS插件,可以大大提高开发效率。对于需要图形加速的应用(如Gazebo仿真),可以考虑使用GPU直通技术,但这需要更复杂的配置。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 21:03:15

wechatpay-apache-httpclient完全指南:10分钟上手微信支付APIv3开发

wechatpay-apache-httpclient完全指南:10分钟上手微信支付APIv3开发 【免费下载链接】wechatpay-apache-httpclient 微信支付 APIv3 Apache HttpClient装饰器(decorator) 项目地址: https://gitcode.com/gh_mirrors/we/wechatpay-apache-ht…

作者头像 李华
网站建设 2026/7/22 20:55:04

vt-py扩展开发:零基础构建自定义威胁分析工具的完整指南

vt-py扩展开发:零基础构建自定义威胁分析工具的完整指南 【免费下载链接】vt-py The official Python 3 client library for VirusTotal 项目地址: https://gitcode.com/gh_mirrors/vt/vt-py 在网络安全领域,快速准确的威胁分析是防御工作的核心。…

作者头像 李华
网站建设 2026/7/22 20:52:23

靠谱的奢石企业

网页标题 云浮奢石企业哪家靠谱?自然石业100天然奢石品种,家装奢石大板、宝石半宝石源头工厂,石材排名NO.1 短视频标题 云浮人都在夸的奢石工厂!自然石业100多种奢华颜值,家装背景墙、餐桌随便选,震撼到不想…

作者头像 李华
网站建设 2026/7/22 20:50:21

计算机Python毕设实战-基于 Python 的智能化无人零售超市管理信息系统 基于 Django 的无人超市运营管理系统设计【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/7/22 20:49:41

如何使用cppclean快速定位C++项目中的未使用代码与冗余依赖

如何使用cppclean快速定位C项目中的未使用代码与冗余依赖 【免费下载链接】cppclean Finds problems in C source that slow development of large code bases 项目地址: https://gitcode.com/gh_mirrors/cp/cppclean cppclean是一款专为C项目设计的代码清理工具&#x…

作者头像 李华