从零开始的OMPL库算法学习(0)

从零开始的OMPL库算法学习记录(0)

写在开头

毕设要做基于moveit的零件抓取,现在进度卡在解决place_pose_orientation的倾斜问题,所以开始学习moveit下的ompl库。希望能坚持下去,并分享给大家。本学习记录只关注算法原理,不关注程序实现。

OMPL

ompl(The Open Motion Planning Library)的全称是开源运动规划库,基于采样方法,包含了各种先进的路径规划算法。其算法分为两类,Geometric planners和control-based planners。在moveit生成的ompl_planning.yaml文件中,可供选择的算法有以下几种:

- SBL
- EST
- LBKPIECE
- BKPIECE
- KPIECE
- RRT
- RRTConnect
- RRTstar
- TRRT
- PRM
- FMT
- BFMT
- PDST
- STRIDE
- BiTRRT
- LBTRRT
- BiEST
- ProjEST
- LazyPRM
- LazyPRMstar
- SPARS
- SPARStwo

看起来一头雾水。其默认选择为RRTConnet。

采样算法

opml库中的算法是基于采样的,那什么是采样算法呢?采样算法又称蒙特卡罗方法。它解决的问题是:给定一个概率分布p(x),如何让计算机生成满足这个概率分布的样本。 这个问题就叫采样。其本质是对随机现象的模拟,根据给定的概率分布 ,来模拟产生一个对应的随机事件。
首先我们来看一个简单的例子,假设我们想对下面的二项分布进行采样:

P(X=0)=0.5,P(X=1)=0.5

我们如何采样得到X的值?我们会很毫不费力地想到“抛硬币”,如果硬币正面朝上,则X=1,否则,X=0。那计算机怎么做,使用随机数生成器生成0到1之间的随机数r,k如果r<0.5,则X=1,否则,X=0。

你可能感兴趣的:(ompl)