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
22
23namespace designlab
24{
25
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_node_index,
42 std::vector<RobotStateNode>* output_graph) const override;
43
44private:
53 bool IsGroundableLeg(int leg_num, const RobotStateNode& current_node,
54 Vector3* output_ground_pos) const;
55
59 bool IsAbleLegPos(const RobotStateNode& node, int leg_num) const;
60
61 enums::DiscreteLegPos ConvertTo2D(enums::DiscreteLegPos leg_pos) const;
62
63 const float kLegMargin;
64
65 const DividedMapState map_;
66
67 const HexapodMove next_move_;
68
69 const std::shared_ptr<const IHexapodCoordinateConverter> converter_ptr_;
70 const std::shared_ptr<const IHexapodStatePresenter> presenter_ptr_;
71 const std::shared_ptr<const IHexapodPostureValidator> checker_ptr_;
72};
73
74} // namespace designlab
75
76
77#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
ロボットが次にどの動作をするのかを表す列挙体.
グラフ構造のためのノード(頂点).旧名 LNODE
3次元の位置ベクトルを表す構造体.