机器人控制系列教程之关节空间运动控制器搭建(1)

机器人位置控制类型

机器人位置控制分为两种类型:

  • 关节空间运动控制—在这种情况下,机器人的位置输入被指定为一组关节角度或位置的向量,这被称为机器人的关节配置,记作q。控制器跟踪一个参考配置,记作 q r e f q_{ref} qref,并返回实际的关节配置q。这也被称为配置空间控制。

  • 任务空间运动控制—位置被指定给控制器作为末端执行器的姿态。然后,控制器驱动机器人的关节配置到使末端执行器移动到指定姿态的值。这有时被称为操作空间控制。

下图展示了这两种运动控制类别中不同类型的输入/输出。

关节空间运动控制

关节空间运动模型描述了在闭环关节空间位置控制下机械手的运动,在关节空间运动模型对象和关节空间运动模型块中使用。机械手是典型的位置控制设备,要进行关节空间控制,需要指定关节配置向量 q q q,以跟踪参考配置 q r e f q_{ref} qref。为此,您可以对机器人关节进行闭环控制,并使用运动模型模拟机器人在此控制下的行为。

要使这种方法最接近实际系统的运动,就必须准确表示控制器和被控系统的动态。本节将主要介绍在闭环联合空间位置控制下的机器人行为建模方法:

  • 计算扭矩控制的系统—刚体动力学采用标准刚体机器人动力学建模,但对整体动力学进行了补偿,并定义了误差动力学。
  • PD 控制的系统—刚体动力学模型采用标准刚体机器人动力学,通过PD控制和重力补偿提供关节扭矩输入。该控制器不会对刚体整体运动的产生较大的补偿。
  • 独立关节运动的系统—每个关节独立建模为一个二阶闭环系统,是一个低保真度模型,忽略了机器人动力学,并假定为闭环系统响应。该模型可以被认为是在没有外力的情况下闭合环运动如何表现的最好情况,因为动力学被简化和直接定义。

状态量及误差表示

关节空间运动模型状态有:

  • q q q—机器人关节配置,作为关节位置的矢量。对于旋转副单位为: r a d rad rad,对于平移副单位为: m m m
  • q ˙ \dot q q˙—机器人关节速度矢量,对于旋转副单位为: r a d / s rad/s rad/s,对于平移副单位为: m / s m/s m/s
  • q ¨ \ddot q q¨—机器人关节加速度矢量,对于旋转副单位为: r a d / s 2 rad/{s^2} rad/s2,对于平移副单位为: m / s 2 m/{s^2} m/s2
    闭环系统的许多运动方程都是从定义机器人开环运动的标准刚体机器人动力学中推导出来的,动态误差表示为:
    q ~ = q − q r e f \tilde q = q - {q_{ref}} q~=qqref

计算扭矩控制的系统

当运动模型被定义为受计算扭矩控制的机器人时,运动模型使用标准刚体机器人动力学,但广义力输入由控制律提供,该控制律对刚体动力学进行补偿,并定义二阶误差动力学响应。

  • 输入: q r e f 、 q ˙ r e f 、 q ¨ r e f q_{ref}、\dot q_{ref}、\ddot q_{ref} qrefq˙refq¨ref分别为期望的关节配置、速度、加速度;还可使用ExteralForce函数自定义外力和扭矩。
  • 输出: q 、 q ˙ 、 q ¨ q、\dot q、\ddot q qq˙q¨分别为关节配置、速度、加速度,但Simulink的模块中只返回加速度,可使用积分单元模块来求解其他变量。

如上图所示,完整系统由标准刚体机器人动力学组成,具有通过广义力输入Q到动力学模型的闭环控制律:

  • M ( q ) M(q) M(q):为基于当前机器人构型的关节空间质量矩阵,使用massMatrix函数来计算该矩阵。
  • C ( q , q ˙ ) C(q,\dot q) C(q,q˙):为科里奥力,与关节速度一起形成速度积,可使用velocityProduct函数来计算。
  • G ( q ) G(q) G(q):为所有关节保持其位置所需的力矩和力,这是由于在给定的重力下作用在机器人上的重力和力。使用gravityTorque函数计算重力力矩。详细的讲解可见:
  • [ ω n 2 ] d i a g {[\omega _n^2]_{diag}} [ωn2]diag:N * N对角线,ω为自然频率,单位Hz。
  • [ 2 ζ ω n 2 ] d i a g {[2\zeta \omega _n^2]_{diag}} [2ζωn2]diag:N * N对角线矩阵,ζ为阻尼比,在jointSpaceMotionModel模块的DampingRatio属性中指定。

基于计算扭矩控制系统搭建实例

整体搭建完成之后的模型文件如下,各个模块说明如图所示。

相较于上一期推文()文件,此处动力学模型的输入做了如下修改,通过修改输入可实现输入关节角度、速度及加速度的控制。其余不做改变。

关节空间运动模型中即为MATLAB封装的控制器,该控制器可在模块属性页中Motion Type选择计算力矩控制、PD 控制、独立关节运动以及开环控制。本例程中选择计算力矩控制,通过不断的调整阻尼率和自然频率即可得到适配到较好的控制效果。

此处,控制器的输入定义了两个输入,其中一个为输出重复离散时间序列[0 1 -1.5 1 1.5 0],其控制效果对比图如下:

另一个输入为使用规划器,规划后的轨迹,具体设置如下:

其机器人的运动如下:
在这里插入图片描述

往期推荐

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2SK241 LTSpice模型及仿真

2SK241是东芝生产的一款NMOS,早已停产,但是在收音机圈子里还是有很多死忠粉,所以在淘宝上也是一堆打磨改标的假货。 言归正传,在矿坛上找到了2SK241的模型: .model M2SK241bottom NMOS(Level1 Rd1 Rs10 Rg50 Kp8mV…

《数据结构与算法基础 by王卓老师》学习笔记——类C语言有关操作补充

1.元素类型说明 2.数组定义 3.C语言的内存动态分配 4..C中的参数传递 5.传值方式 6.传地址方式 例子

CICD持续集成(Jenkins+Git+Gogs)

1.Jenkins Jenkins 是一个开源的、用于构建和自动化软件开发流程的持续集成和交付工具。它提供了一个可扩展的平台,用于构建、测试和部署软件项目。通过使用 Jenkins,开发团队可以实现持续集成和交付,自动化构建和测试过程,提高软…

C++Primer Plus 第十四章代码重用:14.4.7 成员模板

CPrimer Plus 第十四章代码重用 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:CPrimer Plus 第十四章代码重用:14.4.7 成员模板 提示:写完文章后,目录可以自动生成,如…

【算法训练记录——Day37】

Day37——贪心Ⅴ 1.leetcode_56合并区间 1.leetcode_56合并区间 思路:排序,如果重叠,更新right 为max(right, curVal), 不重叠就加入res,需要单独考虑最后一次,因为每次都是在下一次遍历开始时判断是否加入res,因此 当…

基于Java的广场舞团管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java技术,B/S架构 工具:MyEclipse,MySQL 系统展示 首页 社团活…

AI是如何与快充技术结合的?

针对AI技术在快充领域的运用,我们可以进一步深入探讨AI如何与快充技术结合,提升充电效率和用户体验。以下是一些具体的AI技术在快充领域的应用场景: 一、智能充电算法 学习充电模式:AI算法可以学习用户的充电习惯,比…

微服务中的Feign远程调用

Feign的个人理解 Feign在英文中是“装”的意思,但在微服务中他是远程调用的一种方式,我的理解是:他替代了RestTemplateNacos中的URL编码的方式,显得很高大上,所以很装:(声明式事务,只…

端口扫描攻击检测及防御方案

端口扫描数据一旦落入坏人之手,可能会成为更大规模恶意活动的一部分。因此,了解如何检测和防御端口扫描攻击至关重要。 端口扫描用于确定网络上的端口是否开放以接收来自其他设备的数据包,这有助于网络安全团队加强防御。但恶意行为者也可以…

AI Prompt 提示词编写公式

自 OpenAI 的 ChatGPT 横空出世至今,各种 AI 大模型百花齐放、百家争鸣。按照用途可以分为两类: 对话类:即通过文字、语音、图片或者视频输入来给模型下达指令,然后模型按照指令以文字的形式将回答输出给用户;生成类&…

Web缓存代理和CDN 内容分发网络

目录 1.WEB缓存代理 1.1 WEB缓存代理作用 1.2 常见WEB缓存代理 1.3 Nginx 配置 缓存代理 2. CDN内容分发网络 1.WEB缓存代理 1.1 WEB缓存代理作用 存储一些之前给访问过的,且可能要被再次访问的静态网页资源对象,使客户端可以直接从缓存代理服务器…

钡铼BL104智慧环保多个485采集转MQTT无线传输

PLC物联网关BL104是一款专为工业环境设计的先进协议转换网关,其集成了钡铼智能技术和环保多个485采集转MQTT无线传输功能,为工业控制系统提供了高效的数据采集、传输和管理解决方案。 技术规格与功能特点 PLC物联网关BL104采用钡铼智能技术&#xff0c…

OpenCV学习之cv2.imshow()函数

OpenCV学习之cv2.imshow()函数 一、简介 cv2.imshow 是 OpenCV 库中用于显示图像的基本函数之一。在图像处理和计算机视觉的过程中,使用该函数可以快速预览处理后的图像,便于调试和结果展示。 二、基本语法 cv2.imshow(WindowName, Imgmat)三、参数说…

队列的相关知识

目录 创建 初始化 销毁 头插 尾删 取出头 取出尾 数字个数 判空 队列的性质与特征 性质:一种先进先出的线性表 特征:FIFO(先进先出) 实现:用数组和链表的都可以 例子:在生产者消费者模型用到了…

工单管理系统:开启企业降本增效的快车道-亿发

在现代企业的运营过程中,提升效率和降低成本是企业永恒的主题。传统的物流和售后管理方式往往依赖线下沟通,不仅效率低下,还存在流程无痕迹的问题,难以追溯责任,影响企业的整体运营效率。针对这些痛点,工单…

怎么把amr格式转换为mp3格式?这6个mp3格式转换方法不容错过!

怎么把amr格式转换为mp3格式?AMR(自适应多速率)是一种音频编码格式,通常用于存储基于语音的文件,例如语音记录和VoIP应用,在3G移动设备上使用。它具有非常高的压缩比,导致声音质量较差。早期的安…

【LLM 评估】GLUE benchmark:NLU 的多任务 benchmark

论文:GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding ⭐⭐⭐⭐ arXiv:1804.07461, ICLR 2019 Site: https://gluebenchmark.com/ 文章目录 一、论文速读二、GLUE 任务列表2.1 CoLA(Corpus of Linguistic Accep…

pandas合并,拆分excel

目录 一:按照列进行拆分 二:将某几列的数据写入新excel 三:合并两个sheet数据到一个excel的一个sheet中 我们以商品销售明细为例,说明下excel的数据拆分和合并,我们的原始数据如下: 一:按照列进行拆分 现在我们需要统计下是否配送和支付方式为维度进行分组以后得数据…

【名企专访】|格行自有格行的骄傲,格行骄傲在哪?格行随身wifi火爆出圈的真实内幕!

最近刷视频在一个随身wifi的帖子下边看到,有个网友这样回复:“随身wifi行业真的该整治了,到处是跑路的,夸大宣传的,本来在线上买就是图个方便,现在搞得不敢买。本来利民的产品,被搞得乌烟瘴气&a…

【推荐】Prometheus+Grafana企业级监控预警实战

新鲜出炉!!!PrometheusGrafanaAlertmanager springboot 企业级监控预警实战课程,从0到1快速搭建企业监控预警平台,实现接口调用量统计,接口请求耗时统计…… 详情请戳 https://edu.csdn.net/course/detai…