• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

一知半解|MATLAB机器人建模与仿真控制(3)

人工智能 二民院小学生 1308次浏览 0个评论

大家好,今天给大家继续分享一知半解|Matlab机器人建模与仿真控制这个系列的内容之三。

 

首先接着上一篇博客的内容,我们利用机器人的URDF文件,在Matlab环境下利用m代码和机器人系统工具箱,完成了puma560的可视化与运动仿真。在这里我们将继续利用puma560的URDF文件来演示如何在Simulink中生成Simscape机器人多体结构模型,并搭建机器人各关节的驱动以完成运动仿真。

 

1、Simulink中生成多体结构模型

同样的,将机器人的URDF文件添加到Matlab路径后,在命令行窗口输入以下代码:smimport(‘puma560.urdf’);如下:

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

这时候smimport函数将从puma560.urdf文件中导入多体模型【查看函数信息命令窗口输入:help smimport】,一小段时间之后就会在Simulink中生成如下结果:

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

现在可以双击查看每一个模块(block),可以具体了解到模块的含义信息。如下机械配置模块用于设置仿真参数,如重力值与方向【一般都默认了】。

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

在这个原始生成的多体模型中,模块基本上是连杆—>关节—>连杆组成的,关节之间的连杆中定义了坐标的变换。由于多体模型是根据机器人的URDF文件生成的,可以很容易发现两者之间的一致性。如下为双击puma_base后打开的内容,部分对应关系下图可以说明【建议打开URDF文件和多体模型对照查看】

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

是不是觉得URDF文件很好用,Matlab自动生成的多体模型很简洁nice!

 

在保持生成模型不动的情况下【也就是关节不添加驱动】,点击Simulink的运行按钮,机器人可视化模型的根据仿真算法和物理引擎在重力的影响下乱动。

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

这不是我们需要的,我们应该让机器人根据指示进行运动。因此,需要给机器人关节添加驱动。

 

2、部署各关节驱动

 

(1)部署关节驱动,首先双击打开模型中的joint1,将里面的Actuation设置成如下【其他各关节设置一样】。

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

这个时候每个关节joint驱动部分都有一个接口q,接下来只需要将期望的驱动连接到此接口就OK了。

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

(2)设置期望的驱动

驱动的设置有很多方式,这里先引入Signal Builder的方式。在模型空白处双击,然后输入siganl,点击Enter键之后选择Signal Builder如下,然后对Signal Builder进行编辑。

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

这时候再添加一个信号转换模块【Simulink-PS Converter,同样可以输入S PS,或直接在模型空白处双击后后输入Simulink-PS Converter,然后Enter键选择】,将Signal Builder输出的Simulink信号转换成物理信号再连接到关节joint1的驱动接口q处。双击Simulink-PS Converter进行如下的修改。

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

然后将其连接到关节joint1的驱动接口q处,如下:

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

这时候可以运行模型查看机器人的运动情况,如下:

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

由于我们只给关节1添加了驱动,且运动和预想的一致,因此其他关节的驱动也可以按这种方式完成,具体过程就不再说明了【只需要选中刚刚添加的两个部分,然后复制张贴,每个Signal Builder适当修改信号曲线,最后连接到关节驱动接口就OK了】。运行结果各关节都有运动:

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

(3)人为驱使单关节运动

如果我们希望人为的改变机器人单关节运动,怎么实现呢?可以在模型中添加滑块增益(Slider Gain)来完成。可拖入以下模块并连接如下:

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

其中Slider Gain可以设置为机器人某一关节的运动范围。选择开关Manual Switch模块是用来切换两种运动方式的。开关向上则关机运动安装Signal Builder里面设置的角度变化信号运动,如下开关向下则根据人为改变Slider Gain的输出角度值进行运动【双击Slider Gain,拖动滑块】。其他关节同,演示如下:

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

有没有很方便^_^//【当然我们通过m语言设计一个GUI交互界面来完成,这个我们后面再谈】

 

(4)模型修改【如何添加其他部件进行】

是否有留意到,原始模型中只有5个关节。如果想要添加其他关节或末端执行器,去修改URDF是非常麻烦的。但是在Simscape环境中,你可以轻易的添加你想要的模块【在添加的时候需要清楚是以那一个坐标系作为参考需要怎样的平移和旋转变换达到你想要的位置】。

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

具体的操作过程就不再赘述了。如下为在初始多体模型中添加关节6和夹爪工具后的状态。

 

一知半解|MATLAB机器人建模与仿真控制(3)

 

总结

(1)利用机器人的URDF文件可以很快的在Simulink环境中生成机器人的多体机构模型,模型中的各个部分可以很好的与URDF文件中的信息相对应起来。

(2)在机器人初始多体结构模型中可以很方便的添加其他几何模型,可以参考

https://ww2.mathworks.cn/videos/defining-rigid-bodies-68845.html

(3)模型已打包,可以参考【包括puma560机器人的URDF文件,m代码,slx模型】。那么试试自己动手做吧!


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明一知半解|MATLAB机器人建模与仿真控制(3)
喜欢 (0)

您必须 登录 才能发表评论!

加载中……