GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
node_creator_leg_hierarchy.h
[詳解]
1
3
4// Copyright(c) 2023-2025 Design Engineering Laboratory, Saitama University
5// Released under the MIT license
6// https://opensource.org/licenses/mit-license.php
7
8#ifndef DESIGNLAB_NODE_CREATOR_LEG_HIERARCHY_H_
9#define DESIGNLAB_NODE_CREATOR_LEG_HIERARCHY_H_
10
11#include <memory>
12#include <vector>
13
14#include "discrete_leg_pos.h"
15#include "hexapod_next_move.h"
17
18namespace designlab
19{
20
24{
25public:
30 HexapodMove next_move,
31 const std::vector<enums::DiscreteLegPos>& discrete_leg_pos_list);
32
34
35 void Create(const RobotStateNode& current_node, int current_node_index,
36 std::vector<RobotStateNode>* output_nodes) const override;
37
38private:
43 void Create1LegLifted(const RobotStateNode& current_node, int current_node_index,
44 std::vector<RobotStateNode>* output_nodes) const;
45
50 void Create2LegLifted(const RobotStateNode& current_node, int current_node_index,
51 std::vector<RobotStateNode>* output_nodes) const;
52
57 void Create3LegLifted(const RobotStateNode& current_node, int current_node_index,
58 std::vector<RobotStateNode>* output_nodes) const;
59
60
61 const HexapodMove next_move_;
62
64 const std::vector<enums::DiscreteLegPos> discrete_leg_pos_list_;
65};
66
67} // namespace designlab
68
69
70#endif // DESIGNLAB_NODE_CREATOR_LEG_HIERARCHY_H_
ノード生成処理のインターフェース.
脚の階層構造を作るためのクラス.
void Create(const RobotStateNode &current_node, int current_node_index, std::vector< RobotStateNode > *output_nodes) const override
現在のノードから次のノード群を生成する.
HexapodMove
ロボットが次にどの動作をするのかを表す列挙体.
グラフ構造のためのノード(頂点).旧名 LNODE