littlebot
Published on 2025-04-12 / 3 Visits
0

【源码】基于Python和C++的Franka Emika Panda机械臂控制系统

项目简介

本项目借助Python和C++语言开发,用于控制Franka Emika Panda 7自由度机器人手臂。鉴于Franka机械臂自身限制,项目采用在“用户空间”进行重力补偿的方式,实现了对机械臂的有效控制,不过存在一定安全隐患。

项目的主要特性和功能

  1. 多模式控制:拥有物理模式和运动学模式两种控制方式,运动学模式控制器可处理机械臂肘部位置。
  2. 自由驱动与重力校准:支持自由驱动模式,能自动校准重力向量。
  3. 可视化控制:提供实用工具,可使用Klampt进行机械臂控制和可视化展示。
  4. 键盘控制:可通过键盘直接控制机械臂左右臂的移动和旋转。

安装使用步骤

安装要求

  1. 若使用ROS接口,需在ROS noetic上进行测试,按要求在~/catkin_ws下配置ROS项目。
  2. 安装Make和C++编译器,Makefile在Ubuntu 20.04的g++ 9.4.0上测试通过。

编译操作

  1. 运行make python,构建并安装Python扩展模块。
  2. 运行make freedrive,构建用于运行带重力校准自由驱动模式的独立二进制文件。
  3. 运行make clean,移除已构建的二进制文件和Python库(不影响已安装的Python模块)。

使用方法

  • 集成到Motion:可将franka_controller.FrankaControllerkinematic_controller.KinematicFrankaController作为Motion模块的控制器类使用。
  • 自由驱动:运行./bin/freedrive,并传入机器人的IP地址作为命令行参数。使用前务必检查自动校准结果,若校准的重力向量与预期不符,请勿驱动机器人。
  • 键盘驱动:运行ik_move_test.py,可传入left_limbright_limb参数以激活相应手臂;若不传入参数,则运行运动学模拟。操作按键映射如下: ``` Translation: w/s: +/- X a/d: +/- Y q/e: +/- Z

Rotation: j/l: left/right (+Z/-Z) i/k: up/down (-Y/+Y) o/u: twist cw / twist ccw (+X/-X) ```

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】