【TextIn大模型加速器 + 火山引擎】赋能机器人行业分析与VLA研究

【TextIn大模型加速器 + 火山引擎】赋能机器人行业分析与VLA研究

目录

一、TextIn大模型加速器

随着大模型技术的快速发展,大量结构化数据需求日益增大,但网络上绝大多数数据都是非结构化的。在大模型处理过程中,数据前处理阶段的结构化程度,对后续阶段的语义理解与逻辑推理能力有着极大地决定作用。

TextIn解析引擎正从应用工具演变为研究基础设施,不仅加速了大模型在文档智能领域的研究进展,更重要的是,它通过提供真实、复杂、多样化的文档处理场景,推动了大模型在多模态理解、复杂推理和专业领域应用等方面的根本性突破。

在这里插入图片描述

核心优势

  • 支持任意复杂布局:将任意版式的文档拆解为语义完整的段落,并按阅读顺序还原,更加适配大模型。
  • 多元素高精度解析:准确提取标题、公式、图表、手写体、印章、跨页段落、页眉页脚、表单字段等各种元素,同时具备行业领先的表格识别能力,轻松解决合并单元格、跨页表格、无线表格等识别难题。
  • 强大的语义理解和上下文感知:捕捉更多版面元素间的语义关系,让大模型更加读懂一份文档。
  • 强大的预处理工具:无缝集成TextIn平台中的图像处理能力,文档带水印、图片有弯曲、模糊,都能搞定。
  • 高精度坐标还原:JSON结果包含高精度的页面、元素、字符级坐标数据,方便人工复核。
  • 极简、智能、灵活的语义抽取:xParse提供prompt模式和Schema模式两种抽取规则定制,帮助您根据业务需要实现更灵活的文档信息精准提取。
  • 开发者友好:提供清晰的API文档和灵活的集成方式,支持FastGPT、Coze、CherryStudio等主流平台。

在体验TextIn xParse的过程中,使用它作为大模型输入端的前处理插件,对文档作结构化处理,并以markdown 和 JSON 的形式输出给后续的大模型,结合火山引擎探索了其在机器人行业报告分析与在VLA研究中的使用。

二、行业报告分析与发展建议

首先是一个比较简单的文档解析工作流,主要是根据提示词对给定文档作定向解析,并根据文档内容给出知道建议。

2.1 场景描述

信息碎片化时代,精准搜索有效信息并梳理总结成为了一件困难的事情,经常大部分时间都花在整理信息上。找到的文献、报告等大多数篇幅很长,人工梳理耗时耗力,有些读下来不是想要的又浪费时间。

所以借助 Coze + TextIn 搭建了一个行业报告分析与发展建议工作流,流程泳道图如下:

在这里插入图片描述

2.2 工作流逻辑编排

由于ParseX插件的加持,整个工作流只需要4个节点即可实现该功能:

在这里插入图片描述

其中,ParseX节点必要输入为文件路径,app_id和secret_code为TextIn的开发者信息与密钥。

这一步,ParseX作为文档解析预处理引擎,对文档内容进行标准化、增强、优化中间表示,结构识别与标记,并进行内容提取与初分类。针对下一步的大模型处理,降低了大模型的计算负担,提升了大模型的准确性。基本理念就是:让大模型专注于它最擅长的语义理解和推理任务,而将繁琐的、模式化的预处理工作交给专门优化的工具完成。

在这里插入图片描述

app_id和secret_code对应TextIn工作台页面的x-ti-app-id和x-ti-secret-code。

在这里插入图片描述

大模型选择 豆包·1.6·lite·251015 ,比较轻量化,对于简单任务,不追求速度的话,还是满足的。主要是其他模型消耗的tokens太多了,哈哈。

大模型的输入选择ParseX节点的markdown输出,进行下一步的内容解析。

在这里插入图片描述

值得注意的是,ParseX节点不仅有markdown输出,还有更丰富的其他信息。这里只是简单的文档内容解析,对于其他更加复杂的任务,ParseX给出了更加精细的文档信息输出。

在这里插入图片描述

2.3 大模型提示词

通过提示词,限定大模型对文档内容的解析方向并给出定制输出。

在这里插入图片描述

2.4 结果展示

基于具身智能的智慧工厂创新应用白皮书(2025)(31页)

31页文档,ParseX处理耗时 6s

在这里插入图片描述

具身智能复合移动机器人产业发展蓝皮书(2025)(72页)

72页文档,ParseX处理耗时 14s

在这里插入图片描述

2025人工智能发展白皮书(144页)

144页文档,ParseX处理耗时 36s

在这里插入图片描述

三、ParseX结合Coze API控制本地机器人

TextIn大模型加速器+火山引擎,只能做文档分析吗?

不,能做的还很多,比如可以将意图通过语音或文档的形式输入给云端智能体,通过提示词或更专业的知识库限定智能体的解析方向与输出,打造一个机器人任务规划专家,实现一个从 Language 到 Action 的端到端服务。

3.1 场景描述

目前机器人任务规划通常是平台端处理,交互基本是在平台端的UI界面按照给定的格式填写任务配置。

然而,对于生活场景来说,最理想的人机交互方式是自然语言交互,所以借助这次体验,做了一个简单的从自然语言到动作的demo。流程泳道图如下:

在这里插入图片描述

3.2 工作流逻辑编排

该demo实现解析一段导航指令描述,将预言描述转换为机器人可以理解的json格式动作集。当然不仅仅是导航,也可以实现其他执行器的控制,这里仅以导航为例。

由于需要理解地图信息包括图片,这里介入了图片理解插件。任务描述通过ParseX解析后,和地图一起传给imgUnderstand节点进行处理,后续传给大模型进行进一步的语义与意图解析并生成动作集。

在这里插入图片描述

3.3 大模型提示词

通过提示词,限定大模型对任务描述的解析方向并给出定制输出。

在这里插入图片描述

完整提示词:

# 角色:{#InputSlot placeholder="角色名称" mode="input"#}机器人任务规划专家{#/InputSlot#} {#InputSlot placeholder="角色概述和主要职责的一句话描述" mode="input"#}主要职责为将任务描述分解为机器人可执行的原子动作序列。{#/InputSlot#} ## 目标: {#InputSlot placeholder="角色的工作目标,如果有多目标可以分点列出,但建议更聚焦1-2个目标" mode="input"#}分析机器人行业技术动向,预测机器人行业发展方向。{#/InputSlot#} ## 技能: 1. {#InputSlot placeholder="为了实现目标,角色需要具备的技能1" mode="input"#}多模态任务理解与解析{#/InputSlot#} 2. {#InputSlot placeholder="为了实现目标,角色需要具备的技能2" mode="input"#}分层任务分解与规划{#/InputSlot#} 3. {#InputSlot placeholder="为了实现目标,角色需要具备的技能3" mode="input"#}资源感知与优化调度{#/InputSlot#} 4. {#InputSlot placeholder="为了实现目标,角色需要具备的技能4" mode="input"#}鲁棒执行与异常处理{#/InputSlot#} ## 工作流: 1. {#InputSlot placeholder="描述角色工作流程的第一步" mode="input"#}分析{{input}}任务的核心目标与约束条件{#/InputSlot#} 2. {#InputSlot placeholder="描述角色工作流程的第二步" mode="input"#}结合{{input}}与{{map}}地图,建立坐标系,单位:m,度{#/InputSlot#} 3. {#InputSlot placeholder="描述角色工作流程的第三步" mode="input"#}结合{{input}}与{{map}}按逻辑顺序分解步骤{#/InputSlot#} 4. {#InputSlot placeholder="描述角色工作流程的第四步" mode="input"#}为每一步分配合适的原子动作{#/InputSlot#} 5. {#InputSlot placeholder="描述角色工作流程的第五步" mode="input"#}考虑异常处理(如物体未找到){#/InputSlot#} ## 输出格式: {#InputSlot placeholder="如果对角色的输出格式有特定要求,可以在这里强调并举例说明想要的输出格式" mode="input"#}{ "plan_id": "{{任务唯一标识}}", "plan": [ { "step": {{步骤序号}}, "action": "{{动作类型}}", "action_id": "{{步骤唯一ID}}", "parameters": {{动作参数对象}}, "pre_conditions": [ { "type": "{{条件类型}}", "key": "{{状态键名}}"?, "value": {{期望值}}?, "operator": "{{比较符}}"?, "tolerance": {{容差}}?, "min_confidence": {{置信度}}? } ], "post_conditions": [...], // 结构同pre_conditions "estimated_duration": {{预估秒数}}, "retry_policy": { "max_attempts": {{最大尝试次数}}, "retry_delay": {{重试延迟秒数}}?, "on_failure": "{{备用动作ID}}"? // 引用fallback_actions中的键 } } // ... 更多步骤 ] } 其中,parameters` 对象的内容因 `action` 而异。以下是常见动作的参数模板: navigate_to(导航) { "waypoint_id": "string", // 【必需】预定义路点ID "coordinate": { // 【必需】路点坐标,与waypoint_id互补说明,单位:m,度 "x": "number", "y": "number", "z": "number", "theta": "number" }, "speed_limit": "number" // 【可选】速度限制,单位 m/s } confirm_position(确认位置) { "waypoint_id": "string", // 【必需】预定义路点ID "coordinate": { // 【必需】路点坐标,与waypoint_id互补说明,单位:m,度 "x": "number", "y": "number", "z": "number", "theta": "number" } } scan_area(扫描) { "scan_area_id": "string", // 【必需】预定义扫描区域ID "target_object_class": ["string"], // 【可选】目标物体类型列表 "scan_mode": "string", // 【可选】扫描模式,如 “NORMAL”, “DEEP” "timeout": "integer" // 【可选】超时时间,单位:秒 } grasp(抓取) { "object_id": "string", // 【必需】目标物体ID "grasp_pose": { // 【可选】抓取位姿 "x": "number", "y": "number", "z": "number", "roll": "number", "pitch": "number", "yaw": "number" }, "force_limit": "number" // 【可选】抓取力限制,单位:N } wait(等待) { "duration": "integer" // 【必需】等待时长,单位:秒 } {#/InputSlot#} ## 限制: - {#InputSlot placeholder="描述角色在互动过程中需要遵循的限制条件1" mode="input"#}原子动作库 1. navigate_to(location): 导航到地图坐标系中的指定位置(如 `仓库-A区-货架3`)。 2. grasp(object, quantity): 使用机械臂抓取指定类别和数量的物体(如 `红色螺丝`, `2盒`)。 3. place(object, location): 将抓取的物体放置到指定位置。 4. scan_area(area): 使用视觉传感器扫描指定区域,识别和定位目标物体。 5. confirm_position(): 通过地标或传感器确认已精确到达目标位置。 6. wait(duration): 等待指定秒数,用于避让或同步。{#/InputSlot#} - {#InputSlot placeholder="描述角色在互动过程中需要遵循的限制条件2" mode="input"#}地图yaml文件基本参数详解 image: my_map.png 作用:指定地图图像文件 说明: my_map.png 是实际的地图图像文件(png格式) 每个像素表示该位置是障碍物还是自由空间 mode: trinary 作用:指定地图的占用值解释模式 可选值: trinary(默认):三值模式 像素值 0-196:自由空间(白色) 像素值 197-252:未知区域(灰色) 像素值 253-255:障碍物(黑色) scale:缩放模式 像素值线性映射到占用概率 raw:原始模式 直接使用像素值作为占用概率 Nav2 推荐使用:trinary resolution: 0.050 作用:地图分辨率(米/像素) 说明: 0.050 表示每个像素代表现实世界的 0.05 米(5厘米) 这是地图的比例尺 计算示例: 100像素 × 0.05米/像素 = 5米 地图尺寸为 400×400 像素时: 宽度:400 × 0.05 = 20米 高度:400 × 0.05 = 20米 origin: [-0.966, -2.069, 0] 作用:地图左下角在世界坐标系中的位置 格式:[x, y, yaw] 说明: -0.966:地图左下角的 X 坐标(米) -2.069:地图左下角的 Y 坐标(米) 0:地图的旋转角度(弧度),通常为 0 重要: 这是地图坐标系到世界坐标系的变换 图像像素 (0,0) 对应世界坐标 (origin_x, origin_y) 图像像素 (width,height) 对应世界坐标 (origin_x+widthresolution, origin_y+heightresolution) negate: 0 作用:是否反转图像的黑白意义 可选值: 0:不反转(默认) 黑色像素 = 障碍物 白色像素 = 自由空间 1:反转 黑色像素 = 自由空间 白色像素 = 障碍物 通常设置:0(保持原样) occupied_thresh: 0.65 作用:判断为障碍物的阈值 范围:0.0 到 1.0 说明: 像素值 > 0.65(65%)被认为是障碍物 在 trinary 模式下: 像素值 253-255(99.2%-100%)> 0.65,所以是障碍物 调整建议: 值调高(如 0.8):更严格,减少误判为障碍物 值调低(如 0.5):更宽松,更多区域被认为是障碍物 free_thresh: 0.196 作用:判断为自由空间的阈值 范围:0.0 到 1.0 说明: 像素值 < 0.196(19.6%)被认为是自由空间 在 trinary 模式下: 像素值 0-196(0%-76.9%)< 0.196,所以是自由空间 注意:必须小于 occupied_thresh {#/InputSlot#} 

3.4 地图与任务描述

使用 tb3_simulation 的环境,需要提前自己建好图,运行导航仿真环境:

ros2 launch nav2_bringup tb3_simulation_launch.py slam:=False map:=my_map.yaml 

启动环境并初始化定位后,如下图:

在这里插入图片描述

示例任务指定机器人行走到地图的右上角区域,描述如下,保存到 command.txt 文件中:

地图格式说明: image: my_map.png mode: trinary resolution: 0.025 origin: [-0.966, -2.069, 0] negate: 0 occupied_thresh: 0.65 free_thresh: 0.196 任务说明: 1.走到地图右上角的区域,停留5s 

地图如下,保存到 my_map.png 中,

这里注意,本来地图格式为 my_map.pgm,但Coze的大模型不支持 .pgm 格式,所以妥协了一下,但转换时需要注意不要改变位深度,不好会损失精度。

在这里插入图片描述

3.5 本地调用

Coze提供了本地调用API,详见:https://www.coze.cn/open/playground

该工作流python调用示例如下:

""" This example describes how to use the workflow interface to chat. """import sys import json import parse_plan # Our official coze sdk for Python [cozepy](https://github.com/coze-dev/coze-py)from cozepy import COZE_CN_BASE_URL # Get an access_token through personal access token or oauth. coze_api_token ='cztei_xxxxxxxxxxxxxxxxxxxxxxxx'# The default access is api.coze.com, but if you need to access api.coze.cn,# please use base_url to configure the api endpoint to access coze_api_base = COZE_CN_BASE_URL from cozepy import Coze, TokenAuth, Message, ChatStatus, MessageContentType # noqadefword_to_action():# Init the Coze client through the access_token. coze = Coze(auth=TokenAuth(token=coze_api_token), base_url=coze_api_base)# Create a workflow instance in Coze, copy the last number from the web link as the workflow's ID. workflow_id ='xxxxxxxxxxxxxxxxx'iflen(sys.argv)<2: sys.exit(1) command_path = sys.argv[1]print(f"uploading command file: {command_path}") command = coze.files.upload(file=command_path)print(f"uploaded command file: {command.file_name}\n {command}") map_path = sys.argv[2]print(f"uploading command file: {map_path}") world_map = coze.files.upload(file=map_path)print(f"uploaded command file: {world_map.file_name}\n {world_map}") parameters ={"input":{"file_id": command.id},"map":{"file_id": world_map.id},}# Call the coze.workflows.runs.create method to create a workflow run. The create method# is a non-streaming chat and will return a WorkflowRunResult class. workflow = coze.workflows.runs.create( workflow_id=workflow_id, parameters=parameters ) action = json.loads(json.loads(workflow.data)['output'])print("action: ", action)return action if __name__ =="__main__": parse_plan.parse_action(word_to_action())

3.6 结果展示

运行脚本后,云端返回规划好的动作集,本地解析后发给机器人执行器:

在这里插入图片描述

Read more

突破机器人通讯架构瓶颈,CAN/FD、高速485、EtherCAT,哪种总线才是最优解?

突破机器人通讯架构瓶颈,CAN/FD、高速485、EtherCAT,哪种总线才是最优解?

引言: 从协作机械臂到人形机器人,一文拆解主流总线技术选型困局 在机器人技术飞速发展的今天,从工厂流水线上的协作机械臂到科技展会上的人形机器人,它们的“神经系统”——通讯总线,正面临着前所未有的挑战。特斯拉Optimus的精准动作、波士顿动力Atlas的流畅跑跳,背后都是海量数据的高速交互。 然而,许多工程师在项目初期都会陷入同一个困境:面对RS485、CAN/CAN FD、EtherCAT等多种总线方案,究竟该如何选择? 本文将从机器人类型与需求分析出发,深入剖析三大主流总线技术的优劣,不提供“标准答案”,只提供一套科学的选择方法论。 一、机器人类型与通讯需求拆解 不同机器人的自由度、运动复杂度和性能要求,直接决定了其通讯总线的选择方向。下图概括了三种典型机器人的通讯需求与方案选择: 1. 低自由度/轻量型机器人(6-12自由度) 典型代表:协作机械臂、AGV小车、桌面级教育机器人。 核心需求:成本敏感、可靠性、易于集成、适度实时性(毫秒级)。这类机器人节点数相对较少,数据量不大,但对性价比要求极高。 现有主流方案:CAN

FPGA小白学习日志二:利用LED实现2选1多路选择器

在上一篇文章中,主播利用炒菜的比喻帮大家介绍了LED工程的建立,所以在读这一篇文章前,大家可以简要回顾以下LED工程的建立流程。本篇内容,主播主要向大家介绍数据选择器工程的实现方法。   在开始之前,我们先来了解一下数据选择器是什么:所谓数据选择器,就是从多个输入的逻辑信号中选择一个逻辑信号输出,实现数据选择功能的逻辑电路就是数据选择器。我们用来打个比方,现在我们手中有两张电影票A和B,但这时我们是不知道到底哪张电影票是允许我们进入电影院的,这时候我们就要去问检票员,检票员说A,那就可以进;否则,B就可以进。通过这个比喻,我们就能理解数据选择器的大体思路了:这里的电影票A与B就相当于输入信号in1与in2,检票员就相当于数据选择信号sel(英文select),电影院就相当于输出信号out,注意这里的输出信号out只有一个。因此,我们就可以在Visio中设计出2-1数据选择器:                               同样,我们给出2-1数据选择器的真值表:                我们来分析以下这个真值表:当选择信号sel为0时,对应输入信号in

2026低代码选型指南:AI与低代码双向赋能,破解企业数字化落地难题

2026低代码选型指南:AI与低代码双向赋能,破解企业数字化落地难题

在数字化转型深化的今天,低代码平台已从“边缘工具”升级为企业数字化的核心基建,成为破解“开发效率低、技术门槛高、系统集成难”的关键抓手。根据Gartner预测,2026年全球80%的新应用将通过低代码构建,但企业在选型过程中,往往陷入“重功能、轻适配”“追概念、缺落地”的误区——要么平台易用性不足,业务人员无法上手;要么技术拓展性欠缺,难以支撑复杂业务场景;要么AI功能流于表面,无法真正赋能全流程。 真正优秀的低代码平台,应当兼顾“易用性、专业性、扩展性”三大核心,而2026年的核心趋势的是“AI与低代码深度融合”:AI降低使用门槛,低代码提供落地底座,二者互为支撑、双向赋能,才能真正让数字化转型落地到每一个业务环节。 一、企业低代码选型的3个核心维度(避开90%的坑) 很多企业选型时,过度关注“拖拽功能多炫”“模板数量多少”,却忽略了核心适配性,导致项目上线后无法落地、反复返工。结合上千家企业落地经验,

Webots 2025a + ROS 2 Jazzy e-puck 机器人教程

Webots 2025a + ROS 2 Jazzy e-puck 机器人教程

Webots 2025a + ROS 2 Jazzy e-puck 机器人分步使用与研究教程 本教程跳过环境安装环节,聚焦实操步骤和深度研究维度,从基础仿真启动到核心模块拆解,每一步都标注操作指令、验证方法和研究切入点,帮助你彻底掌握 e-puck 机器人的 ROS 2 集成使用。 前提确认 先执行以下命令验证环境就绪(确保无报错): bash 运行 # 加载ROS 2环境(若已添加到.bashrc可跳过) source ~/webots_ws/install/setup.bash # 验证功能包存在 ros2 pkg list | grep webots_ros2_epuck # 验证Webots版本 webots --version # 输出应包含2025a webots --version webots --version webots