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

    文章

    46820

    浏览量

    237463
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97159
  • OpenAI
    +关注

    关注

    9

    文章

    1041

    浏览量

    6400
  • ChatGPT
    +关注

    关注

    29

    文章

    1548

    浏览量

    7471
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ChatGPT原理 ChatGPT模型训练 chatgpt注册流程相关简介

    ChatGPT注册没有外国手机号验证怎么办? ChatGPT作为近期火爆网络的AI项目,受到了前所未有的关注。我们可以与AI机器人实时聊天,获得问题的答案。但受ChatGPT服务器及相
    的头像 发表于 12-06 16:28 841次阅读
    <b class='flag-5'>ChatGPT</b>原理 <b class='flag-5'>ChatGPT</b>模型训练 <b class='flag-5'>chatgpt</b>注册流程相关简介

    TogetherROS系统更新和CPU调频策略配置

    系统更新 第二个配置,是更新当前旭日X3所使用的Ubuntu镜像,和在电脑上使用的命令相同。 我们更新一下当前的系统镜像: $ sudo apt update #会按照当前软件源的域
    的头像 发表于 12-01 15:44 870次阅读
    TogetherROS系统更新和CPU调频策略配置

    TogetherROS系统中如何配置网络连接

    可以直接用网线连接旭日X3和一个可以上网的路由器,不过更多时候,我们还是会使用无线网络来上网。 我们打开MobaXterm,选择SSH,使
    的头像 发表于 12-01 15:39 445次阅读
    TogetherROS系统中如何配置网络连接

    微软Copilot(Bing Chat)将升级至GPT-4 Turbo

    微软Copilot(Bing Chat)将升级至GPT-4 Turbo 微软广告和网络服务负责人Mikhail Parakhin在X平台透露,Copilot(Bing Chat)目前还在解决一些问题
    的头像 发表于 11-28 18:37 1137次阅读

    TogetherROS目标检测运行方法

    到了旭日X3板子上; 2.有一个HDMI的显示器也连接到了旭日X3板子上,它主要用于显示后续
    的头像 发表于 11-28 16:41 457次阅读
    TogetherROS目标检测运行方法

    分布式网络分组和通信

    分布式网络分组 没问题,ROS2提供了一个DOMAIN的机制,就类似分组一样,处于同一个DOMAIN中的计算机才能通信,我们可以在电脑和旭日X3端中加入这样一句配置,即可将两者分配到
    的头像 发表于 11-27 15:59 417次阅读
    分布式网络分组和通信

    地平线机器人开发UART串口通信程序

    的数据了。 在串口连接的电脑中打开一个串口软件,用来接收和发送数据,设置好端口和波特率,就能看到旭日X3发过来的数据了。我们再使用电脑的串口软件尝试下发送数据给
    的头像 发表于 11-27 10:55 372次阅读

    SPI同步串行通信运行示例程序

    运行示例程序 大家来运行例程,看看会发生什么? $ sudo python3 test_spi.py 在旭日X3的终端中,输入运行例程的指令,接下来
    的头像 发表于 11-24 17:43 479次阅读
    SPI同步串行通信运行示例程序