项目简介
本项目借助Python和C++语言开发,用于控制Franka Emika Panda 7自由度机器人手臂。鉴于Franka机械臂自身限制,项目采用在“用户空间”进行重力补偿的方式,实现了对机械臂的有效控制,不过存在一定安全隐患。
项目的主要特性和功能
- 多模式控制:拥有物理模式和运动学模式两种控制方式,运动学模式控制器可处理机械臂肘部位置。
- 自由驱动与重力校准:支持自由驱动模式,能自动校准重力向量。
- 可视化控制:提供实用工具,可使用Klampt进行机械臂控制和可视化展示。
- 键盘控制:可通过键盘直接控制机械臂左右臂的移动和旋转。
安装使用步骤
安装要求
- 若使用ROS接口,需在ROS noetic上进行测试,按要求在
~/catkin_ws
下配置ROS项目。 - 安装Make和C++编译器,Makefile在Ubuntu 20.04的g++ 9.4.0上测试通过。
编译操作
- 运行
make python
,构建并安装Python扩展模块。 - 运行
make freedrive
,构建用于运行带重力校准自由驱动模式的独立二进制文件。 - 运行
make clean
,移除已构建的二进制文件和Python库(不影响已安装的Python模块)。
使用方法
- 集成到Motion:可将
franka_controller.FrankaController
和kinematic_controller.KinematicFrankaController
作为Motion模块的控制器类使用。 - 自由驱动:运行
./bin/freedrive
,并传入机器人的IP地址作为命令行参数。使用前务必检查自动校准结果,若校准的重力向量与预期不符,请勿驱动机器人。 - 键盘驱动:运行
ik_move_test.py
,可传入left_limb
或right_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】