地平线旭日®X3派(下文简称旭日X3派)是一款拥有着高算力,面向生态开发者的嵌入式,可用于机器人、无人驾驶、智能家居等领域,并搭载了TogetherROS开发平台,可高效进行机器人开发。ChatGPT是一款由OpenAI开发的自然语言处理模型,可以理解人类语言、自动生成文本、回答问题和完成其他任务,还可以与其他技术联动,实现更加复杂的应用。
旭日X3派遇上ChatGPT会碰撞出什么火花呢?本文使用旭日X3派作为载体,在OriginBot上使用ChatGPT进行问答。相关问题欢迎大家注册加入地平线开发者社区交流讨论,配置文件及代码详见地平线开发者社区。
环境配置
1、解释OriginBot小车代码
2、解释运动学模型
3、使用OpenCV在OriginBot小车上实现巡线功能
4、在ROS2环境中实现gmapping或者cartographer
5、总结对话
综上,我们发现ChatGPT有着记忆储存的功能,它区别于SiRi传统的一问一答,能根据聊天的上下文进行互动并归纳总结所有的问题,协助我们完成编程。并且ChatGPT在回复消息时是逐字的显示,很难感觉到是和机器人在对话,仿佛它只是个博学的朋友。
它在针对简单编程问题的处理上可谓是非常惊艳,在ROS相关的问题上,比我们人类更有耐心解答,有时会画出重点并扩展更多的相关知识帮助你去解决问题掌握技术。
既然ChatGPT都能接入WX,那么它和旭日X3派一定也能「chat」一下!不妨我们直接询问ChatGPT,该如何使得旭日X3派和ChatGPT联系起来!它给了我们这样的一个答案:
模型部署
1、部署基本环境
进入旭日X3派,执行以下命令(此处使用的是OriginBot v1.0.2的镜像):
pip3 install openai
2、学习OpenAI API如何使用
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、程序运行
可以看到,此处运行状态与理想情况有较大出入。回到这一段代码:
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()
效果如下:
本文转自地平线发者社区
原作者:Lxxxb
-
人工智能
+关注
关注
1813文章
49734浏览量
261511 -
开发板
+关注
关注
25文章
6122浏览量
113322 -
OpenAI
+关注
关注
9文章
1238浏览量
9813 -
ChatGPT
+关注
关注
31文章
1596浏览量
10072
发布评论请先 登录
半年参与3万辆宝马X3生产,人形机器人“进厂打工”真成了
华为路由 X3 Pro火了!业界首发Wi-Fi7+和透明天线,1299元起
当EtherCAT遇上PROFINET:我们的“协议小翻译”让矿井安全手拉手
如何在香橙派5 Plus上移植deepin 25操作系统
奇瑞风云X3系列双车上市
树莓派与EthernetHat:用ChatGPT实现的MQTT智能家居项目!
韵乐Vinal X3/X5卡拉OK音频处理器调音软件简介
RDK X3 带飞的智能护理系统:让机器人秒变贴心小棉袄
当 RDK X3 遇上仓储机器人,智链团队让效率原地起飞
HMC-XTB110 无源x3倍频器,24-30GHz输入技术手册
树莓派遇上ChatGPT,魔法热线就此诞生!
当自行车遇上了树莓派

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