- [代码模板](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) - urdf - [xacro模板](humble/codebook/urdf/xacro.md) - [gazebo插件](humble/codebook/urdf/gazebo_plugins.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.ROS2前世今生](humble/chapt1/get_started/1.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) - 基础篇-中间件与面向对象基础 - [1.从底层理解通信](humble/chapt3/basic/1.从底层理解通信.md) - [2.通信中间件之ZMQ](humble/chapt3/basic/2.通信中间件之ZMQ.md) - [3.多线程回调函数和锁](humble/chapt3/basic/3.多线程回调函数和锁.md) - 入门篇-话题与服务 - [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) - 进阶篇-中间件进阶 - [1.原始数据类型与包装类型](humble/chapt3/advanced/1.原始数据类型与包装类型.md) - [2.通信质量Qos配置指南](humble/chapt3/advanced/2.通信质量Qos配置指南.md) - [3.DDS进阶之Fast-DDS环境搭建](humble/chapt3/advanced/3.DDS进阶之Fast-DDS环境搭建.md) - [4.使用DDS进行订阅发布](humble/chapt3/advanced/4.使用DDS进行订阅发布.md) - [5.ROS2消息序列化思考与实践](humble/chapt3/advanced/5.ROS2消息序列化思考与实践.md) - [6.执行器与回调组](humble/chapt3/advanced/6.执行器与回调组.md) - 第 4 章 ROS2通信之参数与动作 - [章节导读](humble/chapt4/章节导读.md) - 基础篇-控制概述 - [1.开环控制与闭环控制](humble/chapt4/basic/1.开环控制与闭环控制.md) - 入门篇-参数与动作 - [1.参数(Param)通信](humble/chapt4/get_started/1.参数(Param)通信.md) - [2.参数之RCLCPP实现](humble/chapt4/get_started/2.参数之RCLCPP实现.md) - [3.参数之RCLPY实现](humble/chapt4/get_started/3.参数之RCLPY实现.md) - [4.动作(Action)通信与自定义接口](humble/chapt4/get_started/4.动作(Action)通信与自定义接口.md) - [5.动作之CPP实现](humble/chapt4/get_started/5.动作之CPP实现.md) - [6.动作之RCLPY实现](humble/chapt4/get_started/6.动作之RCLPY实现.md) - [7.通信机制对比总结](humble/chapt4/get_started/7.通信机制对比总结.md) - 进阶篇-原理进阶 - [1.ROS参数通信原理](humble/chapt4/advanced/1.ROS参数通信原理.md) - [2.ROS2动作通信原理](humble/chapt4/advanced/2.ROS2动作通信原理.md) - [3.生命周期节点](humble/chapt4/advanced/3.生命周期节点.md) - [4.更快的共享内存通信](humble/chapt4/advanced/4.更快的共享内存通信.md) - 第 5 章 ROS2常用工具 - [章节导读](humble/chapt5/章节导读.md) - 基础篇-相关概念 - [1.始于颜值之QT](humble/chapt5/basic/1.始于颜值之QT.md) - [2.虚拟现实之仿真](humble/chapt5/basic/2.虚拟现实之仿真.md) - [3.机器人中常用配置文件](humble/chapt5/basic/3.机器人中常用配置文件.md) - 入门篇-常用工具 - [1.启动管理工具-Launch](humble/chapt5/get_started/1.启动管理工具-Launch.md) - [2.命令行工具-ROS2CLI](humble/chapt5/get_started/2.命令行工具-ROS2CLI.md) - [3.数据可视化工具-RVIZ](humble/chapt5/get_started/3.数据可视化工具-RVIZ.md) - [4.常用调试小工具-RQT](humble/chapt5/get_started/4.常用调试小工具-RQT.md) - [5.数据录播工具-rosbag](humble/chapt5/get_started/5.数据录播工具-rosbag.md) - [6.兼容仿真工具-Gazebo](humble/chapt5/get_started/6.兼容仿真工具-Gazebo.md) - 进阶篇-工具进阶 - 1.RVIZ2插件开发实践 - 2.RQT插件开发实践 - 3.兼容仿真工具WeBots - 4.兼容仿真工具UnityForROS2 - 5.ROS2内存管理工具 - (二)机器人学篇 - 第 6 章 运动学基础 - 章节导读 - 基础篇-数学基础 - [1.矩阵与矩阵运算](humble/chapt6/basic/1.矩阵与矩阵运算.md) - [2.MiniConda与Jupyter介绍安装](humble/chapt6/basic/2.MiniConda与Jupyter介绍安装.md) - [3.矩阵运算实战](humble/chapt6/basic/3.矩阵运算实战.md) - 入门篇-机器人运动学 - [1.空间坐标描述](humble/chapt6/get_started/1.空间坐标描述.md) - [2.空间坐标描述实战](humble/chapt6/get_started/2.空间坐标描述实战.md) - [3.姿态的多种表示](humble/chapt6/get_started/3.姿态的多种表示.md) - [4.姿态转换实战](humble/chapt6/get_started/4.姿态转换实战.md) - [5.齐次坐标变换](humble/chapt6/get_started/5.齐次坐标变换.md) - [6.齐次坐标变换实战](humble/chapt6/get_started/6.齐次坐标变换实战.md) - [7.机器人运行学介绍](humble/chapt6/get_started/7.机器人运行学介绍.md) - 进阶篇-运动学进阶 - 待定 - 第 7 章 ROS2运动学 - 章节导读 - 基础篇-常用工具 - 待定 - 入门篇-机器人运动学 - [1.TF2介绍](humble/chapt7/get_started/1.TF2介绍.md) - [2.学会使用RVIZ2-TF组件](humble/chapt7/get_started/2.学会使用RVIZ2-TF组件.md) - [3.坐标变换发布监听Python实现](humble/chapt7/get_started/3.坐标变换发布监听Python实现.md) - [4.坐标变换发布监听C++实现](humble/chapt7/get_started/4.坐标变换发布监听C++实现.md) - 进阶篇-TF时间机制 - 1.ROS2-TF时间机制 - (三)建模仿真篇 - 第 8 章 机器人建模 - [章节导读](humble/chapt8/章节导读.md) - 基础篇-概念 - 1.常见机器人构型 - 2.常见建模软件及工具 - 入门篇-机器人建模 - [1.URDF统一机器人建模语言](humble/chapt8/get_started/1.URDF统一机器人建模语言.md) - [2.RVIZ2可视化URDF模型](humble/chapt8/get_started/2.RVIZ2可视化URDF模型.md) - [3.创建一个两轮差速模型](humble/chapt8/get_started/3.创建一个两轮差速模型.md) - [4.通过JointStates控制RVIZ2关节](humble/chapt8/get_started/4.通过JointStates控制RVIZ2关节.md) - - 进阶篇-其他建模方式 - Xacro介绍 - 使用Xacro简化机器人模型 - RVIZ2可视化机器人模型原理 - SolidWorks导出URDF - 机械臂建模之DH参数 - 第 9 章 机器人仿真 - 章节导读 - 基础篇-概念 - 待定 - 入门篇-机器人仿真 - [1.机器人仿真介绍](humble/chapt9/get_started/1.机器人仿真介绍.md) - [2.给两轮差速机器人添加物理参数](humble/chapt9/get_started/2.给两轮差速机器人添加物理参数.md) - [3.在Gazebo加载机器人模型](humble/chapt9/get_started/3.在Gazebo加载机器人模型.md) - [4.Gazebo仿真插件之两轮差速](humble/chapt9/get_started/4.Gazebo仿真插件之两轮差速.md) - [5.Gazebo仿真插件之IMU](humble/chapt9/get_started/5.Gazebo仿真插件之IMU.md) - [6.Gazebo仿真插件之激光雷达](humble/chapt9/get_started/6.Gazebo仿真插件之激光雷达.md) - [7.Gazebo仿真环境搭建](humble/chapt9/get_started/7.Gazebo仿真环境搭建.md) - 进阶篇 - [1.Gazebo仿真插件之超声波](humble/chapt9/advanced/1.Gazebo仿真插件之超声波.md) - (四)Nav2导航篇 - 第 10 章 SLAM建图 - 章节导读 - 基础篇-图像基础 - [1.图像常见格式及存储](humble/chapt10/basic/1.图像常见格式及存储.md) - [2.栅格地图介绍](humble/chapt10/basic/2.栅格地图介绍.md) - 入门篇-SLAM建图 - [1.SLAM前世今生](humble/chapt10/get_started/1.SLAM前世今生.md) - [2.Carto介绍及安装](humble/chapt10/get_started/2.Carto介绍及安装.md) - [3.配置FishBot进行建图](humble/chapt10/get_started/3.配置FishBot进行建图.md) - 进阶篇-Carto与地图 - [1.ROS2地图加载与编辑](humble/chapt10/advanced/1.ROS2地图加载与编辑.md) - 第 11 章 Nav2导航仿真实战 - 章节导读 - 基础篇-基础知识 - 1.行为树是什么 - 入门篇-Nav2导航入门 - [1.Nav2导航框架介绍](humble/chapt11/get_started/1.Nav2导航框架介绍.md) - [2.为FishBot配置Nav2](humble/chapt11/get_started/2.为FishBot配置Nav2.md) - [3.使用FishBot进行自主导航](humble/chapt11/get_started/3.使用FishBot进行自主导航.md) - [4.使用Nav2导航API进行导航](humble/chapt11/get_started/4.使用Nav2导航API进行导航.md) - 进阶篇-Nav2框架 - [1.Nav2规划器](humble/chapt11/advanced/1.Nav2规划器.md) - 第 12 章 Nav2进阶实践 - 章节导读 - 基础篇-路径搜索 - 1.搜索之A星算法 - 入门篇-自定义Nav2插件 - [1.Nav2插件介绍](humble/chapt12/get_started/1.Nav2插件介绍.md) - [2.自定义规划器插件](humble/chapt12/get_started/2.自定义规划器插件.md) - [3.自定义代价地图层](humble/chapt12/get_started/3.自定义代价地图层.md) - 进阶篇-优化配置 - 暂定 - (五)ROS2控制硬件篇 - 第 13 章 嵌入式开发之从点灯开始 - [章节导读](humble/chapt13/章节导读.md) - 基础篇-嵌入式开发介绍与环境搭建 - [1.什么是单片机MCU](humble/chapt13/get_started/1.什么是单片机MCU.md) - [2.单片机开发平台](humble/chapt13/get_started/2.单片机开发平台.md) - [3.搭建PlateFormIO开发环境](humble/chapt13/get_started/3.搭建PlateFormIO开发环境.md) - [4.PIO工程结构&构建方式](humble/chapt13/get_started/4.PIO工程结构&构建方式.md) - [5.第一个HelloWord工程](humble/chapt13/get_started/5.第一个HelloWord工程.md) - [6.串口通信-接收实验](humble/chapt13/get_started/6.串口通信-接收实验.md) - 入门篇-从点灯开始学起 - [1.点灯基础-看懂LED驱动电路](humble/chapt13/basic/1.点灯基础-看懂LED驱动电路.md) - [2.完成点灯学会GPIO输出](humble/chapt13/basic/2.完成点灯GPIO控制.md) - [3.使用按键学会GPIO输入](humble/chapt13/basic/3.学会使用按键GPIO输入.md) - [4.电池电压测量-学会使用ADC](humble/chapt13/basic/4.电池电压测量-学会使用ADC.md) - 进阶篇-学会使用第三方库 - [1.学会安装第三方开源库](humble/chapt13/advance/1.学会安装第三方开源库.md) - [2.使用开源库驱动IMU](humble/chapt13/advance/2.使用开源库驱动IMU.md) - [3.学会面向对象编程-封装IMU驱动](humble/chapt13/advance/3.学会面向对象编程-封装IMU驱动.md) - [4.使用开源库驱动OLED](humble/chapt13/advance/4.使用开源库驱动OLED.md) - [5.通讯协议小课堂-I2C通信](humble/chapt13/advance/5.通讯协议小课堂-I2C通信) - [6.I2C通信实验-点亮OLED](humble/chapt13/advance/6.I2C通信实验-点亮OLED.md) - 第 14 章 接入ROS2-MicroROS - [章节导读](humble/chapt14/章节导读.md) - 基础篇-第一个MicroROS节点 - [1.MicroROS介绍与服务安装](humble/chapt14/basic/1.MicroROS介绍与服务安装.md) - [2.你的第一个MicroROS节点](humble/chapt14/basic/2.你的第一个MicroROS节点.md) - 入门篇-在嵌入式平台实现话题与服务通信 - [1.话题订阅-控制LED](humble/chapt14/get_started/1.话题订阅-控制LED.md) - [2.话题发布-上传电量信息](humble/chapt14/get_started/2.MicroROS-话题发布实现.md) - [3.服务实现-两数相加](humble/chapt14/get_started/3.MicroROS-服务通信服务端实现.md) - 进阶篇-MicoROS原理与使用进阶 - [1.控制OLED-自定义消息接口](humble/chapt14/advance/1.控制OLED-自定义消息接口.md) - [2.做个时钟-系统时间同步](humble/chapt14/advance/2.做个时钟-系统时间同步.md) - [3.无线通讯-了解传输原理](humble/chapt14/advance/3.无线通讯-了解传输原理.md) - [4.榨干性能-使用双核运行MicroROS](humble/chapt14/advance/4.榨干性能-使用双核运行MicroROS.md) - 第 15 章 ROS2硬件实战(自制简易雷达) - [章节导读](humble/chapt15/章节导读.md) - [1.简易雷达原理介绍](humble/chapt15/1.简易雷达原理介绍.md) - [2.使用超声波测量距离](humble/chapt15/2.测量距离学会超声波传感器.md) - [3.使用pwm控制舵机角度](humble/chapt15/3.控制舵机学会使用执行器.md) - [4.实现循环扫描测量](humble/chapt15/4.舵机+超声波循环扫描.md) - [5.ROS雷达消息合成与发布](humble/chapt15/5.可视化点云-雷达消息合成.md) - (六)FishBot移动机器人搭建(更新中) - 第 16 章 移动机器人控制系统搭建 - 章节导读 - 1.移动机器人底盘结构介绍 - 2.让电机转起来-使用开源库驱动电机 - 3.做个遥控车-订阅ROS2 Twist - 4.速度测量-学会使用编码器 - 5.控制电机速度-PID控制器实现 - 6.控制机器人速度-运动学逆解 - 7.里程计计算-运动学正解与积分 - 8.可视化里程计-发布Odometry - 第 17 章 FishBot建图与导航实现 - 章节导读 - FishBot建图实现 - 1.可视化雷达点云-学会驱动雷达 - 2.Cartographer安装与配置 - 3.使用雷达+里程计完成建图 - 4.使用纯雷达模式完成建图 - 5.导航地图编译与保存 - FishBot导航实现 - 1.Nav2介绍与安装 - 2.导航准备1-ROS标准REP105 - 3.导航准备2-发布里程计TF - 4.Nav2地图导入与配置 - 5.单点多点导航测试 - 第 18 章 移动机器人导航进阶 - 章节导读 - 1.使用API进行导航 - 2.自定义控制器介绍 - 3.纯追踪控制器介绍 - 4.纯追踪控制器代码实现 - 5.自定义代价地图导航 - 6.超声波数据发布 - (七)Moveit2机械臂篇 - 第 19 章 Moveit2仿真 - 章节导读 - 基础篇-运动学 - 机械臂正逆运动学 - 入门篇-Moveit2仿真 - Moveit2框架介绍 - 通过URDF配置Moveit2 - 通过键盘控制机械臂运动 - Moveit2-API控制机械臂 - 给机械臂添加夹爪控制器 - 进阶篇-架构 - Moveit2架构剖析 - 第 20 章 Moveit2进阶 - 章节导读 - 基础篇-算法 - 路径搜索之RRT算法 - 路径平滑算法 - 入门篇-Moveit2进阶 - 自定义规划器 - 自定义运动学求解器 - 进阶篇-实战演练 - 暂定 - 第 21 章 Moveit2真机控制 - 章节导读 - 基础篇-动力学 - 三次/五次样条插值 - 入门篇-Moveit2真机控制 - 机械臂硬件架构 - 自制机械臂控制及ROS2Control配置 - 使用Moveit2控制真实机械臂 - 进阶篇-实战演练 - 使用真实机械臂完成抓取