# できること
箱庭ドローンシミュレータでは、以下を自動化できます。
* 箱庭シミュレータ内部のコンポーネント(センサや物理モデルなど)のテスト
* ドローン制御プログラムのテスト
* 機体パラメータのチューニング・テスト
# 自動テストシステムのアーキテクチャ
<img width="929" alt="スクリーンショット 2023-12-29 10 59 02" src="https://github.com/toppers/hakoniwa-px4sim/assets/164193/6115dfa5-8cf6-47ff-b6d6-843aca488422">
自動テストシステムは、複数のコンポーネントから構成され、ドローンの動作テスト、機体パラメータのチューニング、ドローン制御プログラムの検証を可能にします。以下の説明は、システムの各コンポーネントとその機能を明確にします。
- **Drone Parameter Generator**:
機体のパラメータをテスト開始時に生成し、テストの各イテレーションで異なる機体特性をシミュレートできるようにします。
- **Test Scenario**:
定義されたテストシナリオを含むドキュメントです。ここには、テストの操作手順が記述されています。
- **Test Scenario Executor**:
テストシナリオに従って、`Hakoniwa` と `PX4` 内部の機体制御プログラムを用いてテストを実行します。
- **Hakoniwa**:
箱庭シミュレーション環境で、テストシナリオに基づきドローンの動作をシミュレートするコンポーネントです。箱庭シミュレーション内部の各種コンポーネント(センサや物理モデルなど)をテストできます。
- **PX4**:
ドローンのフライトコントロールソフトウェアであり、ドローンの飛行を制御します。PX4内部の各種コンポーネント(機体制御プログラム)をテストできます。
- **Logs / LogOutputDirectory**:
テスト実行中に生成される詳細なログファイル(センサモデルや物理モデルの内部ログデータ)で、テスト評価するために利用します。
- **Test Result Evaluator**:
テストの実行結果であるログ情報解析し、成功または失敗の結果を `Test Result` に記録します。
これらのコンポーネントは連携して動作し、柔軟かつ精密なテストを実現します。結果として、開発プロセスが大幅に加速されます。
## Drone Parameter Generator
[機体のパラメータ](https://github.com/toppers/hakoniwa-px4sim/blob/main/hakoniwa/README.md#機体のパラメータ説明)は、[drone_config.py](https://github.com/toppers/hakoniwa-px4sim/blob/main/hakoniwa/python/drone_config.py)で設定できます。
このスクリプトを使用して、指定されたJSONファイル内の値を更新できます。
### 使い方
スクリプトはコマンドラインから次のように実行されます:
```
python drone_config.py <json_file> <path> <new_value>
```
### 引数
- `json_file`: 更新するJSONファイルへのパスを指定します。
- `path`: 更新する要素へのドット区切りパス。例えば、`components.droneDynamics.mass_kg`のように指定します。
- `new_value`: 要素に設定する新しい値。値の型は自動的に元の値の型に合わせて変換されます。
### 値の型変換
プログラムは、新しい値を次のルールに従って適切な型に変換します:
- 整数(`int`)への変換が必要な場合、新しい値は整数に変換されます。
- 浮動小数点数(`float`)への変換が必要な場合、新しい値は浮動小数点数に変換されます。
- 文字列(`str`)への変換が必要な場合、新しい値は文字列に変換されます。
- 真偽値(`bool`)への変換が必要な場合、`"true"`または`"false"`の文字列が真偽値に変換されます。
- JSON配列やオブジェクトなど、その他のデータ型を更新する場合、適切なJSON形式の文字列を使用します(例: `'[0.015, 0.015, 0.03]'`)。
### エラーハンドリング
- もし指定したパスが存在しない場合、プログラムはエラーメッセージを出力します。
- もし指定したキーが存在しない場合、プログラムはエラーメッセージを出力します。
- 型変換に失敗した場合、プログラムはエラーメッセージを出力します。
### 実行例
JSONファイル内の`components.droneDynamics.mass_kg`の値を`1.5`に更新するには、次のコマンドを実行します:
```
python drone_config.py path_to_file.json components.droneDynamics.mass_kg 1.5
```
### 注意
- このスクリプトは、コマンドライン引数として有効なJSONファイルのパスと、更新する要素の有効なパス、そして有効な新しい値が提供されることを前提としています。
- JSONファイルはプログラムによって上書きされます。元のファイルのバックアップを取っておくことを推奨します。
## Test Scenario
テストシナリオは、ドローンの飛行テストを自動化するためにJSON形式で定義されます。各シナリオは、特定の操作とその操作に必要なパラメータを含むオブジェクトのリストです。
### シナリオの形式
テストシナリオは以下の形式で定義します:
```json
{
"scenario": [
{
"operation": "<操作名>",
"param1": <値1>,
"param2": <値2>,
...
},
...
]
}
```
### オペレーション項目
テストシナリオでは、以下のオペレーション項目を設定できます:
* takeoff: ドローンに離陸命令を出します。
* start_landing: ドローンに特定の位置に向かって移動します。
現時点でサポートされているオペレーションは takeoff と start_landing のみです。
#### takeoff
離陸を指示します。
* alt: 離陸後の目標高度。単位はメートル(m)。
* duration_sec: 離陸操作を続ける時間。単位は秒(sec)。
#### start_landing
移動を指示します。
* lat: 初期位置の緯度からの相対位置。単位はメートル(m)。
* lon: 初期位置の経度からの相対位置。単位はメートル(m)。
* alt: 初期位置の高度からの相対位置。単位はメートル(m)。
* duration_sec: 移動操作を続ける時間。単位は秒(sec)。
### 設定例
* [takeoff](https://github.com/toppers/hakoniwa-px4sim/blob/main/px4/auto-test/test_scenario/takeoff.json)
* 離陸指示を出し、5m上昇してホバリングを続けます。20秒経過するとこのオペレーションは終了します。
* [takeoff_and_move.json](https://github.com/toppers/hakoniwa-px4sim/blob/main/px4/auto-test/test_scenario/takeoff_and_move.json)
* 離陸指示を出し、10m上昇してホバリングを続けます。その後、東→北→西→南の順番で10m移動し続けます。各オペレーションは20秒間持続します。
## Test Scenario Executor
このプログラムは、MAVLinkを介してPX4フライトコントローラと通信し、JSON形式で定義されたテストシナリオに基づいてドローンの飛行テストを自動的に実行します。
### プログラムの概要
- テストシナリオ実行プログラムは、3つのJSONファイルを引数として受け取ります:
- コンフィグファイル:MAVLink接続設定が含まれます。
- ドローンコンフィグファイル:ドローンの物理特性やセンサー設定が含まれます。
- テストシナリオファイル:実行する操作のシーケンスが定義されています。
- このプログラムは、シグナルハンドラを使用し�
没有合适的资源?快使用搜索试试~ 我知道了~
毕业设计&课设-PX4兼容的无人机模拟与基于物理的C建模、通过游戏引擎的可视化、无头操作和自动化测试….zip
共220个文件
hpp:70个
cpp:41个
bash:21个
0 下载量 4 浏览量
2024-01-08
22:43:37
上传
评论
收藏 914KB ZIP 举报
温馨提示
matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计&课设-PX4兼容的无人机模拟与基于物理的C建模、通过游戏引擎的可视化、无头操作和自动化测试….zip (220个子文件)
10016_none_iris 804B
hako-start.bash 2KB
run.bash 2KB
run.bash 1KB
run_c++.bash 1KB
auto-test.bash 1KB
run.bash 1KB
run-win.bash 1KB
run-mac.bash 1KB
simstart.bash 654B
build.bash 477B
build.bash 440B
test.bash 420B
run.bash 360B
create-image.bash 350B
rm_ipcs.bash 213B
create-image.bash 210B
pull-image.bash 156B
pull-image.bash 156B
save_csv.bash 135B
run-mac.bash 134B
clean.bash 60B
ctest.c 252B
default-cmake-options.cmake 1KB
default-cmake-options.cmake 1KB
win-cmake-options.cmake 1KB
linux-cmake-options.cmake 1KB
utest.cpp 17KB
body_physics.cpp 13KB
px4_csv_logger.cpp 9KB
mavlink_dump.cpp 9KB
hako_phys.cpp 8KB
aircraft_factory.cpp 8KB
px4_hakoniwa.cpp 8KB
thrust_dynamics_test.cpp 8KB
hako_bypass.cpp 7KB
px4sim_thread_sender.cpp 7KB
mavlink_capture_replay.cpp 7KB
hako_sim.cpp 6KB
mavlink_encoder.cpp 6KB
mavlink_capture.cpp 6KB
tcp_connector.cpp 6KB
px4sim_thread_replay.cpp 5KB
drone_pid_control.cpp 5KB
mag_test.cpp 5KB
drone_control.cpp 4KB
rotor_physics.cpp 4KB
hako_pdu_data.cpp 4KB
px4sim_thread_receiver.cpp 3KB
drone_dynamics_body_frame_rk4.cpp 3KB
drone_dynamics_ground_frame.cpp 3KB
udp_connector.cpp 3KB
gps_test.cpp 3KB
hako_params.cpp 2KB
utils_test.cpp 2KB
drone_dynamics_body_frame.cpp 2KB
mavlink_decoder.cpp 2KB
baro_test.cpp 2KB
acc_test.cpp 2KB
gyro_test.cpp 2KB
px4sim_main.cpp 2KB
px4sim_thread_capture.cpp 2KB
examples.cpp 1KB
rotor_dynamics_test.cpp 1KB
drone_physics_c.cpp 816B
hako_px4_master.cpp 354B
main.cpp 248B
math_and_physics_convertor.cpp 219B
log_comm_hil_sensor.csv 2.84MB
log_comm_hil_actuator_controls.csv 1.23MB
log_comm_hil_gps.csv 208KB
theta_data.csv 36KB
Dockerfile 2KB
Dockerfile 1KB
.gitignore 377B
.gitkeep 0B
.gitkeep 0B
.gitkeep 0B
.gitkeep 0B
.gitkeep 0B
.gitkeep 0B
.gitkeep 0B
.gitkeep 0B
.gitmodules 888B
drone_physics_c.h 729B
drone_primitive_types.hpp 15KB
drone_dynamics_body_frame.hpp 8KB
drone_config.hpp 6KB
drone_dynamics_body_frame_rk4.hpp 6KB
sensor_gps.hpp 5KB
drone_dynamics_ground_frame.hpp 5KB
thrust_dynamics.hpp 4KB
sensor_mag.hpp 4KB
px4_hakoniwa.hpp 4KB
drone_types.hpp 3KB
px4_csv_logger.hpp 3KB
mavlink_io.hpp 3KB
hako_pdu_data.hpp 3KB
sensor_baro.hpp 3KB
body_physics.hpp 3KB
共 220 条
- 1
- 2
- 3
资源评论
白话机器学习
- 粉丝: 1w+
- 资源: 7671
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功