kuan_li_lyg
有问题请在评论区留言
展开
-
MATLAB - 四旋翼机器人上的飞行机械臂路径规划
本示例展示了如何使用 “浮动 ”类型的刚体关节(rigidBodyJoint)和操纵器RRT 为浮动基座系统规划无碰撞的几何路径。浮动基座系统的基座带有一个 “浮动 ”关节,可以在空间自由平移和旋转,因此具有六个自由度。本示例以安装了机械臂的四旋翼无人机为例说明浮动基座系统。要使用固定基座的刚体树(rigidBodyTree)对象对浮动基座系统进行建模,必须将浮体定义为通过 “浮动 ”关节连接到固定基座的刚体对象。请注意,这种建模方式无法对浮动基座系统进行逆运动学建模。原创 2024-10-08 18:47:58 · 885 阅读 · 0 评论 -
MATLAB - 机械臂手眼标定(眼在手内) - 估计安装在机器人上的移动相机的姿态
执行手眼校准有助于操作配备末端执行器(简称 “手”)的机械臂,该末端执行器依赖于摄像头提供的视觉数据。一旦完成了眼在手外的校准,机械臂就能准确地移动到摄像头识别的特定像素位置。这种能力是执行精确拾放任务(如分类、堆垛和分拣)的基础,即使在摄像机的确切位置和方向未知的情况下也是如此。机器人-摄像机系统有两种构型:眼在手内和眼在手外。在眼在手内构型中,摄像头直接安装在机器人手臂的末端执行器上。相反,在眼在手的构型中,摄像头固定在一个静止的物体上,机器人手臂在其视野内。原创 2024-10-04 09:55:32 · 1677 阅读 · 0 评论 -
MATLAB - 机械臂手眼标定(眼在手外) - 估算固定相机相对于机器人基座的姿态
在拾取和放置任务中,例如垃圾桶拾取,通常会在环境中的固定位置安装摄像头,以便机器人操纵器检测工作区中的物体。基本感知管道使用该摄像头来估计目标物体相对于摄像头坐标系的姿态。然后将该姿态转换到机器人的基准坐标系,使机器人能够成功地用末端执行器拾取物体。要将物体的姿态转换到机器人基座坐标系,首先必须确定摄像机相对于机器人基座的姿态。本图显示了这种拾放构型以及所需的同质变换矩阵 TCameraToBase,它可将摄像机坐标系中的姿势变换到机器人底座坐标系中。原创 2024-10-04 09:40:48 · 1486 阅读 · 0 评论 -
MATLAB - 机器人机械臂设计轨迹规划器
该模型接受机器人指令总线和运动规划响应总线,前者表明轨迹规划任务的性质,后者包含生成的轨迹和一些相关的解决方案数据。总线结构如下。你可以选择建立一个完全不同的界面,但必须使用相同的总线进行通信。请注意,总线有许多字段,但只有少数字段是绝对必要的。原创 2024-10-09 07:32:00 · 1448 阅读 · 0 评论 -
MATLAB - 浮动基座机器人的逆运动学
本例演示如何解决以浮动底座为模型的机器人的逆运动学问题。浮动底座机器人可以在空间中自由平移和旋转,具有六个自由度。浮动基座机器人的逆运动学问题适用于空间应用,即使用安装在浮动和致动基座上的机械臂在空间操纵物体,也适用于躯干和腿部可在空间自由移动的行走机器人。请注意,刚体树对象表示具有固定基体的刚体树。这意味着刚体树的基体在世界中具有固定的位置和方向。您可以在基体上附加一个 “浮动 ”类型的刚体关节,为具有浮动基体的机器人建模,以用于动态模拟等某些应用。原创 2024-10-08 17:19:10 · 1680 阅读 · 1 评论 -
OCS2 入门教程(一)
OCS2 是专为切换系统优化控制(ptimalontrol forwitchedystems,OCS2)定制的 C++ 工具箱。该工具箱提供以下算法的高效实现:SLQ:连续时间域约束 DDPiLQR:离散时域约束 DDPSQP:基于 HPIPM 的多重打靶算法IPM: 基于非线性内点法的多重搜索算法SLP:基于 PIPG 的顺序线性规划算法OCS2 通过增强拉格朗日法(Augmented Lagrangian)或松弛障碍法(relaxed barrier methods)处理一般路径约束。原创 2023-12-17 15:20:37 · 5524 阅读 · 15 评论 -
OCS2 入门教程(二)
我们在此简要说明您为解决具体问题而应用 OCS2 所需的步骤。根据安装页面的描述,我们已经假定您已经成功安装了程序库。原创 2024-01-04 14:57:04 · 1906 阅读 · 0 评论 -
OCS2 入门教程(三)- 最优控制模块
在本页中,我们将为您提供如何定义 MPC 问题的一些提示。在 OCS2 中,OptimalControlProblem 结构定义了优化问题的主要组成部分,即动力学、成本和约束条件。除此之外,您可能还希望为 MPC 提供一些参考轨迹、预定义模式计划(用于切换系统)和其他外部信息,如模型参数的更新(如在自适应控制设置中)、环境地图(如用于避免碰撞的 SDF 地图)等。所有这些都可以借助参考管理器(ReferenceManager)和求解器同步模块(SolverSynchronizedModule)来实现。原创 2024-01-05 18:50:37 · 1854 阅读 · 0 评论 -
OCS2 入门教程(六)- Double Integrator
双积分器示例是我们最简单的问题。它模拟了一个沿 x 方向移动的一维点质量。模型是线性的,成本函数是二次函数。目标点通过参考管理器模块设置为二次成本。原创 2024-01-21 06:00:00 · 2047 阅读 · 4 评论 -
OCS2 入门教程(五)- 从 URDF 到 OCP、配置求解器、MPC - Net
阻碍 MPC 在机器人任务中广泛应用的主要挑战之一是设置最优控制问题的负担。OCS2 提供了多个辅助类,用于定义一些常用模型、成本和约束条件,以减轻这一问题。为此,OCS2 提供了多个第三方软件包接口,如 RobCoGen、CppADCodeGen、Pinocchio 和 HPP-FCL。我们在此重点介绍 Pinocchio 接口。本页讨论的所有软件包都可以在元软件包 ocs2_pinocchio 中找到。原创 2024-01-09 11:10:07 · 2338 阅读 · 1 评论 -
OCS2 入门教程(四)- 机器人示例
OCS2 包含多个机器人示例。我们在此简要讨论每个示例的主要特点。原创 2024-01-06 11:20:15 · 2677 阅读 · 0 评论 -
MatGPT - 访问 OpenAI™ ChatGPT API 的 MATLAB® 应用程序
MatGPT 是一款 MATLAB 应用程序,可让您轻松访问 OpenAI 的 ChatGPT API。使用该应用程序,您可以加载特定用例的提示列表,并轻松参与对话。如果您是 ChatGPT 和提示工程方面的新手,MatGPT 不失为一个学习的好方法。该应用只是 ChatGPT API 的一个接口。您应该熟悉与使用该技术相关的限制和风险,以及 OpenAI 的条款和政策。您需要承担 OpenAI 就使用其 API 所收取的任何费用。原创 2023-12-20 22:15:04 · 2836 阅读 · 0 评论 -
一级倒立摆控制 —— MPC 控制器设计及 MATLAB 实现
本例使用模型预测控制器 (MPC) 控制小车上的倒立摆。原创 2023-10-24 09:16:05 · 3422 阅读 · 2 评论 -
现代控制理论 —— MATLAB 矩阵的特征值
特征值原创 2023-08-11 14:54:31 · 780 阅读 · 1 评论 -
一级倒立摆控制 —— PID 控制器设计及 MATLAB 实现
在本页中,我们将为倒立摆系统设计一个 PID 控制器。在设计过程中,我们将假设一个单输入、单输出设备,其传递函数如下。除此以外,我们将尝试在不考虑小车位置的情况下控制摆的角度。原创 2023-10-17 10:19:36 · 13051 阅读 · 1 评论 -
MATLAB Mobile - 使用预训练网络对手机拍摄的图像进行分类
此示例说明如何使用深度学习对移动设备摄像头采集的图像进行分类。在您的移动设备上安装和设置 MATLAB® Mobile™。然后,从 MATLAB Mobile 的“设置”登录 MathWorks® Cloud。在您的设备上启动 MATLAB Mobile。原创 2023-12-22 21:49:32 · 1900 阅读 · 0 评论 -
现代控制理论(线性代数基础)MATLAB 矩阵与方程组
线性代数基础知识回顾原创 2023-08-09 22:41:53 · 599 阅读 · 1 评论 -
MATLAB - 模糊控制入门教程(Fuzzy Logic control)
虽然基于规则的系统在人工智能(AI)领域的应用由来已久,但这类系统缺少的是处理模糊结果和模糊前因的机制。在软计算的各种方法组合中,目前最引人注目的是模糊逻辑和神经计算的组合,从而产生了神经模糊系统。被誉为 "模糊逻辑之父 "的 Lotfi Zadeh 曾经说过: “几乎在所有情况下,不使用模糊逻辑也能制造出同样的产品,但模糊逻辑更快、更便宜”。模糊逻辑的基础就是人类交流的基础。神经网络会获取训练数据并生成不透明、难以捉摸的模型,与之形成鲜明对比的是,模糊逻辑可以让你依靠那些已经了解你的系统的人的经验。原创 2023-10-23 10:37:28 · 4525 阅读 · 0 评论 -
CasADi - 最优控制开源 Python/MATLAB 库
CasADi 是一款开源软件工具,用于数值优化,特别是最优控制(即涉及微分方程的优化)。该项目由 Joel Andersson 和 Joris Gillis 在鲁汶工程大学工程优化中心 (OPTEC) 在读博士生在 Moritz Diehl 的指导下发起。本文档旨在简要介绍 CasADi。原创 2023-12-04 08:01:07 · 5277 阅读 · 0 评论 -
MATLAB - 线性二次型最优控制(LQR)矢量推力飞机控制
这和我们做小角度近似时用到的论证是差不多的,当θ接近0时,用θ代替sin θ,用1代替cos θ。下图为矢量推力飞机的简化模型图,我们只关注飞机在竖直平面内的运动。在平衡点附近时,这些变量都接近于零,所以这些变量中的非线性项可以被认为是相应向量的泰勒级数展开式中的高阶项。考虑矢量推力飞机模型,飞机可以通过调整向下的推力,使用位于机翼上的机动推进器完成起飞。矢量推力飞机的运动可用上述三个耦合的二阶微分方程来描述。,假定在系统的平衡点附近输入和状态的变化量很小,即。观察不同的输出权重的影响,即。原创 2023-08-17 15:57:47 · 1735 阅读 · 2 评论 -
MATLAB - 连续搅拌釜式反应器模型(Continuous Stirred Tank Reactor,CSTR)
绝热连续搅拌罐反应器(CSTR)是流程工业中一种常见的化学系统,[1] 对其进行了大量描述。容器中发生的是单一的一阶放热不可逆反应 A → B,假定容器始终完全混合。试剂 A 的入口流以恒定的体积速率进入容器。产物流 B 以相同的体积速率连续流出,液体密度恒定。因此,反应液体的体积是恒定的。下图显示了容器和周围冷却夹套的示意图。CSTR 模型的输入矢量 u(t) 如下。u1 - CAf,进料流中试剂 A 的浓度,单位为 kmol/m3u2 - Tf,入口料流的温度,单位为 K。原创 2023-12-18 14:15:56 · 3846 阅读 · 3 评论 -
MATLAB - 模型预测控制入门教程(MPC)
模型预测控制(MPC)是一种最优控制技术,其计算出的控制输入可在有限的、后退的时间跨度内使受限动态系统的成本函数最小化。在每个时间步长内,MPC 控制器接收或估计被控对象的当前状态。然后,它通过求解一个依赖于被控对象模型并取决于当前系统状态的约束优化问题,计算出一系列控制行动,从而使整个时间跨度内的成本最小化。然后,控制器只对被控对象执行第一个计算出的控制操作,而不考虑后面的操作。在接下来的时间步中,该过程将重复进行。原创 2023-10-19 13:57:49 · 4254 阅读 · 0 评论 -
MATLAB - 强化学习(Reinforcement Learning)
控制系统环境是表示动态系统的环境,其中的状态和观测通常属于无限(不可数)的数值向量空间。在这种环境中,状态转换规律是确定性的,通常是通过对所要建模的底层物理系统的动力学进行离散化推导出来的。请注意,在这些环境中,动作仍然可以属于有限集合。强化学习工具箱提供了多个预定义的控制系统环境对象,用于模拟双积分器或小车摆杆系统等动态系统。一般来说,每个预定义环境都有两个版本,一个是离散(有限)动作空间,另一个是连续(无限和不可数)动作空间。原创 2024-08-12 19:56:42 · 1742 阅读 · 0 评论 -
MATLAB - 自定义惯性矩阵
惯性矩阵捕捉了物质围绕局部坐标系的空间分布,在此称为惯性分辨率坐标系。该坐标系在图中标为 I。它的坐标轴与本地参照系的坐标轴平行,与 R 坐标系端口相关联,并相应地标注为 R。惯性矩阵由惯性矩和惯性积组成。惯性矩占据矩阵的对角线位置,用于测量质量分布在惯性坐标系各轴上的分散度或扩散度。对某一轴线的扩散越大,该轴线对应的惯性矩就越大。惯性积占据对角线以外的位置,衡量质量分布相对于惯性坐标系平面的不对称程度。对某平面的不对称程度越大,与该平面内任何轴相关的惯性积就越大。下图说明了这些关系。原创 2024-04-27 15:50:21 · 1363 阅读 · 0 评论 -
MATLAB - 机器人动力学 - 质心(Center of Mass)
机器人配置向量,包含机器人模型中所有非固定关节的位置。您可以使用 homeConfiguration(机器人)、randomConfiguration(机器人)或指定自己的关节位置来生成配置。要使用矢量形式的配置,请将机器人的 DataFormat 属性设置为 "行 "或 "列"。要使用质量中心函数,请将数据格式属性设置为 "行 "或 "列"。将数据格式设置为 "行"。对于所有动力学计算,数据格式必须是 "行 "或 "列"。质量中心雅各布,以 3 乘 n 矩阵形式返回,其中 n 是机器人的速度自由度。原创 2024-04-26 20:19:55 · 1355 阅读 · 2 评论 -
MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数
模型预测控制器使用线性工厂、干扰和噪声模型来估计控制器状态并预测未来的工厂输出。控制器利用预测的设备输出,解决二次规划优化问题,以确定控制动作。有关模型预测控制器结构的更多信息,请参阅 MPC 预测模型。原创 2024-04-07 00:23:41 · 1268 阅读 · 0 评论 -
MATLAB - 用命令行设计 MPC 控制器
本示例使用《使用 MPC Designer 设计控制器》中描述的工厂模型。创建工厂的状态空间模型,并设置一些可选的模型属性,如输入、状态和输出变量的名称和单位。C = [0 1;1 0];需要注意的是,该模型是由非线性模型围绕工作点线性化而来。因此,线性模型输入和输出信号的值代表与非线性模型中工作点值的偏差。更多信息,请参阅使用 MATLAB 代码进行线性化。原创 2024-04-06 22:03:43 · 1025 阅读 · 0 评论 -
MATLAB R2024a 主要更新内容
系列文章目录前言一、主要更新计算机视觉工具箱 —— 为二维和三维视觉任务设计算法、标注数据并生成代码。 深度学习工具箱 —— 支持变换器等架构;导入并共同模拟 PyTorch 和 TensorFlow 模型。 仪器控制工具箱 —— 使用仪器资源管理器应用程序管理带有 IVI 和 VXIplug&play 驱动程序的设备,无需编写代码。 卫星通信工具箱 —— 建立场景模型,并对其进行可见性和通信链路分析。Major UpdatesComputer Vision To原创 2024-02-21 19:10:11 · 4550 阅读 · 0 评论 -
MATLAB - 双连杆机械臂逆运动学的推导及应用
将机器人的连杆长度、关节角度和末端执行器位置定义为符号变量。指定机器人连杆长度的数值。L1 = 1;L2 = 0.5;将末端执行器的 X 和 Y 坐标定义为关节角度的函数。将符号表达式转换为 MATLAB 函数。原创 2024-01-29 06:00:00 · 2834 阅读 · 0 评论 -
MATLAB - 仿真单摆的周期性摆动
本例演示如何使用 Symbolic Math Toolbox™ 模拟单摆的运动。推导摆的运动方程,然后对小角度进行分析求解,对任意角度进行数值求解。原创 2024-01-29 06:00:00 · 2176 阅读 · 0 评论 -
MATLAB - Gazebo 仿真环境
机器人系统工具箱(Robotics System Toolbox™)为使用 Gazebo 模拟器可视化的模拟环境提供了一个界面。通过 Gazebo,您可以在真实模拟的物理场景中使用机器人进行测试和实验,并获得高质量的图形。Gazebo 可在 Linux® 机器或 Linux 虚拟机上运行,并使用插件包与 MATLAB® 和 Simulink® 进行通信。在 Gazebo 中进行仿真时,请注意以下要求和限制。原创 2023-12-19 15:09:43 · 1799 阅读 · 0 评论 -
MATLAB - 加载预定义的机器人模型
要快速访问常见的机器人模型,可使用 loadrobot 功能,该功能可加载市售的机器人模型,如 Universal Robots™ UR10 cobot、Boston Dynamics™ Atlas 人形机器人和 KINOVA™ Gen 3 机械手。探索如何生成关节配置并与机器人模型交互。要导入自己的通用机器人描述格式(URDF),请参阅 importrobot 功能。以字符串形式向 loadrobot 函数指定机器人模型类型。利用制表符完成从提供的模型列表中选择输入。原创 2024-01-17 06:00:00 · 1329 阅读 · 0 评论 -
MATLAB - 利用非线性模型预测控制(Nonlinear MPC)来控制四旋翼飞行器
本示例展示了如何利用非线性模型预测控制(MPC)为四旋翼飞行器设计一个跟踪轨迹的控制器。原创 2024-01-12 16:30:12 · 3386 阅读 · 1 评论 -
MATLAB - 计算机械臂关节扭矩以平衡末端力和力矩
产生力矩以平衡作用在平面机器人末端执行器体上的端点力。要使用各种方法计算关节力矩,请使用刚体树机器人模型的几何雅各比(geometricJacobian)和反动力学(inverseDynamics)对象函数。原创 2024-01-15 00:23:08 · 2352 阅读 · 0 评论 -
MATLAB - 使用运动学 DH 参数构建机械臂
使用 Puma560® 机械手机器人的 Denavit-Hartenberg (DH) 参数,逐步建立刚体树形机器人模型。在连接每个关节时,指定其相对 DH 参数。可视化机器人坐标系,并与最终模型进行交互。DH 参数定义了每个刚体通过关节与其父体连接的几何形状。以矩阵形式指定 Puma560 机器人 [1] 的参数。创建一个刚体树对象为刚体对象创建一个单元数组,为关节对象创建另一个单元数组。使用 showdetails 或 show 函数验证机器人是否已正确构建。原创 2024-01-16 06:00:00 · 2091 阅读 · 0 评论 -
MPC - Python、MATLAB、CVXPY、YALMIP、Julia 示例
我们考虑的问题是控制一个线性时变动态系统达到某个参考状态。为此,我们使用受限线性二次 MPC,在每个时间步求解以下有限视距最优控制问题状态和输入受限于某个下限和上限之间。该问题在不同的初始状态。原创 2023-12-19 10:10:34 · 896 阅读 · 0 评论 -
MATLAB - 移动机器人运动学方程
机器人状态用三元素向量表示: [x y θ]。对于给定的机器人状态x: 以米为单位的全局车辆 x 位置y: 全局车辆的 y 位置,以米为单位θ: 全局车辆航向,单位为弧度ψ: 车辆转向角,单位为弧度v: 车辆速度,单位为米/秒ω: 车辆角速度,单位为弧度/秒运动学方程中的其他变量包括r: 车轮半径,单位米: 车轮速度(弧度/秒d: 轨道宽度(米l: 轮距(米ψ: 车辆转向角,单位为弧度。原创 2024-01-18 06:00:00 · 1871 阅读 · 0 评论 -
一级倒立摆控制 - 非线性 MPC 控制及 MATLAB 实现
与线性 MPC 相似,非线性 MPC 在每个控制区间都要解决一个受约束的优化问题。不过,由于被控对象模型是非线性的,因此非线性 MPC 将最优控制问题转换为一个具有非线性成本函数和非线性约束条件的非线性优化问题。本例中使用的成本函数与线性 MPC 使用的标准成本函数相同,在线性 MPC 中强制执行输出参考跟踪和操纵变量移动抑制。因此,请指定标准的 MPC 调整权重。小车位置限制在 -10 至 10 的范围内。力的范围在 -100 和 100 之间。原创 2024-01-11 06:00:00 · 3170 阅读 · 0 评论 -
MATLAB - 卫星自旋的模型参考自适应控制(MRAC)
定义卫星系统的动态模型。对于该系统,A 代表真实状态矩阵。a = 10;A = [0 a;-a -a/2];B = eye(2);C = [1 a;-a 1];指定被控对象失配矩阵。该矩阵将从真实 A 矩阵中减去,从而定义控制器使用的标称被控对象。控制器的目标就是模拟这一被控对象的不确定性。-0.5*a 0];参考系统是以下稳定的二阶系统。Am = [-5 0;0 -5];确定卫星自旋速率和参考模型状态的初始条件。x1_0 = 0.5;x2_0 = 0.5;xm_0 = [0;0];原创 2024-01-12 15:30:04 · 1395 阅读 · 0 评论 -
MATLAB - 自适应 MPC(Adaptive MPC)
MPC 控制使用线性时间不变 (LTI) 动态模型预测未来行为。在实践中,这种预测永远不会精确,而一个关键的调整目标就是使 MPC 对预测误差不敏感。在许多应用中,这种方法足以实现稳健的控制器性能。如果被控对象具有很强的非线性,或者其特性随时间变化很大,LTI 预测精度可能会大幅下降,以至于 MPC 性能变得不可接受。自适应 MPC 可通过调整预测模型以适应不断变化的运行条件来解决这一问题。原创 2024-01-06 12:01:31 · 3766 阅读 · 0 评论