底盘电机驱动与运动控制:
多总线通信网络搭建: 构建以 CAN 总线为主干、UART 为辅的分布式通信架构。底盘电机驱动器、IMU 姿态传感器挂载于 CAN 总线(波特率 500kbps),激光雷达与深度相机通过 UART/USB 接入。编写 Modbus RTU 协议解析层,实现上位机(鲁班猫/ROS)与下位机(STM32)之间的指令下发与状态回传,通信周期 ≤ 5ms。
机械臂底层控制算法实现: 独立完成 4 自由度机械臂的运动学建模,推导 D-H 参数表并编写正逆运动学求解器(C 语言实现,单次运算 < 0.1ms)。设计梯形速度规划的轨迹插补算法,支持点到点(PTP)与直线(LIN)两种运动模式,关节角度跟踪误差 < 0.5°。开发了软限位保护与电流过载检测功能,防止机械臂碰撞墙体或过载损坏。
实时系统与任务调度: 基于 FreeRTOS 设计多任务软件架构,将电机控制(1kHz)、通信处理(200Hz)、安全监控(100Hz)划分为独立任务,合理分配优先级与堆栈空间,杜绝任务饿死与看门狗误触发。编写 Bootloader,支持通过 CAN 总线远程升级固件。
与 ROS 上层系统联调: 自定义 ROS serial 通信协议,将底层里程计、关节状态、IMU 数据打包上传至 ROS 端(10-50Hz),同时接收来自 MoveIt! 的关节轨迹指令并解析执行。联合调试中解决了因串口缓冲区溢出导致的机械臂抖动问题,最终实现上层规划与底层执行的稳定闭环。