项目背景

外骨骼机器人是近年来机器人领域的热门方向之一,在康复医疗、工业辅助和军事领域都有广泛的应用前景。本项目实现了一套完整的脚踝外骨骼机器人控制系统,基于 ROS Melodic 框架,集成了电机控制、传感器数据采集和实验分析等核心功能。

技术架构

整个系统运行在 Ubuntu 18.04 + ROS Melodic 环境下,由两个核心 ROS 包组成。

can_ankle — CAN 总线电机控制

这是脚踝关节电机控制的核心包,通过 CANopen 协议与电机驱动器通信。

主要特性:

  • 力矩模式:精确控制关节输出力矩,适用于康复训练场景
  • 速度模式:控制关节旋转速度,支持平滑调速
  • 位置模式:精确控制关节角度,适用于姿态控制
  • CANopen 协议栈:基于 libcontrolcan 库,实现标准 CANopen 设备配置
C++ CAN总线 ROS

FDILink Deta-10 是一款高性能 AHRS/INS 传感器,本驱动通过串口与之通信:

  • IMU 数据:三轴加速度、角速度、磁场强度
  • GPS 定位:经纬度、海拔、速度
  • 姿态角:欧拉角(Roll/Pitch/Yaw)
  • 里程计:融合 IMU+GPS 的位姿估计

发布的话题包括 /imu/data/gps/fix/euler_angles/magnetic_field/odometry 等。

Python IMU GPS融合

系统架构

1
2
3
4
5
6
7
8
9
10
11
12
13
┌─────────────────────────────────────┐
│ Ankle Exoskeleton │
├──────────────┬──────────────────────┤
│ can_ankle │ fdilink_ahrs │
│ (C++) │ (Python) │
├──────────────┼──────────────────────┤
│ CAN Bus │ Serial/UART │
│ Motor Ctrl │ AHRS/INS Driver │
└──────────────┴──────────────────────┘
↓ ROS Topic
┌─────────────────────────────────────┐
│ ROS Bag (实验数据记录) │
└─────────────────────────────────────┘

开发心得

这个项目让我深入理解了机器人控制系统的全貌——从底层的硬件通信到上层的 ROS 节点编排,每一个环节都需要精心设计。CAN 总线的实时性和可靠性、传感器融合的数学原理、ROS 的分布式架构,这些知识对我后续的项目产生了深远影响。