forked from p-robotics-hub/burger_war_dev
-
Notifications
You must be signed in to change notification settings - Fork 6
seigot edited this page Nov 7, 2021
·
27 revisions
p-robotics-hub/burger_war_devが提供するロボコン競技に向けて開発した、本リポジトリの内容について記載する。
本ページの目次は以下の通り。
- 前提条件
- 全体設計
- 基本機能
- 特に工夫しているポイント
- 自動評価
- 今後の課題
本リポジトリに実装している機能は以下を前提としている。
- ubuntu18.04/ROS melodic環境であること。
-
rulebook記載のルール下で勝利する事を目的としていること。
これらの前提が変更になった場合、変更内容に応じたバージョンアップが必要となる。
- 起動処理
- 走行
- 敵機検出
- 安定化
-
起動処理
- 初期化
- ゲーム状態の管理
-
走行
- 自律走行アルゴリズム
- パラメータ
- 地図
- ルート
-
敵機検出
- LIDARによる敵検出(obstacle detector)
- お見合い対策
- 画像処理
-
安定化
- 衝突回避
- 走行ルート選択効率化
-
memo
■入力
tf: 自己位置
enemy_position: 敵っぽいものの座標情報(LIDARから点群を取得して、そこから敵位置)
scan: LIDARの点群(前方の障害物衝突回避の為)
■出力
move base
- LIDAR,障害物のコストマップ
- コストマップから経路を引く global plannerはこちら/open source
- どんな速度、角速度を出すか local plannerはこちら/
-
- いわゆるmain node。戦略を司る。
- Subscribe topic (IN)
- /tf: 座標情報
- /scan: Lidar
- /move_base/status: move_baseを使った移動が完了したかどうかの情報
- /enemy_position: 敵位置
- Publish topic (OUT)
- /move_base/goal: 移動先座標を指定(BASIC状態)
- /move_base/cancel: move_baseを使った移動をcancelする(DEFENCE/ATTACK/ESCAPE状態)
- /cmd_vel: 移動量を直接指定(DEFENCE/ATTACK/ESCAPE状態)
- 状態遷移
- BASIC: 敵を見つけていない場合、もしくは遠い場合。
- DEFENCE: 敵が近くにいて、得点が勝っている場合。
- ATTACK: 敵が近くにいて、得点が負けている場合。
- ESCAPE: 敵が近くにいて、得点が負けている場合。
- ATTACKかESCAPEかはrosparam(enable_escape_approach)で決める
-
- move_baseのlocal planner pluginとして実装されている
- defaultで使用されるOSSのlocal plannerは、大きく迂回してしまう課題があったため、 global plannerが生成する経路に比較的忠実に沿って動くlocal plannerを自作した
-
- obstacle_trackerが検出した障害物から、既知の障害物を除いて敵っぽい物体を選別
- Subscribe topic (IN)
- /obstacles: obstacle_tracker nodeが検出した障害物
- Publish topic (OUT)
- /enemy_position: 敵の位置情報
-
基本機能 T.B.D
-
特に工夫しているポイント T.B.D
-
自動評価 T.B.D