- ROS架构回顾
- 硬件驱动在ROS中的角色
- 驱动开发流程概览
- Ubuntu+ROS Noetic安装
- 工作空间创建、依赖包安装
- 串口与CAN工具链配置
- 节点(Node)与话题(Topic)机制
- 自定义消息(msg)定义
- Publisher与Subscriber实战
- 服务(Service)与动作(Action)机制
- 自定义服务(srv)与动作(action)定义
- Client与Server实战
- 硬件抽象层(HAL)概念
- 分层设计原则、接口定义规范
- 代码组织架构
- 串口协议基础
- Python/C++串口库选型
- 串口数据收发封装、超时与错误处理
- CAN协议基础
- SocketCAN接口使用
- CAN帧封装与解析、多设备管理
- I2C与SPI协议对比
- Linux内核驱动 vs 用户空间驱动
- 使用libgpiod与spidev
- GPIO控制基础
- PWM生成原理
- 使用sysfs与libgpiod、电机速度控制示例
- 增量式与绝对式编码器
- 脉冲计数与方向判断
- 速度与位置计算、ROS消息发布
- IMU原理与数据类型
- 加速度计/陀螺仪/磁力计校准
- AHRS姿态解算、ROS imu消息发布
- 激光雷达工作原理
- 点云数据格式
- 驱动封装与参数配置、使用rplidar_ros示例
- USB摄像头与CSI摄像头
- OpenCV图像采集
- ROS image_transport、相机标定基础
- 直流电机与步进电机驱动
- PID控制器原理
- 速度环与位置环实现、ROS控制接口
- 舵机控制原理
- PWM与串口舵机
- ROS动作服务器封装、多舵机同步控制
- 时间戳同步
- 坐标系变换(TF)
- 扩展卡尔曼滤波(EKF)基础、robot_localization包使用
- 参数服务器使用
- dynamic_reconfigure配置
- 运行时参数调整
- launch文件语法
- 参数传递、命名空间
- include与group使用
- gtest与pytest基础
- 硬件模拟器编写
- Mock对象使用、持续集成(CI)集成
- ROS2与ROS1架构对比
- 节点生命周期管理
- DDS通信机制、驱动迁移策略
- ROS2硬件接口(Hardware Interface)
- 组件(Component)编程
- 生命周期节点实战
- 实时操作系统(RTOS)基础
- Linux PREEMPT_RT内核
- 驱动延迟分析与优化、零拷贝技术
- 文档生成工具(Doxygen/Sphinx)
- API设计原则
- 版本管理、CHANGELOG编写
- ROS包结构规范
- CMakeLists.txt编写、package.xml配置
- bloom-release与debian打包
- 底盘运动学模型
- 电机与编码器驱动
- 里程计发布、ROS Navigation集成
- D-H参数与运动学
- 关节状态发布
- 轨迹跟随控制、MoveIt!集成
- 麦轮/全向轮运动学
- 独立轮速控制
- 里程计与TF发布、SLAM集成
- 常见问题复盘
- 社区资源推荐
- 进阶学习路径、开源项目贡献指南