精通 ROS 2 机器人编程
概述
本书涵盖从基础到高级的完整 ROS 2 技术栈,针对最新 ROS 2 Jazzy 版本更新内容。包含无人机、自主导航、机械臂控制等核心模块,以及生成式 AI、强化学习等前沿技术集成。通过 Gazebo 仿真、真实机器人案例和 CI/CD 实践,帮助读者掌握机器人系统开发全流程。
基础知识要求
- 编程语言:具备 C++ 和 Python 编程概念的基础知识。
- 操作系统:熟悉 GNU/Linux,特别是 Ubuntu 环境。
- ROS 基础:了解 ROS 基本概念。
核心架构与通信
ROS 2 简介
- DDS 数据分发服务:解释数据分发服务在 ROS 2 通信机制中的作用,提升系统的可靠性和实时性。
- 节点与话题:深入探讨 ROS 2 的核心概念,如节点、话题、服务、动作等,以及它们之间的通信机制。
- 启动文件与参数:阐述启动文件的作用,以及如何编写和使用启动文件;介绍参数的设置和获取。
三维建模与仿真
- URDF 与 Xacro:统一机器人描述格式及其在机器人建模中的应用。
- Gazebo Sim:利用 Gazebo 等仿真工具,在真实环境中仿真机器人的行为。
- Isaac Sim:基于物理的仿真平台及其在机器人领域的应用。
导航、操作与控制
ros2_control 包
- 核心功能:统一机器人硬件控制接口,支持仿真与真实硬件无缝切换。
- 关键组件:Controller Manager、Hardware Interface、Controller。
- 动态管理控制器:
ros2 control load_controller <controller_name> # 加载控制器
ros2 control list_controllers # 查看控制器状态
BehaviorTree.CPP
- 核心概念:Action(执行动作)、Condition(条件判断)、Decorator(修饰逻辑)。
- 控制流:Sequence(顺序执行)、Fallback(失败回退)、Parallel(并行执行)。
- XML 定义示例:
<root main_tree_to_execute="MainTree">
<BehaviorTree>
<Sequence name="OpenDoorSequence">
<Condition/>


