探索計畫-天雷系統
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wenchun 0edc477df8 feat(mission): virtual-leader path following + 固定領隊 + barrier
- mission_planner: Leader-Follower 改用 arc-length 參數化(virtual
  leader),_build_center_path 以同心圓弧連接直線段,銳角退化成 hover
  單點並在該點放 rendezvous barrier,避免暴衝與編隊交叉
- mission_planner: rank 改以輸入順序為準,不再對投影排序,避免浮點噪音
  導致 run-to-run leader 漂移
- mission_group / gui: 新增 leader_drone_id 與「領隊」下拉選單,handle_
  route_confirmed 把指定領隊重排到 rank 0,整個縱隊順序固定如軍隊行進
- mission_executor: rendezvous barrier 釋放邏輯、fallback LOITER、send
  retry;加 barrier_timeout 保護
- command_sender / communication / navigation: 配合 setpoint 送達與
  Ros2 bridge 更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3 weeks ago
src feat(mission): virtual-leader path following + 固定領隊 + barrier 3 weeks ago
.gitignore chore: gitignore notes/ 資料夾以收納本地設計筆記 4 weeks ago
.gitmodules Fix geographic_info branch to ros2 5 months ago
README.md chore: 移除無關的模擬資料檔與 README 過時段落 4 weeks ago

README.md

這是天雷系統的專案

===

功能簡介

  1. mavlink 多對多支援平台
  2. 不允許進到 ros 系統有相同 sysid
  3. 假設一台載具上所有 component 共用同一 socket

===

運行環境

專案核心框架

  1. ROS2 Humble
  2. Python 3.8.10

必要相依套件及版本

  • Python [Package] fc_network_adapter

    1. pymavlink -> Version: 2.4.42
    2. conda-forge 中的 pyserial-asyncio
    3. importlib_metadata -> Version: 8.5.0
    4. setuptools -> Version: 58.2.0 (版本太新不行)
    5. pyserial-asyncio [Package] GUI
    6. testresources
    7. websockets
    8. PyQt6
    9. PyQt6-WebEngine
  • ROS2

  1. source ~/ros2_humble/install/setup.bash
  2. geographic_info (https://github.com/ros-geographic-info/geographic_info.git) 已經作為 submodule 放在 external
  3. angles (https://github.com/ros/angles.git) 已經作為 submodule 放在 external
  4. mavros_msgs (https://github.com/mavlink/mavros) 這個專案中的一個資料夾 這邊手動複製的

開發用輔助專案

  1. Gazebo Garden
  2. Ardupilot

===

使用說明

Clone 專案後 請先執行這些指令

# 1.同步 submodule
cd ~/AirTrapMine
git submodule init
git submodule update
# 2. build 需要的 package
colcon build --packages-select angles geographic_msgs
colcon build --packages-select mavros_msgs # 這個依賴前面的
colcon build --packages-select fc_interfaces # 自己定義的

主要專案 fc_network_adapter 請一律在 ~/AirTrapMine/src/ 路徑下 以模組化啟動程式

# 記得先開啟 依賴 Package 到 overlay
. ./install/local_setup.bash
# 範例
cd ~/AirTrapMine/src/ # 這是範例!!!
python -m fc_network_adapter.fc_network_adapter.mainOrchestrator
python -m fc_network_adapter.tests.demo_integration
python -m someotherpkg.src.example_wholeMoving

GUI 介面 在 ~/AirTrapMine/src/GUI 路徑下 直接啟動

cd ~/AirTrapMine/src/GUI
python gui.py

===

資料夾說明

  1. unitdev 為各自協作者做開發時的測試區 01 -> 晉凱(ken) 02 -> 其宇(chiyu) 03 -> 文鈞 04 -> 倫渝
  2. fc_network_adapter (核心) 建立、維護與飛控韌體的連接 構築 mavlink 封包 處理無線模組的通訊格式 (XBee) --同時處理與 Gazebo 的 ardupilot_plugin 溝通的 FDM/JSON 訊息 (移除)--
  3. fc_interfaces (重要) 自定義的 ROS2 介面檔
  4. fc_network_apps 與 fc_network_adapter 銜接做高階功能包裝的應用小程式 利於開發GUI或其他應用 使用者的外層包裝
  5. someotherpkg 如何使用 fc_network_apps 的範例檔案
  6. GUI 由 PyQt6 開發的互動式介面 N. logs 是執行時期的記錄檔

===