TimSchneider42/franky

High-Level Control Library for Franka Robots with Python and C++ Support

解決的問題

控制 Franka 機器人通常需要 1 kHz 的嚴格即時編程,這在 Python 等非即時環境中很難實現。franky 透過提供一個在內部處理即時需求的控制介面,消除了這一障礙,使用戶無需 ROS 或複雜的即時設定即可控制機器人。

工作原理

該函式庫不要求低階指令,而是接受高階位置或速度目標。它使用 Ruckig 函式庫即時規劃時間最佳軌跡,同時遵守速度、加速度與加加速度(jerk)的限制。它還包含一個反應系統,透過動態更新運動指令來處理意外事件(如環境接觸),並允許透過搶佔運動來即時重新規劃軌跡。

適用對象

希望使用 Python 或 C++ 以更簡單的方式實現機器人控制,而無需承擔 ROS 開銷或低階即時編程複雜性的 Franka 機器人開發者與研究人員。

亮點

  • 多模態控制:支援笛卡兒座標與關節位置/速度控制,以及直接的扭矩與阻抗控制。
  • 無需 ROS:可以透過 pip 安裝並直接在 Python 中使用。
  • 反應系統:能夠定義針對意外事件的即時反應,並使用非阻塞回呼(callback)進行監控。
  • 全 API 存取:提供對 libfranka API 大部分功能的 Python 存取,包括夾爪控制與機器人狀態讀取。
  • 模擬支援:相容於 franky-sim,可在部署到實體硬體之前進行程式碼測試。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案