赞
踩
最近一直在做机器人仿真,用于多足机器人的步态规划。但经过这段时间的调试和软件选型,发现现在中文网站上相关的资料还是偏少,所以想开设一个小系列来分享一下心得,希望对各位有所帮助。
先说一下结果:最终选择了用Simulink SimscapeMultibody。
最开始因为组里前面的机械臂项目用的是ROS,并且开发相对成熟,所以开始就希望基于ROS上已有的物理仿真环境,也就是gazebo进行开发。但后面发现gazebo不是很成熟:
本来是希望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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。