四足机器人(一)----MATLAB simulink对四足机器人物理建模

四足机器人(一)----MATLAB simulink对四足机器人物理建模

一、 本设计中用的是网上下载的别人已经画好的四足机器狗的3D模型。

在这里插入图片描述
那么我们就需要将这些3D模型导入到MATLAB的建模中,打开MATLAB后可以在命令页面输入smnew,弹出simulink页面,也可以在主页点击simulink图标建立物理模型,双击方块,在这里插入图片描述
首先建立一个平面,我们随后建立的机器狗就可以在该平面上走动了,参数设置为[1000 500 1]。
在这里插入图片描述

建立完毕后可以点击simulink的运行按钮就可以在MATLAB中看到建立的平面。此时就可以将我们的物理模型导入了,鼠标右键solid拖动solid模块就可以复制出一个一模一样的元件出来,此时开始对该模块进行编辑,双击新的solid模块进行导入模型。首先将body的模型导入,并且与之前的模块相连,并设置坐标,因为我们的物理模型是要在平面上方的,不设置坐标的话会放在和平面重合的位置,所以我们要对坐标进行设置,因为3D模型的尺寸原因我们将body的模型高度设置为250mm。

在这里插入图片描述
在这里插入图片描述

设置完成并连接后点击运行按钮,我们可以看到模型已经成功导入。

在这里插入图片描述

那么接下来就是各个腿的导入了,原理和导入body一样。下面给出髋关节的坐标参数。

在这里插入图片描述

随后我们将其他关节部分导入,以下是参数。在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

坐标建立好后将模型也导入后点击运行按钮我们可以看到在MATLAB仿真界面出现了我们的模型。
在这里插入图片描述

那么我们发现四足机器人的腿是直立的,而且不会动,那么我们就要加入轴转动的动作。
在这里插入图片描述加入到我们的模型中,变成了这样。
在这里插入图片描述

但是细心的人肯定会观察到为什么你的joint元件有三只引脚,我的只有两个,那是因为需要改里面的参数,如果以两个引脚的方式放进去后运行会发现腿来回摆动,也不听使唤。这是因为元件的重力让模型在摆动,那么此时我们就要将转轴设置为有输入量时转动,以下为改动的地方,所有的joint模块改完之后就和上图一样,这样一来腿就不会乱动了。
在这里插入图片描述

此时我们转动模型会发现模型的脚没有接触到平面,此时就要调用一个库,点击MATLAB主页中的附加功能,进入获取附加功能,找到simulink。
在这里插入图片描述

在这里插入图片描述

如果你是正版的MATLAB,可以点击从GitHub中添加然后下载就可以,如果是破解版的就需要自己手动下载,然后放到和从GitHub添加的路径一样下就可以了,但是我懒得找这个路径了,比较麻烦,所以直接在simulink仿真的时候打开这个库就可以了。

在这里插入图片描述

打开后点击3D,进入找到Sphere to Plane Force图标,将它拉到工程中。 双击进行设置,这个是设置圆和球面的接触,参数如下:
在这里插入图片描述

将他接到每一条腿上,这样我们的模型就站在了平面上。
在这里插入图片描述
但是发现布局很乱,所以我们就要将各个模块合并一下,选中一个关节,Ctrl+g就可以进行合并,最终整合成这个样子。
在这里插入图片描述
那其实现在我们的模型其实还是没有站在上面,所以我们要给一个六自由度的模块6-DOF Joint,放在平面模组的后面。再次运行,模型就掉到了平面上。
在这里插入图片描述
在这里插入图片描述
到这里整个模型导入已经完成,下次的话就是要对运动学逆解进行讲解。

  • 26
    点赞
  • 195
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
epson机器⼈编程范例_SimulinkSimscapeMultibody机器⼈仿 真(⼀) 最近⼀直在做机器⼈仿真,⽤于多⾜机器⼈的步态规划。但经过这段时间的调试和软件选型,发现现在中⽂⽹站上相关的资料还是偏少,所 以想开设⼀个⼩系列来分享⼀下⼼得,希望对各位有所帮助。 软件选型 软件选型 先说⼀下结果:最终选择了⽤Simulink SimscapeMultibody。 最开始因为组⾥前⾯的机械臂项⽬⽤的是ROS,并且开发相对成熟,所以开始就希望基于ROS上已有的物理仿真环境,也就是gazebo进⾏ 开发。但后⾯发现gazebo不是很成熟: 1. 在应⽤过程中会遇到很多的bug:对于⼩数值⽀持不好:特别是在计算惯量的时候,因为开了各6次幂导致很多时候会出现下溢出,直 接在反应在仿真中就是:模型下陷,⼀开始仿真除⾮固定,否则就会陷在地⾯⾥,或者莫名其妙被弹飞。(为了解决这个事笔者基本 快把gazebo的底层给看完了……被⾃⼰蠢到了) 2. gazebo的调试可以说是没有任何便利性可⾔(虽然很丢⼈,但写makefile还是给从java转过来的笔者留下了很深的阴影)主要是IDE 不好⽤……不知道CS⼤神们有没有什么优雅的解决⽅案。 本来是希望matlab做规划算法, 然后通信控制gazebo中机器⼈(笔者嫌⿇烦所以⽤了两台电脑,其实⼀台也可以,可以⽤虚拟机,或者 win10的linux⼦系统,⾄于linux上装matlab,我就不是很清楚了),以此来进⾏运动控制。但经过两个⽉的gazebo后,最终下定决⼼放 弃gazebo…… 之后听过楼上有⼈⽤过unity3D开发物理仿真环境。下好了试了⼀下……在调了⼀天的UI字体字号后,果断放弃……(但到头来⼯作的时候 还是逃不掉⽤unity)其实真正使⽤国故城中⽤unity3D遇到的问题和gazebo会差不多,但解决难度会低很多,如果各位有兴趣的话还是可 以尝试下的,说不定⽤了⼀下之后就会爱上做三维渲染了,⼿动滑稽。 之后偶然间发现matlab中有⼀个Simscape Multibody模组。点开看了⼀下,嗯~有内味。简单来说Simscape Multibody⼊门要更简单, 但是基本的建模思想和上⾯两个软件都是⼀致的,并且作为simlunk的成员,这种图形编程能在更⼤程度上降低coding时的出错概率,这⼀ 点在IDE不是很强⼤的情景下是⼗分重要的。所以最终选择了⽤Simscape Multibody。 稍稍总结⼀下:如果要搭建有物理环境的机器⼈仿真平台,使⽤的⼯具更准确来说是引擎,底层的思路都是⼀致的:底层物理逻辑,上⾯套 上⼀个图形显⽰层,当处理接触交互时还需要加上⼀个在物理层中加⼊碰撞;⽽与运动相关的所有逻辑的理论基础就是各位喜闻乐见的机器 ⼈学(动⼒学)——⽤变换来表⽰⼀切,掌握了这些之后再看上⾯这些引擎,甚⾄是市⾯上常见的游戏引擎,就明朗很多了。(话说这⼀套 仿真做下来还真能去找个游戏开发的⼯作……) PS:不知道是不是我电脑的缘故,低版本matlab(2016a)中的Simulink Simscape Multibody较容易崩溃,建议各位⼯程中真要⽤最 好还是换到最新的matlab。(⽤的时候记得打开git)
### 回答1: 您好!下面是使用 MATLAB 编写控制四足机器人的 MPC 算法的基本步骤: 1. 使用建模工具箱(如 Simulink建立四足机器人的动力学模型。 2. 使用 MPC 工具箱创建 MPC 控制器对象,并设置相应的参数。 3. 设计输入输出约束,以确保机器人在运动过程中的安全性。 4. 设计目标轨迹,并设定规划和优化的参数。 5. 将 MPC 控制器对象与动力学模型连接,并进行仿真。 6. 如果仿真结果满意,则将控制算法部署到四足机器人的实际控制系统中。 希望这些信息能帮到您! ### 回答2: MPC(Model Predictive Control,模型预测控制)是一种基于数学模型的控制方法,能够根据系统模型和当前状态进行预测,通过优化问题求解得到最优控制策略,从而实现对系统的稳定控制。 在MATLAB中实现控制四足机器人的MPC算法,首先需要建立四足机器人的动力学模型。这可以通过使用simscape multibody toolbox中的刚体和连接器来创建机器人物理模型。然后,根据机器人的动力学模型,可以使用MATLAB的Optimization Toolbox中的预测控制工具箱来编写MPC算法。 MPC算法一般由以下几个步骤组成: 1.定义系统模型:根据四足机器人的动力学模型,将其转化为离散时间状态空间模型。这可以通过MATLAB中的系统建模工具箱来实现。 2.定义性能指标:根据控制需求,设计合适的性能指标,如能量消耗、稳定性等。将性能指标表示为优化问题的目标函数。 3.定义约束条件:根据系统的物理限制,如机器人的速度、幅度、加速度等,设置合适的约束条件。 4.预测状态和控制器参数:根据当前状态和系统模型,使用MPC算法进行状态和控制器参数的预测。 5.优化问题求解:将预测问题转化为一个优化问题,并使用MATLAB的优化器(如quadprog、fmincon等)来求解最优控制策略。 6.实施控制策略:根据优化求解得到的最优控制策略,控制四足机器人的动作,使其按照期望轨迹进行运动。 在实现过程中,MATLAB提供了一系列功能强大的工具箱和函数,可用于处理系统模型、求解优化问题以及进行仿真等操作。如根据机器人的动力学进行状态预测,设置优化问题的目标函数和约束条件,通过求解器求解最优控制策略,并将结果导入仿真环境进行实时控制验证。 总之,使用MATLAB编写控制四足机器人的MPC算法需要建立机器人的动力学模型,并利用MATLAB中的优化工具箱来求解最优控制策略。通过这种方法,可以实现对四足机器人的稳定控制,提高其运动能力和性能。 ### 回答3: 四足机器人是一种具有四条腿的机器人,它可以完成各种步态和动作。为了控制四足机器人的运动,我们可以使用模型预测控制(Model Predictive Control, MPC)算法。MATLAB是一款功能强大的数学建模和仿真软件,它提供了丰富的工具和函数来编写和实现MPC算法。 使用MATLAB编写控制四足机器人的MPC算法,我们首先需要建立四足机器人的动力学模型。这个模型可以描述机器人的运动特性和约束条件。通过MATLAB建模工具和函数,我们可以通过机器人的尺寸、关节参数和质量等参数来建立机器人的动力学方程。 接下来,我们需要定义四足机器人的控制目标和约束条件。例如,我们可以设置机器人在特定环境中移动的目标位置和朝向,以及避开障碍物的约束条件。通过MATLAB的优化工具箱,我们可以将这些目标和约束条件转化为优化问题。 然后,我们可以通过设置预测时间窗口和控制时序,来设计MPC控制器。在每个控制时刻,MPC算法通过优化问题求解,得到最优的控制命令。通过MATLAB的优化函数和控制工具箱,我们可以实现MPC算法的迭代求解。 最后,我们可以通过MATLAB的仿真工具来验证和测试我们编写的MPC算法。在仿真中,我们可以模拟四足机器人在不同环境中的运动和控制效果,以验证算法的性能和鲁棒性。 综上所述,使用MATLAB编写控制四足机器人的MPC算法,我们需要建立机器人的动力学模型、定义控制目标和约束条件、设计MPC控制器,并通过仿真工具验证和测试算法。通过MATLAB丰富的工具和函数,我们可以实现高效、精确的控制四足机器人

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值