# Category: ROS2

URL: https://wsj-blog.pages.dev/categories/ROS2/

## 40 posts

- [ROS2系列教程：Moveit2真机控制与系列总结（原理）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-moveit2-zhen-ji-kong-zhi-yu-xi-lie.md): 阶段篇号主题掌握的关键能力入门1-12ROS2 基础节点/话题/服务/参数/Action/launch/tf2，能独立开发节点机器人学13-15运动学与坐标位姿、tf2 坐标变换、TF…
- [ROS2系列教程：Moveit2进阶（抓取/OMPL/自定义规划）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-moveit2-jin-jie-zhua-qu-ompl-zi-ding.md): 理解规划器插件机制，能让你在特殊需求（狭窄通道、非标准成本函数）时不至于束手无策。
- [ROS2系列教程：Moveit2碰撞检测与避障](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-moveit2-peng-zhuang-jian-ce-yu-bi.md): 把前面学的串成真本事——用 Pick & Place 流程实现"感知 → 抓取 → 搬运 → 放置"，深入 OMPL 各规划器（RRT/RRTConnect/BIT\*）的选型与调参…
- [ROS2系列教程：Moveit2运动学（IK/FK与运动学插件）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-moveit2-yun-dong-xue-ik-fk-yu-yun.md): 理解插件的机制，比背 API 更有价值。下面写一个"最小可用"的自定义 IK 求解器插件。
- [ROS2系列教程：Moveit2仿真与运动规划（基础）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-moveit2-fang-zhen-yu-yun-dong-gui.md): 本文是 ROS2 系列教程的第 36 篇：MoveIt2 仿真与运动规划（基础）。第 35 篇我们装好了 MoveIt2、写了一个两连杆机械臂的 URDF，并用…
- [ROS2系列教程：Moveit2环境与机械臂建模准备](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-moveit2-huan-jing-yu-ji-xie-bi-jian.md): 本文是 ROS2 系列教程的第 35 篇：MoveIt2 环境与机械臂建模准备。第 31~34 篇我们完成了移动底盘机器人的完整实战（建图、导航、任务、安全）。。第 35…
- [ROS2系列教程：上位机建图与导航（原理综合）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-shang-wei-ji-jian-tu-yu-dao-hang.md): 本文是 ROS2 系列教程的第 33 篇：上位机建图与导航（原理综合）。第 32 篇我们把下位机的数据（里程计、IMU、传感器）接进了 ROS2，实现了"软硬结合"。但机器人拿到数据之后要干什么？…
- [ROS2系列教程：完整实体机器人项目实战（软硬协同）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-wan-zheng-shi-ti-ji-qi-ren-xiang-mu.md): 本文是 ROS2 系列教程的第 34 篇：完整实体机器人项目实战（软硬协同）。第 31~33 篇分别完成了硬件搭建、软硬通信、建图导航三件大事…
- [ROS2系列教程：嵌入式控制与通信开发（原理+仿真）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-qian-ru-shi-kong-zhi-yu-tong-xin-kai.md): 本文是 ROS2 系列教程的第 32 篇：嵌入式控制与通信开发（原理+仿真）。第 31 篇我们搭好了实体机器人的硬件骨架。但硬件只是"尸体"…
- [ROS2系列教程：实体机器人硬件搭建（原理）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-shi-ti-ji-qi-ren-ying-jian-da-jian.md): 本文是 ROS2 系列教程的第 31 篇：实体机器人硬件搭建（原理）。第 26-30 篇我们打通了硬件控制全链路：电机、舵机、传感器、MicroROS、ROS2-Control…
- [ROS2系列教程：控制硬件实战（舵机与传感器，原理）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-kong-zhi-ying-jian-shi-zhan-duo-ji.md): 本阶段（第 26-30 篇）我们打通了机器人硬件全链路篇主题核心收获26嵌入式点灯GPIO 本质，嵌入式开发流程27MicroROSMCU 直接成为 ROS2…
- [ROS2系列教程：控制硬件实战（电机驱动，原理）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-kong-zhi-ying-jian-shi-zhan-dian-ji.md): / real\_motor\_hw.cpp：真实电机硬件接口（串口/MicroROS 连接下位机）public:// 声明关节及其接口// 基类解析 URDF 的 <ros2\_control> 配置//…
- [ROS2系列教程：ROS2-Control与控制器（原理）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-ros2-control-yu-kong-zhi-qi-yuan-li.md): 官方控制器不够用时，可以写自定义控制器。
- [ROS2系列教程：MicroROS接入（原理+仿真）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-microros-jie-ru-yuan-li-fang-zhen.md): 本文详解ROS2 MicroROS接入原理与仿真实践，解决嵌入式设备与上位机通信的通用性难题。通过MicroROS架构（Client+Agent+传输层），实现MCU作为ROS2节点无缝接入系统…
- [ROS2系列教程：嵌入式开发从点灯开始（原理）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-qian-ru-shi-kai-fa-cong-dian-deng.md): 本文是 ROS2 系列教程的第 26 篇：嵌入式开发从点灯开始（原理）。第 25 篇我们完成了 Nav2 导航阶段（21-25）的全部内容，前面的教程全都是在仿真环境里运行：Gazebo…
- [ROS2系列教程：Nav2进阶实践（自定义算法、插件与行为树）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-nav2-jin-jie-shi-jian-zi-ding-yi.md): / 继承 nav2\_core::Controller，实现 5 个纯虚接口public:// 1. 配置：从参数获取配置// 2. 清理与激活// 3. 核心：计算速度指令（每 control…
- [ROS2系列教程：Nav2导航仿真实战（全局+局部规划）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-nav2-dao-hang-fang-zhen-shi-zhan.md): 本文是 ROS2 系列教程的第 24 篇：Nav2 导航仿真实战（全局+局部规划）。至此我们已有地图（第 21/22 篇）、有定位（第 23 篇），就差"自己走路"…
- [ROS2系列教程：AMCL定位与地图](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-amcl-ding-wei-yu-di-tu.md): 本文是 ROS2 系列教程的第 23 篇：AMCL 定位与地图。前两篇我们学会了建图——slam\_toolbox 和 Cartographer 都能产出地图…
- [ROS2系列教程：Cartographer建图进阶](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-cartographer-jian-tu-jin-jie.md): 本文是 ROS2 系列教程的第 22 篇：Cartographer 建图进阶。上一篇用 slam\_toolbox 建出了第一张地图，但它的回环能力在长廊、大场地、复杂环境里会吃力——累积误差难以消除…
- [ROS2系列教程：SLAM建图（slam_toolbox）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-slam-jian-tu-slam-toolbox.md): 本文是 ROS2 系列教程的第 21 篇：SLAM 建图（slam\_toolbox）。前 20 篇我们完成了建模仿真阶段——小车有模型、有物理、有传感器，但"它不知道自己在哪里…
- [ROS2系列教程：机器人模型导入仿真实战](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-ji-qi-ren-mo-xing-dao-ru-fang-zhen.md): 大型 ROS2 工程通常拆成两个功能包：分工原则：description 只管"机器人长什么样"，bringup 管"系统怎么跑"。导航、SLAM 等后续阶段都在 bringup 里加 launch…
- [ROS2系列教程：Gazebo插件（关节控制/IMU/激光雷达）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-gazebo-cha-jian-guan-jie-kong-zhi.md): 本文是 ROS2 系列教程的第 19 篇：Gazebo 插件（关节控制/IMU/激光雷达）。上一篇小车能在 Gazebo 里跑动了，但它还是个"瞎子"——没有传感器，不知道周围有什么…
- [ROS2系列教程：Gazebo仿真基础与世界搭建](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-gazebo-fang-zhen-ji-chu-yu-shi-jie.md): 内容是关于ROS2第18篇，Gazebo仿真基础与世界搭建。摘要需简洁概括核心内容。注意字数限制。</think>本文是ROS2系列第18篇，讲解Gazebo仿真基础与世界搭建…
- [ROS2系列教程：Xacro参数化建模](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-xacro-can-shu-hua-jian-mo.md): 回顾上一篇的差速小车，你实际感受到了：Xacro 是 URDF 的超集：一个合法的 Xacro 文件经过 命令展开后，得到的是标准 URDF。它新增的能力：ROS2 中 由同名包提供，启动时用…
- [ROS2系列教程：URDF机器人建模（link与joint）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-urdf-ji-qi-ren-jian-mo-link-yu-joint.md): URDF 是一种 XML 格式的机器人描述文件，用树状结构描述机器人的物理组成：刚体（link）和关节（joint）。它回答三个问题：URDF 是 ROS1 时代的产物，被 ROS2 完整继承…
- [ROS2系列教程：TF树与多坐标系管理（C++/Python）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-tf-shu-yu-duo-zuo-biao-xi-guan-li-c.md): 上一篇文章里，每条变换是"父 → 子"单向的。当你把所有变换按父子关系连起来，就得到一棵TF 树（TF Tree）map│odom│base\_link/…
- [ROS2系列教程：tf2坐标变换详解（C++/Python）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-tf2-zuo-biao-bian-huan-xiang-jie-c.md): 查询” = 给定两个坐标系，返回它们之间的变换。例如：激光雷达检测到前方 1 米的墙（在laser坐标系），要换算到map坐标系，就需要的变换。
- [ROS2系列教程：运动学基础（位姿与坐标变换）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-yun-dong-xue-ji-chu-wei-zi-yu-zuo.md): "，即从参考系出发依次施加 yaw → pitch → roll 的。
- [ROS2系列教程：常用工具详解（ros2 CLI、rqt、RViz、ros2 bag、tf2基础）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-chang-yong-gong-ju-xiang-jie-ros2.md): tf2是 ROS2 的坐标变换库：维护"坐标系树"，提供任意两个坐标系间的位姿变换。机器人上每个部件都有一个坐标系（base\_link、laser、camera、map），tf2 让"激光点坐标 →…
- [ROS2系列教程：launch文件与多节点启动（参数/条件/复用）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-launch-wen-jian-yu-duo-jie-dian-qi.md): 本篇文章系统掌握了 launch：最简多节点启动、参数传递（yaml/字典/launch 参数）、话题重映射、命名空间、条件控制、子 launch 包含、组与外部进程、事件处理器，以及调试技巧…
- [ROS2系列教程：Action动作通信（带反馈长任务）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-action-dong-zuo-tong-xin-dai-fan-kui.md): 动作接口用.action文件定义，三部分用---\# action/CountUntil.action —— 计数到目标值int32 target\_number \#…
- [ROS2系列教程：参数Parameter与QoS策略](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-can-shu-parameter-yu-qos-ce-l-e.md): 参数（Parameter）是节点的配置项：一个带类型的键值对，运行时可查询、可修改。参数让"代码与配置分离"——同样的节点，通过不同参数启动，就能适配不同机器人、不同环境。参数名（parameter…
- [ROS2系列教程：服务Service通信（下）同步异步与回调组](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-fu-wu-service-tong-xin-xia-tong-bu.md): 本篇文章把服务通信推向工程级：理解了同步/异步的底层机制（伪同步本质）、并发请求与多请求处理、回调组（互斥/可重入）与多线程执行器、超时与指数退避重试、服务与 QoS 的关系…
- [ROS2系列教程：服务Service通信（上）客户端与服务端](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-fu-wu-service-tong-xin-shang-ke-hu.md): 沿用第 4 篇的包，添加验证接口可用本篇文章完成了服务通信的完整入门：理解了 Request/Response 模型与适用场景，用 Python 和 C++ 分别实现了服务端、同步客户端、异步客户端…
- [ROS2系列教程：话题Topic通信（下）自定义消息与周期](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-hua-ti-topic-tong-xin-xia-zi-ding-yi.md): 定义 .msg/.srv 文件（接口包）→ colcon build 生成类型代码→ 发布者/订阅者 include/import 使用→ ros2 run 运行验证第 4 篇我们定义了（含…
- [ROS2系列教程：话题Topic通信（上）发布者与订阅者](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-hua-ti-topic-tong-xin-shang-fa-bu.md): 本篇文章完成了话题通信的入门：理解了 Publish/Subscribe 模型的三大解耦优势、DDS 去中心化发现机制，用 Python 与 C++ 分别实现了发布者/订阅者并验证了跨语言通信…
- [ROS2系列教程：package结构（CMake与Python两种包）](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-package-jie-gou-cmake-yu-python.md): ROS2 内置的std\_msgs覆盖常见场景，但你的业务数据（比如"机器人位姿 + 置信度 + 时间戳"）往往是组合结构。这时需要自定义消息类型——定义一个.msg文件，rosidl…
- [ROS2系列教程：工作空间与colcon构建](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-gong-zuo-kong-jian-yu-colcon-gou-jian.md): 本篇文章把 ROS2 从"脚本"提升到了"工程"：理解了工作空间四目录结构、package 的概念与两种构建类型（ament\_python / ament\_cmake），掌握了 colcon…
- [ROS2系列教程：认识节点与ROS图](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-ren-shi-jie-dian-yu-ros-tu.md): 在 ROS2 中，节点（Node）是一个负责执行特定任务的独立进程或进程内模块。一个机器人系统通常由几十个节点组成：有的节点负责读取激光雷达数据，有的负责做定位，有的负责规划路径，有的负责驱动电机…
- [ROS2系列教程：Humble环境搭建与Hello World](https://wsj-blog.pages.dev/posts/ros2-xi-lie-jiao-cheng-humble-huan-jing-da-jian-yu-hello.md): 本节我们完成了 ROS2 的入门：理解 ROS2 与 ROS1 的架构区别、DDS 与 QoS 的概念、搭建 Humble 开发环境的基本流程，并用 C++ 与 Python 两种语言写出了第一个…
