当前位置: 首页 > news >正文

机械臂力控方法概述(一)

目录

1. MoveIt 适用范围

2. 力控制框架与 MoveIt 的区别

3. 力控方法

3.1 直接力控制 (Direct Force Control)

3.2 间接力控制 (Indirect Force Control)

3.2.1 柔顺控制 (Compliant Control)

3.2.2 阻抗控制 (Impedance Control)

3.2.3 导纳控制 (Admittance Control)

3.3 力/位混合控制 (Force/Position Hybrid Control)

4. 使用 ROS Control 框架:

5. 创建自定义控制器:

6. 集成力传感器与反馈回路:

7. 求解雅可比矩阵进行速度控制:


        在实际的机械臂力控任务中,一般不直接使用 MoveIt 来实现力控制。MoveIt 的主要功能集中在运动规划碰撞检测逆运动学求解路径优化等方面,而力控制通常涉及的是实时的力反馈力矩控制,这些功能不是 MoveIt 的主要强项。下面是更详细的解释:

1. MoveIt 适用范围

        MoveIt 适用于运动规划而非实时控制。MoveIt 的设计初衷是为机器人提供路径规划工具,帮助机器人规划出不与环境碰撞的可行路径,适用于自由运动或复杂环境中的路径计算。它的主要功能集中在:

  • 路径规划:基于环境信息和目标位置计算最优路径。
  • 碰撞检测:确保机械臂在规划路径时避免与环境中的物体发生碰撞。
  • 逆运动学:帮助找到末端执行器(如夹爪)在空间中的姿态对应的关节角度配置。

这些功能是离线或在线路径规划时非常重要的,但它们并不适用于实时的力/位置混合控制任务。

2. 力控制框架与 MoveIt 的区别

        机械臂的力控制(Force Control)要求能够根据传感器数据(例如力/扭矩传感器)的反馈,实时调整机械臂的运动或受力。这通常用于以下场景:

  • 接触控制:例如装配任务、打磨任务,机械臂需要在执行过程中与环境表面保持一定的力。
  • 柔顺控制:允许机械臂在特定方向上产生柔顺的运动,以避免对接触物体施加过大的力。

这种实时的力控制,需要高频率的控制回路,通常通过以下工具或方法实现:

  • 力/位置混合控制器:如 ros_controllers 中的 Cartesian Impedance Controller,或者基于力传感器的自定义控制器。
  • ROS 力矩控制包:例如 ros_control 提供的 force_torque_sensor_controller,用于结合力传感器的数据进行控制。
  • 力矩控制模式:很多机械臂控制器(如 KUKA、Universal Robots)提供了力矩控制模式,直接在硬件层面控制机械臂各关节的力矩输出。

3. 力控方法

3.1 直接力控制 (Direct Force Control)

        直接力控制旨在实时控制机器人末端执行器施加的力。通过使用力传感器实时监测施加的力,控制系统可以动态调整机器人的运动,以确保施加力与目标力相匹配。这种控制方式适用于需要精确施加力的应用,如自动化装配、打磨或焊接等。

3.2 间接力控制 (Indirect Force Control)

        间接力控制通过控制机器人的运动来间接实现对施加力的控制。这种方法通常依赖于机器人模型和动态响应,以调整关节或末端的运动来影响力的输出。间接力控制可以细分为几种主要方法:

3.2.1 柔顺控制 (Compliant Control)

        柔顺控制的目标是使机器人在与环境交互时具有一定的柔顺性。它允许机器人在一定范围内根据外部力进行适应,从而减少冲击或损伤。

        被动柔顺 (Passive Compliance)

被动柔顺通过机械设计(如弹簧、阻尼器等)实现,不需要控制系统的实时调整。机器人在受到外力时能够自然变形,以缓冲冲击或适应环境变化。

        主动柔顺 (Active Compliance)

        主动柔顺需要实时反馈和控制系统的参与。机器人根据力传感器的反馈动态调整运动,以确保施加的力在期望范围内,提供更高的适应能力。

3.2.2 阻抗控制 (Impedance Control)

        阻抗控制通过设置力与位移之间的动态关系来实现对力的控制。机器人能够根据外部力的变化调整其运动,表现出一定的“阻抗”,类似于弹簧的行为。

3.2.3 导纳控制 (Admittance Control)

        导纳控制与阻抗控制相对,主要关注在施加一定的力后,机器人如何反应以改变其运动状态。它允许机器人根据施加的力来调整其位移或速度,从而达到柔顺交互的效果。

3.3 力/位混合控制 (Force/Position Hybrid Control)

        力/位混合控制结合了位置控制和力控制的特性。在抛光或打磨过程中,机械臂需要精确控制末端执行器的位置以跟随工作表面,同时保持恒定的接触力。这种情况下,机器人通过力位控制可以实现目标,即在表面移动时保持适当的施加力,以确保均匀的表面处理效果。例如,打磨时,机械臂可以通过力传感器实时监测施加的力,并根据反馈调整移动速度,以保持恒定的打磨压力。

4. 使用 ROS Control 框架

ROS 提供了ros_control框架,该框架为机械臂的实时控制提供了接口。力控可以通过创建自定义控制器并使用此框架来实现:

  • Position Controller:控制机械臂的关节位置,适用于导纳控制。
  • Effort Controller:直接控制关节的力矩,适用于阻抗控制。
  • Velocity Controller:控制机械臂关节的速度,常用于结合导纳控制的实现。

5. 创建自定义控制器

在 ROS 中,通常需要根据具体的控制需求编写一个自定义控制器:

  • 使用 ROS Control 中的控制器框架,在控制器中订阅外部的传感器数据(例如,力传感器)。
  • 实现实时反馈逻辑:比如,当检测到力传感器的输出超出预设范围时,调整机械臂末端的速度或关节位置。

6. 集成力传感器与反馈回路

  • 力传感器的集成:机械臂末端通常安装力/力矩传感器,实时采集与外部环境的力反馈。
  • 数据处理:通过订阅力传感器的 ROS 话题,将采集到的力数据输入到自定义控制器中。
  • 反馈控制:根据力传感器数据,控制器实时调整机械臂的运动参数(位置、速度或力),以保持恒定的接触力。

7. 求解雅可比矩阵进行速度控制

在实现笛卡尔空间的末端速度控制时,通常需要求解雅可比矩阵,将末端的线速度和角速度转换为各关节的速度。此过程可以通过 ROS 中的 Orocos KDL 库实现:

  • 雅可比矩阵求解:Orocos KDL 库提供了直接的雅可比矩阵求解函数,用于笛卡尔空间与关节空间之间的转换。
  • 速度控制:通过求解雅可比矩阵,实时调整机械臂末端的速度,实现对外力的响应。

相关文章:

机械臂力控方法概述(一)

目录 1. MoveIt 适用范围 2. 力控制框架与 MoveIt 的区别 3. 力控方法 3.1 直接力控制 (Direct Force Control) 3.2 间接力控制 (Indirect Force Control) 3.2.1 柔顺控制 (Compliant Control) 3.2.2 阻抗控制 (Impedance Control) 3.2.3 导纳控制 (Admittance Control…...

1971. 寻找图中是否存在路径

有一个具有 n 个顶点的 双向 图,其中每个顶点标记从 0 到 n - 1(包含 0 和 n - 1)。图中的边用一个二维整数数组 edges 表示,其中 edges[i] [ui, vi] 表示顶点 ui 和顶点 vi 之间的双向边。 每个顶点对由 最多一条 边连接&#x…...

FLINK SQL语法(1)

DDL Flink SQL DDL(Data Definition Language)是Flink SQL中用于定义和管理数据结构和数据库对象的语法。以下是对Flink SQL DDL的详细解析: 一、创建数据库(CREATE DATABASE) 语法:CREATE DATABASE [IF…...

【Fargo】1:基于libuv的udp收发程序

开发UDP处理程序 我正在开发一个基于libuv的UDP发送/接收程序,区分发送端和接收端,设计自定义包数据结构,识别和处理丢包和乱序。 创建项目需求 用户正在要求一个使用libuv的C++程序,涉及UDP发送和接收,数据包包括序列号和时间戳,接收端需要检测丢包和乱序包。 撰写代…...

WebSocket介绍和入门案例

目录 一、WebSocket 详解1. 定义与特点:2. 工作原理:3. 应用场景: 二、入门案例 一、WebSocket 详解 1. 定义与特点: WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它允许客户端和服务器之间进行实时、双向的数据传…...

k8s集群版本升级

Kubernetes 集群版本升级是为了获得最新的功能、增强的安全性和性能改进。然而,升级过程需要谨慎进行,特别是在生产环境中。通常,Kubernetes 集群的版本升级应遵循逐步升级的策略,不建议直接跳过多个版本。 Kubernetes 版本升级的…...

XML 和 SimpleXML 简介

XML 和 SimpleXML 简介 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。它定义了一组规则,用于在文档中编码数据,以便人和机器都能理解。XML 的设计目标是既易于人类阅读,也易于机器解析。SimpleXML 是 PHP…...

MySQL 中 LIKE 语句的 `%` 和 `_` 以及 BLOB 和 TEXT 的详细解析和案例示范

1. LIKE 语句中的 % 和 _ 用法 1.1 % 通配符的用法 % 通配符代表零个或多个字符。它是 MySQL 中用于模糊匹配的强大工具之一,可以在任何字符的位置使用。 示例 1:查找以特定字符开头的记录 假设我们有一个电商订单系统的 orders 表,其中包…...

git clone卡在Receiving objects

git clone卡在Receiving objects 一直卡主 $ git clone gitxxx.git Cloning into xxx... remote: Enumerating objects: 75926, done. remote: Counting objects: 100% (18844/18844), done. remote: Compressing objects: 100% (6566/6566), done. Receiving objects: 60% (…...

vue+ant 弹窗可以拖动

通过自定义指令实现拖拽功能 在main.js里加入drag自定义指令 我自己测试时发现modal不管如何设置宽度,居中等,他的初始的left都为0,如果不设置好,容易出现点击后刚开始移动弹窗会偏移一段距离。 Vue.directive(drag, {bind(el)…...

(42)MATLAB中使用fftshift绘制以零为中心的功率谱

文章目录 前言一、MATLAB代码二、仿真结果画图 前言 在分析信号的频率分量时,将零频分量平移到频谱中心会很有帮助。本例给出绘制以零为中心的功率谱的方法。 一、MATLAB代码 代码如下: f 1; % 余弦波的振荡频率&#xf…...

Windows本地部署中文羊驼模型(Chinese-Alpaca-Pro-7B)(通俗易懂版)

最近由于项目原因需要部署大语言模型, 但碍于经济实力, 只能部署在笔记本电脑上部署量化模型, (电脑至少有16G运行内存),搜集了网上的相关部署资料仍然踩了不少坑,原因在于开源项目在不断更新,导致我们看了别人的教程仍…...

Web3的挑战与机遇:技术发展的现状分析

在Web3的世界中,去中心化和用户主权的理念正逐渐走向主流,推动了现有商业模式和技术生态系统的深刻变革。区块链技术及其核心应用之一——智能合约,正在促使这一转变的发生。智能合约的主要功能是通过自动化和预设协议执行,以减少…...

LangGraph - Hierarchical Agent Teams

本文翻译整理自 Hierarchical Agent Teams https://langchain-ai.github.io/langgraph/tutorials/multi_agent/hierarchical_agent_teams/ 文章目录 一、前言二、设置三、创建工具四、Helper Utilities五、定义代理 Team研究 Team文档写作Team 六、添加图层 一、前言 在前面的…...

2021-04-14 proteus中仿真时74HC245三态双向端口扩展输出

缘由proteus中仿真时74HC245输出时电平显示灰色(不确定电平状态)是为什么?-编程语言-CSDN问答 缘由C语言翻译单片机开关检测器-编程语言-CSDN问答 参考74ls245的工作原理及作用详解 - 电子发烧友网 参考74ls245_百度百科...

解决UNSPSC商品分类的层级不足的方法

《联合国标准产品和服务守则》(UNSPSC)是一个分层框架,旨在对产品和服务进行分类。其主要目标是通过提供统一的方法来对产品和服务进行分类,从而简化采购和供应链管理。 虽然 UNSPSC 有效地将产品分为各种商品类别,但…...

Pytest基于fixture的参数化及解决乱码问题

我们知道,Pytest是Python技术栈下进行自动化测试的主流测试框架。支持灵活的测试发现、执行策略,强大的Fixture夹具和丰富的插件支持。 除了通过pytest的parametrize标签进行参数化外,我们通过fixture的param参数也可以比较方便地实现参数化…...

使用excel.js(layui-excel)进行layui多级表头导出,根据单元格内容设置背景颜色,并将导出函数添加到toolbar

本段是菜狗子的碎碎念,解决办法请直接从第二段开始看。layui多级表头的导出,弄了两天才搞定,中途一度想放弃,还好坚持下来了。一开始用的是layui的toolbar里自带的那个导出,但是多级表头没有正常导出,单元格…...

Mysql 5.7 安装与卸载(非常详细)

一、环境介绍 操作系统:CentOS 7 MySQL:5.7 二、MySQL卸载 # 查看软件 rpm -qa|grep mysql # 卸载MySQL yum remove -y mysql mysql-libs mysql-common rm -rf /var/lib/mysql rm /etc/my.cnf 继续查看是否还有 MySQL 软件,有的话继续删…...

030 elasticsearch查询、聚合

文章目录 查询聚合查询RestHighLevelClientElasticsearchRestTemplat SpringData对ES客户端的封装:ElasticsearchRestTemplate SpringData对CRUD的封装:ElasticsearchRepository 原生ES客户端:RestHighLevelClient 查询 package com.xd.cube…...

为什么你的医疗3D体绘制在NVIDIA A100上仍掉帧?——解析CUDA流同步、纹理缓存对齐与HIP-Clang跨编译器ABI兼容性三大致命盲区

第一章:医疗3D体绘制性能瓶颈的临床级认知 在手术导航、放射治疗计划与介入影像诊断等临床场景中,3D体绘制(Volume Rendering)并非仅关乎视觉保真度,而是直接关联决策时效性与操作安全性。当CT或MRI体数据分辨率超过51…...

Pandas 操作指南(五):表格重塑与数据整合

在数据分析中,并不是所有表格一开始都具有合适的结构。有时,一张表虽然保存了所需数据,但其组织方式并不利于统计与比较;有时,信息分散在多张表中,需要先整合后分析。由此可见,分析不仅依赖于数…...

Comsol弱形式求解三维光子晶体能带:快速而精确的模拟方法探索光子晶体的局域化光学行为

Comsol弱形式求解三维光子晶体能带。深夜两点盯着屏幕上扭曲的能带曲线,突然意识到三维光子晶体的数值模拟就像在量子迷宫里玩俄罗斯方块——每个晶格参数都可能让整个能带结构瞬间崩塌。传统界面操作总让我感觉戴着镣铐跳舞,直到某天偶然翻到COMSOL的弱…...

Legacy-iOS-Kit:让旧款iOS设备重获新生的开源工具完整指南

Legacy-iOS-Kit:让旧款iOS设备重获新生的开源工具完整指南 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …...

收放系统变深声纳(VDS)

一、整体结构与典型 VDS 收放系统框图 从 Curtiss-Wright 的公开资料看,典型舰用 VDS 收放系统通常包括: 水动力稳定、声学透明的拖体(4.5–18英尺 / 1.37–5.49 m,钢制或复合材料,360 水平声窗) 拖体发射/回收机构(Body launch and recovery mechanism) 拖缆绞车(拖…...

【深度解析】二维半导体晶体管:突破摩尔定律的下一代集成电路核心

1. 二维半导体晶体管的崛起:摩尔定律的终结者? 当硅基芯片的制程工艺逼近1纳米物理极限时,整个集成电路行业都在寻找"后硅时代"的突破口。我第一次在实验室见到二硫化钼(MoS2)晶体管时,那片厚度不…...

微信小程序连接大模型:百川2-13B赋能智能客服小程序开发

微信小程序连接大模型:百川2-13B赋能智能客服小程序开发 最近在做一个宠物用品商城的小程序,老板提了个需求,想给用户加个24小时在线的智能客服,能回答一些关于宠物喂养、商品咨询的常见问题。一开始想用传统的规则问答&#xff…...

OpCore-Simplify:15分钟完成黑苹果自动化配置的终极指南

OpCore-Simplify:15分钟完成黑苹果自动化配置的终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而头疼吗&…...

PX4+Gazebo仿真:从键盘指令到无人机轨迹的Offboard控制实践

1. 环境搭建与基础配置 在开始PX4Gazebo仿真之前,我们需要先搭建好开发环境。我推荐使用Ubuntu 20.04 LTS系统,这是目前最稳定的ROS Noetic支持版本。记得第一次配置环境时,我花了整整一天时间解决各种依赖问题,现在把这些经验都总…...

生信小白必看:PASA注释结果提取gff和fasta文件的保姆级教程

生信新手实战指南:从PASA注释结果高效提取gff与fasta文件 刚接触基因组注释的研究者常会遇到这样的困境:费尽周折获得的PASA注释结果,却不知如何提取所需的gff和fasta文件。本文将手把手教你如何从原始数据中提取关键信息,并转化…...