機械臂
五個串聯關節
伺服模式每次將一個關節移到絕對角度,由學習者自己計角度。認證 Cutter Grid 練習係例外:固定世界座標移動會喺執行前經確定性逆向運動學編譯。
| Joint | Axis | Range | Initial | Speed |
|---|---|---|---|---|
| 底座偏航baseYaw | X | 30° … 150° | 90° | 60°/s |
| 肩部滾轉(只限模擬)shoulderRoll | — | -45° … 45° | 0° | 45°/s |
| 肩關節shoulder | Y | 30° … 150° | 90° | 45°/s |
| 手肘關節elbow | Z | 17.5° … 162.5° | 90° | 60°/s |
| 手腕關節wrist | B | 0° … 180° | 90° | 75°/s |
X、Y、Z、B 軸同停放嘅刀具軸 E 都由韌體 Home 值 90° 開始。Shoulder Roll 只喺模擬器入面存在,初始值係 0°。幾何偏移會將呢個硬件狀態映射成一個安全顯示姿態,冇隱藏嘅第二個初始姿態。
積木
三種伺服積木,加上認證 Cutter Grid 移動
伺服模式使用角度、等待同重複積木。Cutter Grid 練習加入六個固定世界方向同整數距離。Blockly 輸出經驗證嘅 Program IR,唔係 JavaScript;規劃器會喺重播前凍結確定性關節軌跡。
set <joint> to <angle>°
將一個關節郁到絕對角度。可用關節由挑戰定義,超出範圍嘅角度會喺運行前被拒絕。
wait <ms>
保持目前姿態,可以設定 0 至 5000 毫秒。
repeat <n> times
將入面嘅積木重複 1 至 20 次。循環只計一個積木,唔係 n 個,所以可以大幅提高效率分數。
頭部安全距離
拒絕危險動作,唔使等到撞咗先停
頭部唔係體素,亦都剪唔到。模擬器執行命令之前,會連續掃掠工具路徑同頭部幾何體做檢查。呢個係幾何約束,所以快速移動都唔會穿過容差。
如果掃掠偵測到接觸,運行會停喺最後一個安全姿態,並標示引起問題嘅積木;模擬器之後會進入可以復原嘅錯誤狀態。畫面唔會收埋修正:機械臂一停,介面就會指出邊一個積木引起問題。
日誌顯示嘅內容
12:04:31 開始運行 · 挑戰 neat-short-haircut
12:04:31 shoulderRoll → 15°
12:04:32 shoulder → 72°
12:04:33 手肘關節 → 10° 被拒絕 · 頭部淨空不足 · 保持最後安全姿態
12:04:33 狀態 → 錯誤(可以復原)· 積木 3
評分
分數點樣組成
三個子分數都限制喺 0–100,再按固定權重合併。介面顯示一位小數,內部計算保留完整精度。
完成度
×0.60|Target ∩ Result| / |Target ∪ Result| × 100
用目標髮型計算體素 IoU。剪多同剪少扣分一樣。
效率
×0.25min(100, ReferenceProgramCost / ProgramCost × 100)
程式成本係來源積木數,再加每條已執行指令 0.25。用循環會比逐條寫出相同動作更省。
時間
×0.15min(100, ReferenceTimeMs / EstimatedDurationMs × 100)
時間按關節行程同速度估算,唔會用瀏覽器實測。電腦慢唔會令你失分。
最終分數
0.60 × Completion + 0.25 × Efficiency + 0.15 × Time
如果提供者畀嘅權重加埋唔等於 1,模擬器會清楚報錯,唔會靜靜將佢標準化。
校準基準:俐落短髮
起始程式完成任務最少有 80 分,同時刻意留低改進空間。做到同佢一樣唔代表已經到頂。
控制
運行程式
- 運行
- 由挑戰嘅初始狀態開始運行。
- 暫停/繼續
- 暫停再重新計時,機械臂姿態唔會變。
- 單步
- 喺閒置或者暫停狀態,只運行一條原子命令。
- 停止
- 結束運行但唔記錄分數,面板只顯示暫時計算嘅完成度。
- 重設
- 將模擬恢復到初始狀態,同時保留程式。
- 測試
- 用同一個引擎喺背景評估程式,幾毫秒內得到相同結果。
如實講
仲未整好嘅功能
而家講清楚限制,總好過上堂先至發現。
- 帳號同工作區儲存
- 認證 Cutter Grid 規劃器以外嘅通用執行期逆向運動學
- 剪刀驅動或者物理引擎
- 真實髮絲(模擬器用體素)
- 機械人自碰撞
- 專用流動版
- 應用程式內 MQTT 傳輸(已有規格,仲未接入)
- 登入同經驗證嘅玩家身分
問題
常見問題
- 要唔要買機械人?
- 唔需要。模擬器本身就係產品,可以直接喺瀏覽器運行。實體機械臂確實存在,韌體亦已開源,但教學唔依賴實體設備。
- 支援咩裝置?
- 請喺桌面電腦用 Chrome 或 Edge,建議解像度至少 1280×720。3D 工作台要用鍵盤同指標裝置,目前冇專用流動版。
- 學生可唔可以改分數作弊?
- 對戰回合會喺伺服器重播程式,並以伺服器評分為準。瀏覽器回報嘅結果唔會直接信任;執行時間按關節行程計算,唔係實際量度,所以裝置快慢唔會影響分數。
- 機械人會唔會撞到個頭?
- 唔會。頭部安全距離由連續掃掠幾何檢查保證,唔係靠有容差嘅物理模擬。檢測到接觸時,機械臂會停喺最後安全姿態,再進入可恢復錯誤狀態。
- 要唔要帳號?
- 單人練習唔使帳號。帳號同工作區儲存仲未整好;下面列出其他待完成功能。
- 個項目整好未?
- 公開網頁客戶端同 Rust API 已部署。伺服流程、Cutter Grid 練習同課程、單人同對戰模式都可以使用,並通過 Chrome 同 Edge 驗收。帳號、儲存工作區、應用程式端 MQTT 同專用流動裝置支援暫未實作。