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 中直接使用。
  • 反应系统:能够定义针对意外事件的实时反应,并使用非阻塞回调进行监控。
  • 全 API 访问:提供对 libfranka API 大部分功能的 Python 访问,包括夹持器控制和机器人状态读取。
  • 仿真支持:兼容 franky-sim,可在部署到实体硬件之前进行代码测试。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目