8#ifndef DESIGNLAB_SIMULATION_SETTING_RECORD_H_
9#define DESIGNLAB_SIMULATION_SETTING_RECORD_H_
77 std::vector<Vector3>
path_points{ {0, 0, 0}, { 1000, 0, 0 } };
96 "シミュレーションを行う際の設定はこのファイルで設定します.");
99 "Map",
"マップについての設定です.",
100 "EndChecker",
"終了条件についての設定です.",
101 "RobotOperator",
"ロボットの操作方法の設定です.");
104 std::format(
"マップの作成方法を設定します.( \"{}\" )",
107 std::format(
"マップの作成方法がシミュレーション専用マップを出力するモード"
108 " ( {} ) の場合,マップのパラメータを記述した toml ファイルの名前を設定します.",
111 std::format(
"マップの作成方法がファイルから読み込むモード ( {} ) の場合,"
112 "マップの csvファイルの名前を設定します.",
116 std::format(
"どのような方法で終了させるかを設定します.( \"{}\" )",
119 std::format(
"終了条件がゴールテープに到達したか ( {} ) の場合,"
120 "ゴールテープのx座標を設定します.[mm]",
123 std::format(
"終了条件が目標姿勢となったか ( {} ) の場合,"
124 "目標の姿勢(xyzオイラー角)を設定します.[deg]",
127 std::format(
"終了条件が目標姿勢となったか ( {} ) の場合,"
128 "目標の姿勢の角度の許容誤差を設定します.[deg]",
131 std::format(
"終了条件が目的の座標に到達したか ( {} ) の場合,"
135 std::format(
"終了条件が目的の座標に到達したか ( {} ) の場合,"
136 "目標の座標の許容誤差を設定します.[mm]",
140 std::format(
"ロボットの操作方法を設定します.( \"{}\" )",
143 std::format(
"ロボットの操作方法が固定 ( {} ) の場合,"
144 "その操作方法を指定するファイルを設定します.",
147 std::format(
"ロボットの操作方法がパス ( {} ) の場合,そのパスを設定します.",
151 "シミュレーション開始時のロボットの位置を設定します.[mm]."
152 "地面にめり込んでいる場合には機能しないため,注意すること.");
154 "シミュレーション開始時のロボットの姿勢を設定します.[deg]."
155 "地面にめり込んでいる場合には機能しないため,注意すること.");
157 std::format(
"シミュレーション開始時のロボットの歩容を設定します.( \"{}\" )",
166 map_create_mode, simulation_map_param_file_name, map_file_name,
167 end_check_mode, goal_tape_position_x, target_posture, target_posture_allowable_error_deg,
168 target_position, target_position_allowable_error,
169 operate_mode, fixed_operate_file_name, path_points,
170 initial_positions, initial_move, initial_posture);
@ kPosture
姿勢が一定の範囲内に収まっているかどうか.
@ kGoalTape
ゴールテープに到達したかどうか.
@ kPosition
目的の座標に到達したかどうか.
@ kForGloabalPathGenerate
std::string EnumToStringRemoveTopK(const T &enum_value)
enumを文字列に変換する関数. Google C++ coding style だと enumの要素は 先頭にkをつけてキャメルケースで書くことが推奨されている. 例えば,
std::string EnumValuesToString(const std::string separator)
enum型を渡すと,その要素を列挙した文字列を返す関数.
HexapodMove
ロボットが次にどの動作をするのかを表す列挙体.
@ kComMove
重心の平行移動.Center Of Massで重心のこと.
std::vector< Vector3 > path_points
std::string map_file_name
enums::MapCreateMode map_create_mode
float target_position_allowable_error
enums::SimulationEndCheckMode end_check_mode
std::string fixed_operate_file_name
Vector3 initial_positions
float target_posture_allowable_error_deg
std::string simulation_map_param_file_name
enums::RobotOperateMode operate_mode
float goal_tape_position_x
#define DESIGNLAB_TOML11_SERIALIZE(NAME,...)
tomlファイルのシリアライズ/デシリアライズを行うためのマクロ. TOML11_DEFINE_CONVERSION_NON_INTRUSIVEをラッパしたもの. もともとのほうでは enum型...
#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内に必ず記述する必要がある.