0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

当旭日X3派遇上ChatGPT,我们能「chat」什么

地瓜机器人 2023-02-24 11:07 次阅读

地平线旭日®X3派(下文简称旭日X3派)是一款拥有着高算力,面向生态开发者嵌入式,可用于机器人无人驾驶智能家居等领域,并搭载了TogetherROS开发平台,可高效进行机器人开发。ChatGPT是一款由OpenAI开发的自然语言处理模型,可以理解人类语言、自动生成文本、回答问题和完成其他任务,还可以与其他技术联动,实现更加复杂的应用。
旭日X3派遇上ChatGPT会碰撞出什么火花呢?本文使用旭日X3派作为载体,在OriginBot上使用ChatGPT进行问答。相关问题欢迎大家注册加入地平线开发者社区交流讨论,配置文件及代码详见地平线开发者社区。

环境配置

1、解释OriginBot小车代码

1.jfif

2、解释运动学模型

2.png

3、使用OpenCV在OriginBot小车上实现巡线功能

3.png


3.1.png

4、在ROS2环境中实现gmapping或者cartographer

4.png

5、总结对话

5.jfif

综上,我们发现ChatGPT有着记忆储存的功能,它区别于SiRi传统的一问一答,能根据聊天的上下文进行互动并归纳总结所有的问题,协助我们完成编程。并且ChatGPT在回复消息时是逐字的显示,很难感觉到是和机器人在对话,仿佛它只是个博学的朋友。

它在针对简单编程问题的处理上可谓是非常惊艳,在ROS相关的问题上,比我们人类更有耐心解答,有时会画出重点并扩展更多的相关知识帮助你去解决问题掌握技术。

既然ChatGPT都能接入WX,那么它和旭日X3派一定也能「chat」一下!不妨我们直接询问ChatGPT,该如何使得旭日X3派和ChatGPT联系起来!它给了我们这样的一个答案:

6.png

模型部署

1、部署基本环境

进入旭日X3派,执行以下命令(此处使用的是OriginBot v1.0.2的镜像):

pip3 install openai

2、学习OpenAI API如何使用

7.png

import openai # 将OpenAI访问令牌设置为环境变量 openai.api_key = "YOUR_API_KEY" # 调用OpenAI GPT-3模型,生成回答 response = openai.Completion.create( engine="text-davinci-002", prompt="你好!", max_tokens=1024, # 最大1024个标记 temperature=0.7, n=1, stop=None, ) # 输出生成的回答 print(response.choices[0].text)

3、书写节点代码

import rclpy from rclpy.node import Node from std_msgs.msg import String import openai class OpenAINode(Node): def __init__(self): super().__init__('openai_node') self.publisher_ = self.create_publisher(String, 'openai_text', 10) self.subscription = self.create_subscription( String, 'user_input', self.listener_callback, 10) self.subscription # 防止被Python垃圾回收机制删除 def listener_callback(self, msg): # 处理从ROS话题订阅到的输入 input_text = msg.data # 调用OpenAI的GPT-3模型生成文本 openai.api_key = 'YOUR_API_KEY' response = openai.Completion.create( engine="davinci", prompt=input_text, max_tokens=60, n=1, stop=None, temperature=0.7 ) # 将生成的文本发布到ROS话题 self.publisher_.publish(response.choices[0].text) def main(args=None): rclpy.init(args=args) openai_node = OpenAINode() rclpy.spin(openai_node) openai_node.destroy_node() rclpy.shutdown() if __name__ == '__main__': main()

4、部署到旭日X3派中

此处,即可按照古月老师的ROS2 21讲的方式来创建一个基于python的功能包。

5、程序运行

8.png

可以看到,此处运行状态与理想情况有较大出入。回到这一段代码:

import openai # 将OpenAI访问令牌设置为环境变量 openai.api_key = "YOUR_API_KEY" # 调用OpenAI GPT-3模型,生成回答 response = openai.Completion.create( engine="text-davinci-002", prompt="你好!", max_tokens=1024, # 最大1024个标记 temperature=0.7, n=1, stop=None, ) # 输出生成的回答 print(response.choices[0].text)

当前,engine使用的模型,此处是”text-davinci-002“,prompt是指输入文本,max_tokens指的是最大输出文字。首先,打印出所有的模型,示例代码如下:

import openai # 将OpenAI访问令牌设置为环境变量 openai.api_key = "YOUR_API_KEY" # 获取OpenAI最新的语言模型名称 models = openai.Model.list() latest_model = models['data'][0].id print("最新的OpenAI语言模型是:", latest_model) print("\n") printf("所有的模型如下:", models)

与当前WX接入ChatGPT方式进行对照发现,可将其理解为Transformer模型,直接把当前和之前所有的问题和回答都当成输入,生成最终的代码:

import rclpy from rclpy.node import Node from std_msgs.msg import String import openai class OpenAINode(Node): def __init__(self): super().__init__('openai_node') self.publisher_ = self.create_publisher(String, 'chatgpt_node', 10) self.subscription = self.create_subscription( String, 'user_input', self.listener_callback, 10) self.history = "" def listener_callback(self, msg): # 处理从ROS话题订阅到的输入 input_text = msg.data self.history += input_text self.history += " " # 调用OpenAI的GPT-3模型生成文本 openai.api_key = 'KEY' #models = openai.Model.list() #latest_model = models['data'][0].id #print(models) response = openai.Completion.create( engine="text-davinci-003", prompt=self.history+input_text, max_tokens=1024, n=1, stop=None, temperature=0.7 ) # 将生成的文本发布到ROS话题 msg = String() msg.data = response.choices[0].text print(msg.data) self.history += msg.data self.history += " " def main(args=None): rclpy.init(args=args) chatgpt_node = OpenAINode() rclpy.spin(chatgpt_node) chatgpt_node.destroy_node() rclpy.shutdown() if __name__ == '__main__': main()

效果如下:

9.png

本文转自地平线发者社区
原作者:Lxxxb

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1791

    文章

    47206

    浏览量

    238276
  • 开发板
    +关注

    关注

    25

    文章

    5033

    浏览量

    97381
  • OpenAI
    +关注

    关注

    9

    文章

    1082

    浏览量

    6483
  • ChatGPT
    +关注

    关注

    29

    文章

    1560

    浏览量

    7598
收藏 人收藏

    评论

    相关推荐

    OpenAI收购chat.com,强化ChatGPT品牌

    近日有消息报道,OpenAI在成功收购ai.com域名后,再次出手买下了chat.com这一极具价值的域名。相较于ai.com,chat.com更贴合OpenAI旗下热门产品ChatGPT的调性
    的头像 发表于 11-08 11:08 447次阅读

    ChatGPT 在游戏开发中的创新应用

    、流畅的对话。在角色扮演游戏(RPG)或冒险游戏中,这可以用于创建动态对话系统。传统的游戏对话系统通常是预设的,玩家的选择有限,而ChatGPT可以生成更多样化的对话,让每个玩家的体验都独一无二。 应用实例: 个性化对话 :根据玩家的行为和选择,Chat
    的头像 发表于 10-25 18:05 621次阅读

    树莓x86还是arm

    树莓(Raspberry Pi)是一款由英国树莓基金会(Raspberry Pi Foundation)开发的微型计算机。它基于ARM架构,而非x86架构。 一、树莓的发展历程
    的头像 发表于 08-30 15:42 971次阅读

    AIGC遇上ChatGPT,互联网公司的创意设计师,还能做什么?

    的审美眼光和源源不断的创意灵感,还需学会与AI技术携手并进,甚至引领AI技术为设计服务,共同开创设计的新境界。 那么,AIGC遇上ChatGPT,互联网公司的创意设计师,到底还能做什么? 与AIGC协同设计,共创无限创意 随着
    的头像 发表于 06-25 13:32 289次阅读

    树莓5,Raspberry Pi 5 评测

    的B+改进设计,但仔细看!“极为先进”的3.5毫米的音视频插孔已经消失了,所以本代树莓没有模拟视频/音频接口。话虽如此,自树莓 3以来我们就没有使用过那个插孔了 树莓
    发表于 06-19 14:51

    使用espbox lite进行chatgpt_demo的烧录报错是什么原因?

    我使用espbox lite进行chatgpt_demo的烧录 我的idf是v5.1release版本的,espbox是master版本的 在编译时似乎没有什么问题 在烧录时报错 请问这是什么原因
    发表于 06-11 08:45

    OpenAI 深夜抛出王炸 “ChatGPT- 4o”, “她” 来了

    当地时间5月13日OpenAI推出ChatGPT-4o,代表了人工智能向前迈出的一大步。在GPT-4turbo的强大基础上,这种迭代拥有显著的改进。在发布会的演示中,OpenAI展示该模型的高级
    发表于 05-27 15:43

    【Longan Pi 3H 开发板试用连载体验】给ChatGPT装上眼睛,还可以语音对话

    感谢发烧友论坛和Sipeed举办的本次活动,让我有机会可以体验到Longan Pi 3H这块超迷你的H618开发板。我打算用这块板子作为服务器,实现一个可以对话交互并且具备可视能力的ChatGPT
    发表于 04-12 12:41

    在FPGA设计中是否可以应用ChatGPT生成想要的程序呢

    当下AI人工智能崛起,很多开发领域都可看到ChatGPT的身影,FPGA设计中,是否也可以用ChatGPT辅助设计呢?
    发表于 03-28 23:41

    OpenAI启用多重身份验证,ChatGPT用户可自行开启

    ChatGPT服务实例分析,使用者需首先抵达chat.openai.com网页,点击左侧用户名下方的设置图标进入配置界面。随后在“常规”选项组中寻找并选定“多重身份验证”启动与否。
    的头像 发表于 03-10 11:18 1320次阅读

    宝马(中国)召回部分进口X3、2系和X4车型

    此次型号覆盖的具体数量包括:2023年8月29日生产的进口X3车型1辆,2023年9月21日至9月25日生产的进口2系车型2辆,以及同一期间生产的进口X4车型48辆。
    的头像 发表于 03-01 14:56 806次阅读

    【国产FPGA+OMAPL138开发板体验】(原创)6.FPGA连接ChatGPT 4

    , SEND_TO_CHATGPT = 2, DISPLAY_RESPONSE = 3;: 哇,我们的状态机好复杂啊,有四个状态!不过没关系,我们可以一步步来。 再写个简单的: 首先,
    发表于 02-14 21:58

    大众汽车将从第二季度开始将ChatGPT整合到其汽车中

    解决方案提供商赛轮思(Cerence)达成合作,利用其Chat Pro“汽车级”人工智能平台,实现ChatGPT的集成。
    的头像 发表于 01-09 17:36 825次阅读

    为什么ADXL355 FIFO读出的x1的数据最后一个bit不是1?

    按照数据手册,FIFO中的数据最后一个bit是1.但是我们读出来是0.请问FIFO的读出顺序是不是X3,X2,X1,Y3,Y2,Y1,Z
    发表于 12-28 06:48

    【开源项目】Emo:基于树莓 4B DIY 笑会动的桌面机器人

    PAM8403 放大器,对树莓中的声音进行放大。 接着,我们使用 M3 x 15 mm 螺钉将头部下半部分牢牢地固定在机器人的身体上。然后连接之前组装好的头部上半部分,最终完成
    发表于 12-26 15:18