matlab动力学仿真_Simulink Simscape 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)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值