来源:风天骋云的博客 2010-03-22 22:09 最近在做机器人搬运玻璃动力学仿真,机器人末端装吸盘,吸住玻璃实现搬运。至于在ADAMS中吸盘吸住玻璃这个动作怎么实现,尝试了很多办法,结果都不能如意。毕竟是“吸住”,而不是“托住”。{zh1}无奈下只好采用固定副这种模式来模拟“吸住”这个动作。 总的设计思想是这样的:最开始在吸盘和玻璃间建立一个固定副,其他照正常该怎么建就怎么建。当仿真开始,先使该固定副deactivate,然后创建传感器,当玻璃移动到指定的位置,即和吸盘接触的位置时,再使固定副activate,同时使玻璃生产线上的运动副和驱动deactivate,这样玻璃就和吸盘固定在一起了,然后一起模拟“吸住”完成接下来的动作。 可问题出现了,当玻璃运动到指定位置,固定副activate后,玻璃又回到起始建立固定副的位置,然后再和吸盘固定住一起完成接下来的动作。呵呵,有意思。 琢磨了几天,今天终于将问题解决。出现上述情况的原因是这样的:当玻璃和吸盘建立固定副的时候生成了两个marker点,两个是重合的。当玻璃随生产线运动的时候,玻璃上的那个marker点随着玻璃一起运动了,两个marker点就不在是重合了。刚开始仿真的时候,固定副是deactivate的,所以不会有问题,可一旦固定副activate,两个marker点又得回到重合的位置,然后实现固定。个人觉得这就是出现上述问题的原因。 现解决如下:既然刚开始的时候固定副是deactivate的,那两个marker点是不是在一起就没关系了,我们要的是在吸附动作的时候能实现固定副的固定作用。所以我在建立固定副之后,把吸盘上的那个marker点移动到我需要的位置,这样的话,当玻璃和吸盘需要吸住的时候两个marker点又是重合的了,能直接完成固定作用而不会出现回到初始点的情况。问题解决。 不过,由于吸盘和玻璃之间的相对运动不单单是位置上的,还有方向上的,所以既要调location又要调orientation,微调的过程也是很让人抓狂的。呵呵! |