GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
com_candidate_polygon_maker.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_COM_CANDIDATE_POLYGON_MAKER_H_
9#define DESIGNLAB_COM_CANDIDATE_POLYGON_MAKER_H_
10
11#include <array>
12#include <memory>
13#include <vector>
14
15#include "discrete_com_pos.h"
17#include "math_polygon2.h"
18#include "robot_state_node.h"
19
20namespace designlab {
21
34
40 public:
41 static constexpr int kMakePolygonNum = 7;
42
44 const std::shared_ptr<const IHexapodCoordinateConverter>& converter_ptr);
45
51 const RobotStateNode& node,
52 std::array<ComPosAndPolygon, kMakePolygonNum>* output_poly) const;
53
54 private:
57 static constexpr bool kDoCheckPolygon = true;
58
61 void MakeCandidateBox(
62 const std::array<Vector2, HexapodConst::kLegNum>& leg_pos,
63 const int start_leg_num, Polygon2* output_poly) const;
64
67 void MakeCandidateTriangle(
68 const std::array<Vector2, HexapodConst::kLegNum>& leg_pos,
69 ComPosAndPolygon* output) const;
70
74 bool IsAblePolygon(const Polygon2& poly) const;
75
76 const std::shared_ptr<const IHexapodCoordinateConverter> converter_ptr_;
77};
78
79} // namespace designlab
80
81#endif // DESIGNLAB_COM_CANDIDATE_POLYGON_MAKER_H_
重心位置の候補地点を示す多角形を作成するクラス.
static constexpr int kMakePolygonNum
作成する多角形の数.
void MakeCandidatePolygon(const RobotStateNode &node, std::array< ComPosAndPolygon, kMakePolygonNum > *output_poly) const
現在のロボットの状態を表すノードから, 重心位置の候補地点を示す多角形を作成する.
@ kFront
現在の位置より前方にある.
離散化された重心位置とその重心位置を含む多角形の組み合わせを表す構造体.
Polygon2 polygon
重心位置を含む多角形.
bool is_able
重心位置を含む多角形が正しいかどうか.
enums::DiscreteComPos com_pos
離散化された重心位置.
2次元の多角形を表す構造体.
グラフ構造のためのノード(頂点).