GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
node_creator_leg_up_down_2d.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_UP_DOWN_2D_H_
9#define DESIGNLAB_NODE_CREATOR_LEG_UP_DOWN_2D_H_
10
11#include <memory>
12#include <vector>
13
14#include "discrete_leg_pos.h"
15#include "divided_map_state.h"
16#include "hexapod_next_move.h"
21
22namespace designlab {
23
29 public:
31 const DividedMapState& devide_map,
32 const std::shared_ptr<const IHexapodCoordinateConverter>& converter_ptr,
33 const std::shared_ptr<const IHexapodStatePresenter>& presenter_ptr,
34 const std::shared_ptr<const IHexapodPostureValidator>& checker_ptr,
35 HexapodMove next_move);
36
38
39 void Create(const RobotStateNode& current_node, int current_node_index,
40 std::vector<RobotStateNode>* output_graph) const override;
41
42 private:
51 bool IsGroundableLeg(int leg_num, const RobotStateNode& current_node,
52 Vector3* output_ground_pos) const;
53
57 bool IsAbleLegPos(const RobotStateNode& node, int leg_num) const;
58
59 DiscreteLegPos ConvertTo2D(DiscreteLegPos leg_pos) const;
60
61 const float
62 kLegMargin;
63
64 const DividedMapState map_;
65
66 const HexapodMove next_move_;
67
68 const std::shared_ptr<const IHexapodCoordinateConverter> converter_ptr_;
69 const std::shared_ptr<const IHexapodStatePresenter> presenter_ptr_;
70 const std::shared_ptr<const IHexapodPostureValidator> checker_ptr_;
71};
72
73} // namespace designlab
74
75#endif // DESIGNLAB_NODE_CREATOR_LEG_UP_DOWN_2D_H_
マップを格子状に分割して管理するクラス.
ノード生成処理のインターフェース.
脚の上げ下げをするエッジ(辺,ノードとノードを繋ぐ物)の処理をするクラス.
void Create(const RobotStateNode &current_node, int current_node_index, std::vector< RobotStateNode > *output_graph) const override
現在のノードから次のノード群を生成する.
DiscreteLegPos
離散化された脚位置を表す列挙体. 先行研究では 1~7の int型の数値で表現されているが, 可読性を上げるために列挙体にした. 離散化された脚位置は 3bit (0 ~ 7)の範囲で表現される...
HexapodMove
ロボットが次にどの動作をするのかを表す列挙体.
グラフ構造のためのノード(頂点).
3次元の位置ベクトルを表す構造体.