GaitGeneration by Graph Search
|
動作のループを感知するクラス. [詳解]
#include <dead_lock_checker.h>
公開メンバ関数 | |
void | AddNode (const RobotStateNode &node) |
ロボットが行った動作を追加する.上限数を超えたら,古いものから削除する. | |
bool | IsDeadLock () const |
直近に行った動作を比較して,ロボットが正しく動作できているか判断する. | |
動作のループを感知するクラス.
グラフ探索を用いてロボットの歩容生成をしていると, 最善の行動をとると,同様の操作をし続けて動作がループしてしまう場合がある. それを探知して,歩容生成に失敗していることを通達するクラス. [deque(デック)について] std::vectorの亜種. vectorとの違いとして,先頭と末尾の要素の追加・削除が高速である.
参考 : https://cpprefjp.github.io/reference/deque/deque.html (アクセス日 2023/12/27)
dead_lock_checker.h の 29 行目に定義があります。
void designlab::DeadLockChecker::AddNode | ( | const RobotStateNode & | node | ) |
ロボットが行った動作を追加する.上限数を超えたら,古いものから削除する.
[in] | node | ロボットの現在の状態. |
dead_lock_checker.cpp の 14 行目に定義があります。
bool designlab::DeadLockChecker::IsDeadLock | ( | ) | const |
直近に行った動作を比較して,ロボットが正しく動作できているか判断する.
true | 動作がデッドロックしている.つまり,正しく動作できていない. |
false | 動作がデッドロックしていない.つまり,正しく動作できている. |
dead_lock_checker.cpp の 27 行目に定義があります。