整体流程概述

  1. OCR识别数学公式:通过OCR服务识别出数学公式。这个是最开始识别的计算公式
  2. LLM处理公式:将识别的公式发送给LLM服务,计算出结果。
  3. 计算目标点编号:根据LLM返回的结果,计算出目标点编号。
  4. 范围检查与默认值处理:如果目标点编号超出预设范围(12-15),则使用默认值12。这四个点依次对应四个任务区域
  5. 导航到目标点:根据最终的目标点编号,机器人导航到对应的任务点,并执行相关任务。

具体步骤及对应关系

1. OCR识别数学公式
  • OCR服务:调用/ocr_detection服务,识别出数学公式。
    ocr_detect = self.call_ocr_detection_service()
    if ocr_detect is not None:
        ocr_text += ocr_detect
    else:
        print("OCR 识别失败,结果为 None")
    
  • 示例:假设OCR识别的公式是"1 + 2 =",则ocr_text = "1 + 2 ="
2. LLM处理公式
  • LLM服务:将OCR识别的公式发送给LLM服务,计算结果。
    end_result = navi.llm_client(ocr_text)
    
  • 示例:LLM解析并计算"1 + 2 =",返回结果"3"
    • end_result = "3"
3. 计算目标点编号
  • 计算公式:根据LLM返回的结果,计算目标点编号。
    target_point = int(end_result) + 11
    
  • 示例target_point = int("3") + 11 = 14
4. 范围检查与默认值处理
  • 范围检查:检查目标点编号是否在预设范围内(12-15)。这四个点依次对应四个任务区域
    if target_point not in [12, 13, 14, 15]:
        rospy.logwarn("目标点位超出范围(12-15),默认使用12号点")
        target_point = 12
    
  • 示例:因为14在范围内,所以target_point保持为14。
5. 导航到目标点并执行任务
  • 导航到目标点:根据最终的目标点编号,机器人导航到对应的任务点。
    navi.goto(goals[target_point])
    

最终对应关系

假设OCR识别的公式是"1 + 2 =",最终的对应关系如下:

  1. OCR识别"1 + 2 ="
  2. LLM计算结果"3"
  3. 目标点编号计算14(在范围内)
  4. 范围检查:在范围内,不使用默认值
  5. 目标点14
  6. 任务执行

总结

通过将OCR识别的公式改为“1 + 2 =”,整个流程从OCR识别数学公式到最终计算出对应的任务点,依然通过OCR、LLM服务以及范围检查逻辑,将公式结果映射到预设的任务点编号。如果结果超出范围,则使用默认值12,确保机器人能够执行预设的任务。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐