GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
node_creator_leg_up_down_radius.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_RADIUS_H_
9#define DESIGNLAB_NODE_CREATOR_LEG_UP_DOWN_RADIUS_H_
10
11#include <memory>
12#include <vector>
13
14#include "divided_map_state.h"
15#include "hexapod_next_move.h"
20
21namespace designlab {
22
27 public:
29 const DividedMapState& devide_map,
30 const std::shared_ptr<const IHexapodCoordinateConverter>& converter_ptr,
31 const std::shared_ptr<const IHexapodStatePresenter>& presenter_ptr,
32 const std::shared_ptr<const IHexapodPostureValidator>& checker_ptr,
33 HexapodMove next_move);
34
36
37 void Create(const RobotStateNode& current_node, int current_node_index,
38 std::vector<RobotStateNode>* output_graph) const override;
39
40 private:
43 bool IsGroundableLeg(int leg_num, const RobotStateNode& current_node,
44 Vector3* output_ground_pos) const;
45
49 bool IsAbleLegPos(const RobotStateNode& node, int leg_num) const;
50
51 const float
52 kLegMargin;
53
54 const DividedMapState map_;
55
56 const HexapodMove next_move_;
57
58 const std::shared_ptr<const IHexapodCoordinateConverter> converter_ptr_;
59 const std::shared_ptr<const IHexapodStatePresenter> presenter_ptr_;
60 const std::shared_ptr<const IHexapodPostureValidator> checker_ptr_;
61};
62
63} // namespace designlab
64
65#endif // DESIGNLAB_NODE_CREATOR_LEG_UP_DOWN_RADIUS_H_
マップを格子状に分割して管理するクラス.
ノード生成処理のインターフェース.
脚の上げ下げをするエッジ(辺,ノードとノードを繋ぐ物)の処理をするクラス.
void Create(const RobotStateNode &current_node, int current_node_index, std::vector< RobotStateNode > *output_graph) const override
現在のノードから次のノード群を生成する.
HexapodMove
ロボットが次にどの動作をするのかを表す列挙体.
グラフ構造のためのノード(頂点).
3次元の位置ベクトルを表す構造体.