13#include <magic_enum.hpp>
22 std::unique_ptr<IGaitPatternGenerator>&& gpg_for_straight_ptr,
23 std::unique_ptr<IGaitPatternGenerator>&& gpg_for_turn_spot_ptr) :
24 gpg_for_straight_ptr_(
std::move(gpg_for_straight_ptr)),
25 gpg_for_turn_spot_ptr_(
std::move(gpg_for_turn_spot_ptr))
27 assert(gpg_for_straight_ptr_);
28 assert(gpg_for_turn_spot_ptr_);
42 return gpg_for_straight_ptr_->GetNextNodeByGraphSearch(
43 current_node, map, operation, output_node);
48 return gpg_for_turn_spot_ptr_->GetNextNodeByGraphSearch(
49 current_node, map, operation, output_node);
56 "A non-existent behavior was specified." };
GaitPatternGeneratorSwitchMove(std::unique_ptr< IGaitPatternGenerator > &&gait_pattern_generator_for_straight, std::unique_ptr< IGaitPatternGenerator > &&gait_pattern_generator_for_turn_spot)
GraphSearchResult GetNextNodeByGraphSearch(const RobotStateNode ¤t_node, const MapState &map, const RobotOperation &operation, RobotStateNode *output_node) override
グラフ探索を行い,次の動作として最適なノードを返す.
RobotOperationType
Robotをどのように動かすかを表す列挙体.
@ kSpotTurnRotAxis
その場で旋回させる(回転軸を示し,その軸周りの右ねじの回転)
@ kStraightMoveVector
直線移動をさせる(移動したい方向をベクトルで示す)
@ kStraightMovePosition
直線移動をさせる(移動したい座標を示す)
@ kSpotTurnLastPosture
その場で旋回させる(最終的な姿勢 Posture を示す)
探索において目標となる座標や角度,評価する値についてまとめた構造体.
RobotOperationType operation_type
グラフ構造のためのノード(頂点).旧名 LNODE