当前位置: 首页 > article >正文

从零到一:在Ubuntu 22.04上构建Autoware.universe开发环境与实战演练

1. 环境准备Ubuntu 22.04基础配置在开始构建Autoware.universe开发环境之前我们需要确保Ubuntu系统的基础环境已经正确配置。我建议使用全新安装的Ubuntu 22.04 LTS系统这样可以避免很多潜在的依赖冲突问题。实测下来8核CPU8GB内存的配置是最低要求如果条件允许建议使用16GB以上内存以获得更好的编译体验。首先需要更新系统软件包到最新版本。打开终端执行以下命令sudo apt update sudo apt upgrade -y接下来安装一些基础工具链这些工具在后续的ROS2和Autoware安装过程中都会用到sudo apt install -y curl git wget build-essential cmake python3-pip对于使用NVIDIA显卡的用户需要特别注意驱动和CUDA的安装。这里有个坑我踩过多次Ubuntu 22.04默认使用的Nouveau开源驱动会和NVIDIA官方驱动冲突。建议先禁用Nouveau驱动sudo bash -c echo blacklist nouveau /etc/modprobe.d/blacklist-nvidia-nouveau.conf sudo bash -c echo options nouveau modeset0 /etc/modprobe.d/blacklist-nvidia-nouveau.conf sudo update-initramfs -u重启后可以通过官方PPA安装NVIDIA驱动和CUDA工具包。这里推荐使用CUDA 11.7版本因为Autoware.universe目前对这个版本的支持最稳定sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt install -y nvidia-driver-515 sudo apt install -y cuda-11-7注意安装完成后务必验证CUDA是否正常工作可以运行nvidia-smi和nvcc --version检查驱动和CUDA版本。2. ROS2 Humble安装与配置Autoware.universe需要ROS2 Humble版本作为基础运行环境。相比手动安装我强烈推荐使用fishros提供的一键安装脚本这个方案我已经在多个平台上验证过稳定性很好。安装过程非常简单wget http://fishros.com/install -O fishros . fishros运行后会进入交互式安装界面。这里有几个关键选择需要注意选择ROS2 Humble版本对应Ubuntu 22.04选择桌面完整版安装Desktop-Full建议安装所有额外工具包括colcon、rosdep等安装完成后需要将ROS2环境变量添加到bashrc中echo source /opt/ros/humble/setup.bash ~/.bashrc source ~/.bashrc验证安装是否成功可以运行ros2 --help如果看到ROS2的帮助信息输出说明基础环境已经就绪。接下来需要配置rosdep这个工具用于管理ROS包的依赖关系。由于国内网络环境问题直接运行rosdep update可能会失败。我找到的可靠解决方案是修改sources.list文件sudo sh -c echo yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx-homebrew /etc/ros/rosdep/sources.list.d/20-default.list sudo sh -c echo yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml /etc/ros/rosdep/sources.list.d/20-default.list sudo sh -c echo yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml /etc/ros/rosdep/sources.list.d/20-default.list sudo sh -c echo yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml /etc/ros/rosdep/sources.list.d/20-default.list sudo sh -c echo yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte /etc/ros/rosdep/sources.list.d/20-default.list然后再次运行sudo rosdep init rosdep update这样配置后rosdep应该能够正常工作了。这个步骤非常重要因为后续Autoware的依赖安装都要依赖rosdep。3. Autoware.universe源码获取与依赖安装现在我们可以开始准备Autoware.universe的开发环境了。首先需要获取源代码建议使用SSH方式克隆仓库git clone gitgithub.com:autowarefoundation/autoware.git cd autowareAutoware官方提供了一个setup-dev-env.sh脚本来自动安装依赖但根据我的经验这个脚本在国内网络环境下成功率很低。更可靠的方式是手动安装依赖项。首先安装系统级依赖sudo apt install -y \ python3-vcstool \ python3-colcon-common-extensions \ python3-rosinstall-generator \ python3-dev \ python3-pip然后使用vcs工具拉取所有子模块vcs import src autoware.repos接下来是最关键的依赖安装步骤。这里需要特别注意执行顺序rosdep install -y --from-paths src --ignore-src --rosdistro humble这个命令会根据package.xml文件自动安装所有ROS依赖。由于依赖数量庞大超过200个这个过程可能需要较长时间。如果遇到网络问题导致某些包下载失败可以多次重试该命令。安装完成后还需要一些额外的Python依赖pip3 install -r src/tools/launcher/requirements.txt pip3 install transforms3d重要提示如果在依赖安装过程中遇到CUDA相关错误很可能是环境变量没有正确设置。确保在~/.bashrc中添加了以下内容并执行source ~/.bashrcexport PATH/usr/local/cuda-11.7/bin${PATH::${PATH}} export LD_LIBRARY_PATH/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}}4. 编译Autoware.universe与常见问题解决依赖安装完成后就可以开始编译Autoware.universe了。建议使用以下编译命令colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPERelease这个编译过程会非常耗时在8核CPU8GB内存的机器上大约需要2-3小时。建议在编译前关闭所有不必要的应用程序并确保系统交换空间足够至少16GB。编译过程中可能会遇到几个典型问题问题1CUDA相关错误错误信息通常包含Could not find a package configuration file provided by cudnn_cmake_module。这是因为CUDA环境没有正确配置。解决方案是source /opt/ros/humble/setup.bash sudo apt update sudo apt upgrade rosdep update rosdep install -y --from-paths src --ignore-src --rosdistro humble然后重新开始编译。问题2内存不足导致编译中断如果系统内存不足编译过程可能会突然终止。可以通过增加交换空间来解决sudo fallocate -l 16G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile问题3特定模块编译失败有时某个模块会反复编译失败。可以尝试单独编译该模块colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPERelease --packages-select 模块名如果确认是代码问题可以尝试回退到更稳定的版本cd src/模块路径 git checkout 稳定版本号编译完成后可以通过以下命令验证是否成功source install/setup.bash ros2 pkg list | grep autoware应该能看到大量autoware相关的包名输出。至此Autoware.universe的开发环境已经构建完成。5. 运行官方Demo与基础操作指南成功编译后我们可以尝试运行Autoware.universe的官方Demo。首先需要下载示例地图数据mkdir -p ~/autoware_map gdown -O ~/autoware_map/sample-map-planning.zip https://docs.google.com/uc?exportdownloadid1499_nsbUbIeturZaDj7jhUownh5fvXHd unzip -d ~/autoware_map ~/autoware_map/sample-map-planning.zip启动Autoware仿真环境cd ~/autoware source install/setup.bash ros2 launch autoware_launch planning_simulator.launch.xml map_path:$HOME/autoware_map/sample-map-planning vehicle_model:sample_vehicle sensor_model:sample_sensor_kit如果一切正常应该能看到一个3D可视化界面。下面是一些基本操作技巧地图导航按住鼠标左键拖动旋转视角Shift鼠标左键拖动平移地图鼠标滚轮缩放地图车辆控制按P键后点击地图设置车辆起始位置按G键后点击地图设置目标位置在AutowareStatePanel中点击Auto启动自动驾驶常见问题如果车辆不移动检查rviz2中的Localization状态是否变为绿色路径规划失败时尝试调整起点和终点的位置确保都在车道上画面卡顿时可以尝试降低rviz2的显示质量在实际使用中我发现Autoware.universe对硬件要求确实较高。如果遇到性能问题可以考虑以下优化措施在launch文件中添加参数降低点云和图像的分辨率关闭不必要的rviz2显示插件使用--cmake-args -DCMAKE_BUILD_TYPERelWithDebInfo重新编译这个选项在保持较好性能的同时提供了更多调试信息对于想要深入开发的用户建议从修改launch文件参数开始逐步了解Autoware的各个模块。例如可以尝试修改planning_simulator.launch.xml中的vehicle_model参数使用不同的车辆模型进行测试。

相关文章:

从零到一:在Ubuntu 22.04上构建Autoware.universe开发环境与实战演练

1. 环境准备:Ubuntu 22.04基础配置 在开始构建Autoware.universe开发环境之前,我们需要确保Ubuntu系统的基础环境已经正确配置。我建议使用全新安装的Ubuntu 22.04 LTS系统,这样可以避免很多潜在的依赖冲突问题。实测下来,8核CPU8…...

Prodigy-PDF的PDF标注与OCR技术

最近推出了Prodigy插件,通过直接支持第三方集成来扩展Prodigy的功能。其中一款插件是Prodigy-PDF,它提供了PDF标注的功能。 [00:00] 介绍Prodigy-PDF [00:24] 标注PDF分段 [02:22] PDF分段中的OCR [03:55] 折叠启发式算法 本教程相关资源 ● Prodig-ANN:…...

SpaceX 33台猛禽3蓄势待发,3D打印如何让发动机可重复使用性更高

近日,SpaceX公布了第12次星舰试飞的相关信息,预计于5月择机发射。4月12日,马斯克更是公布了搭载33台猛禽3发动机的第三代星舰(V3)现场图片,画面可谓相当震撼。猛禽3发动机在开发和制造过程中大量使用了金属…...

**发散创新:基于Solidity的通证经济模型在去中心化应用中的落地实践**在区块链技术

发散创新:基于Solidity的通证经济模型在去中心化应用中的落地实践 在区块链技术日益成熟的今天,通证经济(Tokenomics) 已成为构建可持续价值网络的核心驱动力。它不仅是激励机制的设计工具,更是重塑用户行为、资源分配…...

JDK1.8环境下的企业级应用:Phi-4-mini-reasoning智能工单分类与路由系统

JDK1.8环境下的企业级应用:Phi-4-mini-reasoning智能工单分类与路由系统 1. 传统工单系统面临的挑战 在仍使用JDK1.8的企业环境中,工单处理系统往往面临三大痛点: 分类效率低:客服人员需要手动阅读每份工单内容,凭经…...

Phi-3-mini-4k-instruct-gguf快速部署:仅需1条命令启动网页UI,支持中文提示词直输

Phi-3-mini-4k-instruct-gguf快速部署:仅需1条命令启动网页UI,支持中文提示词直输 1. 模型简介 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本。这个经过优化的模型特别适合以下中文场景: 智能问答文本改写与…...

革命性AMD Ryzen硬件调试:SMUDebugTool深度解析与实战应用

革命性AMD Ryzen硬件调试:SMUDebugTool深度解析与实战应用 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...

告别云桌面:用IDEA远程服务器开发提升效率的完整指南(附Maven配置技巧)

告别云桌面:用IDEA远程服务器开发提升效率的完整指南(附Maven配置技巧) 在传统开发模式中,云桌面曾是团队协作的标配解决方案,但其高昂的带宽成本和操作延迟问题始终困扰着开发者。如今JetBrains系列工具提供的远程开发…...

Typora隐藏技能:用Mermaid画专业级思维导图,附配色与样式美化全攻略

Typora视觉化思维导图设计:从基础到高级美化的完整实践指南 在信息爆炸的时代,思维导图已成为知识整理与创意发散的必备工具。但大多数工具生成的导图要么过于简陋,要么操作繁琐。作为一款优雅的Markdown编辑器,Typora内置的Merma…...

[特殊字符] 电动汽车BMS系统测试详解

目录🔋 电动汽车BMS系统测试详解一、BMS概述1.1 什么是BMS1.2 BMS核心功能二、电池参数测试2.1 电芯电压测试三、SOC估算测试3.1 SOC估算方法四、均衡功能测试五、安全保护测试六、通信与诊断测试七、性能测试八、总结🔋 电动汽车BMS系统测试详解 深入讲…...

LinkSwift:2025年最实用的网盘直链下载助手完整指南

LinkSwift:2025年最实用的网盘直链下载助手完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...

影刀RPA实战:5分钟搞定小红书自动评论,解放双手高效养号

影刀RPA实战:小红书智能评论系统搭建指南 在内容创作者和小型运营团队的实际工作中,小红书账号的日常维护往往占据了大量时间。传统手动评论不仅效率低下,而且难以保持稳定的互动频率。影刀RPA作为一款轻量级自动化工具,能够有效解…...

cv_unet_image-colorization生产环境部署:支持批量处理+日志记录+错误重试机制

cv_unet_image-colorization生产环境部署:支持批量处理日志记录错误重试机制 你是不是遇到过这样的场景?手里有一堆珍贵的黑白老照片,想给它们上色,但一张张手动处理太费时,用在线工具又担心隐私泄露,而且…...

ThinkPad风扇智能控制终极指南:告别噪音,拥抱高效散热

ThinkPad风扇智能控制终极指南:告别噪音,拥抱高效散热 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 你是否曾经被ThinkPad笔记本的风扇噪音困…...

3个关键步骤:ComfyUI-Impact-Pack图像增强插件完整使用指南

3个关键步骤:ComfyUI-Impact-Pack图像增强插件完整使用指南 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址: htt…...

暗黑破坏神2存档编辑新纪元:告别复杂十六进制,拥抱可视化操作

暗黑破坏神2存档编辑新纪元:告别复杂十六进制,拥抱可视化操作 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为修改暗黑破坏神2存档而头疼吗?你是否曾经面对密密麻麻的十六进制代码感到无…...

Win11Debloat终极指南:免费快速优化Windows 11系统的完整方案

Win11Debloat终极指南:免费快速优化Windows 11系统的完整方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter…...

暗黑破坏神II角色编辑器:解放你的游戏创造力

暗黑破坏神II角色编辑器:解放你的游戏创造力 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾经在暗黑破坏神II中花费数小时刷装备,只为获得一件特定属性的传奇物品…...

3个技巧解锁AMD Ryzen隐藏性能:SMUDebugTool实战指南

3个技巧解锁AMD Ryzen隐藏性能:SMUDebugTool实战指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://git…...

新手必看:无人机电调协议全解析——从PWM到Dshot的进阶指南

1. 无人机电调协议入门:从PWM开始说起 第一次接触无人机时,听到"电调"这个词可能会觉得有点懵。简单来说,电调就是电子调速器(Electronic Speed Controller),它负责把飞控的指令翻译成电机能听懂…...

Python多尺度地理加权回归(MGWR)实战:解决空间异质性的终极方案

Python多尺度地理加权回归(MGWR)实战:解决空间异质性的终极方案 【免费下载链接】mgwr Multiscale Geographically Weighted Regression (MGWR) 项目地址: https://gitcode.com/gh_mirrors/mg/mgwr 空间数据分析中最大的挑战是什么?传统地理加权回…...

模电入门别死磕!用Multisim仿真带你玩转童诗白《模电》里的多级放大电路

模电入门别死磕!用Multisim仿真带你玩转童诗白《模电》里的多级放大电路 刚翻开童诗白老师的《模拟电子技术》,就被"多级放大电路"章节里密密麻麻的公式和抽象描述劝退?别急着合上课本!今天我们用Multisim仿真软件&…...

RNA折叠算法实战:用Python实现Nussinov算法预测二级结构

RNA折叠算法实战:用Python实现Nussinov算法预测二级结构 RNA分子通过自我折叠形成复杂的三维结构,这些结构直接决定了其生物学功能。预测RNA二级结构是理解基因调控、药物设计等领域的关键步骤。本文将手把手带你用Python实现经典的Nussinov算法&#xf…...

3个关键步骤+5分钟上手:PPTist在线演示文稿工具完全指南

3个关键步骤5分钟上手:PPTist在线演示文稿工具完全指南 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing f…...

5分钟精通QTTabBar多语言设置:跨文化文件管理终极指南

5分钟精通QTTabBar多语言设置:跨文化文件管理终极指南 【免费下载链接】qttabbar QTTabBar is a small tool that allows you to use tab multi label function in Windows Explorer. https://www.yuque.com/indiff/qttabbar 项目地址: https://gitcode.com/gh_mi…...

基于深度学习的yolo车辆特征属性识别 多特征检测+车辆颜色识别+车辆朝向识别+车辆检测+多标签属性识别

车辆检测和多标签属性识别:基于PyTorch的精简框架 在现代智能交通系统中,车辆检测和属性识别是至关重要的组成部分。它们能够帮助我们更好地理解和管理交通流量、优化城市规划,并提高道路安全。本文将介绍一个基于PyTorch构建的轻量级框架&am…...

【行业洞察】实时图表编辑器的架构范式转换:从代码到可视化的状态同步挑战

【行业洞察】实时图表编辑器的架构范式转换:从代码到可视化的状态同步挑战 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/…...

CSDN + GitHub 双栖开发者生存指南:从博客沉淀到开源协作,构建个人技术品牌闭环路径

卷首语:为什么必须是“CSDN GitHub”? 在技术圈,有一个常见的误区:很多人认为“代码写得好,就不需要写文章”,或者“博客写得花哨,代码却是一团糟”。 真正的顶级开发者,往往是“…...

Vue2 页面白屏问题详细排查与处理方案

一、什么是「页面白屏」 白屏类型 表现 常见原因 完全白屏​ 页面一片空白,无任何内容 JS 报错、入口文件加载失败 路由白屏​ 进入某一路由后空白 路由配置错误、组件加载失败 部分白屏​ 只有某个区域空白 组件渲染异常、数据未返回 刷新白屏​ 首次正常,刷新…...

BurpSuite时间盲注爆破实战:Pikachu靶场从抓包到结果分析全流程

BurpSuite时间盲注爆破实战:Pikachu靶场从抓包到结果分析全流程 在渗透测试领域,时间盲注是一种特殊的SQL注入技术,当目标网站对错误信息进行屏蔽时,通过观察服务器响应时间的差异来推断数据库信息。本文将带您深入Pikachu靶场环境…...