news 2026/4/15 18:04:43

告别虚拟机!在Win10/11上给Ubuntu 20.04分个家,手把手部署ego_planner无人机规划器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
告别虚拟机!在Win10/11上给Ubuntu 20.04分个家,手把手部署ego_planner无人机规划器

在Windows 10/11上安全部署Ubuntu 20.04双系统并运行ego_planner无人机规划器

对于无人机开发者和ROS爱好者来说,性能与稳定性往往是首要考虑因素。虚拟机虽然方便,但在资源占用和实时性方面存在明显短板。本文将带你一步步在Windows 10/11上安全安装Ubuntu 20.04双系统,并快速部署ego_planner无人机规划器,无需担心系统崩溃或数据丢失。

1. 为什么选择双系统而非虚拟机?

在开始安装前,我们需要明确双系统与虚拟机的核心差异。虚拟机通过软件模拟完整硬件环境,而双系统则是直接在物理硬件上运行操作系统。以下是两者的关键对比:

特性双系统虚拟机
性能原生性能,无额外开销有10-30%的性能损失
硬件访问直接访问所有硬件资源受限于虚拟化层
实时性完全满足实时需求可能因调度产生延迟
图形性能100%发挥GPU能力通常需要额外配置
系统隔离完全隔离共享主机资源
切换便利性需要重启随时切换

对于ego_planner这类需要实时响应和高效计算的无人机规划器,双系统显然是更优选择。特别是当你需要:

  • 运行高精度仿真
  • 处理大量传感器数据
  • 进行实时路径规划
  • 充分利用GPU加速

提示:如果你只是偶尔使用ROS或进行简单开发,虚拟机可能更方便。但专业开发或性能敏感场景,双系统是必选项。

2. 安全安装双系统的关键准备

安装双系统最令人担忧的莫过于可能影响现有Windows系统。通过以下准备,你可以将风险降至最低。

2.1 必备工具与材料

  • 至少8GB容量的U盘(用于制作启动盘)
  • Ubuntu 20.04 LTS镜像(推荐从官网下载)
  • Rufus工具(用于创建可启动U盘)
  • 备份重要数据(至少保留两份不同介质的备份)

2.2 磁盘分区规划

现代UEFI系统下,分区方案已大幅简化,但仍需注意:

  1. EFI系统分区:Windows已创建,无需改动
  2. Windows分区:建议保持至少100GB空闲空间
  3. Ubuntu分区
    • /根分区:建议30-50GB(ext4格式)
    • swap交换分区:内存大小的1-2倍(仅当内存<8GB时需要)
    • /home家目录:剩余所有空间(ext4格式)

使用Windows磁盘管理工具压缩现有分区是最安全的方式:

1. 右键"此电脑"→"管理"→"磁盘管理" 2. 选择有足够空间的磁盘(通常是C盘) 3. 右键→"压缩卷",输入要压缩的空间量(建议至少80GB) 4. 点击"压缩"后,会出现未分配空间,留待Ubuntu安装时使用

2.3 禁用快速启动和安全启动

Windows的快速启动可能干扰双系统安装:

# 以管理员身份打开PowerShell执行: powercfg /h off

安全启动则可能导致Ubuntu安装失败,建议在BIOS中暂时禁用:

  1. 重启电脑,按制造商指定键(通常是F2、F12或Del)进入BIOS
  2. 找到"Secure Boot"选项,设置为Disabled
  3. 保存设置并退出

3. Ubuntu 20.04安装详解

3.1 创建可启动U盘

使用Rufus工具制作启动盘:

  1. 插入U盘(注意:制作过程会清空U盘所有数据)
  2. 打开Rufus,选择你的U盘设备
  3. 点击"选择",浏览并加载下载的Ubuntu 20.04 ISO文件
  4. 分区方案选择"GPT",目标系统选择"UEFI"
  5. 点击"开始",等待制作完成

3.2 实际安装步骤

  1. 插入启动U盘,重启电脑,进入启动菜单(通常是F12)
  2. 选择UEFI USB设备启动
  3. 选择"Install Ubuntu"
  4. 语言选择中文或英文,继续
  5. 在"安装类型"界面,选择"其他选项"进行手动分区
  6. 在之前准备的未分配空间上创建分区:
    • EFI系统分区:300MB(保持与Windows共用原有EFI分区)
    • swap交换分区:8GB(如果内存充足可不设)
    • /根分区:40GB(ext4格式,挂载点/)
    • /home家目录:剩余空间(ext4格式,挂载点/home)
  7. 设备引导加载器安装位置选择EFI分区(通常是/dev/sda1)
  8. 设置用户名密码,继续安装
  9. 安装完成后重启,移除U盘

注意:如果重启后直接进入Windows,需要进入BIOS调整启动顺序,将Ubuntu启动项置顶。

3.3 安装后优化

首次进入Ubuntu后,建议立即执行以下优化:

# 更新系统 sudo apt update && sudo apt upgrade -y # 安装必要工具 sudo apt install -y git curl wget build-essential # 修复可能的显卡驱动问题 sudo ubuntu-drivers autoinstall

4. ROS与ego_planner环境部署

4.1 使用鱼香ROS一键安装

鱼香ROS脚本极大简化了ROS安装过程:

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

运行后按提示操作:

  1. 选择"1.安装ROS"
  2. 选择"ROS1 Noetic"(对应Ubuntu 20.04)
  3. 选择"桌面完整版(Desktop-Full)"
  4. 等待安装完成

安装完成后验证ROS环境:

# 初始化rosdep sudo rosdep init rosdep update # 测试核心功能 roscore & rosrun turtlesim turtlesim_node

应该能看到乌龟仿真窗口弹出。

4.2 部署ego_planner规划器

4.2.1 安装依赖
# 安装Armadillo库 sudo apt-get install -y libarmadillo-dev # 安装其他必要依赖 sudo apt-get install -y ros-noetic-octomap-* ros-noetic-mavros ros-noetic-mavros-extras
4.2.2 克隆代码库

国内用户推荐使用gitee镜像加速:

git clone https://gitee.com/iszhouxin/ego-planner.git

或直接从GitHub克隆:

git clone https://github.com/ZJU-FAST-Lab/ego-planner.git
4.2.3 编译项目
cd ego-planner catkin_make -DCMAKE_BUILD_TYPE=Release

编译过程可能需要10-30分钟,取决于硬件性能。

4.2.4 运行仿真

在三个不同终端中分别执行:

# 终端1:启动ROS核心 roscore # 终端2:启动RViz可视化 source devel/setup.bash roslaunch ego_planner rviz.launch # 终端3:运行规划器仿真 source devel/setup.bash roslaunch ego_planner run_in_sim.launch

成功运行后,你将在RViz中看到无人机和规划路径的可视化效果。

5. 常见问题与解决方案

5.1 双系统启动问题

问题:安装Ubuntu后无法看到启动菜单

解决

# 在Ubuntu中安装并配置grub sudo apt install --reinstall grub-efi-amd64 sudo grub-install /dev/sda sudo update-grub

5.2 ROS环境配置问题

问题rosdep update失败

解决

# 修改hosts文件 sudo sh -c 'echo "199.232.28.133 raw.githubusercontent.com" >> /etc/hosts' # 重新尝试 rosdep update

5.3 ego_planner编译错误

问题:缺少依赖导致编译失败

解决

# 安装所有可能需要的依赖 sudo apt-get install -y ros-noetic-geographic-msgs ros-noetic-tf2-sensor-msgs ros-noetic-joy

5.4 性能优化建议

为获得最佳性能,建议:

  1. 在BIOS中禁用Intel SpeedShift技术
  2. 使用cpufrequtils设置性能模式:
    sudo apt install cpufrequtils sudo cpufreq-set -g performance
  3. 关闭不必要的图形效果:
    sudo apt install gnome-tweaks gnome-tweaks
    然后在"窗口"选项卡中关闭动画效果

6. 进阶配置与调优

6.1 双系统时间同步问题

Windows和Linux处理硬件时钟的方式不同,会导致时间显示错误:

# 在Ubuntu中修复时间同步 timedatectl set-local-rtc 1 --adjust-system-clock

6.2 共享文件夹设置

方便在双系统间交换文件:

# 安装NTFS支持 sudo apt install ntfs-3g # 创建挂载点并设置自动挂载 sudo mkdir /mnt/Windows sudo chmod 777 /mnt/Windows

然后在/etc/fstab中添加(替换your_username为实际用户名):

UUID=你的Windows分区UUID /mnt/Windows ntfs-3g defaults,windows_names,locale=en_US.utf8 0 0

使用blkid命令查看分区UUID。

6.3 ego_planner参数调优

编辑ego-planner/src/planner/plan_manage/launch/run_in_sim.launch文件,可调整:

<param name="max_vel" value="2.0" /> <!-- 最大速度 --> <param name="max_acc" value="1.0" /> <!-- 最大加速度 --> <param name="resolution" value="0.1" /> <!-- 地图分辨率 -->

根据实际需求调整这些参数可以优化规划性能。

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

3步打造个人漫画图书馆:哔咔漫画下载器让你轻松收藏离线资源

3步打造个人漫画图书馆&#xff1a;哔咔漫画下载器让你轻松收藏离线资源 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器&#xff0c;带图形界面 带收藏夹&#xff0c;已打包exe 下载速度飞快 项目地址: https://gitcode.c…

作者头像 李华
网站建设 2026/4/15 18:00:09

MPTA算法在Simulink中的矢量控制FOC实现与优化

1. MPTA算法基础与FOC控制原理 MPTA&#xff08;Maximum Torque Per Ampere&#xff09;算法是电机控制领域的一项重要技术&#xff0c;它的核心目标是在给定转矩需求下&#xff0c;找到使定子电流最小的Id/Iq组合。这就像开车时寻找最省油的转速和档位组合一样&#xff0c;能让…

作者头像 李华
网站建设 2026/4/15 17:59:37

如何永久保存微信聊天记录?本地化数据管理终极指南

如何永久保存微信聊天记录&#xff1f;本地化数据管理终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMs…

作者头像 李华
网站建设 2026/4/15 17:52:30

ZYNQ PS-PL数据交互避坑指南:自定义BRAM IP核时,别忘了检查Driver文件

ZYNQ PS-PL数据交互全流程自查手册&#xff1a;从IP核封装到BSP生成的标准化实践 在嵌入式系统开发领域&#xff0c;Xilinx ZYNQ系列芯片因其独特的PS-PL架构而广受欢迎。然而&#xff0c;当开发者尝试通过自定义IP核实现处理器系统&#xff08;PS&#xff09;与可编程逻辑&…

作者头像 李华
网站建设 2026/4/15 17:47:25

深入拆解 Fork/Join 框架:核心原理、分治模型与参数调优实战

在Java并发编程的演进历程中&#xff0c;JDK 7引入的Fork/Join框架是一个里程碑式的创新。它专为并行计算设计&#xff0c;基于分治思想&#xff0c;通过“工作窃取”算法实现高效的任务调度&#xff0c;能够充分利用多核CPU的计算能力。 分治编程模型&#xff1a;并行计算的基…

作者头像 李华