Franka libfranka 介绍

news/2024/11/19 7:48:41/文章来源:https://www.cnblogs.com/ai-ldj/p/18291614

 

libfranka是 FCI 客户端的 C++ 实现。它处理与 Control 的网络通信,并提供接口以轻松实现以下功能:

  • 执行非实时命令来控制手并配置手臂参数。

  • 执行实时命令来运行您自己的 1 kHz 控制循环。

  • 读取机器人状态以 1 kHz 的频率获取传感器数据。

  • 访问模型库来计算所需的运动学和动态参数。

非实时命令

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

 

与 Hand 最相关的是

  • homing它校准了手的最大抓握宽度。

  • movegraspstop、用手移动或抓握。

  • readOnce,读取手部状态。

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

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

  • setCartesianImpedancesetJointImpedance设置内部笛卡尔阻抗和内部联合阻抗控制器的阻抗参数。

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

  • setK设置从末端执行器框架到刚度框架的变换EE_T_K 。

  • setLoad设置有效载荷的动态参数。

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

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

#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();

实时命令

实时命令基于 UDP,需要 1 kHz 的控制连接。实时接口有两种类型:

  • 运动生成器,定义机器人在关节或笛卡尔空间中的运动。

  • 控制器,定义要发送到机器人关节的扭矩。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741107.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Exchange被黑客利用做中继外发垃圾邮件问题分析

近期有用户反馈有大量非本域的邮件从自家服务器发出,还成功投递出来了,不过不用担心,到我们服务商这边被识破,全部拦截下来。 以下是用户自建服务器发出的垃圾邮件案例:以上信息只有ip是用户自建服务器的,发件人和邮件都非用户本人发送,可以看出域名都可以通过客户的服务…

vLLM与PagedAttention:全面概述

翻译自:https://medium.com/@abonia/vllm-and-pagedattention-a-comprehensive-overview-20046d8d0c61 简单、快速且经济的LLM服务vLLM是一个旨在提高大型语言模型(LLM)推理和服务效率与性能的库。由UC Berkeley开发,vLLM引入了PagedAttention,这是一种新颖的注意力算法,…

何时入场才是好时机

何时入场才是好时机 1.当一个股票进入明确的趋势状态后,他将自动的运作,前后一致的贯穿整个趋势过程的路线演变下去 2.当这轮运动开始的时候,开头几天你会注意到,伴随着价格的上涨,形成了非常巨大的成交量,随后将发生正常的回撤,在这个向下回落过程中,成交量远远小于前…

1.1 DevOps、CI、CD都是什么?

DevOps DevOps是Development和Operations的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。以期打破传统开发和运营之间的壁垒和鸿沟。DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员…

1.2 Jenkins简介

简单介绍 Jenkinsopen in new window前身是Hudson,Jenkins是一款开源 CI&CD 软件,基于Java开发,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。 Jenkins 项目产生两个发行线, 长期支持…

挂 CSDN,老问题了,现在开始盗我源码不管了

挂 CSDN,老问题了,现在开始盗我源码不管了,希望没有倒霉蛋来买,买了也别找我,我不维护这个项目了!挂壁链接:https://download.csdn.net/download/weixin_44087733/89352970 之前盗我文章,把我内置保护链接去掉,嵌广告事,我不挂你名不解决。好,挂出来好使了,我也没追…

grep: PCRE does not support \L, \l, \N{name}, \U, or \u

001、grep命令报错如下[root@PC1 test]# echo "你好世界" | grep -P [\u4e00-\u9fff]+ grep: PCRE does not support \L, \l, \N{name}, \U, or \u 002、解决方法(把U改为x;同时中间用中括号):[root@PC1 test]# echo "你好世界" | grep -P [\x{4e00}-…

2024春秋杯网络安全联赛夏季赛-PWN-Writeup

2024春秋杯网络安全联赛夏季赛-PWN-Writeup 只打了第一天,费了好大劲,终于三道都出了。Shuffled_Execution 保护全开,ida查看伪代码: int __fastcall main(int argc, const char **argv, const char **envp) {__int64 v3; // raxchar *s; // [rsp+28h] [rbp-18h]unsigned _…

如何从Salesforce技术人员成长为IT领导者?

从特定技术专家转型为掌控多个业务应用平台的IT领导者并不容易。只了解自己的技术栈,那其他技术是如何工作的?如果不了解它,如何让团队和组织取得成功?虽然看起来很困难,但掌握一种应用平台的技术专家其实已经有了成功的基础。本文主要分享Silvia的成功转型之路。 改变固有…

Firebird数据库修复

一、前期准备 断开数据库连接: 确保所有与Firebird数据库的连接都已断开,避免在修复过程中发生数据冲突或损坏。 备份数据库: 在进行任何修复操作之前,使用Firebird提供的gbak工具或其他备份工具对数据库进行完整备份。备份文件将在修复过程中起到关键作用,以防修复失败导…

InterBase数据库文件损坏的修复方法

InterBase数据库是一种中级数据库,它短小精悍免维护,可以满足百万记录级别的数据库应用,又有开放源码版本,个人认为是一种比较适合中小型数据库应用环境的数据库管理系统(DBMS)。Delphi内建了对InterBase数据库的支持,因此用Delphi编写以InterBase为后台数据库的软件很是…

TypeError: Failed to fetch dynamically imported module

发现运行npm run build 的结果里面,有一些名字特别长的js的名字 原因是因为有一些component,在某些页面我是直接import,某些页面是用defineAysnc 导入的,两种情况都有。 后来全部都改为defineAsync 引入。 重新build,就没有那些名字特别长的js了 这样问题就解决了。