GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
simulation_setting_record.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_SIMULATION_SETTING_RECORD_H_
9#define DESIGNLAB_SIMULATION_SETTING_RECORD_H_
10
11#include <format>
12#include <string>
13#include <vector>
14
15#include "hexapod_next_move.h"
16#include "math_euler.h"
17#include "math_vector3.h"
18#include "string_util.h"
20
21namespace designlab::enums {
22
24
26
27enum class SimulationEndCheckMode : int {
28 kGoalTape,
29 kPosture,
30 kPosition,
31};
32
33} // namespace designlab::enums
34
35namespace designlab {
36
69
71 using enum enums::MapCreateMode;
72 using enum enums::RobotOperateMode;
74 using enum HexapodMove;
75
77 "シミュレーションを行う際の設定はこのファイルで設定します.");
78
80 "Map", "マップについての設定です.", "EndChecker",
81 "終了条件についての設定です.", "RobotOperator",
82 "ロボットの操作方法の設定です.");
83
85 map_create_mode, "Map",
86 std::format(
87 "マップの作成方法を設定します.( \"{}\" )",
90 simulation_map_param_file_name, "Map",
91 std::format("マップの作成方法がシミュレーション専用マップを出力するモード"
92 " ( {} ) の場合,マップのパラメータを記述した toml "
93 "ファイルの名前を設定します.",
96 map_file_name, "Map",
97 std::format("マップの作成方法がファイルから読み込むモード ( {} ) の場合,"
98 "マップの csvファイルの名前を設定します.",
100
102 end_check_mode, "EndChecker",
103 std::format(
104 "どのような方法で終了させるかを設定します.( \"{}\" )",
106 "\" / \"")));
108 goal_tape_position_x, "EndChecker",
109 std::format("終了条件がゴールテープに到達したか ( {} ) の場合,"
110 "ゴールテープのx座標を設定します.[mm]",
113 target_posture, "EndChecker",
114 std::format("終了条件が目標姿勢となったか ( {} ) の場合,"
115 "目標の姿勢(xyzオイラー角)を設定します.[deg]",
118 target_posture_allowable_error_deg, "EndChecker",
119 std::format("終了条件が目標姿勢となったか ( {} ) の場合,"
120 "目標の姿勢の角度の許容誤差を設定します.[deg]",
123 target_position, "EndChecker",
124 std::format("終了条件が目的の座標に到達したか ( {} ) の場合,"
125 "目標の座標を設定します.[mm]",
128 target_position_allowable_error, "EndChecker",
129 std::format("終了条件が目的の座標に到達したか ( {} ) の場合,"
130 "目標の座標の許容誤差を設定します.[mm]",
132
134 operate_mode, "RobotOperator",
135 std::format(
136 "ロボットの操作方法を設定します.( \"{}\" )",
139 fixed_operate_file_name, "RobotOperator",
140 std::format("ロボットの操作方法が固定 ( {} ) の場合,"
141 "その操作方法を指定するファイルを設定します.",
145 path_points, "RobotOperator",
146 std::format(
147 "ロボットの操作方法がパス ( {} ) の場合,そのパスを設定します.",
149
151 initial_positions, "Initial",
152 "シミュレーション開始時のロボットの位置を設定します.[mm]."
153 "地面にめり込んでいる場合には機能しないため,注意すること.");
155 initial_posture, "Initial",
156 "シミュレーション開始時のロボットの姿勢を設定します.[deg]."
157 "地面にめり込んでいる場合には機能しないため,注意すること.");
159 initial_move, "Initial",
160 std::format(
161 "シミュレーション開始時のロボットの歩容を設定します.( \"{}\" )",
163};
164
165} // namespace designlab
166
168 simulation_map_param_file_name, map_file_name,
169 end_check_mode, goal_tape_position_x, target_posture,
170 target_posture_allowable_error_deg, target_position,
171 target_position_allowable_error, operate_mode,
172 fixed_operate_file_name, path_points,
173 initial_positions, initial_move, initial_posture);
174
175#endif // DESIGNLAB_SIMULATION_SETTING_RECORD_H_
@ kPosture
姿勢が一定の範囲内に収まっているかどうか.
@ kGoalTape
ゴールテープに到達したかどうか.
@ kPosition
目的の座標に到達したかどうか.
std::string EnumToStringRemoveTopK(const T &enum_value)
enumを文字列に変換する関数. Google C++ coding style だと enumの要素は 先頭にkをつけてキャメルケースで書くことが推奨されている....
Definition string_util.h:52
std::string EnumValuesToString(const std::string separator)
enum型を渡すと,その要素を列挙した文字列を返す関数.
Definition string_util.h:72
HexapodMove
ロボットが次にどの動作をするのかを表す列挙体.
@ kComMove
重心の平行移動.Center Of Massで重心のこと.
XYZオイラー角を用いた回転を表す構造体.
Definition math_euler.h:30
enums::SimulationEndCheckMode end_check_mode
3次元の位置ベクトルを表す構造体.
#define DESIGNLAB_TOML11_SERIALIZE(NAME,...)
tomlファイルのシリアライズ/デシリアライズを行うためのマクロ. TOML11_DEFINE_CONVERSION_NON_INTRUSIVEをラッパしたもの....
#define DESIGNLAB_TOML11_DESCRIPTION_CLASS(CLASS)
tomlファイルに説明を追加するためのクラスの宣言を行うためのマクロ.
#define DESIGNLAB_TOML11_VARIABLE_ADD_DESCRIPTION(VARIABLE, TABLE, DESCRIPTION)
tomlファイルに変数とファイルの説明を追加するためのマクロ.
#define DESIGNLAB_TOML11_TABLE_ADD_DESCRIPTION(...)
tomlファイルにテーブルの説明を追加するためのマクロ. DESIGNLAB_TOML11_DESCRIPTION_CLASS内に必ず記述する必要がある.
#define DESIGNLAB_TOML11_FILE_ADD_DESCRIPTION(DESCRIPTION)
tomlファイルにファイルの説明を追加するためのマクロ. DESIGNLAB_TOML11_DESCRIPTION_CLASS内に必ず記述する必要がある.