【算法】基于分离轴定理的机器人碰撞检测

碰撞检测

机器人碰撞检测可以大致分为两类:

  • 发生碰撞后,通过检测电流、力矩或者编码器的值来判断碰撞的发生;
  • 发生碰撞前,通过建模判断机器人发生碰撞。

一般地,第一种方法通常用于环境不确定的环境,如人机交互安全检测;而第二种方式通常用于已知环境内的轨迹规划时(ROS-moveit),是一种预碰撞的检测。
其中Moveit中使用的就是第二种方法,首先使用AABB包围盒对机器人各个连杆进行建模,然后进行大致的碰撞检测,当检测到碰撞后再利用网格进行更细节的碰撞检测,保证检测的有效性,本篇博文只使用包围盒的碰撞检测。
但是必须知道,真实的机器人必定是有碰撞后的检测的,来保证机器人运行过程中的安全。
通过阅读源码可知Moveit使用的时AABB法建模然后进行碰撞检测。
BUT:Rviz中显示的时使用球和柱体进行碰撞检测

这里,机器人其实使用的是胶囊体碰撞检测

仿真结果

假设两个连杆只考虑两个连杆的情况,使用包围盒进行碰撞检测的仿真结果如下:

  • 发生碰撞的情况

  • 未发生碰撞的情况

猜你喜欢

转载自blog.csdn.net/weixin_44229927/article/details/120243853