部署實(shí)戰(zhàn):機(jī)械臂抓取試管從能推理到能干活)
1. 為什么第二節(jié)才是真機(jī)部署的真正分水嶺很多人看這類(lèi)部署教程第一節(jié)講環(huán)境、講依賴、講模型下載跟著敲一遍命令終端里沒(méi)報(bào)紅字就覺(jué)得自己已經(jīng)跑通了。我當(dāng)初也是這么想的結(jié)果到了第二節(jié)——也就是真正把策略網(wǎng)絡(luò)接到物理機(jī)械臂上、讓它端到端輸出動(dòng)作的那一刻——才發(fā)現(xiàn)前面那些都只是熱身。第一節(jié)你面對(duì)的是一個(gè)靜態(tài)的推理腳本輸入一張圖、輸出一串?dāng)?shù)字錯(cuò)了重跑就行第二節(jié)你面對(duì)的是一臺(tái)會(huì)動(dòng)、會(huì)撞、會(huì)把試管摔碎的物理設(shè)備任何一次坐標(biāo)系的錯(cuò)位、任何一幀觀測(cè)的延遲都會(huì)以啪的一聲真實(shí)地反饋給你。這一節(jié)的核心任務(wù)是把一個(gè)視覺(jué)-語(yǔ)言-動(dòng)作VLA模型從能推理推進(jìn)到能干活。具體到我們這個(gè)場(chǎng)景就是讓機(jī)械臂完成抓取試管并放入指定試管架孔位這個(gè)動(dòng)作。聽(tīng)起來(lái)簡(jiǎn)單但真機(jī)部署里 80% 的坑都集中在這一步。我前后折騰了大概兩周摔碎過(guò)三根試管后來(lái)?yè)Q成塑料的才敢繼續(xù)才把整條鏈路穩(wěn)定下來(lái)。這篇就把第二節(jié)里那些文檔不會(huì)寫(xiě)、但你必須知道的東西按我實(shí)際踩坑的順序講清楚。先明確這一節(jié)你要達(dá)成的目標(biāo)狀態(tài)機(jī)械臂上電后相機(jī)持續(xù)采集畫(huà)面VLA 模型以固定頻率接收觀測(cè)并輸出末端執(zhí)行器的目標(biāo)位姿或關(guān)節(jié)增量底層控制器執(zhí)行動(dòng)作機(jī)械臂完成一次完整的抓取-放置循環(huán)且這個(gè)循環(huán)能連續(xù)重復(fù)而不發(fā)散。注意最后半句不發(fā)散才是真機(jī)部署和仿真最大的區(qū)別仿真里策略偶爾抽風(fēng)無(wú)所謂真機(jī)上抽風(fēng)就是事故。適合讀這篇的人已經(jīng)完成第一節(jié)環(huán)境搭建、模型能在離線數(shù)據(jù)上跑出合理動(dòng)作的開(kāi)發(fā)者或者正在做具身智能相關(guān)項(xiàng)目、準(zhǔn)備把策略上真機(jī)的同學(xué)。如果你連第一節(jié)都沒(méi)過(guò)建議先回去把推理鏈路跑通否則這一節(jié)的內(nèi)容你會(huì)看得云里霧里。2. 上電之前必須鎖死的三件事坐標(biāo)系、頻率、安全邊界真機(jī)部署最忌諱的就是先跑起來(lái)再說(shuō)。我見(jiàn)過(guò)太多人一上電就急著讓機(jī)械臂動(dòng)結(jié)果第一下就撞到限位。第二節(jié)開(kāi)始前有三件事必須在紙面上、代碼里都確認(rèn)清楚它們決定了后面所有調(diào)試是否有意義。2.1 坐標(biāo)系對(duì)齊手眼標(biāo)定沒(méi)做對(duì)后面全是白費(fèi)VLA 模型輸出的動(dòng)作通常是相對(duì)于某個(gè)參考坐標(biāo)系的位姿或增量。這個(gè)參考系可能是相機(jī)系、基座系、或者末端工具系取決于你訓(xùn)練數(shù)據(jù)是怎么標(biāo)的。真機(jī)部署第一步就是讓模型輸出的坐標(biāo)系和機(jī)械臂實(shí)際執(zhí)行的坐標(biāo)系嚴(yán)格對(duì)齊。我們用的是眼在手外eye-to-hand的配置相機(jī)固定在支架上俯視工作臺(tái)。這種情況下必須做手眼標(biāo)定求出相機(jī)系到機(jī)械臂基座系的變換矩陣。標(biāo)定方法我用的是經(jīng)典的棋盤(pán)格 多組位姿求解具體流程不展開(kāi)但有幾個(gè)坑必須提醒標(biāo)定點(diǎn)要覆蓋整個(gè)工作空間不能只在中心區(qū)域采幾組。我第一輪只在試管架附近標(biāo)定結(jié)果機(jī)械臂一移到邊緣區(qū)域抓取位置就偏了兩三厘米試管直接抓空。標(biāo)定完成后一定要做驗(yàn)證讓機(jī)械臂末端去觸碰工作臺(tái)上幾個(gè)已知物理坐標(biāo)的點(diǎn)看相機(jī)識(shí)別出來(lái)的坐標(biāo)和實(shí)際坐標(biāo)差多少。誤差控制在 3mm 以內(nèi)再往下走超過(guò) 5mm 就別急著上策略先回去重標(biāo)。標(biāo)定矩陣要固化下來(lái)存成文件每次啟動(dòng)加載不要每次重新標(biāo)。真機(jī)標(biāo)定的重復(fù)性沒(méi)你想的那么好頻繁重標(biāo)反而引入不一致。提示如果你用的是末端自帶相機(jī)的眼在手eye-in-hand配置標(biāo)定邏輯完全不同需要標(biāo)定的是相機(jī)系到末端系的固定變換再結(jié)合正運(yùn)動(dòng)學(xué)推算。兩種配置的代碼不能混用先確認(rèn)自己屬于哪種。2.2 控制頻率匹配模型推理慢于控制周期時(shí)怎么辦VLA 模型參數(shù)量大單次推理在消費(fèi)級(jí)顯卡上可能要幾十到上百毫秒。而機(jī)械臂底層控制周期通常是 1kHz 甚至更高。這兩者之間的頻率鴻溝是第二節(jié)里最容易被忽視、又最容易導(dǎo)致動(dòng)作抖動(dòng)的問(wèn)題。我的處理方式是分層底層控制器維持高頻的位置/速度閉環(huán)上層策略以較低頻率我們實(shí)測(cè)穩(wěn)定在 5-10Hz輸出目標(biāo)點(diǎn)中間加一個(gè)插值或?yàn)V波環(huán)節(jié)把離散的目標(biāo)點(diǎn)平滑成連續(xù)軌跡。具體做法是在策略輸出和底層指令之間插一個(gè)軌跡生成器用當(dāng)前位姿和目標(biāo)位姿做五次多項(xiàng)式插值保證速度和加速度連續(xù)。這里有個(gè)參數(shù)要調(diào)策略輸出頻率太低比如 2Hz機(jī)械臂動(dòng)作會(huì)一頓一頓的抓取時(shí)容易因?yàn)橥nD導(dǎo)致夾爪沒(méi)夾穩(wěn)頻率太高比如 30Hz模型推理跟不上實(shí)際還是按最慢的那一環(huán)走反而增加延遲。我們最后定在 8Hz 左右配合 50ms 的插值窗口動(dòng)作看起來(lái)比較順。環(huán)節(jié)頻率說(shuō)明底層控制1000Hz位置閉環(huán)保證剛性軌跡插值100Hz平滑策略輸出策略推理5-10HzVLA 模型實(shí)際輸出頻率相機(jī)采集30Hz觀測(cè)輸入可降采樣給策略2.3 安全邊界軟限位和急停必須比策略先上線這一條是用血換來(lái)的。我第一次讓策略控制真機(jī)時(shí)沒(méi)設(shè)軟限位模型輸出一個(gè)超出工作空間的坐標(biāo)機(jī)械臂直接往桌子上懟夾爪撞歪了。后來(lái)我養(yǎng)成的習(xí)慣是任何策略上線前先在控制層加一層安全過(guò)濾把目標(biāo)位姿限制在一個(gè)預(yù)先設(shè)定的安全盒子里超出就截?cái)嗷蚓芙^執(zhí)行。安全盒子怎么定手動(dòng)拖動(dòng)機(jī)械臂如果是協(xié)作臂可以開(kāi)拖動(dòng)模式走一遍整個(gè)工作空間記錄各軸或笛卡爾空間的極限位置然后往里收 10% 作為軟限位。同時(shí)急停按鈕必須放在手邊物理急停永遠(yuǎn)比軟件保護(hù)可靠。另外建議在夾爪上裝一個(gè)力傳感器或者至少用電流反饋?zhàn)雠鲎矙z測(cè)一旦檢測(cè)到異常阻力立即停止。注意軟限位是最后一道防線不是唯一防線。策略本身的輸出范圍也應(yīng)該在訓(xùn)練時(shí)就被約束在合理區(qū)間內(nèi)部署時(shí)再加一層運(yùn)行時(shí)檢查雙保險(xiǎn)。3. 觀測(cè)管線的搭建從相機(jī)幀到模型輸入的完整鏈路策略要干活得先看見(jiàn)。觀測(cè)管線就是把相機(jī)采集的原始畫(huà)面經(jīng)過(guò)一系列處理變成模型能吃的張量。這條鏈路看著簡(jiǎn)單但每一環(huán)都有延遲和誤差累加起來(lái)足以讓策略表現(xiàn)大打折扣。3.1 相機(jī)選型與安裝位置的實(shí)際考量我們用的是 RGB 相機(jī)沒(méi)用深度相機(jī)。原因很實(shí)際VLA 模型訓(xùn)練時(shí)用的就是 RGB 數(shù)據(jù)你部署時(shí)換成深度圖輸入分布對(duì)不上策略直接失效。所以部署時(shí)的傳感器配置必須和訓(xùn)練時(shí)一致這是鐵律。安裝位置上俯視視角對(duì)抓取任務(wù)最友好因?yàn)樵嚬芎涂孜欢荚诠ぷ髋_(tái)平面上俯視能同時(shí)看到目標(biāo)和夾爪遮擋少。但俯視也有問(wèn)題夾爪接近試管時(shí)夾爪本身會(huì)遮擋試管頂部模型可能看不清夾爪和試管的相對(duì)位置。我的解決辦法是把相機(jī)稍微傾斜 15-20 度既保留俯視的整體視野又能在接近階段看到夾爪側(cè)面。相機(jī)幀率不用太高30fps 足夠但曝光要固定。自動(dòng)曝光在機(jī)械臂運(yùn)動(dòng)時(shí)會(huì)因?yàn)楫?huà)面變化頻繁調(diào)整導(dǎo)致圖像亮度忽明忽暗模型輸入不穩(wěn)定。我吃過(guò)這個(gè)虧后來(lái)把曝光、白平衡全部鎖死畫(huà)面一致性好了很多。3.2 圖像預(yù)處理別在部署時(shí)引入訓(xùn)練時(shí)沒(méi)有的變換預(yù)處理這一步原則只有一條部署時(shí)的預(yù)處理必須和訓(xùn)練時(shí)完全一致。訓(xùn)練時(shí)如果做了歸一化、裁剪、縮放部署時(shí)一個(gè)都不能少順序也不能變。我見(jiàn)過(guò)有人訓(xùn)練時(shí)用了 ImageNet 均值方差歸一化部署時(shí)忘了模型輸出完全亂套。具體到我們的管線相機(jī)原始幀是 1280x720訓(xùn)練時(shí)裁剪到 640x480 并縮放到 224x224歸一化到 [0,1] 再減均值除方差。部署時(shí)嚴(yán)格照做。這里有個(gè)細(xì)節(jié)裁剪的區(qū)域要和訓(xùn)練時(shí)一致如果訓(xùn)練時(shí)是中心裁剪部署時(shí)也得中心裁剪不能因?yàn)橄肟吹酶透某扇珗D縮放。延遲方面預(yù)處理盡量用 GPU 做或者至少用高效的庫(kù)比如用 OpenCV 的 CUDA 版本。CPU 上做 resize 和歸一化一幀可能就要十幾毫秒加上推理時(shí)間整體延遲就上去了。3.3 時(shí)間同步圖像、關(guān)節(jié)狀態(tài)、策略輸出的時(shí)序?qū)RVLA 模型通常不只吃圖像還吃當(dāng)前的關(guān)節(jié)角度或末端位姿作為本體感知輸入。這兩路數(shù)據(jù)的時(shí)間戳必須對(duì)齊否則模型看到的是過(guò)去的圖像 現(xiàn)在的關(guān)節(jié)動(dòng)作就會(huì)錯(cuò)位。我的做法是給每一幀圖像打上采集時(shí)刻的時(shí)間戳關(guān)節(jié)狀態(tài)也打時(shí)間戳然后在送入模型前找時(shí)間戳最接近的一對(duì)。如果時(shí)間差超過(guò)閾值我們?cè)O(shè)的是 20ms就丟棄這一幀等下一對(duì)。這樣雖然會(huì)損失一些幀但保證了輸入的一致性。策略輸出的動(dòng)作也要打時(shí)間戳底層控制器執(zhí)行時(shí)根據(jù)時(shí)間戳做插值。整個(gè)鏈路的時(shí)間戳統(tǒng)一用同一個(gè)時(shí)鐘源別一個(gè)用系統(tǒng)時(shí)間一個(gè)用相機(jī)硬件時(shí)間那樣對(duì)不上。4. 策略上機(jī)后的第一次動(dòng)作從能動(dòng)到能抓的調(diào)試路徑前面都是準(zhǔn)備真正讓策略控制機(jī)械臂動(dòng)起來(lái)的那一刻才是第二節(jié)的高潮。但別指望第一次就能抓成功我建議按下面的順序逐步調(diào)試每一步確認(rèn)沒(méi)問(wèn)題再進(jìn)下一步。4.1 空載測(cè)試先讓機(jī)械臂跟著策略走一遍軌跡第一步不要放試管讓機(jī)械臂空載執(zhí)行策略輸出的動(dòng)作。觀察幾點(diǎn)動(dòng)作是否平滑有沒(méi)有突然的跳變末端是否大致朝向試管架方向整個(gè)軌跡是否在安全盒子內(nèi)。這一步的目的是驗(yàn)證策略輸出和底層執(zhí)行的坐標(biāo)系、尺度都對(duì)得上。我第一輪空載測(cè)試時(shí)發(fā)現(xiàn)機(jī)械臂總是往一個(gè)固定方向偏后來(lái)查出來(lái)是標(biāo)定矩陣的一個(gè)旋轉(zhuǎn)分量符號(hào)搞反了。這種錯(cuò)誤在空載時(shí)很容易看出來(lái)如果直接上試管就是一次次抓空??蛰d測(cè)試通過(guò)的標(biāo)準(zhǔn)機(jī)械臂能大致走到試管上方末端姿態(tài)合理動(dòng)作連續(xù)無(wú)跳變。不要求精確但方向不能錯(cuò)。4.2 單次抓取放一根試管觀察失敗模式空載沒(méi)問(wèn)題后放一根試管在固定位置讓策略執(zhí)行一次完整抓取。這時(shí)候大概率會(huì)失敗但失敗的方式很有信息量如果夾爪根本沒(méi)靠近試管說(shuō)明觀測(cè)或坐標(biāo)系還有問(wèn)題回去查 2.1 和 3.3。如果靠近了但夾爪沒(méi)對(duì)準(zhǔn)可能是圖像分辨率不夠或者模型對(duì)精細(xì)定位的能力不足考慮加一個(gè)局部的精細(xì)定位模塊。如果夾住了但抓不穩(wěn)檢查夾爪力度和抓取點(diǎn)可能是策略輸出的抓取位姿在深度方向有偏差。如果抓起來(lái)后放不進(jìn)孔位問(wèn)題在放置階段可能是孔位識(shí)別不準(zhǔn)或放置軌跡規(guī)劃有問(wèn)題。我當(dāng)時(shí)的失敗模式是靠近了但總是偏左兩厘米查了半天發(fā)現(xiàn)是相機(jī)安裝后輕微松動(dòng)標(biāo)定矩陣失效了。所以每次調(diào)試前先確認(rèn)硬件沒(méi)有松動(dòng)。4.3 連續(xù)循環(huán)穩(wěn)定性比單次成功更重要單次抓取成功后別急著慶祝真正的考驗(yàn)是連續(xù)循環(huán)。讓機(jī)械臂連續(xù)抓放 20 次統(tǒng)計(jì)成功率。我第一輪連續(xù)測(cè)試的成功率只有 60%失敗集中在第 5-8 次原因是試管被放回后位置有微小偏移累積幾次后策略就抓不準(zhǔn)了。解決辦法有兩個(gè)一是每次放置后用一個(gè)簡(jiǎn)單的視覺(jué)檢測(cè)確認(rèn)試管實(shí)際位置如果偏移超過(guò)閾值就微調(diào)二是讓策略對(duì)位置變化更魯棒這需要在訓(xùn)練數(shù)據(jù)里加入位置擾動(dòng)的樣本。前者是工程手段后者是數(shù)據(jù)手段實(shí)際項(xiàng)目里通常兩者結(jié)合。連續(xù)循環(huán)的穩(wěn)定性還受溫度影響。機(jī)械臂連續(xù)工作半小時(shí)后關(guān)節(jié)發(fā)熱可能導(dǎo)致零點(diǎn)漂移抓取精度下降。如果發(fā)現(xiàn)運(yùn)行一段時(shí)間后成功率下降考慮加溫度補(bǔ)償或者定期回零。5. 那些讓我熬夜的典型故障與排查思路真機(jī)部署的故障排查和純軟件調(diào)試最大的區(qū)別是你面對(duì)的是一個(gè)物理系統(tǒng)故障可能來(lái)自任何一個(gè)環(huán)節(jié)而且很多故障是間歇性的。下面列幾個(gè)我實(shí)際遇到并解決的典型問(wèn)題附上排查思路。5.1 策略輸出抖動(dòng)從觀測(cè)噪聲到控制參數(shù)的逐層排查現(xiàn)象機(jī)械臂在接近試管時(shí)末端高頻抖動(dòng)像在猶豫。排查路徑先看觀測(cè)把模型輸入的圖像和關(guān)節(jié)狀態(tài)打印出來(lái)發(fā)現(xiàn)圖像正常但關(guān)節(jié)角度有 ±0.5 度的噪聲。這個(gè)噪聲來(lái)自編碼器本來(lái)不大但模型對(duì)本體感知輸入敏感放大了這個(gè)噪聲。解決辦法是在關(guān)節(jié)狀態(tài)送入模型前加一個(gè)低通濾波同時(shí)檢查底層控制器的增益是不是太高適當(dāng)降低位置環(huán)增益后抖動(dòng)明顯減輕。如果觀測(cè)沒(méi)問(wèn)題那就要看策略本身。有些 VLA 模型在動(dòng)作輸出的邊界區(qū)域會(huì)輸出震蕩的值這時(shí)候可以在輸出后加一個(gè)速率限制限制相鄰兩幀動(dòng)作的最大變化量。5.2 抓取成功率隨運(yùn)行時(shí)間下降熱漂移與累積誤差現(xiàn)象剛開(kāi)機(jī)時(shí)抓得很準(zhǔn)跑二十分鐘后開(kāi)始頻繁抓空。這個(gè)我一開(kāi)始以為是模型問(wèn)題后來(lái)用激光跟蹤儀測(cè)了一下末端實(shí)際位置發(fā)現(xiàn)機(jī)械臂的零點(diǎn)在慢慢漂移。原因是關(guān)節(jié)電機(jī)發(fā)熱后編碼器讀數(shù)和實(shí)際角度產(chǎn)生了偏差。協(xié)作臂一般有溫度補(bǔ)償功能但需要開(kāi)啟并正確配置。開(kāi)啟后漂移從幾毫米降到 1mm 以內(nèi)。另一個(gè)可能的原因是累積誤差每次抓放后如果放置位置有微小偏差下一次抓取時(shí)策略基于新的觀測(cè)調(diào)整但調(diào)整本身也可能有誤差多次累積后就偏了。解決辦法是定期做一次歸位讓機(jī)械臂回到一個(gè)固定的參考點(diǎn)重新校準(zhǔn)相對(duì)位置。5.3 模型推理延遲突增顯存碎片與后臺(tái)進(jìn)程現(xiàn)象運(yùn)行一段時(shí)間后策略推理時(shí)間從 80ms 漲到 300ms機(jī)械臂動(dòng)作明顯變慢。查下來(lái)是顯存碎片化。VLA 模型推理過(guò)程中會(huì)動(dòng)態(tài)分配顯存長(zhǎng)時(shí)間運(yùn)行后碎片增多分配效率下降。解決辦法是定期重啟推理進(jìn)程或者用固定顯存的推理方式比如 TensorRT 的靜態(tài) shape 優(yōu)化。另外檢查后臺(tái)有沒(méi)有其他進(jìn)程占用 GPU我們有一次是系統(tǒng)自動(dòng)更新在后臺(tái)跑把 GPU 占了一半。提示真機(jī)部署的機(jī)器最好專(zhuān)機(jī)專(zhuān)用關(guān)掉自動(dòng)更新和無(wú)關(guān)后臺(tái)服務(wù)。我吃過(guò)一次虧演示到一半系統(tǒng)彈更新提示雖然沒(méi)中斷但嚇出一身汗。6. 讓整套系統(tǒng)跑得更穩(wěn)的工程化收尾到這一步策略已經(jīng)能連續(xù)工作了但離可靠還有距離。工程化收尾的目標(biāo)是讓系統(tǒng)能長(zhǎng)時(shí)間無(wú)人值守運(yùn)行出問(wèn)題能自動(dòng)恢復(fù)數(shù)據(jù)能留下來(lái)供后續(xù)優(yōu)化。6.1 日志與回放把每次抓取都變成可分析的數(shù)據(jù)我現(xiàn)在的習(xí)慣是每次抓取都記錄完整的觀測(cè)、動(dòng)作、時(shí)間戳和結(jié)果成功/失敗。這些數(shù)據(jù)一方面用于排查問(wèn)題另一方面可以直接用于后續(xù)的模型微調(diào)。記錄格式用簡(jiǎn)單的 HDF5 或者 npz 就行關(guān)鍵是字段要全尤其是失敗案例比成功案例更有價(jià)值?;胤殴δ芤埠苤匾?。當(dāng)出現(xiàn)一次奇怪的失敗時(shí)能把當(dāng)時(shí)的觀測(cè)序列重新喂給模型看它輸出什么這樣能區(qū)分是模型問(wèn)題還是執(zhí)行問(wèn)題。我搭了一個(gè)簡(jiǎn)單的回放腳本加載記錄的數(shù)據(jù)逐步重現(xiàn)推理過(guò)程排查效率高了很多。6.2 異常恢復(fù)卡死、丟幀、通信中斷的自動(dòng)處理真機(jī)運(yùn)行中通信中斷、相機(jī)丟幀、模型推理超時(shí)都是可能發(fā)生的。我的處理策略是分級(jí)輕微異常單幀丟失、推理稍慢跳過(guò)這一幀用上一幀的動(dòng)作繼續(xù)同時(shí)記錄。中度異常連續(xù)多幀丟失、推理超時(shí)暫停機(jī)械臂保持當(dāng)前位置嘗試重新初始化觀測(cè)管線成功則繼續(xù)失敗則報(bào)警。嚴(yán)重異常通信中斷、控制器無(wú)響應(yīng)立即停止所有動(dòng)作觸發(fā)安全狀態(tài)等待人工介入。這套邏輯用一個(gè)狀態(tài)機(jī)實(shí)現(xiàn)狀態(tài)之間的轉(zhuǎn)換條件要明確。別小看這個(gè)有一次相機(jī) USB 接觸不良畫(huà)面偶爾黑一幀如果沒(méi)有丟幀處理模型看到黑圖會(huì)輸出亂七八糟的動(dòng)作機(jī)械臂就亂動(dòng)了。6.3 從能跑到好用幾個(gè)提升體驗(yàn)的小改動(dòng)最后分享幾個(gè)讓系統(tǒng)從能跑到好用的小改動(dòng)都是實(shí)際用下來(lái)覺(jué)得值的加一個(gè)簡(jiǎn)單的 Web 界面或者命令行工具能一鍵啟動(dòng)、暫停、復(fù)位不用每次都敲一堆命令。在機(jī)械臂工作臺(tái)周?chē)右蝗θ峁鉄舯WC光照穩(wěn)定。自然光隨時(shí)間變化模型輸入的一致性會(huì)受影響。試管架用深色不反光的材料減少反光對(duì)視覺(jué)識(shí)別的干擾。我們一開(kāi)始用白色架子反光嚴(yán)重?fù)Q成磨砂黑之后識(shí)別穩(wěn)定多了。定期比如每周重新做一次手眼標(biāo)定因?yàn)橄鄼C(jī)支架可能因?yàn)檎饎?dòng)有微小位移。標(biāo)定流程腳本化幾分鐘就能完成。這套系統(tǒng)我前后調(diào)了大概兩周從第一次上電撞桌子到最后能連續(xù)跑幾百次抓放不出大問(wèn)題。回頭看第二節(jié)的難點(diǎn)從來(lái)不是模型本身而是模型和物理世界之間的那層膠水——坐標(biāo)系、時(shí)序、安全、異常處理每一環(huán)都得摳。把這些摳明白了VLA 才真正算是在真機(jī)上會(huì)放試管了。