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


这是什么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

我们在此提供一个示例配置文件:
<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 远程操作系统所需的所有参数。以下是关键字段及其配置方法的详细说明。
dynamixel设置
ü dynamixel_port
请指定连接到主控臂的 U2D2 控制器的正确 USB 端口。您可以通过运行以下命令找到它:
ls /dev/serial/by-id/
选择与您的主臂对应的设备名称。

ü joint_signs
启动遥控操作后,部分从动臂关节的运动方向可能与主导臂相反。可通过更改每个关节的符号(1或-1)来纠正此问题。
如果引导臂完全按照组装说明进行组装(特别是伺服方向),则这些标志无需更改。
initialization设置
ü calibration_joint_pos
这是启动时主臂的关节配置,用于与从动臂进行校准。
当遥控节点启动时,脚本会根据 Franka 机械臂校准 Dynamixel 伺服电机,以确保主臂的关节位置读数与从动臂的关节位置读数一致。
重要提示:在启动程序之前,请将引导臂物理放置到指定的配置位置calibration_joint_pos。
在所提供的配置中franka_example.yaml,此配置对应于下图:

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

图 2:静息状态
ü initial_match_joint_pos
这是引导臂必须手动移动到的关节位置,之后从动臂才能开始镜像运动。
该位置应与 Franka 从动臂的初始/当前关节位置相匹配。在提供的示例中,这也与图 1 所示的配置相对应。
下一篇 >>