Simscape Mutibody Modeling学习--碰撞接触与反应(1)

1、前记:先在此处贴上收集到有关Simscape Mutibody 接触力建模的有用资料,后面系列逐渐展开。

    原本在做Baxter机器人碰撞检测的时候,是参照官网这篇https://www.mathworks.com/help/robotics/examples/perform-safe-trajectory-tracking.html文章里面的方法【在手臂末端与障碍物之间建立一个弹性阻尼系统...】做的仿真,当时在复现的时候还厚着脸皮请教了Mathworks 机器人组的应用工程师Sebastian Castro,超爱他网络研讨会的视频https://www.mathworks.com/videos/matlab-and-simulink-robotics-arena-introduction-to-contact-modeling-part-2-1502716250563.html】。在他的帮助下解决了一些问题,就是下面的“穿墙而过”变为左边的四个时间戳的碰撞接触停止,基本复现了官网的一个案例。

                             

后面他还建议我使用 Contact_Force_Libray库来实现碰撞仿真,不过由于种种原因并没花时间去做【其实就是懒,就是太年轻了,抠鼻^-^//】。出来混,在此处落地生个根好还上那笔风流债。

2、前期准备与相关链接:

(1)在matlab 2018a中安装了必要的工具箱Simscape系列(一般在命令行窗口输入ver可以查找所有安装的工具箱)。

(2)于碰撞反应视频学习:在上面已经给出,Sebastian Castro下面的那个!

(3)在Simulink中进行多体建模:https://ww2.mathworks.cn/videos/multibody-simulation-with-simmechanics-81877.html

(4)多体升降机的例子,(3)视频中的,https://ww2.mathworks.cn/matlabcentral/fileexchange/36553-scissor-lift-model-in-simscape-multibody,根据自己的Matlab版本进行下载学习。

(5)Simscape Multibody Parts Library下载,部件库https://ww2.mathworks.cn/matlabcentral/fileexchange/36536-simscape-multibody-parts-library,同样根据版本下载,高版本的可以兼容低版本的,可以不用在意。

(6)接触力库(Simscape Multibody Contact Forces Library):https://ww2.mathworks.cn/matlabcentral/fileexchange/47417-simscape-multibody-contact-forces-library,根据版本下载。里面的案例可以打开运行,开始学习。

(7)官网上的技术博客:https://blogs.mathworks.com/racing-lounge/2017/09/12/introduction-to-contact-modeling/?fbclid=IwAR3f38dM3bgw13qDZzNzu7ZSBlA3kMHNHY-q2zeajAMGNz-Y32XwRduOsCE

(8)如何设置接触力中的刚度和阻尼系数:https://www.mathworks.com/matlabcentral/answers/516756-how-do-i-determine-stiffness-and-damping-parameters-for-contact-forces-in-simulink?fbclid=IwAR2VEzLO4_BlQ5poHjIshnUYr-BxkCZGTREbLvgUDllpCfwTE7kNjk8XRtY

(9)上面(8)的参数设置不正确,有时候可能导致物体之间还是相互穿透:https://www.mathworks.com/matlabcentral/answers/516756-how-do-i-determine-stiffness-and-damping-parameters-for-contact-forces-in-simulink?fbclid=IwAR2VEzLO4_BlQ5poHjIshnUYr-BxkCZGTREbLvgUDllpCfwTE7kNjk8XRtY

(10)官方文档:https://www.mathworks.com/help/physmod/sm/ug/modeling-contact-force-between-two-solids.html?s_tid=answers_rc2-3_p6_Topic

这两天开始学习了下,按照(6)里面的demo,实现了一个简化版的抓取和放置(左)。决定实现PUMA560的抓取和放置的时候(右),抓手抓取的时候总是出现错误,还没找到原因。

小例子:

                          

3、后记:由于Gazebo和Verp中由于自身集成了ODE, Bullet等物理引擎,实现上面的碰撞接触和反应仿真好像更简单。了解的不多就不介绍了。

     Gazebo:https://zhuanlan.zhihu.com/p/94575932

                     http://gazebosim.org/tutorials

     Verp:https://zhuanlan.zhihu.com/p/32788790

下面这个就是我直接在Gazebo中拖进的桌子和障碍物方块来进行仿真的,Baxter机器人的运动用的是Simulink向ROS Master发送的关节位置数据。【不晓得是不是我的虚拟机运行的慢,感觉碰撞反应轻飘飘的不是很真实,是不是要设置一些参数啊?】

                               

猜你喜欢

转载自blog.csdn.net/weixin_39090239/article/details/105897712