FACTR 重力补偿与实时反馈遥操-3.启动 FACTR Teleop准备

实现子类FACTRTeleop

在运行 FACTR 遥操作脚本之前,您必须创建基类的子类,该FACTRTeleop基类位于:

<repo_root>/src/factr_teleop/factr_teleop/factr_teleop.py

例如:

/home/robot/factr_ws/src/factr_teleop/factr_teleop/factr_teleop.py

Factr控制-1.png

Factr控制-2.png

这是什么FACTRTeleop

FACTRTeleop是实现 FACTR 低成本力反馈遥操作系统的核心基类,该系统用于跟随臂。它包含主导臂的完整控制回路,并提供以下支持:

ü 重力补偿

ü 零空间调节

ü 摩擦补偿

ü 力反馈

为什么要创建子类?

力反馈遥操作需要主臂和从臂之间的双向通信。由于不同系统的通信机制各不相同,用户需要通过子类化来实现这一通信层FACTRTeleopFranka

你的子类必须实现抽象方法,以实现诸如以下功能:

ü 从跟随器接收关节扭矩数据(用于力反馈)

ü 向关注者发布联合持仓目标

ü 发送和接收夹爪的力反馈信号(夹爪的具体实现方式由用户自行决定)

ü ...

这种设计可以轻松集成到您现有的通信管道或自定义框架中。

 

提供的示例:ZMQ 实现

我们提供一个子类示例:

<repo_root>/src/factr_teleop/factr_teleop/factr_teleop_franka_zmq.py

此实现FACTRTeleopFrankaZMQ演示了:

ü 如何使用ZMQ实现主从臂之间的通信

ü 使用 Dynamixel 伺服夹爪的夹爪力反馈示例

在创建适合您自身设置的子类时,可将此作为参考或起点。

 

注意:如果您创建了自定义子类,请确保将其添加entry_points到此包的相应部分setup.py。以下是提供的示例setup.py

entry_points={
    'console_scripts': [
        'factr_teleop_franka = factr_teleop.factr_teleop_franka_zmq:main',
        'factr_teleop_grav_comp_demo = factr_teleop.factr_teleop_grav_comp_demo:main',
    ],
},

创建 FACTR Teleop 配置 YAML 文件

每个主臂分支都需要自己的 YAML 配置文件FACTRTeleopFranka,该文件位于:

<repo_root>/src/factr_teleop/factr_teleop/configs

如:/home/robot/factr_ws/src/factr_teleop/factr_teleop/configs

Factr控制-3.png

我们在此提供一个示例配置文件:

<repo_root>/src/factr_teleop/factr_teleop/configs/franka_example.yaml

例如:

/home/robot/factr_ws/src/factr_teleop/factr_teleop/configs/franka_example.yaml

Factr控制-4.png

此文件包含初始化和运行 FACTR 远程操作系统所需的所有参数。以下是关键字段及其配置方法的详细说明。

dynamixel设置

ü dynamixel_port

请指定连接到主控臂的 U2D2 控制器的正确 USB 端口。您可以通过运行以下命令找到它:

ls /dev/serial/by-id/

选择与您的主臂对应的设备名称。

Factr控制-5.png

ü joint_signs

启动遥控操作后,部分从动臂关节的运动方向可能与主导臂相反。可通过更改每个关节的符号(1-1来纠正此问题。

如果引导臂完全按照组装说明进行组装(特别是伺服方向),则这些标志无需更改。

initialization设置

ü calibration_joint_pos

这是启动时主臂的关节配置,用于与从动臂进行校准。

当遥控节点启动时,脚本会根据 Franka 机械臂校准 Dynamixel 伺服电机,以确保主臂的关节位置读数与从动臂的关节位置读数一致。

重要提示:在启动程序之前,请将引导臂物理放置到指定的配置位置calibration_joint_pos

在所提供的配置中franka_example.yaml,此配置对应于下图:

Factr控制-6.png

1calibration_joint_posfranka_example.yaml

建议将 calibration_joint_pos 设置为一个稳定的静止位置,该位置不需要人托住引导臂(如图 2 所示)。这样可以更方便地启动程序。

Factr控制-7.png

2:静息状态

ü initial_match_joint_pos

这是引导臂必须手动移动到的关节位置,之后从动臂才能开始镜像运动。

该位置应与 Franka 从动臂的初始/当前关节位置相匹配。在提供的示例中,这也与图 1 所示的配置相对应。