【实战项目开发技术分享】ChatGPT与机器人的交互


前言

ChatGPT是一种基于大规模预训练的深度学习模型,它通过分析数百万条文本数据来学习自然语言的语法、语义和上下文。这个强大的深度学习模型使得它能够理解和生成文本,从而能够以几乎与人类相媲美的方式进行对话。ChatGPT的问世代表了自然语言处理领域的一次革命性突破,为与机器人的互动提供了全新的机会。

在本文中,我们将深入探讨一些基于ChatGPT的与机器人互动的开源项目,揭示它们实现的原理和工作方式。这些项目不仅仅是技术上的创新,更是将ChatGPT的强大能力与机器人技术相结合,为未来的智能机器人带来了前所未有的可能性。通过这些示范性项目,我们可以更好地理解如何利用ChatGPT来提升机器人的交互性和智能化水平。


一、PromptCraft-Robotics

Github:https://github.com/microsoft/PromptCraft-Robotics/tree/main
Blog post:aka.ms/ChatGPT-Robotics
Paper: for Robotics: Design Principles and Model Abilities
Video: https://youtu.be/NYd0QcZcS6Q

PromptCraft-Robotics是有微软开发的一个协作开源平台,任何人都能在此分享不同类机器人的 Prompt 策略。它提供一个简单的机器人模拟器(基于Microsoft AirSim构建),并与ChatGPT集成,以帮助用户入门。
在这里插入图片描述

1.1 当今机器人技术面临的挑战

目前的机器人技术流程通常由工程师或技术用户开始,他们需要将任务的要求转化为系统的编程代码。工程师需要一直参与其中,也就是说他们需要编写新的代码和规范来纠正机器人的行为。总体来说,这个过程所面临的挑战有:

  1. 低效性:目前的机器人编程流程需要多次交互和手动调整,以使机器人按照预期的方式工作。这使得开发过程变得缓慢且低效,浪费了时间和资源。

  2. 高成本:由于需要高度熟练的工程师来编写和维护机器人的代码,机器人技术的开发和维护成本相对较高。

  3. 专业知识需求:当前的机器人编程要求用户具备深入的机器人技术知识,这限制了机器人技术的广泛应用,因为不是每个用户都具备这种专业知识。

1.2 ChatGPT如何提供帮助

ChatGPT可以在许多方面帮助解决这些机器人技术中的挑战。

  1. 自然语言界面:通过ChatGPT,普通用户可以使用自然语言与机器人进行交互,而无需编写复杂的代码。这使得机器人的控制更加直观和容易。

  2. 自动化编程:ChatGPT可以生成机器人任务的代码,减轻了工程师的工作负担。用户只需描述他们的需求,ChatGPT就可以生成相应的代码,从而提高了编程效率。

  3. 降低技术门槛:ChatGPT的使用降低了对深度机器人知识的需求。这意味着更多的人可以参与机器人技术的开发和使用,从而扩大了机器人技术的应用范围。

在这里插入图片描述
总之,ChatGPT通过自然语言界面和自动化编程功能,有望解决当前机器人技术中的低效性、高成本和专业知识需求等问题,从而推动机器人技术的更广泛应用。这将使机器人更容易开发和使用,为各种应用领域带来更多可能性。

1.3 使用ChatGPT进行机器人任务的设计原则

提示语言模型(LLMs)是一门高度经验性的科学。通过反复试验,我们建立了一种方法论和一组用于编写机器人任务提示语的设计原则:

在这里插入图片描述

  1. 首先,我们定义一组高级机器人API或功能库。这个库可以针对特定的机器人进行定制,应该与机器人的控制堆栈或感知库中的现有低级实现相对应。非常重要的是要为高级API使用描述性名称,以便ChatGPT能够推理出它们的行为;

  2. 接下来,我们为ChatGPT编写一个文本提示,描述任务目标,同时明确说明高级库中可用的函数。提示还可以包含关于任务约束的信息,或者关于ChatGPT如何形成其答案的信息(特定编程语言、使用辅助解析元素);

  3. 用户可以通过直接检查或使用模拟器随时评估 ChatGPT 的代码输出。如果需要,用户可以使用自然语言向 ChatGPT 提供有关答案质量和安全性的反馈。

  4. 当用户对解决方案感到满意时,最终的代码可以部署到机器人上。

这种方法有助于确保ChatGPT生成的代码与机器人任务相匹配,并且能够满足用户的需求。通过清晰定义高级API和提供详细的任务描述,我们可以更有效地与ChatGPT合作,以实现各种机器人任务。同时,用户的反馈也是不可或缺的,它可以帮助改善生成的代码质量和安全性,确保机器人在执行任务时表现出色。


二、EMOTIBOT

Github:EMOTIBOT: Face Tracking and Emotion-Responsive Robot
Video:https://www.youtube.com/watch?v=m5WHLP0AGW0&t=1s

EMOTIBOT是一款由舵机组成的面部机器人。它可以通过估算用户的面部位置,利用舵机转动l实现目光接触的功能。当用户说出“Hi Emoji”时,它将触发一个函数,该函数会提出情感相关的问题,将问题传递给GPT API,然后根据用户的情感状态生成答案,就像一个智能助手一样直接回应用户。
在这里插入图片描述

2.1 使用的技术栈

STT(语音转文本):用于识别用户的语音输入。
TTS(文本转语音):用于机器人的语音输出。
GPT-3.5 Turbo:用于识别并与用户的情绪状态进行沟通。
OpenCV:使用OpenCV的级联分类器进行人脸识别。
ROS(Noetic):用于机器人各个节点之间的通信。
Dynamixel:用于实现机器人眼球运动。
Arduino:用于通过neo LED检查机器人的状态。

2.2 实现功能

面部位置估计功能:使用OpenCV级联分类器估计用户的面部位置,并使用估计的位置使用舵机移动机器人的眼睛。
情绪状态识别功能:通过用户的语音输入识别情绪状态,并使用GPT-3.5 Turbo与用户进行交流,就像与智能助手交谈一般。
语音输出功能:使用TTS API与用户通信或提供各种通知。

2.3 硬件架构

在这里插入图片描述


三、ROSGPT

Github:ROSGPT: ChatGPT Interface for ROS2 for Human-Robot Interaction
Paper:https://www.preprints.org/manuscript/202304.0827/v2

在这里插入图片描述

这个项目是一个名为 ROSGPT 的创新概念,它融合了 ROS(机器人操作系统)和 ChatGPT(自然语言处理模型),旨在改变人与机器人之间的互动方式。通过利用大型语言模型 (LLMs),该项目可以将人类的非结构化语言转化为可操作的机器人指令。

为了实现这一目标,ROSGPT采用了 promptengineering、ontology开发和零/少次学习等技术,以使人与机器人之间的沟通更加直观。为了验证其效果,项目已经将ChatGPT集成到了 ROS2 中,将非结构化的自然人类语言指令转化为空间导航命令。ROSGPT还具备扩展到各种复杂人机互动场景的潜力,为未来的机器人应用带来更多可能性。


四、TurtleSim ChatGPT

Github:https://github.com/mhubii/chatgpt_turtlesim

该项目的主要目标是将ChatGPT与ROS(机器人操作系统)紧密集成,使用户能够仅通过与ChatGPT进行“对话”(终端输入内容)来控制机器人。此外,项目还采用多种机器人仿真平台,例如turtlesim,来验证这一方法是否能够在实际世界中应用,前提是提供适当的提示和引导。
在这里插入图片描述


五、Rofunc-ros

Github:https://github.com/Skylark0924/Rofunc-ros

该项目是利用了 ChatGPT API 和 AWS 的语音 API,将这两项强大的技术整合到了 ROS(机器人操作系统)中,从而实现了机器人与人类之间的交互式语音问答系统。
在这里插入图片描述

核心思想是将 ChatGPT 的自然语言处理能力与 AWS 的语音识别和合成技术相结合,以创建一个智能的对话接口。这个接口使得机器人能够听取人类的语音指令,并通过 ChatGPT 进行理解和回应。这种交互式语音问答系统不仅可以为机器人增加语音控制的功能,还使得与机器人的沟通更加自然和便捷。

工作流程如下:

  1. 机器人通过 AWS 语音 API接收到用户的语音输入。
  2. AWS 语音 API将语音转录成文本,并将文本传递给 ChatGPT API。
  3. ChatGPT API分析文本,理解用户的问题或指令,并生成相应的自然语言回应。
  4. 生成的回应再次通过 AWS 语音 API,转换成语音输出,传递给机器人。
  5. 机器人通过语音合成将回应播放出来,与用户进行互动。

在这里插入图片描述
通过利用 ChatGPT 和 AWS 的语音技术,这一小组件不仅使机器人变得更加智能,还为人机交互带来了崭新的体验。


七、StackChan

Github:https://github.com/robo8080/M5Unified_StackChan_ChatGPT
Video:https://www.youtube.com/watch?v=yqnT6tKOZpw

这个项目是基于智能硬件 M5Stack ESP32 实现的 ChatGPT 人机交互系统。
在这里插入图片描述

整个流程如下:

  1. 用户的语音通过个人电脑的麦克风接收。

  2. OpenAI 的 Whisper 技术将语音转换为文本信息。

  3. OpenAI 的 ChatGPT 模型将文本信息转换为回答。

  4. 接着,通过UDP通信,将生成的答案发送给M5Stack。

  5. 最后,M5Stack 利用AquesTalk技术将文本答案转换为语音,以实现机器人的口头回应。
    在这里插入图片描述
    这个系统的设计使得机器人能够通过自然语言理解用户的问题或指令,并以语音形式回应,从而实现更加自然和智能的人机交互体验。


八、Chatgpt-minipupper2-ros2-humble

Github:https://github.com/mangdangroboticsclub/chatgpt-minipupper2-ros2-humble
Video:【完全开源】轻松在你自己的机器人上搭载Chat GPT
该项目是基于Mini Pupper 2和ROS2 Humble的演示demo。

基本流程如下:
声音 —> Mini Pupper 2通过麦克风录制 —> 通过AWS服务将声音转换成文本 —> chatGPT API —> 通过AWS服务将文本转换成声音 —> Mini Pupper 2进行声音播放、运动和情感表达。
在这里插入图片描述


九、ROS-LLM

Github:https://github.com/Auromix/ROS-LLM
在这里插入图片描述

ROS-LLM项目是一个用于具身智能应用的ROS框架。它可以实现自然语言交互,并为在ROS上运行的任何机器人提供基于大型模型的运动控制和导航。ROS-LLM使用户能够利用基于大型语言模型(如GPT-4和ChatGPT)的功能来进行机器人决策和控制。该框架的设计旨在易于扩展。只需提供您机器人的功能接口,按照提供的示例进行操作,您可以在十分钟内集成和使用ROS-LLM。ROS-LLM为快速创建与任何机器人的交互和控制体验提供了简单的解决方案。


十、TaPA

Project:https://gary3410.github.io/TaPA/
Github:https://github.com/Gary3410/TaPA
Paper:https://arxiv.org/abs/2307.01848
该项目引入了一种新颖的任务规划智能体,命名为TaPA(Task Planning Agent)。它能够有效地将真实世界的物理约束有针对性地融入具体任务的规划中。实验结果明确验证了TaPA在日常任务规划方面的卓越表现,相较于LLaVA和GPT-3.5,它具有更高的成功率。这一发现进一步强调了具身任务规划在各种一般和复杂场景中的实际应用潜力。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


总结

ChatGPT与机器人的互动标志着未来智能对话的最前沿。随着技术的不断演进和深入研究,我们可以期待看到更多创新的应用,以及机器人与人类之间更加深刻而有意义的互动。这一趋势将为我们的日常生活、工作和教育带来革命性的变革,使我们能够更好地利用人工智能来提高效率、提供更多便利,并改善生活质量。未来,我们可以期待机器人将成为我们的智能伙伴,为我们提供更加个性化、智能化的支持,促进社会和技术的融合,从而创造更美好的未来。

猜你喜欢

转载自blog.csdn.net/Travis_X/article/details/132759525
今日推荐