
MATLAB 机器人与控制系统应用
文章平均质量分 93
支持一下平台
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
kuan_li_lyg
有问题请在评论区讲,关注左下角公众号。
展开
-
MATLAB - 小车倒立摆的非线性模型预测控制(NMPC)
与线性 MPC 相似,非线性 MPC 在每个控制区间都要解决一个受约束的优化问题。不过,由于被控对象模型是非线性的,因此非线性 MPC 将最优控制问题转换为一个具有非线性成本函数和非线性约束的非线性优化问题。本例中使用的成本函数与线性 MPC 使用的标准成本函数相同,其中强制执行了输出参考跟踪和可控输入变量移动抑制。因此,请指定标准的 MPC 调整权重。小车位置限制在 -10 至 10 的范围内。力的范围在 -100 和 100 之间。原创 2025-04-18 06:30:00 · 1244 阅读 · 0 评论 -
MATLAB - 模型预测控制(MPC)使用 ADMM 求解器四分之一汽车悬架悬挂系统动力学控制
本例展示了如何为四分之一汽车悬架系统设计模型预测控制器 (MPC),采用乘法交替方向法 (ADMM) 求解器来控制主动悬架的动态。MPC 控制器利用预测模型来预测和减轻路面不规则性和负载偏移的影响,从而确保最佳的车辆稳定性和乘客舒适性。原创 2025-04-17 06:30:00 · 758 阅读 · 0 评论 -
MATLAB - 模型预测控制器(MPC)的稳定性和鲁棒性问题
您可以检查模型预测控制器设计是否存在潜在的稳定性和鲁棒性问题。具体操作如下您还可以使用审查功能对控制器设计进行编程评估。在这种情况下,通过/未通过的测试结果将以结构形式返回,测试报告将被抑制。下面的示例展示了如何通过命令行审查控制器设计并解决潜在的设计问题。原创 2025-04-16 06:30:00 · 925 阅读 · 0 评论 -
MATLAB - 模型预测控制(MPC)敏感性分析调整输入和输出权重
为被控对象创建一个状态空间模型。{1,1,2;'min');该模型为连续时间模型,有 3 个输入(假定为可控输入变量)、2 个输出(假定均可观测)和 8 个状态变量。本例说明如何编写灵敏度方法使用的用户自定义性能函数。在本例中,自定义函数 custom_performance_function.m 基于 PerformanceWeights 实现了标准 ISE 性能指数。显示函数。diff(u)];J=0;aux=du*Wdu;使用自定义函数计算性能指数。J3 =原创 2025-04-16 06:30:00 · 1014 阅读 · 0 评论 -
MATLAB & Simulink® - 智能分拣系统
以下各节概述了每个组件的工作原理,并链接到演示如何构建组件的示例或提供更多信息的其他资源。任务调度器是模型中的主要协调机制。它评估系统状态并决定下一步行动。任务调度器包含在状态流® 图中。打开任务调度器状态流程图,查看事件的逻辑流程。2.5 部署到模拟或硬件目标组件上目标由机器人平台(包括垃圾箱及其支架)、机器人和必要的传感器(如摄像头)组成。目标接受一条总线,该总线指示机器人如何移动,并返回实际实现的轨迹。该子系统包含特定于目标的接口层,如 ROS、RTDE 或类似协议。原创 2024-12-07 16:58:03 · 1248 阅读 · 0 评论 -
MATLAB 控制系统快速入门
通常,控制工程师会先对他们要控制的动态系统进行数学描述。要控制的系统就称为被控对象。本节使用直流电机作为一个被控对象的示例。本节将建立微分方程来描述带惯性负载的直流电机的机电属性。然后,说明如何使用 Control System Toolbox™ 函数基于这些方程构建线性模型。原创 2024-12-07 10:19:15 · 1283 阅读 · 0 评论 -
MATLAB —— 机械臂工作空间,可达性分析
manipulabilityIndex 函数支持三种指数类型,用于计算操纵器的可操纵性: 吉川(Yoshikawa)、逆条件(Inverse Condition)和浅田(Asada)。这些类型以不同的方式量化机器人操作的能力。原创 2024-11-29 19:21:23 · 1885 阅读 · 0 评论 -
MATLAB - ROS2 ros2genmsg 生成自定义消息(msg/srv...)
自定义信息是由你定义的信息。如果发送和接收的是受支持的消息类型,则无需使用自定义消息。要查看支持的消息类型列表,请在 MATLAB® 命令窗口中输入 ros2 msg list。有关支持的 ROS 2 消息的更多信息,请参阅使用基本 ROS 2 消息。如果您是第一次使用 ROS 2 自定义报文,请参阅 ROS 工具箱系统要求。ROS 2 自定义消息是在 ROS 2 软件包文件夹中指定的,其中包含一个名为 msg 的文件夹。msg 文件夹包含所有自定义消息类型定义。原创 2024-11-28 22:04:48 · 917 阅读 · 0 评论 -
MATLAB - 机器人机械臂设计轨迹规划器
该模型接受机器人指令总线和运动规划响应总线,前者表明轨迹规划任务的性质,后者包含生成的轨迹和一些相关的解决方案数据。总线结构如下。你可以选择建立一个完全不同的界面,但必须使用相同的总线进行通信。请注意,总线有许多字段,但只有少数字段是绝对必要的。原创 2024-10-09 07:32:00 · 1862 阅读 · 0 评论 -
MATLAB - 四旋翼机器人上的飞行机械臂路径规划
本示例展示了如何使用 “浮动 ”类型的刚体关节(rigidBodyJoint)和操纵器RRT 为浮动基座系统规划无碰撞的几何路径。浮动基座系统的基座带有一个 “浮动 ”关节,可以在空间自由平移和旋转,因此具有六个自由度。本示例以安装了机械臂的四旋翼无人机为例说明浮动基座系统。要使用固定基座的刚体树(rigidBodyTree)对象对浮动基座系统进行建模,必须将浮体定义为通过 “浮动 ”关节连接到固定基座的刚体对象。请注意,这种建模方式无法对浮动基座系统进行逆运动学建模。原创 2024-10-08 18:47:58 · 1118 阅读 · 0 评论 -
MATLAB - 浮动基座机器人的逆运动学
本例演示如何解决以浮动底座为模型的机器人的逆运动学问题。浮动底座机器人可以在空间中自由平移和旋转,具有六个自由度。浮动基座机器人的逆运动学问题适用于空间应用,即使用安装在浮动和致动基座上的机械臂在空间操纵物体,也适用于躯干和腿部可在空间自由移动的行走机器人。请注意,刚体树对象表示具有固定基体的刚体树。这意味着刚体树的基体在世界中具有固定的位置和方向。您可以在基体上附加一个 “浮动 ”类型的刚体关节,为具有浮动基体的机器人建模,以用于动态模拟等某些应用。原创 2024-10-08 17:19:10 · 2050 阅读 · 1 评论 -
MATLAB - 机械臂手眼标定(眼在手内) - 估计安装在机器人上的移动相机的姿态
执行手眼校准有助于操作配备末端执行器(简称 “手”)的机械臂,该末端执行器依赖于摄像头提供的视觉数据。一旦完成了眼在手外的校准,机械臂就能准确地移动到摄像头识别的特定像素位置。这种能力是执行精确拾放任务(如分类、堆垛和分拣)的基础,即使在摄像机的确切位置和方向未知的情况下也是如此。机器人-摄像机系统有两种构型:眼在手内和眼在手外。在眼在手内构型中,摄像头直接安装在机器人手臂的末端执行器上。相反,在眼在手的构型中,摄像头固定在一个静止的物体上,机器人手臂在其视野内。原创 2024-10-04 09:55:32 · 2598 阅读 · 0 评论 -
MATLAB - 机械臂手眼标定(眼在手外) - 估算固定相机相对于机器人基座的姿态
在拾取和放置任务中,例如垃圾桶拾取,通常会在环境中的固定位置安装摄像头,以便机器人操纵器检测工作区中的物体。基本感知管道使用该摄像头来估计目标物体相对于摄像头坐标系的姿态。然后将该姿态转换到机器人的基准坐标系,使机器人能够成功地用末端执行器拾取物体。要将物体的姿态转换到机器人基座坐标系,首先必须确定摄像机相对于机器人基座的姿态。本图显示了这种拾放构型以及所需的同质变换矩阵 TCameraToBase,它可将摄像机坐标系中的姿势变换到机器人底座坐标系中。原创 2024-10-04 09:40:48 · 2328 阅读 · 0 评论 -
MATLAB - 强化学习(Reinforcement Learning)
控制系统环境是表示动态系统的环境,其中的状态和观测通常属于无限(不可数)的数值向量空间。在这种环境中,状态转换规律是确定性的,通常是通过对所要建模的底层物理系统的动力学进行离散化推导出来的。请注意,在这些环境中,动作仍然可以属于有限集合。强化学习工具箱提供了多个预定义的控制系统环境对象,用于模拟双积分器或小车摆杆系统等动态系统。一般来说,每个预定义环境都有两个版本,一个是离散(有限)动作空间,另一个是连续(无限和不可数)动作空间。原创 2024-08-12 19:56:42 · 2416 阅读 · 0 评论 -
MATLAB - 遗传算法(GA)求解旅行商问题(TSP)
这个例子展示了如何使用遗传算法来最小化使用自定义数据类型的函数。对遗传算法进行了定制化处理以解决旅行商问题。默认情况下,遗传算法求解器解决基于 double 和二进制字符串数据类型的优化问题。用于创建、交叉和变异的函数假设总体是一个 double 类型的矩阵,如果是二进制字符串,则是合乎逻辑的。遗传算法求解器还可以处理涉及任意数据类型的优化问题。你可以使用任何你喜欢的数据结构。例如,可以使用 MATLAB® cell 数组指定自定义数据类型。为了将ga。原创 2024-05-01 18:39:20 · 3905 阅读 · 0 评论 -
MATLAB - 自定义惯性矩阵
惯性矩阵捕捉了物质围绕局部坐标系的空间分布,在此称为惯性分辨率坐标系。该坐标系在图中标为 I。它的坐标轴与本地参照系的坐标轴平行,与 R 坐标系端口相关联,并相应地标注为 R。惯性矩阵由惯性矩和惯性积组成。惯性矩占据矩阵的对角线位置,用于测量质量分布在惯性坐标系各轴上的分散度或扩散度。对某一轴线的扩散越大,该轴线对应的惯性矩就越大。惯性积占据对角线以外的位置,衡量质量分布相对于惯性坐标系平面的不对称程度。对某平面的不对称程度越大,与该平面内任何轴相关的惯性积就越大。下图说明了这些关系。原创 2024-04-27 15:50:21 · 1533 阅读 · 0 评论 -
MATLAB - 机器人动力学 - 质心(Center of Mass)
机器人配置向量,包含机器人模型中所有非固定关节的位置。您可以使用 homeConfiguration(机器人)、randomConfiguration(机器人)或指定自己的关节位置来生成配置。要使用矢量形式的配置,请将机器人的 DataFormat 属性设置为 "行 "或 "列"。要使用质量中心函数,请将数据格式属性设置为 "行 "或 "列"。将数据格式设置为 "行"。对于所有动力学计算,数据格式必须是 "行 "或 "列"。质量中心雅各布,以 3 乘 n 矩阵形式返回,其中 n 是机器人的速度自由度。原创 2024-04-26 20:19:55 · 1609 阅读 · 2 评论 -
MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数
模型预测控制器使用线性工厂、干扰和噪声模型来估计控制器状态并预测未来的工厂输出。控制器利用预测的设备输出,解决二次规划优化问题,以确定控制动作。有关模型预测控制器结构的更多信息,请参阅 MPC 预测模型。原创 2024-04-07 00:23:41 · 1430 阅读 · 0 评论 -
MATLAB - 用命令行设计 MPC 控制器
本示例使用《使用 MPC Designer 设计控制器》中描述的工厂模型。创建工厂的状态空间模型,并设置一些可选的模型属性,如输入、状态和输出变量的名称和单位。C = [0 1;1 0];需要注意的是,该模型是由非线性模型围绕工作点线性化而来。因此,线性模型输入和输出信号的值代表与非线性模型中工作点值的偏差。更多信息,请参阅使用 MATLAB 代码进行线性化。原创 2024-04-06 22:03:43 · 1156 阅读 · 0 评论 -
MATLAB R2024a 主要更新内容
系列文章目录前言一、主要更新计算机视觉工具箱 —— 为二维和三维视觉任务设计算法、标注数据并生成代码。 深度学习工具箱 —— 支持变换器等架构;导入并共同模拟 PyTorch 和 TensorFlow 模型。 仪器控制工具箱 —— 使用仪器资源管理器应用程序管理带有 IVI 和 VXIplug&play 驱动程序的设备,无需编写代码。 卫星通信工具箱 —— 建立场景模型,并对其进行可见性和通信链路分析。Major UpdatesComputer Vision To原创 2024-02-21 19:10:11 · 4964 阅读 · 0 评论 -
MATLAB - 双连杆机械臂逆运动学的推导及应用
将机器人的连杆长度、关节角度和末端执行器位置定义为符号变量。指定机器人连杆长度的数值。L1 = 1;L2 = 0.5;将末端执行器的 X 和 Y 坐标定义为关节角度的函数。将符号表达式转换为 MATLAB 函数。原创 2024-01-29 06:00:00 · 3110 阅读 · 0 评论 -
MATLAB - 仿真单摆的周期性摆动
本例演示如何使用 Symbolic Math Toolbox™ 模拟单摆的运动。推导摆的运动方程,然后对小角度进行分析求解,对任意角度进行数值求解。原创 2024-01-29 06:00:00 · 2515 阅读 · 0 评论 -
MATLAB - 控制小车上的倒立摆
小车 - 摆杆模型如图 1 所示,使用 Simscape™ Multibody™ 在 Simulink® 中建模。该系统通过对小车施加可变力进行控制。控制器需要在将小车移动到新位置或摆锤被推向前方(脉冲干扰)时保持摆锤直立。原创 2024-01-27 06:00:00 · 2013 阅读 · 0 评论 -
MATLAB - 激光雷达 - 相机联合标定(Lidar-Camera Calibration)
激光雷达传感器和相机通常在自动驾驶应用中结合使用,因为激光雷达传感器收集三维空间信息,而相机则以二维图像捕捉空间的外观和纹理。您可以融合来自这些传感器的数据来改进物体检测和分类。激光雷达-相机标定可以估算出一个变换矩阵,给出两个传感器之间的相对旋转和平移。在进行激光雷达-相机数据融合时,您可以使用该矩阵。本图说明了激光雷达和相机标定 (LCC) 过程的工作流程,我们使用棋盘格作为标定对象。我们从激光雷达和相机数据中提取棋盘角和平面,然后在它们的坐标系之间建立几何关系,进行标定。原创 2024-01-23 06:00:00 · 5809 阅读 · 0 评论 -
MATLAB - ROS 入门教程
下面的命令显示,node_1 向 /pose、/rosout 和 /tf 主题发布信息,订阅 /scan 主题并提供服务: /node_1/get_loggers 和 /node_1/set_logger_level。当使用主节点的 IP 地址调用 rosinit 时,它会尝试检测用于联系主节点的网络接口,并将其作为全局节点的 IP 地址。ROS 主节点的地址由 ROS_MASTER_URI 指定,全局节点的广告地址由 ROS_IP 或 ROS_HOSTNAME 指定。原创 2024-01-22 06:00:00 · 2156 阅读 · 0 评论 -
MATLAB - 机器人任务空间运动模型
任务空间运动模型描述了机械臂在闭环任务空间位置控制下的运动特性,用于任务空间运动模型对象和任务空间运动模型块。机器人机械手是典型的位置控制设备。要进行任务空间控制,需要在 SE(3) 中指定一个参考末端执行器姿态,然后模型会返回关节配置向量 q 及其状态导数。您可以对机器人关节进行闭环控制,并使用运动模型模拟机器人在此控制下的行为。要使这种方法最接近实际系统的运动,必须准确表示控制器和被控对象的动态。原创 2024-01-22 06:00:00 · 1473 阅读 · 0 评论 -
MATLAB - CAN 通信管理器(CAN Explorer)
CAN 通信管理器可用于采集和可视化 CAN 数据,对指定的信号和报文进行过滤。使用此 App,您可以:配置设备通道和采集属性。应用 CAN 数据库配置。预览数据。将数据导出到 MATLAB® 工作区将 App 设置导出为 MATLAB 脚本。原创 2024-01-22 06:00:00 · 2237 阅读 · 1 评论 -
OCS2 入门教程(六)- Double Integrator
双积分器示例是我们最简单的问题。它模拟了一个沿 x 方向移动的一维点质量。模型是线性的,成本函数是二次函数。目标点通过参考管理器模块设置为二次成本。原创 2024-01-21 06:00:00 · 2426 阅读 · 4 评论 -
MATLAB - 使用 RRT 进行挖掘机运动规划
本例演示了如何使用运动规划器在包含障碍物的环境中为挖掘机规划路径。在此示例中,您将以运动树的简化形式为挖掘机建模,然后使用基于采样的运动规划器确定挖掘机在存在障碍物的两个姿势之间的可行路径。在 Simscape™ 多体™ 模型中模拟结果。原创 2024-01-20 06:00:00 · 1497 阅读 · 2 评论 -
MATLAB - 比较 DDPG Agent 和 LQR 控制器
本示例展示了如何训练深度确定性策略梯度(DDPG)Agent,以控制 MATLAB® 中建模的二阶线性动态系统。该示例还将 DDPG Agent 与 LQR 控制器进行了比较。有关 DDPG 代理的更多信息,请参阅深度确定性策略梯度 (DDPG) 代理。有关如何在 Simulink® 中训练 DDPG agent 的示例,请参阅训练 DDPG agent 向上摆动并平衡摆锤。原创 2024-01-19 06:00:00 · 1323 阅读 · 0 评论 -
MATLAB - 移动机器人运动学方程
机器人状态用三元素向量表示: [x y θ]。对于给定的机器人状态x: 以米为单位的全局车辆 x 位置y: 全局车辆的 y 位置,以米为单位θ: 全局车辆航向,单位为弧度ψ: 车辆转向角,单位为弧度v: 车辆速度,单位为米/秒ω: 车辆角速度,单位为弧度/秒运动学方程中的其他变量包括r: 车轮半径,单位米: 车轮速度(弧度/秒d: 轨道宽度(米l: 轮距(米ψ: 车辆转向角,单位为弧度。原创 2024-01-18 06:00:00 · 2090 阅读 · 0 评论 -
MATLAB - 机翼摇摆过程中飞机的模型参考自适应控制
打开翼摇控制系统的 Simulink 模型,配置为使用外部生成的自定义不确定性模型特征向量。如果您知道干扰和不确定性模型的结构,就可以使用该选项。在本例中,特征模块生成的特征向量与外部干扰模块中使用的特征向量相匹配。仿真模型。sim(mdl);查看由此产生的控制器性能。控制器可对参考指令的变化做出更平滑的二阶响应。将使用自定义特征向量估计的干扰与真实干扰进行比较。不出所料,使用基于扰动行为先验知识的自定义特征向量可以生成更准确的真实扰动模型。原创 2024-01-18 06:00:00 · 1161 阅读 · 0 评论 -
MATLAB - 加载预定义的机器人模型
要快速访问常见的机器人模型,可使用 loadrobot 功能,该功能可加载市售的机器人模型,如 Universal Robots™ UR10 cobot、Boston Dynamics™ Atlas 人形机器人和 KINOVA™ Gen 3 机械手。探索如何生成关节配置并与机器人模型交互。要导入自己的通用机器人描述格式(URDF),请参阅 importrobot 功能。以字符串形式向 loadrobot 函数指定机器人模型类型。利用制表符完成从提供的模型列表中选择输入。原创 2024-01-17 06:00:00 · 1473 阅读 · 0 评论 -
MATLAB - 选择机械臂路径规划、轨迹规划方式
本示例概述了机器人系统工具箱™中可用的轨迹类型。在机械手运动、规划和控制应用中,必须为机器人选择轨迹。本示例有三个主要部分。第一部分展示了机械手使用的轨迹类型,第二部分演示了生成轨迹的功能,最后一部分则展示了更多轨迹规划工具。原创 2024-01-17 06:00:00 · 7458 阅读 · 0 评论 -
MATLAB - 使用运动学 DH 参数构建机械臂
使用 Puma560® 机械手机器人的 Denavit-Hartenberg (DH) 参数,逐步建立刚体树形机器人模型。在连接每个关节时,指定其相对 DH 参数。可视化机器人坐标系,并与最终模型进行交互。DH 参数定义了每个刚体通过关节与其父体连接的几何形状。以矩阵形式指定 Puma560 机器人 [1] 的参数。创建一个刚体树对象为刚体对象创建一个单元数组,为关节对象创建另一个单元数组。使用 showdetails 或 show 函数验证机器人是否已正确构建。原创 2024-01-16 06:00:00 · 2440 阅读 · 0 评论 -
MATLAB - 使用 TOPP-RA 求解器生成带约束条件的时间最优轨迹
两条轨迹连接同一组航点,并受到一组速度和加速度限制。指定航点。不同的轨迹具有不同的几何和运动属性,这会影响它们在空间中的导航路径。为机械手路径选择轨迹示例说明了机器人系统工具箱™中提供的各种轨迹函数之间的一些差异。在本示例中,使用五次多项式轨迹连接航点。五次多项式通过使用平滑的速度和加速度曲线来连接线段。原创 2024-01-16 06:00:00 · 1666 阅读 · 0 评论 -
MATLAB - 计算机械臂关节扭矩以平衡末端力和力矩
产生力矩以平衡作用在平面机器人末端执行器体上的端点力。要使用各种方法计算关节力矩,请使用刚体树机器人模型的几何雅各比(geometricJacobian)和反动力学(inverseDynamics)对象函数。原创 2024-01-15 00:23:08 · 2776 阅读 · 0 评论 -
MATLAB - 机器人关节空间运动模型
关节空间运动控制- 在这种情况下,机器人的位置输入被指定为一个关节角度或位置向量,即机器人的关节配置 q。ref 这也被称为配置空间控制。任务空间运动控制- 将位置指定为控制器的末端执行器姿势。然后,控制器驱动机器人的关节配置值将末端执行器移动到指定位置。这有时被称为操作空间控制。下图显示了这两种运动控制中不同类型的输入/输出。本专题页专门讨论关节空间运动控制,如 jointSpaceMotionModel 对象和关节空间运动模型块中所使用。有关任务空间运动模型,请参阅任务空间运动模型对象。原创 2024-01-14 06:00:00 · 2089 阅读 · 1 评论 -
MATLAB - 四旋翼飞行器动力学方程
如图所示,四旋翼飞行器有六个自由度(三个线性坐标和三个角度坐标),四个控制输入。四旋翼飞行器的 12 个状态是其中表示线性位置。分别表示滚转角、俯仰角和偏航角。表示线速度和角速度,或线性位置和角度位置的时间导数。四旋翼飞行器的运动参数为代表四个旋翼的角速度平方。代表机身坐标系中转动惯量矩阵的对角元素。(k,l,m,b,g)代表升力常数、转子与质量中心的距离、四旋翼质量、阻力常数和重力。前四个参数是控制输入或控制四旋翼飞行器轨迹的操纵变量。其余参数固定为给定值。原创 2024-01-13 06:00:00 · 2087 阅读 · 0 评论 -
MATLAB - 利用非线性模型预测控制(Nonlinear MPC)来控制四旋翼飞行器
本示例展示了如何利用非线性模型预测控制(MPC)为四旋翼飞行器设计一个跟踪轨迹的控制器。原创 2024-01-12 16:30:12 · 3967 阅读 · 1 评论