初体验国内大模型,进行ros机器人移动 一(可定义自己的消息类型)

前言

  • 最近看到很多大模型前沿技术,端到端控制机械臂运动。所以就想到了用大模型根据自己定义的一些文档数据进行指令的输出。
  • 自己搭建大模型,公司电脑配置太差,虚拟机没有安装显卡。所以用了自己平时搜问题用的Kimi智能大模型助手,有很多功能都能用,比较方便。
  • 本文代码将全部使用大模型来生成,小白也可以。(为了体现大模型的好处吧)

设计界面

毋庸置疑Gui界面用python是最快的

  1. 设计界面(用画图工具随便画)
    在这里插入图片描述
  2. 直接进入kimi官网 (https://kimi.moonshot.cn/)
    把图片拉进去
    在这里插入图片描述
  3. 出来的代码复制到linux运行一下
    在这里插入图片描述
    完美!!!!

API测试

  1. 进入kimi API 文档(https://platform.moonshot.cn/)
    建账号,然后新建key免费的
  2. 因为需要用到自己定义的一些文档数据使用文件分析大模型接口
    在这里插入图片描述
    复制到linux运行一下可以用。记得把代码中的api_key换成自己刚申请的。

把API放入界面

  1. 结合api代码和gui代码
#!/usr/bin/env python
# coding:utf-8
import tkinter as tk
from pathlib import Path
from openai import OpenAI

# 创建主窗口
root = tk.Tk()
root.title("带解释性标签的GUI应用程序")

# 创建一个标签,用于解释文本输入框
ros_entry_label = tk.Label(root, text="指令:")
ros_entry_label.pack()

# 创建一个文本输入框
ros_entry = tk.Entry(root, width=50)
ros_entry.pack(pady=10)

# 创建一个标签,用于解释文本框
content_label = tk.Label(root, text="返回内容:")
content_label.pack()


# 创建一个文本框,用于显示内容
content_text = tk.Text(root, height=10, width=50)
content_text.pack(pady=10)


# 创建一个按钮,点击时会执行一个函数
def execute_action():
    kimi_api()
    
def kimi_api():
    print("kimi_init")
    # 获取KEY的内容
    key_content = "*****"

    client = OpenAI(
        api_key = key_content,
        base_url = "https://api.moonshot.cn/v1",
    )


    # 获取指令的内容
    ros_content = ros_entry.get()

    # xlnet.pdf 是一个示例文件, 我们支持 pdf, doc 以及图片等格式, 对于图片和 pdf 文件,提供 ocr 相关能力
    file_object = client.files.create(file=Path("ros.txt"), purpose="file-extract")
 
    # 获取结果
    # file_content = client.files.retrieve_content(file_id=file_object.id)
    # 注意,之前 retrieve_content api 在最新版本标记了 warning, 可以用下面这行代替
    # 如果是旧版本,可以用 retrieve_content
    file_content = client.files.content(file_id=file_object.id).text
    # 把它放进请求中
    messages = [
        {
            "role": "system",
            "content": "你是ubuntu系统下的ros机器人专家,擅长linux命令,只需要输出相应命令。",
        },
        {
            "role": "system",
            "content": file_content,
        },
        {"role": "user", "content": ros_content},
    ]
 
    # 然后调用 chat-completion, 获取 Kimi 的回答
    completion = client.chat.completions.create(
        model="moonshot-v1-32k",
        messages=messages,
        temperature=0.3,
    )
 
    # 获取输入框的内容
    content = completion.choices[0].message.content
    # 清空文本框内容
    content_text.delete(1.0, tk.END)
    # 将内容显示在文本框中
    content_text.insert(tk.END, content)

def main():
    
    # 创建一个按钮,绑定execute_action函数到点击事件
    execute_button = tk.Button(root, text="执行", command=execute_action)
    execute_button.pack()
    # 启动事件循环
    root.mainloop()
    # 创建一个按钮,点击时会执行一个函数
    
    
if __name__ == "__main__":
    main()

测试

首先是ros基本的命令
在这里插入图片描述
然后是自己定义的消息
在这里插入图片描述
自己的文档ros.txt
内容

前往600导航点 “go 0 id ”是自由路径 “go 1 id”是固定路径
rostopic pub -1 /navigation_cmd std_msgs/String “data: ‘go 0 600’”

后续

直接在python调用命令行bash,达到点击执行ros机器人就能移动,在想要不要用小乌龟给你们演示
以上过程小打小闹半个小时
20240606记录一下,勿喷!!!!

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值