本文整理汇总了C++中base::PlannerData::hasControls方法的典型用法代码示例。如果您正苦于以下问题:C++ PlannerData::hasControls方法的具体用法?C++ PlannerData::hasControls怎么用?C++ PlannerData::hasControls使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类base::PlannerData
的用法示例。
在下文中一共展示了PlannerData::hasControls方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void ompl::control::SyclopEST::getPlannerData(base::PlannerData &data) const
{
Planner::getPlannerData(data);
double delta = siC_->getPropagationStepSize();
if (lastGoalMotion_)
data.addGoalVertex(lastGoalMotion_->state);
for (size_t i = 0; i < motions_.size(); ++i)
{
if (motions_[i]->parent)
{
if (data.hasControls())
data.addEdge (base::PlannerDataVertex(motions_[i]->parent->state),
base::PlannerDataVertex(motions_[i]->state),
control::PlannerDataEdgeControl (motions_[i]->control, motions_[i]->steps * delta));
else
data.addEdge (base::PlannerDataVertex(motions_[i]->parent->state),
base::PlannerDataVertex(motions_[i]->state));
}
else
data.addStartVertex (base::PlannerDataVertex(motions_[i]->state));
}
}
示例2: PlannerDataEdgeControl
void ompl::control::EST::getPlannerData(base::PlannerData &data) const
{
Planner::getPlannerData(data);
std::vector<MotionInfo> motions;
tree_.grid.getContent(motions);
double stepSize = siC_->getPropagationStepSize();
if (lastGoalMotion_)
data.addGoalVertex(base::PlannerDataVertex(lastGoalMotion_->state));
for (unsigned int i = 0 ; i < motions.size() ; ++i)
for (unsigned int j = 0 ; j < motions[i].size() ; ++j)
{
if (motions[i][j]->parent)
{
if (data.hasControls())
data.addEdge (base::PlannerDataVertex (motions[i][j]->parent->state),
base::PlannerDataVertex (motions[i][j]->state),
PlannerDataEdgeControl(motions[i][j]->control, motions[i][j]->steps * stepSize));
else
data.addEdge (base::PlannerDataVertex (motions[i][j]->parent->state),
base::PlannerDataVertex (motions[i][j]->state));
}
else
data.addStartVertex (base::PlannerDataVertex (motions[i][j]->state));
}
}
示例3:
void ompl::control::RRT::getPlannerData(base::PlannerData &data) const
{
Planner::getPlannerData(data);
std::vector<Motion*> motions;
if (nn_)
nn_->list(motions);
double delta = siC_->getPropagationStepSize();
if (lastGoalMotion_)
data.addGoalVertex(base::PlannerDataVertex(lastGoalMotion_->state));
for (unsigned int i = 0 ; i < motions.size() ; ++i)
{
const Motion* m = motions[i];
if (m->parent)
{
if (data.hasControls())
data.addEdge(base::PlannerDataVertex(m->parent->state),
base::PlannerDataVertex(m->state),
control::PlannerDataEdgeControl(m->control, m->steps * delta));
else
data.addEdge(base::PlannerDataVertex(m->parent->state),
base::PlannerDataVertex(m->state));
}
else
data.addStartVertex(base::PlannerDataVertex(m->state));
}
}
示例4:
void ompl::control::SyclopRRT::getPlannerData(base::PlannerData &data) const
{
Planner::getPlannerData(data);
std::vector<Motion *> motions;
if (nn_)
nn_->list(motions);
double delta = siC_->getPropagationStepSize();
if (lastGoalMotion_)
data.addGoalVertex(base::PlannerDataVertex(lastGoalMotion_->state));
for (auto &motion : motions)
{
if (motion->parent)
{
if (data.hasControls())
data.addEdge(base::PlannerDataVertex(motion->parent->state), base::PlannerDataVertex(motion->state),
control::PlannerDataEdgeControl(motion->control, motion->steps * delta));
else
data.addEdge(base::PlannerDataVertex(motion->parent->state), base::PlannerDataVertex(motion->state));
}
else
data.addStartVertex(base::PlannerDataVertex(motion->state));
}
}
示例5: PlannerDataEdgeControl
void ompl::control::EST::getPlannerData(base::PlannerData &data) const
{
Planner::getPlannerData(data);
std::vector<MotionInfo> motionInfo;
tree_.grid.getContent(motionInfo);
double stepSize = siC_->getPropagationStepSize();
if (lastGoalMotion_)
data.addGoalVertex(base::PlannerDataVertex(lastGoalMotion_->state));
for (auto &mi : motionInfo)
for (auto &motion : mi.motions_)
{
if (motion->parent)
{
if (data.hasControls())
data.addEdge(base::PlannerDataVertex(motion->parent->state), base::PlannerDataVertex(motion->state),
PlannerDataEdgeControl(motion->control, motion->steps * stepSize));
else
data.addEdge(base::PlannerDataVertex(motion->parent->state),
base::PlannerDataVertex(motion->state));
}
else
data.addStartVertex(base::PlannerDataVertex(motion->state));
}
}
示例6:
void ompl::control::KPIECE1::getPlannerData(base::PlannerData &data) const
{
Planner::getPlannerData(data);
Grid::CellArray cells;
tree_.grid.getCells(cells);
double delta = siC_->getPropagationStepSize();
if (lastGoalMotion_)
data.addGoalVertex(base::PlannerDataVertex(lastGoalMotion_->state));
for (unsigned int i = 0 ; i < cells.size() ; ++i)
{
for (unsigned int j = 0 ; j < cells[i]->data->motions.size() ; ++j)
{
const Motion* m = cells[i]->data->motions[j];
if (m->parent)
{
if (data.hasControls())
data.addEdge(base::PlannerDataVertex (m->parent->state),
base::PlannerDataVertex (m->state, cells[i]->border ? 2 : 1),
control::PlannerDataEdgeControl (m->control, m->steps * delta));
else
data.addEdge(base::PlannerDataVertex (m->parent->state),
base::PlannerDataVertex (m->state, cells[i]->border ? 2 : 1));
}
else
data.addStartVertex(base::PlannerDataVertex (m->state, cells[i]->border ? 2 : 1));
// A state created as a parent first may have an improper tag variable
data.tagState(m->state, cells[i]->border ? 2 : 1);
}
}
}
示例7:
void ompl::control::SST::getPlannerData(base::PlannerData &data) const
{
Planner::getPlannerData(data);
std::vector<Motion*> motions;
std::vector<Motion*> allMotions;
if (nn_)
nn_->list(motions);
for(unsigned i=0;i<motions.size();i++)
{
if(motions[i]->numChildren_==0)
{
allMotions.push_back(motions[i]);
}
}
for(unsigned i=0;i<allMotions.size();i++)
{
if(allMotions[i]->parent_!=NULL)
{
allMotions.push_back(allMotions[i]->parent_);
}
}
double delta = siC_->getPropagationStepSize();
if (prevSolution_.size()!=0)
data.addGoalVertex(base::PlannerDataVertex(prevSolution_[0]));
for (unsigned int i = 0 ; i < allMotions.size() ; ++i)
{
const Motion *m = allMotions[i];
if (m->parent_)
{
if (data.hasControls())
data.addEdge(base::PlannerDataVertex(m->parent_->state_),
base::PlannerDataVertex(m->state_),
control::PlannerDataEdgeControl(m->control_, m->steps_ * delta));
else
data.addEdge(base::PlannerDataVertex(m->parent_->state_),
base::PlannerDataVertex(m->state_));
}
else
data.addStartVertex(base::PlannerDataVertex(m->state_));
}
}