聽到去野餐就蹦蹦跳跳,谷歌用大模型教機器狗聽懂模糊指令
人類和四足機器人之間簡單有效的交互是創造能干的智能助理機器人的途徑,其昭示著這樣一個未來:技術以超乎我們想象的方式改善我們的生活。對于這樣的人類-機器人交互系統,關鍵是讓四足機器人有能力響應自然語言指令。
近來大型語言模型(LLM)發展迅速,已經展現出了執行高層規劃的潛力。然而,對 LLM 來說,理解低層指令依然很難,比如關節角度目標或電機扭矩,尤其是對于本身就不穩定、必需高頻控制信號的足式機器人。因此,大多數現有工作都會假設已為 LLM 提供了決定機器人行為的高層 API,而這就從根本上限制了系統的表現能力。
在 CoRL 2023 論文《SayTap: Language to Quadrupedal Locomotion》中,谷歌 DeepMind 與東京大學提出了一種新方法,該方法使用足部接觸模式作為連接人類的自然語言指令與輸出低層命令的運動控制器的橋梁。
- 論文地址:https://arxiv.org/abs/2306.07580
- 項目網站:https://saytap.github.io/
足部接觸模式(foot contact pattern)是指四足智能體在移動時足放在地上的順序和方式。他們基于此開發出了一種交互式四足機器人系統,讓用戶可以靈活地制定不同的運動行為,比如用戶可以使用簡單的語言命令機器人走、跑、跳或執行其它動作。
他們的貢獻包括一種 LLM prompt 設計、一個獎勵函數和一種能讓 SayTap 控制器使用可行的接觸模式分布的方法。
研究表明 SayTap 控制器能夠實現多種運動模式,并且這些能力還能遷移用于真實機器人硬件。
SayTap 方法
SayTap 方法使用了一種接觸模式模板,該模板是一個由 0 和 1 構成的 4 X T 矩陣,其中 0 表示智能體的腳在空中,1 表示腳落在地面。從上至下,該矩陣的每一行分別給出了左前足(FL)、右前足(FR)、左后足(RL)、右后足(RR)的足部接觸模式。SayTap 的控制頻率為 50 Hz,即每個 0 或 1 持續 0.02 秒。這項研究將所需足部接觸模式定義為一個大小為 L_w、形狀為 4 X L_w 的循環滑動窗口。該滑動窗口會從接觸模式模板提取四足的接地標志,其指示了在時間 t + 1 和 t + L_w 之間機器人足是在地面還是在空中。下圖給出了 SayTap 方法的概況。
SayTap 方法概述
SayTap 引入的所需足部接觸模式可作為自然語言用戶命令與運動控制器之間的新接口。運動控制器是用于完成主要任務的(比如遵循指定的速度)以及用于在特定時間將機器人足放在地上,以使實現的足部接觸模式盡可能接近所需的接觸模式。
為了做到這一點,在每個時間步驟,運動控制器以所需的足部接觸模式為輸入,再加上本體感官數據(如關節位置和速度)及任務相關輸入(如特定于用戶的速度命令)。DeepMind 使用了強化學習來訓練該運動控制器,并將其表征成一個深度神經網絡。在控制器的訓練期間,研究者使用了一個隨機生成器來采樣所需的足部接觸模式,然后優化策略以輸出能實現所需足部接觸模式的低層機器人動作。而在測試時間,則是使用 LLM 將用戶指令轉譯成足部接觸模式。
SayTap 使用足部接觸模式作為連接自然語言用戶指令和低層控制命令的橋梁。SayTap 既支持簡單直接的指令(比如「向前慢速小跑」),也支持模糊的用戶命令(比如「好消息,我們這個周末去野餐!)。通過基于強化學習的運動控制器,能讓四足機器人根據命令做出反應。
研究表明:使用適當設計的 prompt,LLM 有能力準確地將用戶命令映射到特定格式的足部接觸模式模板中,即便用戶命令是非結構化的或模糊的。在訓練中,研究者使用隨機模式生成器生成了多種接觸模式模板,它們有不同的模式長度 T、基于給定步態類型 G 在一個周期內的足地接觸比,使得運動控制器能夠在廣泛的運動模式分布上學習,獲得更好的泛化能力。更多詳情請參閱論文。
實驗結果
使用一個僅包含三種常見足部接觸模式上下文樣本的簡單 prompt,LLM 可將各種人類命令準確地轉譯成接觸模式,甚至泛化用于那些沒有明確指定機器人應當如何行為的情況。
SayTap prompt 簡潔緊湊,包含四個組分:
(1) 用于描述 LLM 應完成的任務的一般性說明;
(2) 步態定義,用于提醒 LLM 關注有關四足步態的基本知識以及它們與情緒的關聯;
(3) 輸出格式定義;
(4) 演示示例,讓 LLM 學習在上下文中的情況。
研究者還設定了五種速度,讓機器人可以前進或后退、快速或慢速、或保持不動。
General instruction block
You are a dog foot contact pattern expert.
Your job is to give a velocity and a foot contact pattern based on the input.
You will always give the output in the correct format no matter what the input is.
Gait definition block
The following are description about gaits:
1. Trotting is a gait where two diagonally opposite legs strike the ground at the same time.
2. Pacing is a gait where the two legs on the left/right side of the body strike the ground at the same time.
3. Bounding is a gait where the two front/rear legs strike the ground at the same time. It has a longer suspension phase where all feet are off the ground, for example, for at least 25% of the cycle length. This gait also gives a happy feeling.
Output format definition block
The following are rules for describing the velocity and foot contact patterns:
1. You should first output the velocity, then the foot contact pattern.
2. There are five velocities to choose from: [-1.0, -0.5, 0.0, 0.5, 1.0].
3. A pattern has 4 lines, each of which represents the foot contact pattern of a leg.
4. Each line has a label. "FL" is front left leg, "FR" is front right leg, "RL" is rear left leg, and "RR" is rear right leg.
5. In each line, "0" represents foot in the air, "1" represents foot on the ground.
Example block
Input: Trot slowly
Output: 0.5
FL: 11111111111111111000000000
FR: 00000000011111111111111111
RL: 00000000011111111111111111
RR: 11111111111111111000000000
Input: Bound in place
Output: 0.0
FL: 11111111111100000000000000
FR: 11111111111100000000000000
RL: 00000011111111111100000000
RR: 00000011111111111100000000
Input: Pace backward fast
Output: -1.0
FL: 11111111100001111111110000
FR: 00001111111110000111111111
RL: 11111111100001111111110000
RR: 00001111111110000111111111
Input:
用于 LLM 的 SayTap prompt。藍色文本是用于說明的,不是 LLM 的輸入。
遵循簡單和直接的命令
下面的動圖展示了 SayTap 成功執行直接清晰命令的示例。盡管某些命令并不包含在三個上下文示例之中,但依然可以引導 LLM 表達出其在預訓練階段學習到的內部知識,這會用到 prompt 中的「步態定義模塊」,即上面 prompt 中第二個模塊。
遵循非結構化或模糊的命令
但更有趣的是 SayTap 處理非結構化和模糊指令的能力。只需一點提示即可將某些步態與一般情緒印象聯系起來,比如機器人在聽到讓其興奮的消息(如「我們去野餐吧!」)后會上下跳躍。此外,它還能準確地呈現出場景,比如當被告知地面非常熱時,機器人會快速移動,讓腳盡量少接觸地面。
總結和未來工作
SayTap 是一個用于四足機器人的交互式系統,其允許用戶靈活地制定不同的運動行為。SayTap 引入了所需足部接觸模式作為自然語言與低層控制器之間的接口。這種新接口簡單直接又很靈活,此外,它既支持機器人遵循直接指令,也支持機器人遵從沒有明確說明機器人行為方式的命令。
DeepMind 的研究者表示,未來一大研究方向是測試暗含特定感受的命令是否能讓 LLM 輸出所需步態。在上面結果的步態定義模塊中,研究者提供了一個將開心情緒與跳動步態聯系起來的句子。如果能提供更多信息,也許能增強 LLM 解釋命令的能力,比如解讀隱含的感受。在實驗評估中,開心情緒與跳動步態的聯系能讓機器人在遵從模糊的人類指令行動時表現得充滿活力。另一個有趣的未來研究方向是引入多模態輸入,比如視頻和音頻。理論上講,從這些信號轉譯而來的足部接觸模式也適用于這里新提出的工作流程,并有望開創更多有趣的用例。