OMPL 入门Tutorial 2:设置可行状态检查(Setting up state validity checking)

以下内容为OMPL官方Tutorial Setting up state validity checking的翻译

OMPL本身并不包括可行状态检查的代码。这样的设置是取决于所要求解的问题的。比如,OMPL.app定义可行状态检测为检查加载的CAD模型的碰撞关系。MoveIt中的ROS OMPL接口定义可行状态检查为机器人模型与感知到的环境物体之间的碰撞检测。如果为蛋白质折叠做规划,那么可行状态检查就与能量函数有关了。

为了让用户定义可行状态,OMPL定义了两个抽象类

  • ompl::base::StateValidityChecker
  • ompl::base::MotionValidator

这些类将我们所规划的系统的性质抽象化了。例如,OMPL不需要表示机器人或者障碍物的几何关系。用户在配置ompl::base::SpaceInformation的时候可以设定具体用哪一种实现方式。注意,ompl::base::StateValidityChecker和ompl::base::MotionValidator类的实例化需要时线程安全的。

ompl::base::StateValidityChecker定义了ompl::base::StateValidityChecker::isValid()函数,规划器(planner)通过这个函数来评估一个状态是否是可行的。如果用户没有设置这个类的话,则会假设ompl::base::AllValidStateValidityChecker,也就是说所有的状态都是可行的。

// 定义类
class myStateValidityCheckerClass : public base::StateValidityChecker
{
   
public:
     myStateValidityCheckerClass(const base
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值