概要

外骨格ロボットはリハビリ、産業支援、軍事分野で広く応用されている。本プロジェクトは完全な足首外骨格制御システムを実装し、最近大規模なROS1→ROS2移行ハードウェアアーキテクチャ再設計を完了した。

v2.0 メジャーアップグレード:ROS1 Melodic (Ubuntu 18.04) から ROS2 Humble (Ubuntu 22.04) へ全面移行。CANアーキテクチャ書き直し、IMUプロトコル更新、制御機能大幅拡張。

アーキテクチャ

Ubuntu 22.04 + ROS2 Humble、colconビルドシステム。

C++ Python CANバス Modbus ROS2

can_ankle — 5モード適応歩行コントローラ

シンプルなトルク制御から完全な5モードステートマシン適応歩行コントローラへ進化:

1
STAND_MODE → TORQUE_MODE → PRE_TORQUE_MODE → TORQUE_DRIVE_MODE → VELOCITY_MODE → STAND_MODE

主要機能:

  • 適応歩速推定:立脚相時間から pace = -ln((t2-c1)/a1) / b1 でリアルタイム計算
  • PID自動調整:歩速に応じて5段階動的調整(Kp 20-60)
  • 勾配補助トルク:IMUクォータニオンから勾配推定 → assist_torque = 8/π * atan(slope/2)
  • フローティング補償:理論的/実際の遊脚時間差で動的調整
  • 2つの制御モード:Mode 1 — 余弦曲線+適応; Mode 2 — 固定0.18s/0.21s

CANバス — デュアルプロトコル

  • ハードウェア: CANalyst-II (USB 04d8:0053, 1 Mbps)
  • モーター: CANopen Node 83, SDO COB-ID 0x653
  • Layer 1: python-can + canalystii
  • Layer 2: C++埋め込みサブプロセス
ヘッダ FC 0x5A 0xA5
フレーム 可変 82バイト
ボーレート 921600 115200

7つのROS2 Topic: /imu, /euler_angles, /mag_pose_2d, /magnetic, /gps/fix, /system_speed, /NED_odometry

力覚センサー — Modbus RTU

ASCIIプロトコルからModbus RTUへ完全再設計。機能コード0x03、CRC16検証、20Hz。

安全機能

エンコーダ制限(±45°)、力過負荷(300N)、立位タイムアウト(>5s)、コマンドシーケンス検証。

ロボティクス 制御アルゴリズム ROS2