自主巡航任务点判断
·
整体流程概述
- OCR识别数学公式:通过OCR服务识别出数学公式。
这个是最开始识别的计算公式 - LLM处理公式:将识别的公式发送给LLM服务,计算出结果。
- 计算目标点编号:根据LLM返回的结果,计算出目标点编号。
- 范围检查与默认值处理:如果目标点编号超出预设范围(12-15),则使用默认值12。
这四个点依次对应四个任务区域 - 导航到目标点:根据最终的目标点编号,机器人导航到对应的任务点,并执行相关任务。
具体步骤及对应关系
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 =",最终的对应关系如下:
- OCR识别:
"1 + 2 =" - LLM计算结果:
"3" - 目标点编号计算:
14(在范围内) - 范围检查:在范围内,不使用默认值
- 目标点:
14 - 任务执行:
总结
通过将OCR识别的公式改为“1 + 2 =”,整个流程从OCR识别数学公式到最终计算出对应的任务点,依然通过OCR、LLM服务以及范围检查逻辑,将公式结果映射到预设的任务点编号。如果结果超出范围,则使用默认值12,确保机器人能够执行预设的任务。
更多推荐



所有评论(0)