【添加核心机械臂动力学】Model and Control a Manipulator Arm with Robotics and Simscape

news2024/11/16 13:50:18

机械臂动力学

为了设计控制器,机械臂动力学必须表示给定力矩输入的关节位置。这在机械臂动力学子系统中通过一个前向动力学块实现,该块将关节力矩转换为给定当前状态的关节加速度,然后通过两次积分得到完整的关节配置。积分器初始化为q0dq0,即初始关节位置和速度。

此外,夹爪控制子系统将关节控制力矩覆盖到夹爪执行器上,应用10牛顿的力来打开或关闭夹爪。
需要注意的是,第二个积分器是饱和的。

虽然设计良好的位置控制器下的机械臂通常不会达到关节极限,但由于夹爪动作的开环力的添加,需要关节极限以确保响应的现实性。对于更精确的模型,可以将关节饱和连接到速度以重置积分,但对于此模型,这一精度级别已足够。

夹爪传感器

该模型还添加了一个更详细的夹爪传感器,以检查夹爪是否确实打开或关闭。夹爪传感器从关节配置的最后两个值中提取数据(这些值对应于夹爪的位置),并在MATLAB函数块Gripper Logic中将其与closeGripper命令给出的预期夹爪位置进行比较。当夹爪关节的位置与closeGripper命令给定的期望状态相匹配时,Gripper Status返回1。当夹爪尚未达到这些状态时,Gripper Status返回0。这与早期简化模型中的夹爪模型行为相匹配。
在这里插入图片描述

用于控制机械臂夹爪(Gripper)的控制模块

该模块的主要功能是通过控制输入信号来修改施加在机械臂关节上的力矩,以实现夹爪的开合操作。
在这里插入图片描述
在这里插入图片描述

模块功能说明

  1. Controller Joint Torques and Forces (控制器关节力矩和力)

    • 输入端口 1:接收来自控制器的关节力矩和力,这些力矩和力是控制器根据机械臂的当前状态和期望状态计算出来的,主要用于驱动机械臂的每个关节。
    • 这些信号在后续的处理过程中可能会被修改,以便实现夹爪的开合操作。
  2. Demux 块 (tau_Demux)

    • 功能:Demux(Demultiplexer)块用于将输入的关节力矩信号解复用为多个独立的信号。在这个模型中,它将18个关节的力矩信号分解开,以便对每个关节的力矩单独处理。
    • 输出:分解后的信号将被送入各个加法器(Sum 块)进行进一步的处理。
  3. Sum 块 (加法器)

    • 功能:加法器用于将输入的关节力矩信号与可能的修正量进行相加或相减。在这个模型中,每个关节的力矩都经过一个加法器,其中部分关节力矩可能会根据夹爪的控制信号进行修改。
    • 夹爪控制信号(Gripper Close Command)用于确定是否需要对夹爪对应的关节力矩进行修正。
  4. Gripper Close Command (夹爪关闭命令)

    • 输入端口 2:接收一个控制信号,用于指示夹爪的状态。如果信号为1,表示需要关闭夹爪;如果信号为0,表示需要打开夹爪。
    • Double 块:将输入的控制信号转换为适当的数据类型,以便后续处理。
    • 乘法器 (Gain 块):将控制信号与固定值(如10)相乘,生成一个修正力矩,用于施加在夹爪的关节上。
    • 加法器:将修正后的力矩信号与原始力矩信号相加,以调整夹爪的动作。
  5. Modified Joint Torques and Forces (修改后的关节力矩和力)

    • 输出端口:将修改后的力矩信号输出,这些信号会用于实际驱动机械臂的各个关节,包括夹爪的动作。
    • 最终的力矩信号包括了控制器计算出的原始力矩,以及根据夹爪状态所做的修正

总结

这个模块的核心功能是通过接收控制器计算的关节力矩信号,并根据夹爪的控制命令对相关的关节力矩进行调整。具体来说,当夹爪需要关闭时,模块会在夹爪对应的关节力矩上叠加一个修正力矩,从而实现夹爪的动作。调整后的力矩信号最终输出,用于驱动机械臂完成包括夹爪操作在内的所有任务。

该模块名为 Manipulator Forward Dynamics,用于计算机械臂在给定关节力矩和状态下的关节加速度。这个模块在机器人动力学仿真中非常关键,因为它能够准确地模拟机械臂的运动。

Manipulator Forward Dynamics模块基于给定的关节力矩和机械臂的当前状态,计算出各个关节的加速度。

这个过程被称为前向动力学(Forward Dynamics),是机器人动力学的核心计算之一。

输入参数:

  • Config: 当前的关节位置配置。该输入是一个 Nx1 的向量,N 表示机械臂的非固定关节的数量。它包含了每个关节的当前位置(通常以弧度为单位)。
  • JointVel: 当前的关节速度。该输入也是一个 Nx1 的向量,表示每个关节的当前速度(通常以弧度/秒为单位)。
  • JointTorq: 施加在关节上的力矩。这个输入是一个 Nx1 的向量,包含了每个关节的当前力矩或力(根据关节类型不同)。
  • FExt: 外部作用力矩。这个输入是一个 6xM 的矩阵,M 是机械臂中刚体的数量。该矩阵用于表示外部作用在每个刚体上的力和力矩。

输出参数:

  • JointAccel: 输出的关节加速度。这是一个 Nx1 的向量,表示每个关节在给定力矩和状态下产生的加速度。

刚体树模型:

  • Rigid body tree: 该模块依赖于一个刚体树(rigidBodyTree)对象,这个对象描述了机械臂的结构,包括关节的连接方式、各个部件的质量、惯性等物理属性。该对象在 MATLAB 的工作区中定义并传递给模块。

模块在系统中的作用

  • 前向动力学计算:

    • 通过前向动力学计算,模块能够基于当前的关节位置和速度以及施加的力矩,求解出每个关节的加速度。这对于精确模拟机械臂在各种力和外力作用下的运动至关重要。
  • 仿真和控制:

    • 该模块输出的关节加速度可以用于进一步的仿真,或者用于更新机械臂在下一时刻的关节速度和位置。它是机械臂动态模型的核心部分,确保了仿真系统的精确性和物理一致性。

Gripper Sensor用于检测机械臂夹爪(Gripper)的状态,确定夹爪是否已经达到预期的开合位置。

1. Gripper Sensor 模块

  • 功能概述:

    • 该模块的主要功能是通过测量夹爪的实际位置,并将其与预期的目标位置进行比较,从而判断夹爪是否已经到达预期的状态。最终的输出是一个布尔值,表示夹爪是否到达目标位置。
  • 输入端口:

    1. U (18): 这个输入代表机械臂的关节位置,包含18个关节的位置信息。通过 Demux 分解后提取出夹爪相关的关节位置信息。
    2. 1/z: 表示一个状态保持器,用来存储上一个时间步的夹爪控制信号,通常用于检测状态变化。
  • 输出端口:

    • Gripper Status (夹爪状态): 表示夹爪是否已经达到目标位置。如果到达,输出 1,否则输出 0

2. Gripper Logic 模块

  • 功能概述:
    • Gripper Logic 模块接收夹爪的位置和控制信号,判断夹爪是否已到达目标状态(完全打开或关闭)。内部执行的逻辑由一个 MATLAB 函数实现。

3. MATLAB 函数 isGripperStateReached

  • 代码解释:

    function isReached = isGripperStateReached(gripperPos, closeGripper)
    
        isReached = false;
    
        % 定义关键值
        posTgtThreshold = 0.01; % 位置误差容许范围
        openValue = 0.025;      % 夹爪打开时的位置值
        closeValue = 0;         % 夹爪关闭时的位置值
        
        % 根据控制信号确定目标位置
        if closeGripper
            gripperTarget = closeValue;
        else
            gripperTarget = openValue;
        end
        
           % 计算左臂和右臂夹爪的误差
          diffWptsLeft = abs(gripperPos(1:2) - [gripperTarget; gripperTarget]);
          diffWptsRight = abs(gripperPos(3:4) - [gripperTarget; gripperTarget]);
      
          % 判断左臂和右臂夹爪是否都已到达目标位置
          posErrorStatusLeft = all(diffWptsLeft < posTgtThreshold);
          posErrorStatusRight = all(diffWptsRight < posTgtThreshold);
          
          if posErrorStatusLeft && posErrorStatusRight
              isReached = true;
          end
        
    end
    
  • 函数功能:

    • isReached: 返回值 isReached 是一个布尔变量,用于指示夹爪是否已经到达目标状态。如果到达,返回 true,否则返回 false

    • posTgtThreshold: 定义了一个误差容忍范围,表示夹爪位置与目标位置之间的允许偏差。在这个范围内,位置被认为是达到了目标位置。

    • openValue 和 closeValue: 分别表示夹爪在完全打开和完全关闭时的目标位置值。

    • gripperTarget: 根据 closeGripper 的输入值(表示是否需要关闭夹爪),确定当前的目标位置是 openValue 还是 closeValue

    • posErrorStatus: 计算当前夹爪位置与目标位置之间的差异,并判断该差异是否在容忍范围内。如果是,则认为夹爪已经到达目标位置。

Selector模块用于从输入信号向量中选择特定元素或一组元素进行输出。

该模块在 Simulink 模型中非常有用,特别是在处理多维数组或信号向量时,可以提取所需的部分进行后续处理。
在这里插入图片描述

模块的主要功能:

  1. 选择输入向量的特定元素

    • Selector 模块允许用户从输入的向量信号中选择特定的元素。你可以指定索引位置来提取单个元素或者一组连续的元素。
  2. 输入维度和索引选择

    • 输入维度: 该参数表示输入信号的维度。在此例中,输入端口大小为18,意味着输入信号是一个长度为18的向量。
    • 索引模式: “从1开始” 表示索引是基于 MATLAB 语言的索引系统,从1开始计数。
    • 索引选择: 通过选择索引,可以指定要提取的元素范围。
  3. 输出

    • 模块根据设定的索引选择,输出指定的信号分量。

在当前模型中的作用:

在当前模型中,Selector 模块被用于从机械臂的所有关节角度(18个分量)中提取出与夹爪(Gripper)相关的关节角度信息。这些角度信息将被送入后续的处理模块,用于判断夹爪的开合状态。

总结:

Selector 模块使得用户能够方便地从信号向量中提取出所需的部分,在信号处理和控制系统设计中非常实用。通过这种方式,可以只对关心的部分信号进行处理,从而提高系统的计算效率和处理的针对性。在本例中,它用于提取与夹爪操作相关的关节角度信息,供后续逻辑模块进行分析和决策。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自闭症托管托养机构:星贝育园的优势与使命

在当今社会&#xff0c;自闭症儿童作为一群需要特别关注和照顾的群体&#xff0c;其教育与康复问题日益受到社会各界的重视。自闭症托管托养机构作为这一领域的重要力量&#xff0c;承担着为自闭症儿童提供全方位、个性化支持的重任。星贝育园&#xff0c;作为一所全日寄宿制的…

使用libsvm时遇到MATLAB has encountered an internal problem and needs to close

最近在MATLAB中使用libsvm跑别人的程序&#xff0c;该程序在大部分数据集上可以正常运行&#xff0c;但在有一个数据集上运行时MATLAB会报“MATLAB has encountered an internal problem and needs to close”的错误&#xff1a; 凭直觉猜应该是数据集有啥问题&#xff0c;但又…

AI人的列表!《中国人工智能学会推荐国际学术会议和国际/国内期刊目录》正式发布

在全球科技迅猛发展的今天&#xff0c;人工智能&#xff08;AI&#xff09;已成为推动社会进步的关键力量。为了更好地指导AI领域的科研方向&#xff0c;加强学术交流&#xff0c;促进学术成果的创新与应用&#xff0c;中国人工智能学会&#xff08;CAAI&#xff09;在2024年8月…

数据分析案例-2024年裁员数据集可视化分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

XFTP软件的使用 ---- 远程上传、下载文件

本文假设你的电脑里面已经有XFTP软件。 一、简介 是一个基于 windows 平台的功能强大的SFTP、FTP文件传输软件。通过Xftp软件&#xff0c;windows 用户能安全地在UNIX/Linux 和 Windows PC 之间传输文件。 二、 使用方法【步骤】 打开软件&#xff0c;得到如下图界面。 首先我…

STL--unordered_set和unordered_map的模拟实现

1.unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好的查询是&#xff0c;进行很…

如何使用ssm实现基于java斗车交易系统设计与实现+vue

TOC ssm082基于java斗车交易系统设计与实现vue 系统概述 1.1 概述 随着社会的快速发展&#xff0c;计算机的影响是全面且深入的。人们的生活水平不断提高&#xff0c;日常生活中人们对斗车交易方面的要求也在不断提高&#xff0c;需要咨询的人数更是不断增加&#xff0c;使得…

OpenCV 图像处理基础算法介绍c++

VS2022配置OpenCV环境 关于OpenCV在VS2022上配置的教程可以参考&#xff1a;VS2022 配置OpenCV开发环境详细教程 图像处理 图像处理是一个广泛的领域&#xff0c;它涉及到对图像数据进行分析、修改和改进的各种技术。以下是一些基本的图像处理操作&#xff0c;这些操作通常可…

模型 蒂蒙斯创业过程

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。机会、团队、资源&#xff1a;创业成功的三角。 1 蒂蒙斯创业过程的应用 1.1 京东&#xff1a;蒂蒙斯模型下创业成功的典范 京东是中国知名的电子商务平台&#xff0c;其早期发展阶段充分体现了蒂蒙…

接口基础知识12:cookie、session和token

​课程大纲 ‌Cookie、Session和Token是Web应用中常用的身份验证和会话管理机制&#xff0c;各有特点&#xff0c;适用于不同的应用场景。 一、Cookie 1.1 什么是Cookie Cookie是存储在客户端浏览器中的小段数据&#xff0c;通常用于存储用户偏好设置或用于跟踪用户活动。 C…

51单片机——数码管控制

1、数码管介绍 LED数码管&#xff1a;数码管是一种简单、廉价的显示器&#xff0c;是由多个发光二极管封装在一起组成“8”字型的器件。 2、数码管驱动方式 单片机直接扫描&#xff1a;硬件设备简单&#xff0c;但会耗费大量的单片机CPU时间 专用驱动芯片&#xff1a;内部自…

8月24日笔记

ew的使用 EW&#xff08;EarthWorm&#xff09;是一套基于C语言开发的轻量级且功能强大的网络穿透工具&#xff0c;它支持Socks5代理、端口转发及端口映射等功能&#xff0c;能够在复杂的网络环境中实现高效稳定的网络穿透。这款全平台适用的工具&#xff08;包括Windows、Lin…

proc文件的写操作机制

“一切皆是文件”。 Linux的基本哲学之一。它是指linux系统中的所有一切都可以通过文件的方式访问、管理&#xff0c;即便不是文件&#xff0c;也以文件的形式来管理。例如硬件设备、进程、套接字等都抽象成文件&#xff0c;使用统一的用户接口&#xff0c;虽然文件类型各不相同…

ComfyUI IPAdapter plus的模型应该怎么装-免费版-2024.8.25

&#x1f386;背景 ipadapter相关的节点大家应该都不陌生&#xff0c;具体是做什么的就不详细介绍了&#xff0c;但是还是有很多新入门的朋友不太了解这个节点相关的这一堆模型到底应该怎么安装。这里就借着官方节点的介绍来大概讲下这个话题。 涉及到的节点源地址&#xff1…

大数据技术之Zookeeper安装 (2)

目录 下载地址 本地模式安装 1&#xff09;安装前准备 2&#xff09;配置修改 3&#xff09;操作 Zookeeper 配置参数解读 Zookeeper 集群操作 集群规划 解压安装 配置服务器编号 配置 zoo.cfg 文件 集群操作 Zookeeper 集群启动停止脚本 创建脚本 增加脚本执行权限 …

宠物毛发会携带病菌源吗?宠物店空气净化器使体验分享

近期&#xff0c;我接诊了一位肺结节患者&#xff0c;他的第一反应便是联想到家中的猫咪。这种担忧并非毫无根据&#xff0c;过敏体质的人群&#xff0c;无论是对毛发还是排泄物敏感&#xff0c;养宠物都会增加患结节的风险。即便不存在过敏问题&#xff0c;宠物毛发作为病菌的…

Transforms的学习以及地址问题

一、地址问题 在学习Dataset类的实战与Tensboard的学习中&#xff0c;有出现一些地址的问题&#xff1a; 1、相对地址 相对地址的使用&#xff1a; 使用于在从端口中&#xff0c;打开TensorBoard的页面。使用的就是相对地址&#xff1b;例如&#xff1a; tensorboard --log…

MySQL创建与删除表

一、创建表 1.1 使用DDL语句创建表 CREATE TABLE 表名(列名 类型,列名 类型......); character set&#xff1a;如不指定则为所在数据库字符集collate&#xff1a;如不指定则为所在数据库校对规则 查看表 show tables; 1.2 使用Navicat创建表 二、删除表 2.1 使用DDL语句删除…

chapter08-面向对象编程(继承)day08

目录 287-继承原理图 288-继承快速入门 289-继承使用细节1 290-继承使用细节2 291-继承使用细节3 292-继承使用细节4 293-继承使用细节5 294-继承本质详解&#xff08;重要&#xff09; 287-继承原理图 288-继承快速入门 289-继承使用细节1 子类继承了所有的属性和方法…

特拉维斯凯尔西花了5位数给女友泰勒斯威夫特买了一份令人惊讶的贺礼

说实话&#xff0c;我们已经记不清特拉维斯凯尔西今年为泰勒斯威夫特花了多少钱了。据报道&#xff0c;他花了近 10 万美元购买意大利服装和甜食&#xff0c;现在&#xff0c;据报道&#xff0c;他为斯威夫特购买鲜花花费了五位数。 消息人士告诉媒体&#xff0c;凯尔西从 Mil…