国内排名前几名的最完整 的ros2快速上手入门教程
如何快速学会ros2ROS2 Humble 完整安装部署文档Ubuntu24.0纯 ROS2重要说明如果你打算入门 ROS2 机器人开发这篇纯实操文档非常适合上手你可以逐条复制命令运行、逐行调试验证效果。配套配置讲解视频我后续会单独录制发布。机器人开发本身门槛不在于单一知识点多难而是高度综合化和只钻研某项独立技术有明显区别三维建模、代码编程、机器人动力学、仿真调试、后端部署等内容都会覆盖。建议具备一年及以上编程基础再系统学习本文档如果你刚好满足该编程功底要求这份实操教程会帮你稳步落地ROS2 实战。共三部份1环境安装2ros2安装3测试环境和常见命令及操作演示第一部份 环境准备概略需要在安装好ubuntu 系统后安装vscode clion git 然后安装以下插件我们需要安装vscode,clion git,vscode 主要用来写代码。 git 用于仓库提交 clion 用来绑定智能体帮我们开发代码但是初学习我们先不聊clion的使用秘要先认真理一下整流细节 。vscode 需要提交安装以下插件进行 ROS2 机器人项目开发时推荐在 VS Code 中批量安装下述常用开发插件覆盖汉化、代码编译、语法提示、机器人专用文件解析、文档排版等全套需求清单明细如下Chinese (Simplified)VS Code 界面简体中文汉化插件PythonPython 代码高亮、运行调试、语法检测ROS2 Python 节点开发必备C/CC 语法解析、智能跳转、编译调试适配 ROS2 C 功能包开发CMake ToolsCMake 工程配置、构建、编译工具ROS2 ament_cmake 编译依赖文件图标主题插件可视化侧边栏各类文件、文件夹图标项目结构一目了然ROS ExtensionROS2 专属集成插件一键编译、启动节点、查看话题、一键调用终端指令Msg Language Support.msg消息接口文件语法高亮、智能提示URDF SupportURDF 机器人模型文件语法校验、实时预览、标签高亮IntelliCodeAI 智能代码补全、上下文代码推荐提升编码效率Markdown All in OneMarkdown 文档实时排版、目录生成、格式预览方便撰写技术文档。备注以上插件多数是vscode编辑器使用插件要装好插件件显示就好漂亮只是增加开快界面好看和代码提示和正式使用ros2无关第二部份安装ros2适用说明系统Ubuntu 22.04安装版本ROS2 Humble Hawksbill安装包desktop-full 完整版内置 Gazebo 物理仿真、RViz2、rqt、导航、视觉、点云全套工具全程国内清华镜像无 GitHub 访问超时问题剔除所有 ROS1 相关内容步聚分析为Step1:配置系统字符编码Step 2:配置清华ROs2镜像源Step 3:更新源并安装ROS2Jazzy完整版Step4:安装编译工具和Gazebo仿真Step 5:配置环境变量(永久生效)Step6:验证安装(rviz2/gazebo)ROS2 Jazzy 完整版安装文档Ubuntu 24.04纯 ROS2清华镜像环境说明系统Ubuntu 24.04ROS2 版本Jazzy Jalisco安装套件desktop-full自带 Gazebo 仿真、RViz2、全套可视化、导航、视觉工具全程国内镜像剔除 ROS1 所有内容逐条复制运行即可。整 个步聚分为Step1:配置系统字符编码Step 2:配置清华ROs2镜像源Step 3:更新源并安装ROS2Jazzy完整版Step4:安装编译工具和Gazebo仿真Step 5:配置环境变量(永久生效)Step 6:验证安装(rviz2/gazebo)1 配置系统编码防止中文乱码、编译报错bashsudo apt update sudo apt install localessudo locale-gen en_US en_US.UTF-8sudo update-locale LC_ALLen_US.UTF-8 LANGen_US.UTF-8export LANGen_US.UTF-82 配置清华 ROS2 镜像源2.1 安装依赖工具bashsudo apt install curl gnupg lsb-release -y2.2 导入密钥清华镜像下载不用访问 Githubbashsudo curl -sSL https://mirrors.tuna.tsinghua.edu.cn/rosdistro/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg2.3 写入 ROS2 软件源bashecho deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(lsb_release -cs) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null3 更新源安装 ROS2 完整版仿真套件bashsudo apt updatesudo apt install -y ros-jazzy-desktop-full4 安装编译、URDF 建模必备工具bashsudo apt install -y python3-colcon-common-extensions ros-jazzy-robot-state-publisher ros-jazzy-joint-state-publisher-gui5 配置永久环境变量bashecho source /opt/ros/jazzy/setup.bash ~/.bashrcsource ~/.bashrc6 校验安装是否成功新开终端分别执行能正常弹出图形界面即为安装完成bashrviz2bashgazebo7 单独安装其他 ROS2 功能包通用模板bashsudo apt updatesudo apt install -y ros-jazzy-包名举例bash# SLAM建图工具sudo apt install -y ros-jazzy-slam-toolbox补充注意点所有包名里的 humble 全部替换成了 jazzy适配 24.04不会出现包找不到依赖错误依旧全程清华镜像不存在raw.githubusercontent.com连接超时问题全程无任何 ROS1 相关命令、依赖干净纯 ROS2 环境Gazebo、RViz2、rqt、导航、机械臂控制全套仿真组件一次性装齐满足机器狗建模、节点开发需求。运行以下测试安装是不是成功# 发布端 ros2 run demo_nodes_py talker# 订阅端 ros2 run demo_nodes_py listener官方经典小海鬼安案例ros2 run turtlesim turtlesim_node打开小海鬼ros2 run turtlesim turtle_teleop_key控制小海鬼第三部份测试环境和常见命令以下是关与刚安装好ROS2后 操作 小海龟全套实操命令汇总每条格式【命令功能】→ 命令示例 → 使用要求前置前提已经装好 ROS2、环境变量永久配置完毕所有终端无需重复source下文海龟名称默认turtle1、新增turtle2一、启动仿真基础环境【功能】启动海龟仿真图形窗口启动默认第一只turtle1bashros2 run turtlesim turtlesim_node使用要求独占终端不要关闭后续新开其他终端执行控制命令【功能】键盘方向键遥控海龟移动bashros2 run turtlesim turtle_teleop_key使用要求光标停留在这个终端内上下左右按键才能生效该终端不能输入其他内容。二、节点查询系列命令【功能】列出当前所有正在运行的 ROS2 节点bashros2 node list使用要求仿真节点必须已经启动否则无输出。【功能】查看指定节点详细信息订阅 / 发布话题、服务、Action 接口bashros2 node info /turtlesim使用要求节点名称必须带开头/节点正在运行才能查询。三、话题 topic 全套调试命令核心控制【功能】列出系统全部激活话题bashros2 topic list使用要求至少启动一个节点才有话题输出。【功能】实时订阅、打印某个话题源源不断的数据查看海龟坐标bashros2 topic echo /turtle1/pose使用要求话题名称不能输错CtrlC终止监听。【功能】查看某话题对应的消息类型bashros2 topic type /turtle1/cmd_vel使用要求后续手动发布消息必须严格匹配该类型。【功能】查看话题发布者、订阅者数量bashros2 topic info /turtle1/cmd_vel【功能】终端手动持续下发速度指令控制海龟走圆形轨迹bashros2 topic pub --rate 1 /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}}使用要求--rate 1代表每秒发 1 次指令去掉则只发一次海龟动一下就停话题名turtle1精准绑定单只海龟改成turtle2就控制第二只线速度、角速度同时非 0 才会画圆圈CtrlC停止运动。【功能】统计话题每秒发布频率Hzbashros2 topic hz /turtle1/pose四、服务 service 调用命令新增 / 删除 / 重置海龟【功能】调用 /spawn 服务生成第二只海龟turtle2自定义出生坐标和朝向bashros2 service call /spawn turtlesim/srv/Spawn {x: 2, y: 2, theta: 0.2, name: turtle2}使用要求x/y 是画布坐标theta 初始角度name 指定海龟名称后续控制它就要用turtle2/cmd_vel话题。【功能】删除指定某一只海龟bashros2 service call /kill turtlesim/srv/Kill {name: turtle2}【功能】画布全部重置海龟归位、轨迹清空bashros2 service call /reset std_srvs/srv/Empty {}五、ros2 bag 数据录制与回放命令【功能】只录制turtle1的速度控制话题数据bashros2 bag record /turtle1/cmd_vel使用要求录制期间操作海龟移动运动指令全部存入 bag 包CtrlC结束录制自动生成数据包文件夹只写了turtle1话题不会录制turtle2指令。【功能】回放录制好的 bag 包自动复现海龟之前运动轨迹bashros2 bag play 数据包文件夹名使用要求仿真窗口必须保持打开回放自动按照原话题下发指令只控制对应海龟。【功能】bag 包索引损坏时修复重建bashros2 bag reindex 数据包文件夹名六、两只海龟分开控制要点总结区分依据话题名里的turtle1、turtle2天然隔离控制turtle1所有命令话题写/turtle1/cmd_vel控制turtle2所有命令话题写/turtle2/cmd_vel二者互不干扰可以同时各自画不同轨迹。通用全局使用要求汇总所有命令必须在 ROS2 环境变量加载完成的终端执行节点、话题、服务名称字符串严格完全匹配多 / 少字符都会通信失败长时运行的指令echo、pub、record都用CtrlC终止仿真窗口turtlesim_node不能关闭一旦关闭所有海龟相关话题、服务全部失效话题是持续流式通信适合持续运动控制服务是一次性请求应答适合生成、删除海龟这类单次操作。