Franky机器人控制库新增关节速度控制功能解析
概述
Franky是一个基于libfranka开发的机器人控制库,主要用于Franka Emika Panda机械臂的高层控制。近期,该项目在1.0.0版本中新增了对关节速度控制模式的支持,为机器人运动控制提供了更多灵活性。
关节速度控制的重要性
在机器人控制领域,速度控制模式是实现平滑运动、动态响应和实时调整的关键功能。与位置控制相比,速度控制更适合以下场景:
- 需要实时调整机器人运动速度的应用
- 力控交互任务中需要柔顺运动
- 动态环境下的自适应控制
Franky实现细节
在早期版本中,Franky仅支持关节位置控制和笛卡尔空间位置控制。虽然接口中已经预留了速度控制的相关定义,但实际功能尚未实现。用户尝试使用JointVelocityMotion类时会遇到构造函数未定义的错误。
最新发布的1.0.0版本通过以下方式实现了完整的关节速度控制:
- 提供了JointVelocityMotion类用于关节速度控制
- 支持连续设置多个速度目标点
- 包含动态调节因子(relative_dynamics_factor)用于平滑速度变化
- 提供了示例代码(velocity_control.py)展示使用方法
使用示例
以下是使用Franky进行关节速度控制的基本代码结构:
from franky import Robot, JointVelocityMotion, JointVelocities
# 初始化机器人连接
robot = Robot("172.16.0.2")
# 设置动态调节因子
robot.relative_dynamics_factor = 0.05
# 创建速度控制运动
velocity_motion = JointVelocityMotion([
JointVelocities([-0.03, 0.01, 0.03, -0.04, 0.01, 0.08, 0.07]),
JointVelocities([-0.03, 0.01, 0.03, -0.04, 0.01, 0.08, 0.07]),
JointVelocities([-0.03, 0.01, 0.03, -0.04, 0.01, 0.08, 0.07])
])
# 执行运动
robot.move(velocity_motion)
安装注意事项
新版本已更名为franky-control,用户可以通过以下方式安装:
pip install franky-control
对于Python 3.12及以上版本的用户,建议从源码安装以确保兼容性。
技术展望
随着1.0.0版本的发布,Franky不仅完善了关节速度控制功能,还同步实现了笛卡尔空间速度控制。这些增强功能为更复杂的机器人应用场景奠定了基础,如:
- 动态避障
- 人机协作
- 自适应装配
- 力控打磨
未来版本可能会进一步优化控制算法的实时性和稳定性,为研究者和开发者提供更强大的工具支持。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



