GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
node_creator_com_move.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_COM_MOVE_H_
9#define DESIGNLAB_NODE_CREATOR_COM_MOVE_H_
10
11#include <memory>
12#include <vector>
13
15#include "com_selector.h"
16#include "divided_map_state.h"
21#include "math_polygon2.h"
22
23
24namespace designlab
25{
26
29class NodeCreatorComMove final : public INodeCreator
30{
31public:
33 const DividedMapState& devide_map,
34 const std::shared_ptr<const IHexapodCoordinateConverter>& converter_ptr,
35 const std::shared_ptr<const IHexapodStatePresenter>& presenter_ptr,
36 const std::shared_ptr<const IHexapodPostureValidator>& checker_ptr,
37 HexapodMove next_move);
38
40
41 void Create(const RobotStateNode& current_node, int current_num,
42 std::vector<RobotStateNode>* output_graph) const override;
43
44
45private:
47 const ComCandidatePolygonMaker maker_;
48
49 const ComSelector selector_;
50
51 const DividedMapState map_;
52 const HexapodMove next_move_;
53
54 const std::shared_ptr<const IHexapodCoordinateConverter> converter_ptr_;
55 const std::shared_ptr<const IHexapodStatePresenter> presenter_ptr_;
56 const std::shared_ptr<const IHexapodPostureValidator> checker_ptr_;
57};
58
59} // namespace designlab
60
61
62#endif // DESIGNLAB_NODE_CREATOR_COM_MOVE_H_
重心位置の候補地点を示す多角形を作成するクラス.
重心の候補領域から重心位置を選択するクラス.
マップを格子状に分割して管理するクラス.
ノード生成処理のインターフェース.
波東さんの手法で重心の平行移動を行うクラス.
void Create(const RobotStateNode &current_node, int current_num, std::vector< RobotStateNode > *output_graph) const override
現在のノードから次のノード群を生成する.
HexapodMove
ロボットが次にどの動作をするのかを表す列挙体.
グラフ構造のためのノード(頂点).旧名 LNODE