- [代码模板](humble/codebook/README.md) - rclcpp - [节点](humble/codebook/rclcpp/nodes.md) - [参数](humble/codebook/rclcpp/parameters.md) - [tf2](humble/codebook/rclcpp/tf2.md) - [时间](humble/codebook/rclcpp/time.md) - [点云PCL](humble/codebook/rclcpp/pcl.md) - [解决方案](humble/codebook/rclcpp/workarounds.md) - rclpy - [节点](humble/codebook/rclpy/nodes.md) - [参数](humble/codebook/rclpy/parameters.md) - [tf2](humble/codebook/rclpy/tf2.md) - [时间](humble/codebook/rclpy/time.md) - 其他相关 - [CMake](humble/codebook/pages/cmake.md) - [Colcon](humble/codebook/pages/colcon.md) - [Launch](humble/codebook/pages/launch.md) - [网络通讯](humble/codebook/pages/networking.md) - [功能包](humble/codebook/pages/packages.md) - (一)​ROS2入门篇(更新中) - 第 1 章 ROS2介绍与安装 - [章节导读](humble/chapt1/章节导读.md) - 基础篇-Linux基础 - [1.Linux与Ubuntu系统介绍](humble/chapt1/basic/1.Linux与Ubuntu系统介绍.md) - [2.在虚拟机中安装Ubuntu](humble/chapt1/basic/2.在虚拟机中安装Ubuntu.md) - [3.玩转Ubuntu之常用指令](humble/chapt1/basic/3.玩转Ubuntu之常用指令.md) - [4.玩转Ubuntu之编程工具](humble/chapt1/basic/4.玩转Ubuntu之编程工具.md) - [5.玩转Ubuntu之常用软件](humble/chapt1/basic/5.玩转Ubuntu之常用软件.md) - 入门篇-ROS2介绍安装 - [1.ROS与ROS2对比](humble/chapt1/get_started/2.ROS与ROS2对比.md) - [2.ROS与ROS2对比](humble/chapt1/get_started/2.ROS与ROS2对比.md) - [3.动手安装ROS2](humble/chapt1/get_started/3.动手安装ROS2.md) - [4.ROS2初体验](humble/chapt1/get_started/4.ROS2初体验.md) - 进阶篇-架构与中间件 - [1.ROS2系统架构](humble/chapt1/advanced/1.ROS2系统架构.md) - [2.中间件DDS架构](humble/chapt1/advanced/2.中间件DDS架构.md) - 第 2 章 ROS2第一个节点 - [章节导读](humble/chapt2/章节导读.md) - 基础篇-编程基础 - [1.使用g++编译ROS2节点](humble/chapt2/basic/1.使用g++编译ROS2节点.md) - [2.使用make编译ROS2节点](humble/chapt2/basic/2.使用make编译ROS2节点.md) - [3.使用CMakeLists.txt编译ROS2节点](humble/chapt2/basic/3.使用CMakeLists.txt编译ROS2节点.md) - [4.CMake依赖查找流程](humble/chapt2/basic/4.CMake依赖查找流程.md) - [5.Python依赖查找流程](humble/chapt2/basic/5.Python依赖查找流程.md) - [6.Python工具之Setup](humble/chapt2/basic/6.Python工具之Setup.md) - 入门篇-动手使用ROS2 - [1.ROS2节点介绍](humble/chapt2/get_started/1.ROS2节点介绍.md) - [2.ROS2功能包与工作空间](humble/chapt2/get_started/2.ROS2功能包与工作空间.md) - [3.ROS2编译器之Colcon](humble/chapt2/get_started/3.ROS2编译器之Colcon.md) - [4.使用RCLCPP编写节点](humble/chapt2/get_started/4.使用RCLCPP编写节点.md) - [5.使用RCLPY编写节点](humble/chapt2/get_started/5.使用RCLPY编写节点.md) - 进阶篇-ROS2系统 - [1.面向对象编程思想](humble/chapt2/advanced/1.面向对象编程思想.md) - [2.使用面向对象方式编写ROS2节点](humble/chapt2/advanced/2.使用面向对象方式编写ROS2节点.md) - [3.Colcon使用进阶](humble/chapt2/advanced/3.Colcon使用进阶.md) - [4.ROS2节点发现与多机通信](humble/chapt2/advanced/4.ROS2节点发现与多机通信.md) - 第 3 章 ROS2节点通信之话题与服务 - [章节导读](humble/chapt3/章节导读.md) - 基础篇-中间件与面向对象基础 - 常见通信方式与原理 - 通信中间件之DDS与ZMQ - 多线程回调函数和锁 - 面向对象编程知多少 - 入门篇-话题与服务 - [1.ROS2话题入门](humble/chapt3/get_started/1.ROS2话题入门.md) - [2.话题之RCLCPP实现](humble/chapt3/get_started/2.话题之RCLCPP实现.md) - [3.话题之RCLPY实现](humble/chapt3/get_started/3.话题之RCLPY实现.md) - [4.ROS2服务入门](humble/chapt3/get_started/4.ROS2服务入门.md) - [5.服务之RCLCPP实现](humble/chapt3/get_started/5.服务之RCLCPP实现.md) - [6.服务之RCLPY实现](humble/chapt3/get_started/6.服务之RCLPY实现.md) - [7.ROS2接口介绍](humble/chapt3/get_started/7.ROS2接口介绍.md) - [8.自定义接口RCLCPP实战](humble/chapt3/get_started/8.自定义接口RCLCPP实战.md) - [9.自定义接口RCLPY实战](humble/chapt3/get_started/9.自定义接口RCLPY实战.md) - 进阶篇-中间件进阶 - 原始数据类型与包装类型 - 通信质量Qos配置指南 - 为什么ROS2选择DDS - DDS进阶之Fast-DDS环境搭建 - 使用DDS进行订阅发布 - 第 4 章 ROS2通信之参数与动作 - 章节导读 - 基础篇-控制概述 - 机器人控制概述 - 入门篇-参数与动作 - 参数(Param)介绍 - 参数之RCLCPP实现 - 参数之RCLPY实现 - 动作(Action)介绍 - 动作之RCLCPP实现 - 动作之RCLPY实现 - 自定义动作接口通信 - 通信机制对比总结 - 进阶篇-原理进阶 - 参数机制原理 - 动作通信原理 - ROS2如何兼容多家DDS - 高效的ROS2进程内通信 - 使用ZeroMQ进行订阅发布 - 第 5 章 ROS2常用工具 - 章节导读 - 基础篇-相关概念 - QT是什么 - 仿真引擎 - 常见配置文件格式 - 入门篇-常用工具 - 命令行工具-ROS2CLI - 启动管理工具-Launch - 数据录播工具-rosbag - 数据可视化工具-RVIZ - 常用调试小工具-RQT - 兼容仿真工具-Gazebo - 进阶篇-工具进阶 - RVIZ2插件开发指南 - RQT插件开发指南 - 兼容仿真工具-WeBots - 兼容仿真工具-Unity - (二)机器人学篇 - 第 6 章 运动学基础 - 章节导读 - 基础篇-数学基础 - 矩阵与矩阵运算 - MiniConda与Jupyter介绍安装 - 入门篇-机器人运动学 - 空间坐标描述 - 姿态的多种表示 - 齐次坐标变换 - 两轮差速运动学 - 机械臂运动学 - 进阶篇-运动学进阶 - 动力学基础-力与速度 - 第 7 章 ROS2运动学 - 章节导读 - 基础篇-常用工具 - MiniConda与Jupyter介绍安装 - 入门篇-机器人运动学 - TF2介绍 - 坐标变换发布监听Python实现 - 坐标变换发布监听C++实现 - 坐标变换可视化 - 进阶篇-时间机制 - ROS2时间机制 - (三)建模仿真篇 - 第 8 章 机器人建模 - 章节导读 - 基础篇-概念 - 常见机器人构型 - 常见建模软件及工具 - 入门篇-机器人建模 - URDF建模介绍 - RVIZ2可视化URDF模型 - 创建一个两轮差速模型 - 两轮差速可视化及关节控制 - 创建一个机械臂模型 - 机械臂可视化及关节控制 - 进阶篇-其他建模方式 - Xacro介绍 - 使用Xacro简化机器人模型 - RVIZ2可视化机器人模型原理 - SolidWorks导出URDF - 机械臂建模之DH参数 - 第 9 章 机器人仿真 - 章节导读 - 基础篇-概念 - 刚体及其动力学参数 - 入门篇-机器人仿真 - 仿真软件Gazebo介绍与安装 - 给两轮差速机器人添加物理参数 - 在Gazebo加载机器人模型 - Gazebo仿真插件之IMU - Gazebo仿真插件之激光雷达 - Gazebo仿真插件之两轮差速 - 进阶篇 - Gazebo仿真插件之超声波 - Gazebo仿真插件之深度相机 - (四)Nav2导航篇 - 第 10 章 SLAM建图 - 章节导读 - 基础篇-图像基础 - 图像常见格式及存储 - 栅格地图介绍 - 入门篇-SLAM建图 - SLAM前世今生 - Gazebo仿真环境搭建 - Carto介绍及安装 - 配置FishBot进行建图 - SLAM地图概述 - ROS2地图加载与编辑 - 进阶篇-Carto与地图处理 - 使用OPENCV加载地图 - 使用纯雷达定位建图 - Carto纯定位模式 - 第 11 章 Nav2导航仿真实战 - 章节导读 - 基础篇-基础知识 - 行为树是什么 - 入门篇-SLAM建图 - Nav2导航参数介绍 - Gazebo仿真环境搭建 - Carto介绍及安装 - 配置FishBot进行建图 - SLAM地图概述 - Nav2导航API - 进阶篇-Carto与地图处理 - 使用OPENCV加载地图 - 使用纯雷达定位建图 - Carto纯定位模式 - 第 12 章 Nav2进阶实践 - 章节导读 - 基础篇-路径搜索 - 搜索之A星算法 - 入门篇-自定义Nav2插件 - Nav2插件介绍 - 自定义规划器插件 - 自定义代价地图层 - 进阶篇-优化配置 - 使用Carto纯定位替换AMCL - (五)ROS2控制硬件篇 - 第 13 章 ROS2-Control - 章节导读 - 基础篇-传感器与执行器 - 硬件传感器 - 机器人执行器 - 入门篇-ROS2Control - ROS2Control是什么 - 控制器及CLI介绍 - 机械臂轨迹控制器配置 - 两轮差速控制器配置 - 进阶篇-架构原理 - ROS2Control架构剖析 - 提高ROS2-Control实时性 - 第 14 章 MicroROS - 章节导读 - 基础篇-微处理器 - MCU微处理器介绍 - RTOS系统介绍 - 入门篇-MicroROS - MicroROS介绍 - 进阶篇-原理解析 - MiCroROS架构原理 - 第 15 章 ROS2控制硬件实战 - 章节导读 - 基础篇-ESP32开发 - 舵机介绍及控制 - ESP32开发环境搭建 - ESP32第一行代码 - 入门篇-ROS2控制硬件实战 - ESP32配置MicroROS - ESP32实现订阅发布 - ESP32实现舵机控制 - 配置ROS2Control实现舵机控制 - 进阶篇-实战演练 - 通过ROS2控制灯的开关 - ROS2-ESP32多舵机驱动 - 做一个三自由度机械臂 - (六)实体机器人搭建篇 - 第 16 章 实体机器人硬件搭建 - 章节导读 - 基础篇-硬件基础篇 - 电机及电机驱动板 - IMU模块介绍 - 超声波传感器介绍 - 入门篇-实体机器人硬件搭建 - 硬件架构介绍 - 硬件选型 - 硬件搭建 - 进阶篇-进阶实战 - 使用CRC校验增加数据 - 第 17 章 嵌入式控制及通信开发 - 章节导读 - 基础篇-ESP32开发 - 电脑是如何控制硬件的 - PID理论介绍 - 入门篇-嵌入式控制及通信开发 - 使用ESP32驱动电机 - 使用ESP32读取编码器数据 - 使用ESP32读取IMU数据 - 通信设计(待定) - 上位机SDK开发 - 进阶篇-实战演练 - EKF融合里程计和IMU数据 - 第 18 章 上位机建图及导航 - 章节导读 - 基础篇-ESP32开发 - 入门篇-上位机建图及导航 - 真机建图导航指南 - 上位机驱动封装 - Carto真机建图 - Nav2真机导航及配置 - 进阶篇-实战演练 - 使用纯激光进行导航 - (七)Moveit2机械臂篇 - 第 19 章 Moveit2仿真 - 章节导读 - 基础篇-运动学 - 机械臂正逆运动学 - 入门篇-Moveit2仿真 - Moveit2框架介绍 - 通过URDF配置Moveit2 - 通过键盘控制机械臂运动 - Moveit2-API控制机械臂 - 给机械臂添加夹爪控制器 - 进阶篇-架构 - Moveit2架构剖析 - 第 20 章 Moveit2进阶 - 章节导读 - 基础篇-算法 - 路径搜索之RRT算法 - 路径平滑算法 - 入门篇-Moveit2进阶 - 自定义规划器 - 自定义运动学求解器 - 进阶篇-实战演练 - 暂定 - 第 21 章 Moveit2真机控制 - 章节导读 - 基础篇-动力学 - 三次/五次样条插值 - 入门篇-Moveit2真机控制 - 机械臂硬件架构 - 自制机械臂控制及ROS2Control配置 - 使用Moveit2控制真实机械臂 - 进阶篇-实战演练 - 使用真实机械臂完成抓取