OMPL官方教程学习State Validity Checking

State Validity Checking(状态有效性检测?)

State Validity Checking 的功能:描述对于状态空间所给定的某个状态是否有效

OMPL本身不包含State Validity Checking, 因为这个检测过程或者说检测的方法是和实际的问题紧密联系的,从下面的这段话中可以看出,State Validity Checking 这个过程很像是碰撞检测

OMPL itself does not include code for state validity checking. This is intentional, since defining this notion depends on the type of problems to be solved. For instance, OMPL.app defines state validity checking in terms of collision checking between loaded CAD models. The ROS interface to OMPL in MoveIt defines state validity checking to be collision checking between the robot model and sensed objects in the environment. If planning for protein folding, the state validity check has to do with the evaluation of energy functions.

OPML中提供了两个抽象类,来帮助用户定义状态有效性检测

In order to allow the user to specify the notion of state validity, OMPL defines two abstract classes:
1.ompl::base::StateValidityChecker
2.ompl::base::MotionValidator

这些抽象类提供了许多属性,用户可以根据需要去配置ompl::base::SpaceInformation从而实现State Validity Checking类对象。

These classes abstract away properties specific to the systems we are planning for. For instance, OMPL does not need to represent robot or obstacle geometry. The user can specify which implementations to use when configuring ompl::base::SpaceInformation. The instances of ompl::base::StateValidityChecker and ompl::base::MotionValidator need to be thread safe.

规划器可以通过StateValidityChecker::isValid() 来评价状态的有效性,如果用户没有去定义State Validity Checking 系统会默认一个 AllValidStateValidityChecker,表示所有状态都是可用的,这也是一个类对象。

The ompl::base::StateValidityChecker class defines the ompl::base::StateValidityChecker::isValid() function, which allows planners to evaluate the validity of a state. If the user does not specify this class, an instance of ompl::base::AllValidStateValidityChecker is assumed. This will consider all states to be valid.

官方提供的一个代码片段
从这段代码中可以看出:StateValidityChecker 是为 SpaceInformation 服务的,也就是状态有效检测是用来检测状态空间的。用户要需要自己定义 检测的规则,这可以通过两种方式实现:

  1. 通过实现 继承自StateValidityChecker的类对象
  2. 通过直接实现 检测函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值