非实时命令

非实时命令是阻塞的、基于 TCP/IP 的,并且总是在任何实时控制循环之外执行。它们包含所有的夹爪命令和一些与臂 的配置相关的命令。

_images/fci-architecture-non-realtime.png

臂和夹爪的非实时命令。

与夹爪最相关的是

  • homing 校准夹爪的最大抓取宽度。

  • move, graspstop, 用夹爪移动或抓取。

  • readOnce,读取夹爪状态。

关于臂,一些有用的非实时命令是:

  • setCollisionBehavior 它设置接触和碰撞检测阈值。

  • setCartesianImpedancesetJointImpedance 为内部笛卡尔阻抗和内部关节阻抗控制器设置阻抗参数。

  • setEE 设置从名义末端执行器到末端执行器坐标系的变换 NE_T_EE。从法兰坐标系到末端执行器坐标系的变换 F_T_EE 被分为两个变换: F_T_NENE_T_EE。从法兰坐标系到名义末端执行器坐标系的变换 F_T_NE 只能通过管理员界面进行设置。

  • setK 设置从末端执行器坐标系到刚度坐标系的变换 EE_T_K

  • setLoad 设置负载的动力学参数。

  • automaticErrorRecovery 清除之前在机器人中发生的任何命令或控制异常。

对于完整且详尽的列表,请查看 Robot类Gripper类 的 API 文档 。

臂或夹爪上的所有操作(非实时或实时)分别通过 franka::Robotfranka::Gripper 对象执行 。创建对象时,将建立与臂/夹爪的连接:

#include <franka/robot.h>
#include <franka/gripper.h>
...
franka::Gripper gripper("<fci-ip>");
franka::Robot robot("<fci-ip>");

该地址可以作为主机名或 IP 地址传递。如果出现任何错误,无论是由于网络还是库版本冲突,franka::Exception 类型的异常都会被抛出。同时使用多个机器人时,只需创建多个具有适当 IP 地址的对象即可。

要运行特定命令,只需调用相应的方法,例如

gripper.homing();
robot.automaticErrorRecovery();