资讯动态

ROS2 Ubuntu安装教程:版本对应、apt源、环境变量与验证

发布时间:2026/9/17 18:58:32 来源:尧图企业网站定制
1. 先别急着敲aptROS2与Ubuntu的版本对应关系ROS2在Ubuntu中安装这件事看起来只是几条apt命令但真正上手时版本对应、软件源、环境变量这三关就能让不少人反复重装系统。我见过太多刚接触机器人开发的朋友兴冲冲地打开终端复制了一段安装命令结果卡在“无法定位软件包ros-xxx-desktop”或者“ROS_DISTRO未设置”上。问题往往不在命令本身而在前期没有把Ubuntu发行版和ROS2发行版的对应关系理清楚。ROS2的每个发行版都和特定的Ubuntu LTS版本绑定选错了就像拿柴油往汽油车里加不是不能响而是会出大问题。这一节我把自己选版本、查版本的思路一次讲透让你在敲第一条命令之前就知道自己在装什么、为什么装这个版本、后面会用到哪些工具。适合刚入门ROS2的开发者也适合准备给实验室或团队统一环境的朋友参考。1.1 版本错配是新手最容易踩的坑ROS2的发行版命名大多来自字母顺序比如Humble、Jazzy、Foxy每个版本背后都对应一个Ubuntu长期支持版。Ubuntu 22.04对应ROS2 HumbleUbuntu 24.04对应ROS2 JazzyUbuntu 20.04对应ROS2 Foxy。Foxy已经停止官方维护现在新项目不建议再从Foxy起步。如果你手里是Ubuntu 20.04最省事的做法是升级到22.04或24.04或者用Docker跑新版本ROS2而不是硬装Humble或Jazzy。硬装不是绝对不行但你要处理大量依赖版本冲突编译错误会一个接一个时间成本远高于换系统。先确认系统版本命令很简单lsb_release -a也可以看/etc/os-release里的VERSION_CODENAME。这个代号在添加软件源时会用到jammy代表22.04noble代表24.04focal代表20.04。别小看这个代号写错一个字母apt更新就会报404。另一个常见误区是同时装两个ROS2发行版。有人想保留Humble又装Jazzy结果source环境变量时互相覆盖今天能跑小乌龟明天就找不到包。多版本不是不能共存但必须把不同版本的环境变量隔离比如用不同的终端会话或者干脆用Docker容器。新手阶段我建议一台机器只装一个ROS2版本等熟悉了工作空间覆盖机制再去玩多版本共存。还要注意架构dpkg --print-architecture会告诉你系统是amd64还是arm64ROS2 apt源对不同架构的支持有差异树莓派、Jetson这类ARM设备要查清楚有没有对应包。别拿x86的安装命令直接往ARM板子上套轻则装不上重则把系统包管理搞乱。1.2 安装方式怎么选apt、源码、Docker和WSL2ROS2的安装方式主要有四种apt二进制安装、源码编译、Docker镜像、WSL2里的Ubuntu。apt安装适合绝大多数人尤其是刚开始学ROS2命令、话题、服务、动作这些概念的人。它的优点是省时间桌面版一键装好rviz2、rqt、demo节点和常用依赖后面直接跑小乌龟就能验证环境。缺点是版本由发行版决定想用某个新功能可能要等下一个ROS2版本。源码编译适合要改ROS2底层、做深度定制、或者目标平台没有现成包的场景但编译一次动辄几十分钟到几个小时依赖管理也麻烦新手不要一上来就选这条路。Docker适合需要隔离环境、复现团队配置、在服务器上批量部署的场景。你可以把ROS2、依赖、工作空间全打进镜像换机器直接跑。但Docker里跑图形界面要额外配置X11转发USB设备、串口、摄像头也要手动映射对Linux基础有一定要求。WSL2适合主力系统是Windows、又不想装双系统的朋友。现在的WSL2支持WSLg可以直接显示rviz2和Gazebo界面日常写代码、跑节点、学ROS2命令足够用。但涉及真实机器人硬件、USB转串口、CAN通信、实时性要求高的场景WSL2会有局限最终还是要上原生Ubuntu或工控机。虚拟机安装Ubuntu是另一种折中方案好处是快照随便回滚坏处是3D加速和USB透传经常出问题跑rviz2可能卡顿甚至黑屏。我的建议很直接学习阶段用Ubuntu原生系统或WSL2团队开发用Docker统一镜像真要接硬件就上原生Ubuntu。如果你现在用的是Windows可以先装VMware或VirtualBox但记得给虚拟机至少4GB内存、2个CPU核心、40GB磁盘并打开3D加速。用WSL2的话建议把代码放在Linux文件系统里比如~/ros2_ws不要放在/mnt/c下否则编译和文件监听会慢很多。这些选择没有绝对优劣关键看你的目标如果你只想先跑通ROS2小乌龟apt加WSL2是最短路径如果你要做移动机器人、机械臂、自动驾驶那还是尽早准备一台原生Ubuntu机器。2. 装ROS2前的Ubuntu基础准备很多人装ROS2失败不是ROS2本身难装而是Ubuntu基础环境没收拾干净。比如时间不对导致密钥验证失败软件源没启用universe导致依赖找不到磁盘空间不足导致apt解包中断。这些问题在安装前花十分钟检查能省下后面两小时排查。我习惯把安装前准备分成三块系统更新和基础工具、软件源和网络、磁盘和虚拟机设置。每块都不复杂但缺一块就可能让后面步骤莫名其妙报错。2.1 系统更新、时区和基础编译工具第一步先更新系统包索引并升级已有软件。命令是sudo apt update sudo apt upgrade -y如果内核有更新建议重启一次再继续。接着装一批基础工具sudo apt install -y curl gnupg lsb-release software-properties-common \ build-essential cmake git python3-pip python3-venvcurl和gnupg用来下载和验证ROS2软件源密钥lsb-release用来读取Ubuntu代号software-properties-common提供add-apt-repository命令build-essential和cmake是后面编译工作空间要用的。别等到colcon build报“找不到g”才回头装那时候容易怀疑人生。时区也要检查命令是timedatectl。如果时间偏差太大apt和密钥服务器会因为证书时间不对而拒绝连接。国内用户可以把时区设为Asia/Shanghaisudo timedatectl set-timezone Asia/Shanghai然后确认date输出正常。这个细节在虚拟机里特别常见虚拟机挂起恢复后时间可能漂移导致apt update报“Release file is not valid yet”。遇到这种报错先别急着换源先看系统时间。2.2 软件源与网络检查ROS2的apt包依赖Ubuntu的universe仓库很多最小化安装的Ubuntu默认没启用它。先执行sudo add-apt-repository universe sudo apt update如果官方Ubuntu源下载慢可以换成国内镜像源。换源前先备份/etc/apt/sources.list以及/etc/apt/sources.list.d/下相关文件避免改错后无法恢复。换源只影响Ubuntu系统包ROS2自己的软件源要单独添加后面会讲。这里要区分清楚Ubuntu源负责curl、cmake、python3这些基础包ROS2源负责ros-jazzy-desktop这类ROS专用包。两个源都配好apt才能把依赖链完整解析出来。如果公司或学校网络有限制先确认能正常访问Ubuntu归档服务器再继续下一步。不要同时启用多个来源相同但版本不同的镜像源apt会提示重复配置或者版本冲突。另外检查磁盘空间df -h /ROS2桌面版加上后续工具建议至少留20GB最好40GB以上。/var/cache/apt会缓存下载的deb包空间紧张时可以先sudo apt clean。内存方面原生Ubuntu建议4GB起步跑Gazebo和rviz2同时开建议8GB以上。交换分区也要有否则编译大型包时可能被系统杀掉进程。虚拟机里如果只给2GB内存编译ros-jazzy-desktop相关依赖时很容易卡死这不是ROS2的问题是资源不够。2.3 磁盘空间和虚拟机设置如果你用VMware或VirtualBox安装Ubuntu时磁盘类型选动态分配没问题但实际可用空间要够。虚拟机设置里建议开启“加速3D图形”显存给到128MB以上。否则rviz2启动可能报OpenGL错误或者界面一片黑。VirtualBox还需要安装增强功能包VMware需要安装open-vm-tools命令是sudo apt install -y open-vm-tools open-vm-tools-desktopWSL2用户要确认WSL版本是2命令是wsl -l -v。如果还是WSL1用wsl --set-version Ubuntu-22.04 2升级。WSL2的图形界面依赖WSLgWindows 11一般自带Windows 10需要较新版本。可以在Ubuntu里执行echo $DISPLAY如果输出类似:0或:1说明图形转发可用。WSL2的内存和CPU可以通过Windows用户目录下的.wslconfig限制默认会占用较多内存。想限制可以写[wsl2] memory8GB processors4改完在PowerShell执行wsl --shutdown重启。双系统用户要留意BIOS里的安全启动设置有些第三方驱动或内核模块会受影响但ROS2 apt安装本身一般不涉及内核模块所以不用过度折腾。真正要注意的是双系统时间不同步Windows和Ubuntu会互相把硬件时钟解释错可以在Ubuntu里执行timedatectl set-local-rtc 1 --adjust-system-clock这个命令让Ubuntu把硬件时钟当本地时间适合与Windows共存。纯Ubuntu用户不建议开保持UTC更规范。3. 用apt在Ubuntu中安装ROS2的完整流程准备工作做完正式安装ROS2。以Ubuntu 24.04装ROS2 Jazzy、Ubuntu 22.04装ROS2 Humble为例步骤基本一致只是包名里的发行版代号不同。下面命令里出现jazzy的地方Humble用户替换成humble即可。安装过程分三步添加ROS2软件源和密钥、安装桌面版和开发工具、配置环境变量并验证。每一步我都给出检查点装完一步确认一步别一路复制到底出了问题不知道是哪一步坏的。3.1 添加ROS2软件源和密钥ROS2官方现在推荐用ros2-apt-source包来管理软件源省去手动写key和list的麻烦。先装依赖sudo apt update sudo apt install -y curl gnupg lsb-release然后下载并安装ros2-apt-source。下面这段命令会读取你的Ubuntu代号并选择合适的deb包export ROS_APT_SOURCE_VERSION$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F tag_name | awk -F\ {print $4}) curl -L -o /tmp/ros2-apt-source.deb \ https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release echo $VERSION_CODENAME)_all.deb sudo dpkg -i /tmp/ros2-apt-source.deb sudo apt update如果访问GitHub API慢或者失败也可以用传统方式手动添加。传统方式先下载密钥sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \ -o /usr/share/keyrings/ros-archive-keyring.gpg然后写入源列表。Ubuntu 24.04用noble22.04用jammy最好用变量自动取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 sudo apt updateapt update成功后可以用apt-cache policy ros-jazzy-desktop看看候选版本。如果提示“无法定位软件包”多半是源没写对、代号错了、或者apt update没跑成功。注意不要把UBUNTU_CODENAME和VERSION_CODENAME混用有些系统上这两个变量值一样但写脚本时UBUNTU_CODENAME更明确。添加源之后如果之前装过其他ROS2版本检查/etc/apt/sources.list.d/里有没有旧的ros2.list或ros.list避免多个源互相干扰。3.2 安装桌面版和开发工具源配好后安装桌面版sudo apt install -y ros-jazzy-desktopHumble用户执行sudo apt install -y ros-humble-desktopdesktop包含ROS2核心库、rviz2、rqt、demo节点、turtlesim等常用工具适合学习和开发。如果你只需要最小运行时可以装ros-jazzy-ros-base但它不带图形工具后面还要单独补。装完桌面版再装开发工具sudo apt install -y ros-dev-tools python3-colcon-common-extensions python3-rosdep python3-vcstoolros-dev-tools会带入colcon、rosdep、vcstool等工具。colcon是ROS2的构建工具rosdep用来安装包依赖vcstool用来批量拉取源代码。这里有个细节Ubuntu 24.04的Python版本较新某些第三方ROS包可能还没适配遇到Python依赖报错时先确认包是否支持Jazzy。安装过程中如果apt提示要卸载大量系统包先停下来看清楚不要盲目输入y。正常安装ROS2桌面版不会要求卸载桌面环境或核心系统库出现这种情况通常是软件源混用或版本冲突。3.3 环境变量配置与开机自动加载装完不sourceROS2命令用不了。先临时加载source /opt/ros/jazzy/setup.bashHumble对应source /opt/ros/humble/setup.bash然后检查echo $ROS_DISTRO ros2 --help如果ROS_DISTRO输出jazzy或humble说明环境变量生效。为了让新终端自动加载把它写进~/.bashrcecho source /opt/ros/jazzy/setup.bash ~/.bashrc source ~/.bashrc注意如果你的~/.bashrc里已经有其他ROS版本的source语句要删掉或注释否则每次开终端都会按顺序覆盖最后生效的是最后一个。工作空间的install/setup.bash也要source而且要在ROS2系统环境之后这样工作空间里的包才能覆盖系统包。顺序是source /opt/ros/jazzy/setup.bash source ~/ros2_ws/install/setup.bash如果你用zsh配置文件是~/.zshrc但ROS2安装脚本默认生成bash版本zsh下要sourcesetup.zsh。不确定自己用的是哪个shell执行echo $SHELL。另外ROS_DOMAIN_ID建议设置一个0到232之间的数字同一网络里不同小组用不同ID可以避免节点互相发现。学习时用默认0就行多人共用网络时再改。4. 安装完成后的验证小乌龟、demo和rviz2装完ROS2不等于能用必须跑通几个验证。我通常按从简到繁的顺序先看命令能不能用再跑小乌龟看话题再跑demo_nodes看节点通信最后开rviz2看图形界面。这套流程能快速暴露环境变量、DDS通信、图形驱动这三类问题。验证通过后再去建工作空间、写代码心里有底。4.1 基础命令自检先确认命令和包列表ros2 --help ros2 pkg list | head ros2 topic list如果ros2 pkg list能列出一长串包说明安装和source都正常。再跑一下ros2 doctor它会检查网络、平台、环境变量等配置并给出警告。ros2 doctor不是万能的但能发现很多低级问题比如ROS_DISTRO没设置、ROS_DOMAIN_ID冲突、缺少依赖。你也可以用printenv | grep ROS查看所有ROS相关环境变量。如果输出为空说明当前终端没有source。如果ros2 topic list报“Failed to contact daemon”可以试ros2 daemon stop ros2 daemon startROS2的守护进程偶尔会卡住重启通常能解决。这个操作不会影响你的安装只是刷新本地发现服务。4.2 跑通turtlesim和键盘控制打开第一个终端source /opt/ros/jazzy/setup.bash ros2 run turtlesim turtlesim_node再开第二个终端source /opt/ros/jazzy/setup.bash ros2 run turtlesim turtle_teleop_key把鼠标放在第二个终端上按方向键小乌龟应该会动。如果没动先看第二个终端有没有输出“Reading from keyboard”再看第一个终端有没有报错。然后查看节点和话题ros2 node list ros2 topic list ros2 topic echo /turtle1/pose你会看到/turtlesim节点和/turtle1/cmd_vel、/turtle1/pose等话题。还可以手动发速度指令ros2 topic pub /turtle1/cmd_vel geometry_msgs/msg/Twist \ {linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}这个命令会让小乌龟画圆。按CtrlC停止。小乌龟验证通过说明ROS2核心、话题通信、消息类型都没问题。如果小乌龟窗口打不开报Unable to create window多半是图形驱动或显示转发问题虚拟机里检查3D加速WSL2里检查WSLg。4.3 rviz2和demo_nodes验证DDS通信再开一个终端启动demo_nodes_cpp的talkerros2 run demo_nodes_cpp talker另一个终端启动listenerros2 run demo_nodes_cpp listenerlistener应该持续打印“I heard: Hello World: 数字”。这说明DDS中间件在正常工作。如果两个节点互相看不到先确认ROS_DOMAIN_ID一致再检查防火墙。Ubuntu默认的ufw如果开启可能挡住DDS发现流量。学习阶段可以临时关闭sudo ufw status sudo ufw disable生产环境不要随便关防火墙应该按DDS要求放行相关端口或改用配置。接着启动rviz2rviz2rviz2能打开说明图形界面和OpenGL正常。在rviz2里可以添加Image、LaserScan、PointCloud2等显示项但此时没有数据源只是验证界面。如果你后续要接D435i、Livox Avia这类传感器rviz2就是主要可视化工具之一。启动rviz2时如果报libGL error可以安装sudo apt install -y mesa-utils libgl1-mesa-dri虚拟机里还可以临时用软件渲染export LIBGL_ALWAYS_SOFTWARE1 rviz2软件渲染会慢但至少能确认是3D加速问题还是rviz2本身问题。5. rosdep、colcon与工作空间初始化ROS2安装只是第一步真正写代码要用工作空间。工作空间是你放自己包的地方和系统ROS2目录分开避免污染系统安装。ROS2用colcon构建用rosdep装依赖。这两个工具在开发中出场率极高值得在装完系统后立刻熟悉。很多人第一次rosdep update就失败然后放弃后面每次装依赖都手动apt效率很低。下面把初始化流程和常见坑讲清楚。5.1 rosdep初始化和常见错误先初始化rosdepsudo rosdep init rosdep updatesudo rosdep init只需要执行一次。如果提示“already initialized”说明之前初始化过直接跳过。rosdep update如果超时多半是网络访问问题。可以换国内镜像源例如把/etc/ros/rosdep/sources.list.d/20-default.list里的地址替换为清华或中科大镜像。改之前备份原文件。也可以使用社区提供的rosdepc工具它是针对国内网络环境做的封装但用第三方脚本前要确认来源可靠。rosdep update成功后工作空间里就可以用rosdep install --from-paths src --ignore-src -r -y这条命令会扫描package.xml里的依赖并自动安装。如果报权限问题执行sudo rosdep fix-permissions再重新rosdep update。注意不要在sudo下运行rosdep install否则生成的文件属主会变成root后面colcon build可能因为权限失败。5.2 colcon工作空间创建与编译创建标准工作空间mkdir -p ~/ros2_ws/src cd ~/ros2_ws colcon build --symlink-install source install/setup.bash--symlink-install对Python包和资源文件很友好修改源码后不用重新编译就能生效。C包仍然需要重新构建。每次新开终端都要source工作空间记得写进~/.bashrc或者用脚本管理。工作空间可以多层覆盖比如~/ros2_ws覆盖系统/opt/ros/jazzy但顺序不能反。编译时如果内存不足可以限制并行任务colcon build --parallel-workers 2编译报错先看第一个error后面的错误往往是连锁反应。colcon会在log/latest_build下保存日志排查时很有用。5.3 创建第一个包并写发布者创建C包cd ~/ros2_ws/src ros2 pkg create --build-type ament_cmake my_first_pkg \ --dependencies rclcpp std_msgs在my_first_pkg/src/talker.cpp写入#include rclcpp/rclcpp.hpp #include std_msgs/msg/string.hpp #include chrono using namespace std::chrono_literals; class Talker : public rclcpp::Node { public: Talker() : Node(talker) { publisher_ this-create_publisherstd_msgs::msg::String(chatter, 10); timer_ this-create_wall_timer(500ms, [this]() { auto message std_msgs::msg::String(); message.data Hello ROS2 std::to_string(count_); RCLCPP_INFO(this-get_logger(), Publishing: %s, message.data.c_str()); publisher_-publish(message); }); } private: rclcpp::Publisherstd_msgs::msg::String::SharedPtr publisher_; rclcpp::TimerBase::SharedPtr timer_; size_t count_ 0; }; int main(int argc, char * argv[]) { rclcpp::init(argc, argv); rclcpp::spin(std::make_sharedTalker()); rclcpp::shutdown(); return 0; }修改CMakeLists.txt在find_package后加add_executable(talker src/talker.cpp) ament_target_dependencies(talker rclcpp std_msgs) install(TARGETS talker DESTINATION lib/${PROJECT_NAME} )确认package.xml里有rclcpp和std_msgs依赖。然后编译cd ~/ros2_ws colcon build --packages-select my_first_pkg source install/setup.bash ros2 run my_first_pkg talker另开终端source ~/ros2_ws/install/setup.bash ros2 topic echo /chatter能看到消息打印出来说明你自己的节点已经跑通了。这个最小例子包含了节点、发布者、定时器、话题和消息后面学订阅、服务、动作都从这个模式扩展。6. 常见报错速查与排查思路装ROS2的过程中报错不可避免。有些报错看着吓人其实原因很简单。我整理了自己和身边朋友最常遇到的几类问题做成速查表再补充每个问题的排查思路。遇到报错不要急着重装系统先看错误关键词再从环境变量、软件源、网络、图形驱动四个方向查。6.1 ros2: command not found这是最高频的问题。原因通常是当前终端没有source或者source的路径不对。先检查ls /opt/ros/如果看到jazzy或humble目录说明装好了。然后source /opt/ros/jazzy/setup.bash ros2 --version如果ros2 --version不存在用ros2 --help或ros2 pkg list验证。想让新终端自动生效检查~/.bashrc里source语句是否拼错。如果你用conda注意conda的Python环境可能覆盖系统Python导致ros2命令找不到。可以在~/.bashrc里把conda初始化放在ROS2 source之后或者用conda deactivate退出后再用ROS2。另一个原因是安装到了非默认路径比如源码安装没sourcelocal_setup.bash。apt安装一般固定在/opt/ros/下不会跑偏。6.2 apt安装失败、密钥错误、依赖冲突如果apt update报NO_PUBKEY说明ROS2密钥没导入或过期。重新下载密钥到/usr/share/keyrings/再确认源列表里的signed-by路径一致。报404 Not Found通常是Ubuntu代号写错或者该ROS2版本不支持你的Ubuntu版本。报Unable to locate package先确认apt update成功再确认包名拼写ros-jazzy-desktop和ros-humble-desktop不能混用。依赖冲突时可以先sudo apt --fix-broken install sudo apt autoremove sudo apt update如果之前装过ROS1ros1和ros2的源可能同时存在apt会困惑。检查/etc/apt/sources.list.d/把不需要的源移走。不要随便用aptitude强行降级大量系统库可能把桌面环境搞坏。时间不对也会导致密钥验证失败先sudo apt install ntpdate并同步时间或者直接用timedatectl检查。6.3 虚拟机、WSL2、双系统下的显示与网络问题虚拟机里rviz2黑屏或崩溃先确认3D加速开启再装mesa-utils和libgl1-mesa-dri。VirtualBox需要安装增强功能VMware需要open-vm-tools。WSL2里rviz2打不开检查echo $DISPLAY如果为空确认WSLg可用或者手动设置export DISPLAY:0。WSL2访问USB设备比较复杂需要Windows端工具做设备转发学习阶段不必强求。双系统下Windows和Ubuntu时间不一致用timedatectl set-local-rtc 1解决。网络方面DDS默认用多播发现虚拟机NAT模式可能不支持多播导致节点互相看不见。可以把虚拟机网络改成桥接模式或者配置FastDDS使用单播。跨机器通信时确保两台机器ROS_DOMAIN_ID一致防火墙放行DDS流量。6.4 节点发现不了、话题没数据节点列表为空先确认两个终端都source了同一个ROS2环境且ROS_DOMAIN_ID一致。然后检查ROS_LOCALHOST_ONLY如果设为1只允许本机通信。多机通信时多播被网络设备屏蔽也会导致发现失败可以改用FastDDS的静态发现配置指定对端IP。话题有发布者但ros2 topic echo没数据可能是QoS不匹配比如发布者用best_effort订阅者用reliable。用ros2 topic info /chatter --verbose查看QoS。DDS守护进程卡住时ros2 daemon stop ros2 daemon start能解决一部分问题。如果用了Docker注意容器网络模式--network host可以让容器和主机共享网络方便发现节点。7. 我的实操习惯与版本选择建议最后聊点经验和习惯。ROS2安装本身不难难的是长期维护和版本升级。我带团队时最怕每个人环境不一样今天你能跑我不能跑明天他重装系统又换了一个版本。后来我们定了规矩统一Ubuntu LTS统一ROS2发行版统一用脚本初始化。这个规矩省了很多沟通成本。下面是我个人在版本选择和环境维护上的几点做法供你参考。7.1 选LTS还是最新版优先选ROS2的长期支持版。Humble支持到2027年Jazzy支持到2029年具体以官方公告为准。长期支持版意味着bug修复和安全更新更久第三方包适配也更全。最新版有新功能但生态跟进需要时间尤其是传感器驱动、仿真插件、硬件SDK。如果你做产品选长期支持版如果你追新特性、做研究可以装最新版但要做好踩坑准备。Ubuntu也一样优先LTS22.04和24.04都是好选择。不要用非LTS的Ubuntu装ROS2比如23.10官方可能没有对应包。升级ROS2发行版时不要直接apt upgrade跨版本应该新装一个系统或容器迁移工作空间逐步验证依赖。7.2 一些容易忽略的小习惯第一记录你的安装命令。把添加源、安装包、source环境变量这些命令写进一个install_ros2.sh下次重装直接跑。第二备份~/.bashrc和/etc/apt/sources.list.d/环境坏了能快速对比。第三设置ROS_DOMAIN_ID实验室多人共用网络时尤其重要避免你的小乌龟被别人的节点控制。第四装完先跑小乌龟、demo_nodes、rviz2三件套确认环境正常再装传感器驱动。第五工作空间名称不要用中文和空格路径尽量短避免编译工具处理路径时出怪问题。第六定期sudo apt update sudo apt upgrade但升级前看清会动哪些包尤其是内核和图形驱动必要时先做快照。第七如果要用Docker把ROS2版本、Ubuntu版本、依赖都写进Dockerfile镜像打tag不要用latest。这些小习惯单个看没什么积累起来能帮你少熬很多夜。我自己的做法是每台新机器装完ROS2后先建一个空工作空间编译一次再跑一个小乌龟最后用ros2 doctor过一遍。这套流程走完基本可以确定环境没有大问题。后面接D435i、Livox Avia、Gazebo、SLAM这些包时再按需装依赖遇到版本冲突就回到rosdep和apt的日志里找线索。ROS2的生态还在快速变化命令和包名以后可能会变但版本对应、软件源、环境变量、DDS通信这几个底层逻辑不会变。把这几件事弄明白换哪个发行版都能快速上手。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价