社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

波士顿动力机器狗装上ChatGPT大脑当导游,一开口就是老伦敦腔

机器之心 • 1 年前 • 236 次点击  

机器之心报道

编辑:蛋酱、大盘鸡


我们看过机器狗攀爬、跳跃、跑酷、开门,但现在,它竟然开口说话了。


「可以开始我们的旅程了吗?」Spot 礼貌地发出询问:「请跟我来,先生们!」



在一段最新发布的视频里,波士顿动力展示了将机器狗与 LLM 集成的成果:「Spot 先生」戴着高礼帽,留着小胡子,有着大眼睛和英国口音,正带人参观公司的设施。



为了让 Spot 能够「开口」,波士顿动力公司使用 OpenAI 的 ChatGPT API 以及一些开源 LLM 来训练,然后为机器人配备了扬声器,添加了文本到语音转换的功能。


所以你能看到,在发出声音的同时,Spot 不停张开「嘴巴」,看起来像是真在说话:



波士顿动力公司首席软件工程师 Matt Klingensmith 表示,「Spot 先生」使用 VQA 模型来为图像添加字幕并回答有关图像的问题。


比如你可以提问:「Hey,Spot!你看到了什么?」


「Spot 先生」快速作答:「我看到了一块二维码的板子,还有一扇很大的窗户。」



LLM 所谓的「涌现行为」,使其能够执行既定训练之外的任务。正因如此,它们可以适用于各种应用。波士顿动力团队对此的探索是从今年夏天开始的,他们在机器人应用中使用 LLM 制作一些概念验证演示,这些想法又在一次内部黑客马拉松活动中加以扩展。


特别是,他们对 Spot 使用 LLM 作为自主工具的演示很感兴趣,团队的灵感来源于 LLM 在角色扮演、复制文化和细微差别、形成计划和长期保持连贯性方面的明显能力,以及近期发布的 VQA 模型(这些模型可以为图像添加标题并回答有关图像的简单问题)。


技术细节


接下来,让我们解密如何使用 Spot 的 SDK 打造这样一只「机器狗导游」。在最新的官方博客中,波士顿动力对「Spot 先生」背后的技术进行了详细介绍。


作为导游,Spot 的「四处走动」能力是现成的,Spot SDK 也允许用户实现对机器狗的自定义。「Spot 先生」会观察环境中的物体,使用 VQA 或字幕模型对其进行描述,然后使用 LLM 对这些描述进行详细说明。


团队在 Spot 收集的三维地图上标注了简短的描述,机器人会根据定位系统查找所在位置的描述,并将其与传感器提供的其他上下文一起输入 LLM。然后,LLM 将这些内容合成为命令,比如「说」、「问」、「去」或「标签」等。


下图是「Spot 先生」导游的建筑环境的三维地图,为 LLM 标注了位置:1 是演示实验室 / 阳台;2 是演示实验室 / 天桥;3 是博物馆 /old-spots;4 是博物馆 / 图集;5 是大厅;6 是外部 / 入口。



此外,LLM 还可以回答参观者的问题,并计划机器人下一步应该采取的行动。可以将 LLM 理解为一个即兴演员,在有了大致脚本之后,也能够临时填补空白。


这种组合的方式充分发挥了 LLM 的优势,而规避了 LLM 可能带来的风险:众所周知,LLM 的幻觉很严重,容易添加一些听起来似是而非的细节,幸好在这类参观过程中,并不太强调事实准确性。机器狗只需四处走动并谈论它所看到的事物,带来一些娱乐性、互动性和细微差别即可。


整体看上去,需要建立一些简单的硬件集成和几个协同运行的软件模型:


系统示意图。


硬件方面,首先是「音频」处理功能,Spot 既能向观众演示,又能听到参观团的提问和提示。团队用 3D 打印了一个 Respeaker V2 扬声器的防震支架,这是一个环形阵列麦克风,上面有 LED 指示灯,通过 USB 连接到 Spot 的 EAP 2 有效载荷上。


机器人的实际控制权被下放给一台机外电脑(台式电脑或笔记本电脑),该电脑通过 SDK 与 Spot 进行通信。


「Spot 先生」的硬件装备:1)Spot EAP 2;2)Respeaker V2;3)蓝牙扬声器;4)Spot Arm 和机械臂摄像头。


软件方面,波士顿动力团队使用了 OpenAI ChatGPT API,包括 gpt-3.5 和 gpt-4,还测试了一些较小的开源 LLM。


这让 Spot 具备了不错的对话能力,ChatGPT 对机器人及其「言语」的控制是通过精心的 prompt 工程实现的。受微软方法的启发,他们让 ChatGPT 看起来像是在「编写 python 脚本的下一行」,以此来 prompt ChatGPT。波士顿动力团队以注释的形式为 LLM 提供了英文文档,然后将 LLM 的输出当作 python 代码进行评估。LLM 可以访问自主 SDK、带有每个地点单行描述的旅游景点地图,并能说出短语或提出问题。


下面是「API 文档」的逐字提示:


# Spot Tour Guide API.

# Use the tour guide API to guide guests through a building using

# a robot. Tell the guests about what you see, and make up interesting stories

# about it. Personality: “You are a snarky, sarcastic robot who is unhelpful”.

# API:



# Causes the robot to travel to a location with the specified unique id, says the given phrase while walking.

# go_to (location_id, phrase)

# Example: when nearby_locations = ['home', 'spot_lab']

# go_to ("home", "Follow me to the docking area!")

# go_to can only be used on nearby locations.



# Causes the robot to say the given phrase.

# say ("phrase")

# Example: say ("Welcome to Boston Dynamics. I am Spot, a robot dog with a lot of heart! Let's begin the tour.")



# Causes the robot to ask a question, and then wait for a response.

# ask ("question")

# Example: ask ("Hi I'm spot. What is your name?")


在这之后,波士顿动力团队向 LLM 提供了一个有关其周围内容结构化信息的「状态字典」:


state={'curr_location_id''home''location_description''home base. There is a dock here.''nearby_locations': ['home''left_side''under_the_stairs'], 'spot_sees''a warehouse with yellow robots with lines on the floor.'}


最后发送一条 prompt,要求 LLM 执行某些操作,在本例中,是在 API 中输入操作之一:


# Enter exactly one action now. Remember to be concise:


团队得出的结论是,「切记简明扼要」这点非常重要,既能限制要执行的代码量,又能在机器人响应时保持可控的等待时间。


目前,OpenAI 已经提供了一种结构化的方式来指定 ChatGPT 调用的 API,所以在 prompt 本身中提供所有这些细节已经不是必需的了。


接下来,为了让 Spot 与观众和环境互动,波士顿动力集成了 VQA 和语音转文本软件。他们将 Spot 的机械臂摄像头和前视摄像头输入 BLIP-2,并在 VQA 模型或图像字幕模型中运行。大约每秒运行一次,结果直接输入 Prompt。


下图是动态字幕和 VQA 回复的示例:



为了让机器人「听见」,他们将麦克风数据分块输入 OpenAI 的 Whisper 程序,将其转换为英文文本。听到唤醒词「嘿,Spot!」后,系统再将该文本输入提示音。


ChatGPT 生成基于文本的回复之后,还需要通过文本转语音工具来运行这些回复,以便机器人能够真正与参观者对话。在尝试了从最基本的(espeak)到最前沿的研究(bark)等多种现成的文本转语音方法后,波士顿动力最终选择了 ElevenLabs。为了减少延迟,他们将文本以「短语」的形式并行流式传输给 TTS,然后串行播放生成的音频。


最后一项工作就是为「Spot 先生」创建一些默认的肢体语言。Spot 的 3.3 版本包括检测和跟踪机器人周围移动物体的功能,以提高机器人在人和车辆周围的安全性。波士顿动力恰好利用了这个系统使其猜测最近的人的位置,然后将手臂转向那个人。他们在生成的语音上使用了低通滤波器,并将其转化为机械臂轨迹,类似于木偶开口说话的形式。特别是在机械臂上添加服装和瞪大的眼睛之后,这种错觉得到了加强。


更多技术细节,可参考博客原文:

https://bostondynamics.com/blog/robots-that-can-chat/




© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/163653
 
236 次点击