宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

獨立研究者用一周時間讓機器人疊好了衣服,還拿了世界第二

2026年07月01日 首頁 » 熱門科技

這項由獨立研究者完成的工作發表於2026年6月,以技術報告形式發布在預印本平台arXiv,編號為arXiv:2606.27163,是ICRA 2026(國際機器人與自動化會議)旗下LeHome Challenge 2026競賽的獲獎解決方案報告。

一個人,一台電腦,三個月的模擬訓練,外加一周的現實世界衝刺——最後拿下全球62支隊伍參賽的摺疊衣物機器人挑戰賽仿真賽道第一名,以及真實機器人賽道第二名。這件事本身就足夠讓人停下來多看一眼。

這項工作的核心任務聽起來並不複雜:讓一台雙臂機器人把衣服折好。但任何試圖在家手工摺疊一件滑溜溜的T恤的人都清楚,布料這東西有它自己的脾氣——輕輕一碰就變形,稍微用錯力就皺成一團,而且每一次放到桌上的形狀都略有不同。對機器人來說,這個任務極其困難,因為布料是"軟體物體",它的形狀幾乎無法用簡單的數學公式預測。

這位研究者之前參與開發的系統,已經在2025年的BEHAVIOR-1K挑戰賽中拿到了第一名。在那個基礎上,他針對摺疊衣物這個具體任務,設計了一整套把"會一點點"變成"穩定完成"的訓練體系,並且把這套方法的所有代碼和模型權重都公開了出來。

這篇報告的價值不在於提出一個革命性的新算法,而在於它展示了一條清晰、可復現的工程路徑:如何把一個現有的視覺-語言-動作模型(可以理解為"眼睛+大腦+手"一體化的機器人控制系統),通過強化學習的循環打磨,變成一個在真實世界中也能穩定工作的摺疊衣物專家。

一、機器人要學會疊衣服,首先要弄清楚什麼叫"疊好了"

在正式介紹訓練方法之前,有必要先搞清楚這個比賽是怎麼定義"成功"的,因為這個定義直接決定了後續所有的設計選擇。

比賽的舞台是NVIDIA的Isaac Lab仿真環境,也就是一個高精度的虛擬物理世界,裡面有兩隻各有六個關節的機械臂,共12個可控維度,每秒做出30個動作決策。機器人看不到摩托車或者房間,它只能看三個攝影機拍到的畫面:一個從正上方俯視的"上帝視角",以及兩隻手腕上各一個的"第一人稱視角"。

任務分四種衣物:長袖上衣、短袖上衣、長褲、短褲。每種衣物上都有若干"關鍵點"——比如兩隻袖子的末端、褲腿的底部等等。所謂"疊好了",就是這些關鍵點之間的距離滿足特定條件:該靠近的點(比如兩隻袖子)靠近了,該保持距離的點(比如襯衫的左右側邊)沒有疊在一起。上衣有5個這樣的條件,褲子有4個(長褲被擴展到了7個)。全部滿足才算成功,差一個也不行,是純粹的"全有或全無"判定。

這種嚴苛的二元判定造成了一個很棘手的問題:機器人在摺疊過程中做了一百個動作,但只有最後一刻才知道成沒成功。這就像一個學生做了一整張數學卷,但老師只告訴你"對了"或者"錯了",完全不指出哪道題做錯了。在這種情況下,如何讓機器人從失敗中學到有用的東西,是整個系統設計的核心難題。

二、先照著模仿,再靠自己練——一個"從跟班到獨立"的成長路徑

在比賽開始時,組委會提供了一批"示範數據":腳本策略(可以理解為預先編寫好的固定程序)摺疊衣服的完整錄像,包括每一幀的攝影機畫面和機械臂關節角度。這是機器人最初的"教材"。

研究者首先用這批數據做了一輪"行為克隆"(Behavior Cloning,簡稱BC)訓練——讓機器人反覆看示範,模仿每一個動作。這大約進行了兩萬步,讓模型有一個基本的"手感",不至於一開始就亂揮手。但僅僅模仿遠遠不夠,因為示範錄像里全是乾淨順利的成功案例,沒有任何錯誤或者恢復的例子。一旦機器人在真實摺疊過程中遇到輕微偏差,它就完全不知道該怎麼辦。

這就進入了研究者稱之為"飛輪"的核心訓練循環。整個系統由三個獨立運轉的部件組成,彼此之間只通過HuggingFace Hub(一個模型和數據集共享平台)交換資訊,就像三個分布在不同地方的工人,通過共享文件夾協作,互不干擾。

第一個部件是訓練機器,運行在一台H200 GPU伺服器上,不斷拿最新數據訓練模型,每隔大約500步就把新版本的模型上傳到共享平台。第二個部件是數據收集機器,可以同時跑好幾台,每台運行3到5個並行的仿真環境,用最新版本的模型去實際操作摺疊,把成功和失敗的完整過程全部錄下來,連同模型當時的狀態預測一起上傳。第三個部件是人工干預站,用於處理機器人始終解決不了的困難情況。

沒有任何同步等待:訓練機器不等數據收集完再訓練,數據收集機器也不等模型訓練好再收集。整個系統全天候運轉,就像一條工廠流水線,只不過這條流水線生產的是"機器人的經驗"。

三、獎勵設計:如何告訴機器人它走對了方向

前面提到,比賽的成功判定是純二元的,這對學習非常不友好。研究者做的第一件大事,就是把這個"只在終點亮燈"的信號,改造成沿途都有路標的引導系統。

核心思路是復用比賽自己定義的關鍵點距離條件,把它們分解成中間裡程碑。以長袖上衣為例,摺疊過程大致分兩步:先把兩隻袖子攏到一起(第一個里程碑),再把整件衣服對摺合攏(完成)。到達第一個里程碑獎勵0.5分,最終成功再獎勵0.5分,累計1.0分。

但光有兩個階梯還不夠細膩。對於上衣,第一個里程碑的0.5分並不是一次性給出的,而是按照"主要靠近距離減少了多少比例"來按比例發放。比如機器人已經把左袖子往右移動了,關鍵點距離縮短了60%,那麼它此刻已經積累了0.3分的獎勵,儘管還沒完全完成第一步。這讓機器人能從非常早期的動作中就感受到方向是否正確。

還有一個精妙的處理:如果最終失敗了,之前積累的所有中間獎勵會被全部撤回,使得一整個回合的總獎勵恰好等於成功指示(成功=1,失敗=0)。這樣做的目的是避免一種投機行為——機器人學會"假裝到達里程碑但根本不打算完成整個摺疊"。撤回獎勵不是在最後一幀給一個大的負分,而是均勻分攤到從獎勵最高點到結束的每一幀,使懲罰信號更平滑。

這套獎勵設計的直覺是:里程碑告訴機器人走對了方向,但只有真正到達終點,這些里程碑上的獎勵才真正"落袋為安"。中途摔倒,之前的積分不算數。

四、機器人如何給自己的動作評分——內置的"預感"系統

現在來到整個系統最有創意的部分之一:研究者沒有為機器人單獨訓練一個"評判員"(價值網路),而是讓控制機器人手臂的那個大模型,同時兼任自己的評判員。

具體做法是:在模型內部,有一個專門的"當前查詢"令牌(可以把它理解為模型專門留出來用於自我反思的一個神經元簇)。這個令牌只能看攝影機畫面,看不到關節狀態或者其他輸入,然後從它出發接出好幾個輕量級的"預測頭",分別回答不同的問題。

成功概率頭負責預測"當前這個摺疊過程最終成功的概率是多少",這相當於一個價值函數,是整個強化學習循環的基礎。完成度頭預測"我現在大概完成了多少比例的摺疊進度",只在成功的回合上訓練,因此它比成功概率頭穩定得多——不管哪個版本的機器人來折,完成了一半就是完成了一半,這個判斷不會隨著模型更新而大幅波動。衣物類型頭是一個四類分類器,預測當前面對的是哪種衣物。關鍵點距離頭直接預測比賽成功判定所用的那些距離比值,相當於機器人用眼睛估算"兩隻袖子現在還差多遠才能靠在一起"。

除了這些"看當下"的頭,還有一組"看未來"的頭,預測30幀之後(大約1秒後)這些量會變成多少。其中最有用的是"動作條件成功殘差頭":它看著模型剛剛生成的動作序列,預測"如果真的執行這些動作,成功概率會比當前基線高多少或低多少"。這相當於一個Q函數,告訴機器人"這個具體的行動方案好不好",而不僅僅是"當前狀態好不好"。

把這些預測頭全部塞進同一個模型里,有幾個好處:只需要一個模型推理,節省算力;控制動作和預測價值用的是同一套視覺理解能力,天然互相促進;而且整個訓練和部署流程大大簡化了。

這些預測頭在訓練時容易過擬合(對訓練集記得太牢,泛化能力差),所以給它們施加了額外的權重衰減懲罰,讓它們不敢死記硬背,並加入了標籤平滑處理,避免對極端結果過於自信。

五、讓"好動作多學、壞動作少學"——兩種互補的強化信號使用方式

有了獎勵信號,接下來是如何用這個信號改進模型。研究者沒有採用機器人強化學習領域的主流方法PPO(一種基於對數概率的策略梯度方法),原因很明確:PPO的核心操作是"懲罰壞動作"——把生成壞動作的概率往下壓。但這個模型(基於流匹配的VLA)的動作分布本身就極其複雜,把概率往壞方向推,很容易把整個預測推到毫無意義的區域,就像你試圖通過"別往左走"來找到正確道路,結果一腳踏進了沼澤。

研究者選擇了另一條路:只讓好動作變得更常見,而不去懲罰壞動作。這通過兩種互補機制實現,它們作用於同一批優勢值(Advantage,可以理解為"這個動作比平均水平好多少"),但從不同角度施力。

第一種叫AWR(優勢加權回歸),機制非常簡單粗暴但有效:在從資料庫里取樣訓練的時候,優勢值高的幀被選中的概率更高。具體來說,選中概率正比於e的優勢次方,優勢為2的幀被選中的概率是優勢為0的幀的約7.4倍,優勢為-2的幀幾乎不會被選中。這樣,模型看到好動作的次數就比看到壞動作的次數多得多,自然而然就學會更多地產生好動作。實現上,研究者把權重放在取樣階段而不是損失函數裡,好處是被權重壓低的幀根本不會進入批次,連圖像解碼都省了,真正的計算資源只花在高質量樣本上。

第二種叫RECAP風格的優勢條件化:把當前幀的優勢值作為一個額外輸入餵給動作生成模組,告訴它"現在是高優勢情況,請生成好動作"。這個機制直接在模型里訓練出了"聽從高優勢指令就產生好動作"的能力,而且訓練時隨機地把這個輸入遮掉(不告訴模型優勢),讓模型同時學會有優勢輸入和沒有優勢輸入兩種情況下的行為。

這樣做的價值在推理階段完全展現出來:可以讓模型做兩次動作預測,一次告訴它"這是高優勢情況",一次完全不告訴它,然後把兩次的結果做插值——告訴它的結果方向權重更大。這叫做分類器自由引導(CFG),最終實驗中這個引導強度被調到了7到9的範圍,效果非常顯著。兩次推理共享了最昂貴的視覺-語言前向傳播,因此額外計算開銷只是在輕量級的動作生成模組上多跑了一遍,代價很小。

這兩種機制的配合效果可以這樣理解:假設機器人的行為是一個雙峰分布,一個大的"壞動作峰"和一個小的"好動作峰"。AWR把訓練數據的採樣權重向好動作峰傾斜;RECAP條件化只從好動作對應的數據切片裡學習;兩者同時作用,模型的訓練目標幾乎完全落在好動作區域,壞動作的痕跡被大幅削弱。

優勢值的計算本身也頗費心思。研究者用GAE(廣義優勢估計,一種標準的優勢計算方法,折扣因子γ=0.999,λ=0.99)把成功概率預測和完成度預測兩路信號都合併進來,還加入了一個精妙處理:對已經是舊數據的回合,隨著它們的採樣權重衰減,對應的優勢值也逐漸從依賴模型預測的GAE過渡到只看最終結果的相對成功信號(類似GRPO),避免用已經不再準確的舊預測來計算優勢。

六、不只是收集數據,而是有策略地收集對的數據

仿真環境的速度是整個系統的瓶頸——每個回合大約需要30秒真實時間在Isaac Sim里跑完。研究者設計了多種數據收集策略,儘可能從每一個仿真小時裡榨取最多有用資訊。

基礎策略是隨機採樣或者對所有衣物類型全量收集,用來更新模型對每種衣物當前成功率的統計,並產生新鮮的訓練數據。課程採樣策略則類似"給學生出難度適中的題目"——優先安排那些當前成功率接近某個目標值的衣物,讓訓練信號既不太稀疏(幾乎從不成功,學不到什麼)也不太密集(幾乎總成功,也沒什麼可學的)。

更有創意的是物理狀態快照和重放機制。在成功回合的早期(第5步)會保存一個完整的物理狀態快照,包括布料每個粒子的位置和速度,以及機械臂關節角度。之後可以從這個快照恢復,用更強的視覺增強重新跑一遍,只保留依然成功的重跑結果。這相當於"把珍貴的成功經驗複製多份",對於那些本來就很少成功的困難衣物尤其寶貴。

失敗時的狀態快照也同樣重要。當模型的成功概率預測從峰值急劇下滑超過0.12時(意味著模型自己覺得這次要失敗了),系統會保存這個狀態,之後可以從這個"剛要失敗"的節點重新嘗試,要麼自動重跑,要麼轉給人工干預。

訓練數據的混合方式也很講究。所有數據源永遠不會合併成一個大池子,而是作為獨立數據集保留,在訓練時按照實時指定的比例動態採樣。強化學習新回合數據的權重隨時間以0.98的係數衰減(每次疊代後),新鮮數據主導,舊數據慢慢淡出。行為克隆的原始數據則保持固定採樣率,不會被完全取代。此外,研究者還保留了一部分早期成功回合,專門用來維持那些模型一度學會但容易遺忘的困難衣物的成功樣本。

七、給模型看各種"化妝"後的衣服,讓它認出本質

真實世界裡,同一件衣服在不同光線下、不同角度下看起來差異很大;仿真環境裡的衣服如果只有一種固定外觀,訓練出來的模型換個顏色或者紋理就不認識了。研究者在仿真里設計了一套雙層的視覺物理增強機制。

回合級別的增強在每次重置時隨機化,並且和物理狀態快照一起保存,保證重放時動態條件一致:衣物的紋理圖案隨機替換,顏色在LAB色彩空間裡重新映射,衣物姿態和尺寸有小幅擾動,每個攝影機的位置、角度、焦距都有隨機偏移,機械臂底座位置有隨機漂移,桌面紋理變換,穹頂光照旋轉。幀級別的增強每隔幾幀就重新隨機化:衣物顏色色調、機械臂顏色、穹頂燈光的強度和色溫。

正常收集回合的增強相對溫和,因為太強的增強會讓模型在收集數據時表現下降,導致成功率統計偏低。但成功狀態的重放增強則可以非常激進,因為重放的目的是產生帶有多樣外觀的成功樣本,模型在這些增強後的畫面上表現差一些沒關係,只要最終依然成功就保留。在進入真實機器人訓練階段後,這套增強變得更加激進,攝影機位置擾動被標定到真實擺放範圍,臂底座偏移更大,光照變化更劇烈。

八、推理階段也能優化:七個旋鈕,一個自動調節器

同一個訓練完的模型,跑的方式不同,成功率可以差很多。研究者識別出了七個關鍵的推理超參數,並設計了一套在收集數據過程中自動調整它們的方法。

這七個超參數分別是:執行長度(每次重新規劃前實際執行多少步預測動作)、回放拉伸倍率(把預測動作放慢或加快多少來控制運動速度)、錨定長度(前一個動作塊有多少步延續到下一個塊用於平滑銜接)、內繪起始閾值(平滑銜接在流匹配過程的哪個階段啟動)、引導強度(CFG的放大倍數)、噪聲溫度(初始採樣噪聲的大小,控制候選多樣性)、候選數量(並行生成多少個方案供Q函數挑選)。

關於平滑銜接的機制值得多解釋一下。機器人每隔一段時間就要生成一個新的30步動作塊,如果每次都完全獨立地從隨機噪聲出發生成,相鄰兩塊之間的銜接處動作可能會突然跳變。研究者用的做法是:上一塊動作的末尾若干步作為"錨點",在下一塊開始生成時,在噪聲中加入這些錨點資訊,讓流匹配過程從一開始就知道"上一塊是什麼結尾",從而生成連貫的延續。這個錨定只在流匹配過程的前半段(高噪聲階段)起作用,後半段(低噪聲、精化階段)完全釋放,讓模型自由修正,不被錨點束縛。

多候選方案選優的機制是:並行從同一個前綴輸出同時生成N個動作塊(每個用不同的隨機噪聲初始化),然後用Q函數預測每個方案會讓成功概率提升還是降低,選擇預測值最高的那個執行。Q函數和候選本身共享最昂貴的視覺前向傳播,額外開銷只有N倍的輕量級動作生成。有趣的是,Q函數的預測和實際結果之間的相關性幾乎為零,但兩三個候選的情況依然穩定好過單候選——研究者的解釋是:對大多數時間點來說,所有候選都差不多好;只在少數真正關鍵的分叉點,Q函數能區分出一個明顯更好或明顯更差的方案,避免最壞結果。

這七個超參數通過湯普森採樣老虎機(Thompson Sampling Bandit,一種經典的在線優化方法)在收集數據的過程中自動調整,對每種衣物類型分別優化。每個參數的每個候選值都有一個Beta分布的後驗概率,表示"選這個值能超過平均水平的概率是多少"。每次收集回合時隨機按後驗抽取配置跑探索,重放回合則用當前最優配置跑利用。回合結束後根據成功與否更新後驗分布,而且每次疊代都會讓後驗向均勻分布稍微衰減,使得優化跟隨不斷進步的模型而動態調整,而不是鎖死在早期的最優值上。

最終收斂的參數值頗能說明問題:執行長度收斂到非常小的值(意味著模型對近期預測更可靠,頻繁重規劃有益),引導強度收斂到高得出乎意料的7到9範圍,候選數量超過3個就沒有額外收益,噪聲溫度偏低(傾向於利用而非探索),錨定強度適中(太強會妨礙模型自我修正)。

九、從仿真到現實:一周時間把虛擬訓練變成真實機器人的技能

在仿真賽道拿下第一之後,挑戰並沒有結束。真實世界最終賽的窗口只有一周多。

直接把仿真訓練出來的模型放到真實機器人上,完全不起作用。最直接的證據來自一個圖像處理測試:把640×480的攝影機圖像先縮小到320×240再縮到224×224,和直接從640×480縮到224×224,對人眼來說幾乎看不出區別,但模型的成功率大幅下滑,而且模型的輔助預測頭能完美區分這兩種處理方式——說明它對仿真渲染的極細微特徵都已經過擬合。

還有一個小插曲值得記錄:研究者在仿真里訓練了整整三個月,始終以為摺疊的是成人尺碼的衣服,直到組裝起真實機器人的時候才發現,那全是兒童服裝。仿真和現實的感知差異,有時候會以出人意料的方式顯現出來。

轉移到真實機器人的策略是從一個較早但不是最新的仿真檢查點開始微調,因為最新的檢查點對仿真渲染的過擬合程度最深。訓練數據來自三個來源,按固定批次比例混合:組委會提供的真實機器人行為克隆數據占60%(它和最終評估環境最接近),研究者自己在家用遙操作和DAgger收集的數據占30%(但和評估環境有偏差,刻意降權),仿真成功回放數據占10%(主要起防止遺忘和增加多樣性的作用)。

由於各數據來源的動作速度差異很大(仿真回放動作快,遙操作動作慢,DAgger糾正動作最慢),需要對每個來源做時間軸重採樣:組委會數據保持原速,遙操作數據被壓縮到1.5倍速,仿真數據被拉伸到0.65倍速,DAgger數據被壓縮到2倍速。這樣所有來源的"每步動作幅度"保持一致,模型不會被混亂的速度信號搞糊塗。

視覺增強在真實訓練階段被推到非常激進的程度:獨立對每個攝影機做強烈的顏色抖動(組委會的上方攝影機比研究者自己的要亮很多,仿真攝影機更亮),逐通道增益和伽馬調整,模糊,加性傳感器噪聲,每個攝影機獨立的裁剪旋轉縮放平移,遮擋,隨機攝影機丟棄,以及在狀態輸入上加噪聲或直接丟棄,讓模型學會更多依賴圖像而非可能校準偏差的關節角度讀數。

DAgger數據收集在真實機器人上非常有效(和仿真里的尷尬處境相反)。研究者搭了一套雙主臂雙從臂的系統,配三踏板腳踏控制器,隨時切換自動和人工控制,主臂在自動模式下會跟蹤從臂位置,保證接管時沒有突然的跳動。每幀數據都被標記為"人工控制"或"自動控制",接管前5秒窗口內的自動控制幀權重被壓到零(不學習把機器人引向失敗的那些動作),人工糾正幀獲得最高學習權重,遠離任何接管點的自動幀獲得較低權重。

真實訓練階段還去掉了所有依賴仿真特有資訊的模組(關鍵點距離真值、成功標籤、優勢值)。優勢條件化、CFG、最優候選選擇這些在仿真里大放異彩的機制,由於沒有真實側的獎勵或價值函數,全部被關掉了。研究者坦言,如果有時間在真實數據上建立價值函數,把這些機制也遷移過來,系統表現應該還能大幅提升。

最終,這套在一周內拼湊出來的真實機器人系統,在現場演示中拿到了六支隊伍里的第二名。第一名是仿真賽道第六名的隊伍,側面說明仿真成績好和真實成績好需要不同的關注點。

十、成績單與反思:哪些做法真的有用

仿真賽道的最終成績是62支隊伍中排名第一,總體成功率79.63%,比第二名高出6.1個百分點。四種衣物的成績分別是長袖上衣74.5%、短袖上衣70.0%、長褲80.5%、短褲93.5%。短褲最簡單(成功率最高),短袖上衣最難(需要最精細的小袖子操作)。

這個結果背後是大約一萬兩千五百個策略回合(約430萬幀)跨越140個收集會話的數據,訓練總步數約30萬步,硬體是單張H200加若干RTX PRO 6000。研究者明確表示,他不認為這樣的數據量是必要的,同等結果大概率可以用少得多的數據實現,主要瓶頸是缺乏主動探索和恢復機制。

真實賽道第二名的成績(865分,滿分1080分),在研究者自己的總結里略帶遺憾——主要遺憾是真實側沒有建立價值函數,導致仿真側那些效果最好的機制無法遷移;以及收集DAgger數據時過度關注困難狀態的恢復,而最終評估時的初始狀態其實相當規整,那些精力應該花在打磨乾淨完成上。

研究者特別強調了兩點有些出乎意料的發現:其一是對未見衣物的泛化表現遠比預期好,私有未見衣物和訓練過的衣物成功率差距很小,失敗案例基本都是真正與訓練集差異極大的樣本(比如一件怎麼看都像短褲但判定標準是長褲的衣物);其二是物理裝置改變的健壯性,普通行為克隆模型對攝影機移動一厘米、焦距變化都極其敏感,而這套系統對日常的設置漂移相當穩健,研究者把這歸功於刻意的裝置隨機化和激進的圖像增強。

Q&A

Q1:LeHome Challenge 2026比賽中機器人摺疊衣物的成功標準是什麼?

A:成功標準基於衣物關鍵點的距離條件,每種衣物上有若干關鍵點,比如袖子末端或褲腿底部,成功要求所有這些點之間的距離同時滿足條件,該靠近的靠近、該保持距離的不重疊。上衣有5個條件,褲子有4到7個,所有條件必須全部滿足才算成功,差任何一個都算失敗,沒有部分分。

Q2:AWR優勢加權回歸和PPO相比有什麼區別,為什麼要選AWR?

A:PPO通過"懲罰壞動作"來優化策略,會把產生壞動作的概率往下壓,但對於流匹配這類生成模型,有效動作只占預測空間的極小部分,向錯誤方向推概率很容易把預測推到毫無意義的區域。AWR只讓好動作更頻繁出現,採樣時優先選高優勢的數據,不去懲罰壞動作,相當於只向好的方向拉,不向壞的方向推,更適合這類模型。

Q3:湯普森採樣老虎機是怎麼調整推理超參數的?

A:每個超參數的每個候選值都維護一個Beta分布,反映它比平均水平好的概率。收集數據時,系統隨機按分布抽取配置探索,回合結束後根據成功與否更新分布,成功則增加該配置的正面概率,失敗則增加負面概率。分布每次疊代還會向均勻分布稍微衰減,讓優化持續跟蹤不斷進步的模型,而不是固定在早期結論上。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2026 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新