当前位置:   article > 正文

matlab动力学仿真_Simulink Simscape Multibody机器人仿真(一)

simulinksimscape multibody建立单摆模型

最近一直在做机器人仿真,用于多足机器人的步态规划。但经过这段时间的调试和软件选型,发现现在中文网站上相关的资料还是偏少,所以想开设一个小系列来分享一下心得,希望对各位有所帮助。

软件选型

先说一下结果:最终选择了用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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/91249
推荐阅读
相关标签
  

闽ICP备14008679号