這個頁面把倉庫裡的三個模型搬到瀏覽器上直接執行:有限頻寬下的多機器人探索、 通訊延遲造成的航位偏差、以及 LiDAR 串流的鏈路預算。所有數字都來自同一組固定種子, 可用倉庫內的 Python 腳本逐位元重現。
一條從實體訊號到系統決策的資訊流,以及沿路上每個環節的取捨。
src/:perception / mapping / planning / control / comms 五個節點群,含 cpp 控制器與 urdf 底盤描述tools/coverage_model.py(探索)、analysis/(延遲、鏈路預算、更新率)report/report.tex,本頁「報告」分頁為其可讀版本docs/design_overview.md、sensing_pipeline.md、comms_architecture.mdros2 launch 的執行紀錄。兩台機器人在 40×40 網格上探索,比較「整張地圖上傳」與「只傳變化格」的覆蓋率差距。可互動、可重跑。
命令往返延遲 τ 與速度 v 造成 v·τ 的航位偏差;找出 0.1 m 容許值下的延遲上限。
原始 / 降採樣 / 差異更新三種資料流的頻寬需求,以及在給定頻寬下可達到的更新率。
假設情境:兩台地面機器人、一台邊緣伺服器、共享一條上傳鏈路。地圖為 40×40 佔據網格,兩台機器人分別從自由空間的固定比例位置出發。
由 tools/coverage_model.py 在同一組種子下產生,瀏覽器版本必須逐位元一致。
| 設定 | 每步預算 | 最終覆蓋率 | 傳輸格數總計 |
|---|
預算低於「機器人學到新格的速度」時,伺服器地圖會落後且無法追上。
若命令在往返延遲 τ 之後才生效,機器人已偏離當初計算命令時的位置約 v·τ。
| 速度 v | v·τ @ τ | τ 上限 (0.1 m) |
|---|
三種資料表示法在相同感測器下的上傳需求,以及在給定可用頻寬下能維持的更新率。
| 資料流 | @10 Hz | 目前頻寬下可達 |
|---|
analysis/plot_bandwidth_vs_update_rate.py 的線性模型:需求 = base × rate / 10,可達更新率取需求不超過頻寬的最大整數值,上限 30 Hz。
《From Signal to System: The Intersection of Communications, Sensing, and Robotic Navigation》——把八個環節串成一條資訊流,並以一個假設情境收尾。
C = C_local(λ) + C_comm(λ) + C_edge(λ)三個模型都可以只用 Python 重跑;本頁的 JavaScript 實作與 Python 在同一組種子下必須輸出相同數字。
git clone https://github.com/TeWei02/From-Signal-to-System cd From-Signal-to-System python3 -m pip install numpy # 只有 coverage_model 需要 python3 tools/coverage_model.py # 印出探索模型結果與檢查碼 python3 tools/build_web_data.py # 重新產生 docs/data/reference.json jsc tools/verify_engine.js # macOS 內建 JavaScriptCore,逐位元比對瀏覽器引擎
下方表格由本頁的 engine.js 當場重算,再與 docs/data/reference.json 的已提交數值比較,容差 1e-9。
| 檢查項目 | 結果 | 樣本數 |
|---|---|---|
| 檢查中… | ||
src/ 下的節點、套件描述與 URDF 是 ROS 2 工作區的骨架:介面、話題與節點職責已定義,但沒有在本機或任何 CI 環境中啟動過。
因此倉庫不提供 colcon build 的成功紀錄、不提供 Gazebo 世界檔、也不宣稱節點可在特定 ROS 2 版本上執行。
要在真實環境重現,需要自備 ROS 2 發行版、Gazebo 與對應的感測器外掛。