什么是 Flexiv RDK?
Flexiv RDK 是一个软件开发套件(SDK),使用户能够创建自己的 C++ 或 Python 程序,以将 Flexiv 机器人与外部软件和硬件模块集成,例如附加传感器、工业控制系统、视觉和感知单元、数字 I/O 设备、其他软件库等。
复杂用户应用程序的示例工作流程
复杂且高度定制的用户应用程序通常需要一个或多个机器人执行一系列不同的操作,并需要用户定义的状态机来管理这些操作。这个过程可以通过各种RDK API的组合来实现。
使用从一个或多个机器人的外部传感器、数字输入、机器人状态等来源获得的信息,可以创建检查条件以触发用户状态机中的转换,然后将机器人置于合适的模式并相应地发出命令。下面是一个示例工作流程:
在一个用户程序中,初始化两个RDK库实例,通过两个网卡分别与机器人A和B建立连接,并且两个机器人均已启用并可运行。
机器人A任务1:回家。这是机器人已经知道的单位技能(元操作),那么可以在这里使用 元操作执行模式( Mode::NRT_PRIMITIVE_EXECUTION ) 。当满足该任务的终止条件时,用户状态机命令机器人A停止并等待进一步的指令。
机器人B任务1:当机器人A停止时,以用户指定的刚度顺从地遵循用户定义的实时轨迹生成器的输出。末端执行器上安装有托盘,托盘内有一个带有AprilTag的立方体。对于此任务,最好使用 RT 笛卡尔运动力控制模式( Mode::RT_CARTESIAN_MOTION_FORCE )。因此,用户状态机将首先将机器人 B 设置为该模式,然后连续向其命令目标姿态。
机器人A任务2:假设机器人A上安装了摄像头,并且用户已经实现了一个AprilTag追踪器程序,该程序可以根据估计的标签姿态为RDK提供抓取姿态,当机器人A上的摄像头看到来自机器人B的带有AprilTag的立方体时,用户状态机命令机器人B停止,然后命令机器人A抓取该立方体。在这种情况下,可以使用
MoveL元操作命令机器人A平滑地移动到抓取姿态,然后使用flexiv::rdk::GripperAPI 中的方法控制夹爪完成抓取。机器人B任务2:...