-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
🔄 synced local 'docs/ai' with remote 'docs'
- Loading branch information
Showing
3 changed files
with
107 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
# 2024-08-16 | ||
|
||
## パッケージ巡礼 | ||
|
||
### 3rdparty/closest_point_vendor | ||
|
||
Boost.Geometryの拡張機能。最近傍点を求めるために使っている。 | ||
ビルドにはインターネット接続が必要。 | ||
|
||
### 3rdparty/matplotlib_cpp_17_vendor | ||
|
||
matplotlibのC++ラッパー。無印のmatplotlib-cppとは別物で高機能。 | ||
今は使っていないが、軽いデバッグに便利 | ||
|
||
### consai_ros2/robocup_ssl_msgs | ||
|
||
<https://github.com/SSL-Roots/consai_ros2> | ||
|
||
SSL公式のprotoメッセージをROS2で使えるようにしたもの。 | ||
GameEvent関連は移植されていない。 | ||
|
||
### consai_ros2/robocup_ssl_comm | ||
|
||
- game_controller | ||
- grsim | ||
- ロボットコマンドを送信したり、ボールやロボット位置の配置指示 | ||
- robot_status | ||
- grsim上のロボット状態を受信 | ||
- vision | ||
|
||
### consai2_examples/consai_vision_tracker | ||
|
||
EKFでVisionデータをフィルタリングして、使いやすいようにするパッケージ | ||
|
||
### crane_world_model_publisher | ||
|
||
SSL関連のデータをすべて集めたトピックである`/world_model`を配信するパッケージ | ||
これをすることで、他のノードは`/world_model`だけを購読すればよくなる | ||
|
||
### utility/crane_msg_wrappers | ||
|
||
world_model_wrapperは、world_modelの情報を使って、よく使う幾何学計算をまとめたもの | ||
|
||
### utility/crane_basics | ||
|
||
基礎的な幾何学計算などを集めたパッケージ | ||
|
||
- ボールの接触時間を計算するための時系列計算を行う機能(ball_contact) | ||
- WorldModelWrapperのための構造体(robot_info, ball_info) | ||
- Boost.GeometryでEigenのPosition型をネイティブに扱えるようにするための設定(eigen_adapter) | ||
- <https://hans-robo.hatenablog.com/entry/2019/09/26/010359> | ||
- PID制御器(pid_controller) | ||
- 基礎的な幾何学計算(geometry_operations) | ||
- 角度の正規化など角度の不連続性を無視して計算できる関数など | ||
- 区間計算(interval) | ||
- Boostに類似機能があるのでそっちに移行してもいいかも | ||
- 最適割当問題のソルバー(position_assignments) | ||
- ハンガリアン法を実装している | ||
- 複数ロボットの割当を行うときに使っている(defense_plannerなど) | ||
- 最適割当ではないような場面も見るのでバグがあるかも? | ||
- <https://github.com/ibis-ssl/crane/issues/224> | ||
- 移動時間計算(travel_time) | ||
- 台形加速を考慮したロボットの移動時間を計算する | ||
- テストも実装してある(test/test.cpp) | ||
- ボールモデルの計算 | ||
- 等減速度直線運動を仮定したボール軌道の計算 | ||
- TDPにちゃんとしたボールモデルがあったりするので将来的には実装したい | ||
- <https://github.com/ibis-ssl/crane/issues/434> | ||
|
||
## スキル作るにあたってやること | ||
|
||
### スキルクラスを実装する | ||
|
||
- update関数 | ||
- print関数 | ||
|
||
### SimpleAIに登録する | ||
|
||
- crane_robot_skills/skills.hppに作ったスキルのヘッダファイルを追加 | ||
- crane_simple_ai/crane_commander.cppでスキルを登録 | ||
- setUpSkillDictionary関数で登録 | ||
|
||
### 対応するPlannerを作る | ||
|
||
実際の動きに組み込むためには、Plannerを作る必要がある。 | ||
|
||
- crane_planner_pluginsに作る | ||
- Skill単体のPlannerはskill_planner.hppに実装することが多い | ||
|
||
### Plannerの登録 | ||
|
||
crane_planner_plugins/planners.hppに文字列とPlannerのペアを登録する | ||
|
||
## SimpleAIとgrSim |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters