Go to the documentation of this file.
29 for (
unsigned int i=0;
i<
nodes_.size();
i++){
55 for (
unsigned int i=1;
i<
nodes_.size();
i++) {
72 for (
unsigned int i=0;
i<
nodes_.size();
i++){
80 for (
unsigned int i=0;
i<
nodes_.size();
i++) {
84 std::vector<RoadmapNodePtr> path;
85 startNode->visited(
true);
86 path.push_back(startNode);
87 while (path.size() > 0) {
90 if (
node == goalNode) {
94 for (
unsigned int i=0;
i<
node->nChildren();
i++) {
95 if (!
node->child(
i)->visited()) {
96 child =
node->child(
i);
103 child->visited(
true);
104 path.push_back(child);
115 if (mobility->
isReachable(from->position(), to->position())){
120 if (mobility->
isReachable(to->position(), from->position())){
128 return from->removeChild(to) && to->removeParent(from);
bool removeEdge(RoadmapNodePtr from, RoadmapNodePtr to)
有向エッジを削除する
virtual double distance(const Configuration &from, const Configuration &to) const =0
RoadmapNodePtr node(unsigned int index)
ノードを取得する
void findNearestNode(const Configuration &cfg, RoadmapNodePtr &node, double &distance)
最も距離の小さいノードを返す
RoadmapNodePtr lastAddedNode()
最後に追加されたノードを取得する
void tryConnection(RoadmapNodePtr from, RoadmapNodePtr to, bool tryReversed=true)
2つのノードの接続を試み、接続できた場合はエッジを追加する
void addEdge(RoadmapNodePtr from, RoadmapNodePtr to)
有向エッジを追加する
boost::shared_ptr< RoadmapNode > RoadmapNodePtr
boost::shared_ptr< Roadmap > RoadmapPtr
std::vector< RoadmapNodePtr > nodes_
ノードのリスト
bool isReachable(Configuration &from, Configuration &to, bool checkCollision=true) const
fromからtoへ干渉なしに移動可能であるかどうか
int indexOfNode(RoadmapNodePtr node)
指定されたノードのインデックスを取得する
void integrate(RoadmapPtr rdmp)
このロードマップの内容を引数のロードマップに統合する
std::vector< RoadmapNodePtr > DFS(RoadmapNodePtr startNode, RoadmapNodePtr goalNode)
深さ優先探索
virtual bool isReversible() const =0
この移動アルゴリズムでA→Bへ移動可能である時に、B→Aが同じ経路で移動可能であるかどうか
Mobility * getMobility()
移動能力を取得する
openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Wed Sep 7 2022 02:51:04