项目概述

爬壁小车 v2.0 是一个差速驱动壁面爬行机器人控制系统,通过 CAN 总线和 RS485 双通信协议控制四台电机,实现壁面稳定爬行。系统集成 ROS2 指令控制和游戏手柄实时操控,配合 Qt5 上位机 GUI 工具进行电机调试。

这是一个完整的嵌入式机器人控制系统,从底层通信协议到上层控制算法全部自主实现。

核心技术

双协议电机控制

CAN总线 RS485

系统同时使用两种工业通信协议控制四台独立电机:

  • CAN 总线(COM4,921600 波特率):控制电机 1/2
  • RS485/Modbus(COM8,115200 波特率):控制电机 3/4,含 CRC16-Modbus 校验

ROS2 原生集成

ROS2 CmdVel

系统原生订阅 ROS2 的 /cmd_vel 话题,实时接收 geometry_msgs/Twist 消息:

  • 将线速度(m/s)和角速度(rad/s)解算为左右两侧电机转速
  • 20 Hz 控制环路频率
  • 基于 rclpy 框架实现

游戏手柄远程操控

Pygame 手柄控制

支持通过游戏手柄进行直观的机器人操控:

  • 方向键:四台电机同步前进/后退
  • 摇杆轴:左右两侧独立控制,实现差速转向

安全保护机制

安全保护
  • 受限加速度斜坡控制:防止电机速度突变
  • 500ms cmd_vel 超时自动停机:通信丢失时自动保护
  • 电流限幅 2A:防止电机过载

物理参数

系统已在实际硬件上标定验证:

参数
轮径 0.05 m
轮距 0.30 m
最高速度 5 rad/s
电流限幅 2A
加速度 10 rad/s²

技术栈

Python ROS2 Pygame CAN总线 RS485
  • 控制语言:Python 3
  • 框架:ROS2(rclpy
  • 手柄库:Pygame
  • 通信库pyserial
  • 上位机:Qt5 GUI(motor_tool.exe
  • 驱动器:ZE300 系列电机驱动器

项目意义

爬壁小车项目是我在机器人控制领域的一次重要实践,涵盖了从底层通信协议到上层控制算法的完整技术栈。通过这个项目,我深入理解了:

  • 工业通信协议(CAN、RS485/Modbus)的实际应用
  • ROS2 的节点通信和消息机制
  • 差速驱动运动学模型
  • 实时控制系统的安全保护设计

这个项目为我后续的脚踝外骨骼机器人项目奠定了坚实的基础。