机器人调度平台 机器人调度平台实战

生产级调度平台的底线:安全、审计与运维

分享到微博

上一篇我们分享了南向插件化的实战经验——从核心代码塞满品牌 if/else,到新增品牌只写一个驱动。这一篇是系列收官,我们聊聊生产级调度平台的「底线」——安全、审计、运维。demo 阶段这些东西看起来「没用」,但到了生产环境,它们就是生命线。本文分享我们在安全基线、全链路审计、运维监控、灰度发布、版本治理这些方面的踩坑和实战经验。


一、demo 和生产级平台的差距在哪里?

很多人做机器人平台,demo 阶段跑得很好——能下发任务、能看到机器人状态、能执行简单操作。但一到生产环境,各种问题就来了:

  • 安全问题——有人没登录就能下发任务,甚至能让机器人紧急停止;接口没有鉴权,被外部调用导致数据泄露
  • 审计问题——任务失败了,不知道是谁下发的、什么时候下发的、哪一步出了错;出了事故无法溯源,责任分不清
  • 运维问题——服务器挂了不知道,机器人离线了没人发现,磁盘满了服务崩溃,升级新版本导致全量机器人失联
  • 稳定性问题——偶尔出现「任务下发了但机器人没收到」「状态显示正常但实际已经卡住」等诡异 bug,排查半天找不到原因

这些问题的根源是:demo 只需要「能跑」,生产级平台需要「可靠、安全、可运维」。

demo 阶段,平台只面对几个测试人员、几台测试机器人、一个测试环境,出了问题大不了重启。但生产环境里,平台面对的是几十上百台机器人、多个客户、7×24 小时不间断运行,出了问题可能导致生产中断、设备损坏、甚至人员受伤。

安全、审计、运维,就是生产级平台的「底线」。 这些东西在 demo 阶段看起来「没用」——不做安全鉴权,开发更快;不做审计,代码更简;不做运维监控,部署更易。但到了生产环境,这些「没用」的东西就是生命线——没有它们,平台就是一颗定时炸弹。

本文分享我们在这三个方面的实战经验。


二、安全基线:平台的第一道防线

安全是底线中的底线。机器人调度平台控制着物理世界的设备——如果平台被入侵,攻击者可以让机器人失控、泄露生产数据、甚至造成安全事故。

我们踩过的安全坑不少,总结出几条必须守住的基线。

坑一:「内部系统不用鉴权」的侥幸心理

刚开始做平台的时候,我们想:「这是内部系统,只有几个运维人员用,不用做鉴权了吧?」

结果有一次,客户的 IT 人员做安全扫描,发现我们的平台接口完全没有鉴权——任何人只要能访问这个 IP,就能下发任务、停止机器人、查看所有数据。

客户直接给我们发了安全整改通知,说「不整改就不能上线」。

教训:只要是联网的系统,就必须做鉴权,不管是不是「内部系统」。 内部网络也可能被入侵,员工账号也可能被盗,「内部系统」不是免死金牌。

鉴权怎么做?

我们现在的鉴权方案:

  1. 用户名密码 + JWT Token——用户登录后获取 JWT Token,后续请求携带 Token。Token 有过期时间,过期需要重新登录。
  2. API Key——系统间对接(比如客户的 MES 系统调用我们的平台接口)用 API Key,每个客户/系统分配独立的 Key,可以单独撤销。
  3. HTTPS/WSS 加密传输——所有通信走加密通道,不能有明文传输。
  4. Token 过期和刷新机制——Access Token 短期有效(比如 2 小时),Refresh Token 长期有效(比如 7 天),用 Refresh Token 刷新 Access Token,避免频繁登录。

坑二:「都是管理员」的权限混乱

鉴权做好了,但还有一个问题——所有登录用户都是管理员,什么都能做。

有一次,一个新来的运维人员不熟悉系统,不小心点了「批量停止所有机器人」,结果车间里 20 台机器人全部停了,生产中断了半小时。

教训:鉴权只是「你是谁」,权限控制是「你能做什么」。两者都要有。

权限控制(RBAC)怎么做?

我们用基于角色的访问控制(RBAC),定义了几个角色:

角色权限
超级管理员所有权限,包括用户管理、系统配置、数据删除
运营管理员任务下发、机器人管理、查看统计、告警处理
运维人员查看状态、日志查询、远程诊断、固件升级
普通用户查看状态、查看任务、提交任务申请(需审批)
只读用户只能查看,不能做任何修改操作

关键原则:

  • 最小权限原则——每个用户只授予完成工作所需的最小权限,不能图方便都给管理员
  • 权限分离——任务下发和任务审批不能是同一个人(防止误操作或恶意操作)
  • 敏感操作二次确认——紧急停止、批量任务、系统配置修改等操作需要二次确认(输入密码或验证码)

坑三:「用户输入的都是可信的」的想当然

有一次,我们的平台被安全扫描发现一个 SQL 注入漏洞——因为有个接口直接把用户输入拼到 SQL 查询里了。

还有一次,用户在任务名称里输入了一段 JavaScript 代码,结果在前端页面里执行了(XSS 漏洞)。

教训:外部输入永远不可信,所有输入必须做严格校验。

输入校验怎么做?

所有外部输入(HTTP API 参数、MQTT 消息、WebSocket 消息、用户表单)都要做校验:

  1. 类型校验——参数类型对不对?该是 int 的不能传 string,该是 object 的不能传 array
  2. 范围校验——数值在合理范围内吗?坐标不能是负数(特定场景下)、速度不能超过最大值、进度不能 >100%
  3. 长度校验——字符串长度合理吗?任务名称不能超过 255 字符、JSON 不能超过 1MB
  4. 格式校验——格式对吗?mission_id 必须符合 MSN-YYYYMMDD-XXX 格式、时间戳必须是 13 位整数、URL 必须合法
  5. 危险字符校验——有没有 SQL 注入、XSS、命令注入的危险字符?(用参数化查询和输出转义从根本上解决,输入层也做一道防线)
  6. 语义校验——业务逻辑合理吗?任务步骤顺序对不对?机器人 ID 存在吗?目标位置在可达范围内吗?

实现方式: 用 JSON Schema 或 Pydantic(Python)/Zod(TypeScript)等校验库做声明式校验。校验失败时返回明确的错误信息(哪个参数、什么问题),不要只返回「参数错误」。

其他安全基线

除了上面三个大坑,还有几条基线必须守住:

  1. 敏感数据保护——用户密码用 bcrypt/Argon2 慢哈希加密(不能用 MD5/SHA1);API Key 只在创建时完整展示一次,之后只展示前 4 后 4;日志里不能输出密码、Token、密钥
  2. 网络安全——防火墙只开放必要端口(443 用于 HTTPS/WSS,8883 用于 MQTT over TLS);API 接口做限流(防止恶意刷接口);管理后台设置 IP 白名单
  3. 安全审计日志——所有安全相关操作(登录/登出、权限变更、敏感操作、认证失败)都记录审计日志,日志只能追加不能修改
  4. 定期安全扫描——上线前做安全扫描(SQL 注入、XSS、越权访问、敏感信息泄露),定期做渗透测试

三、全链路审计:出了问题能溯源

安全是「防止出问题」,审计是「出了问题能找到原因」。

机器人调度平台里,一个任务从创建到完成,经过前端、后端、网关、机器人端多个节点。出了问题必须能一步步溯源——是谁下发的、什么时候下发的、经过了哪些节点、哪一步出了错、错误原因是什么。

我们踩过的审计坑:

坑一:「出了问题全靠猜」的无头公案

有一次,客户说有个任务失败了,但我们查了半天也查不出原因——日志里只有「任务失败」四个字,不知道是谁下发的、什么时候下发的、失败在哪一步、错误原因是什么。

前端日志、后端日志、网关日志、机器人日志,各查各的,时间戳格式还不一样(有的用本地时间、有的用 UTC、有的用相对时间),根本对不上。

最后只能「猜」——可能是网络问题?可能是机器人故障?可能是任务参数不对?查了两天也没个准信。

教训:没有全链路审计,出了问题就是无头公案,只能靠猜。

trace_id:全链路追踪的核心

全链路审计的核心是 trace_id(追踪 ID)——一个任务从创建到完成,所有相关的消息、日志、事件都带同一个 trace_id。

trace_id 的流转:

```

用户在前端点击「创建任务」

↓ 生成 trace_id = "d4fc4f8f5c6d42b7a2f9b58dbf2f4f90"

前端发请求给后端(带 trace_id)

后端处理请求(日志带 trace_id)

后端发任务给网关(消息带 trace_id)

网关转发给机器人(消息带 trace_id)

机器人执行任务(上报状态带 trace_id)

网关转发状态给后端(事件带 trace_id)

后端更新状态(日志带 trace_id)

后端推送给前端(事件带 trace_id)

```

有了 trace_id,出问题时可以:

  1. 用 trace_id 搜索所有节点的日志
  2. 按时间顺序排列所有相关事件,还原任务的完整生命周期
  3. 找到是哪个节点、哪一步出了问题
  4. 定位根因——是网络问题?是机器人问题?是平台 bug?

没有 trace_id,出了问题就是「无头公案」——你只能看到任务失败了,但不知道为什么失败、在哪一步失败、是哪个节点的问题。排查全靠猜,效率极低。

任务全链路事件记录

每个任务从创建到完成,要记录完整的事件链:

事件触发时机记录内容
Mission_Created任务创建时谁创建的、任务内容、创建时间、trace_id
Mission_Validated任务校验通过时校验结果、校验耗时
Mission_Dispatched任务下发给机器人时下发时间、目标机器人、网关节点
Mission_Accepted机器人受理任务时受理时间、机器人端任务 ID
Step_Started每个步骤开始时步骤序号、步骤命令、开始时间
Step_Completed每个步骤完成时步骤序号、完成时间、执行结果、耗时
Mission_Success任务成功完成时完成时间、总耗时、最终结果
Mission_Aborted任务异常终止时终止时间、终止原因、错误信息、当时执行到哪一步
Mission_Retry任务重试时重试次数、重试原因、重试时间

这些事件构成了任务的「完整病历」——出了问题,翻出这个任务的事件链,就能看到任务一生的每一步,问题出在哪一目了然。

时间戳统一:UTC 毫秒

前面几篇反复强调时间戳统一,这里从审计的角度再强调一次——审计日志里的所有时间戳必须用 UTC 毫秒

为什么?因为审计最核心的操作就是「按时间排序、对齐时间线」。如果各节点用各的时间(前端在用户电脑、后端在服务器、机器人在工厂),时区不一样、格式不一样,时间线根本对不上。

  • 前端用本地时间字符串「2026-08-23 14:30:00」
  • 后端用 UTC 秒「1724380800」
  • 机器人用「从开机开始的毫秒数」
  • 网关用「2026/08/23 2:30 PM」

四种时间格式,怎么对齐?根本对不上。

统一用 UTC 毫秒(13 位整数)的好处:

  • 跨节点时间对齐——全球任何地方的服务器,UTC 时间都一样
  • 排序准确——整数排序就是时间排序,不会有时区转换错误
  • 计算方便——两个时间戳相减就是耗时,不需要时区转换
  • 避免夏令时——虽然中国没有,但海外客户可能遇到

展示时再转成本地时间——存储和日志用 UTC 毫秒,前端展示给用户看的时候转成北京时间(UTC+8)。数据层统一,展示层灵活。

日志规范:结构化、可搜索

审计日志不能是「随便打印一行文字」,必须是结构化的、可搜索的

好的日志格式(JSON):

```json

{

"timestamp_utc_ms": 1724380800000,

"level": "INFO",

"service": "backend",

"trace_id": "d4fc4f8f5c6d42b7a2f9b58dbf2f4f90",

"mission_id": "MSN-20260823-001",

"robot_id": "RB-0001",

"user_id": "U-12345",

"event": "Mission_Dispatched",

"details": {

"gateway_node": "gw-01",

"dispatch_latency_ms": 45

}

}

```

结构化日志的好处:

  • 可以按 trace_id、mission_id、robot_id、user_id、event 等字段精确搜索
  • 可以用 ELK(Elasticsearch + Logstash + Kibana)或 Loki 等日志系统做聚合分析和可视化
  • 可以设置告警规则(比如「Mission_Aborted 事件 5 分钟内超过 10 次就告警」)
  • 机器可读,方便自动化处理

坏的日志格式(纯文本):

```

[2026-08-23 14:30:00] INFO: Mission MSN-20260823-001 dispatched to robot RB-0001 via gw-01, latency 45ms

```

纯文本日志的问题:难以精确搜索、难以聚合分析、格式不统一(不同开发写的不一样)、机器难以解析。


四、运维体系:7×24 小时稳定运行

安全和审计是「出问题能防、能查」,运维是「不出问题、出了问题能快速恢复」。生产级平台必须有完善的运维体系,保证 7×24 小时稳定运行。

我们踩过的运维坑:

坑一:「服务器挂了才知道」的被动运维

有一次,平台的后端服务器因为内存泄漏,运行了一周之后 OOM(内存溢出)挂了。但我们没有监控,等客户打电话过来说「平台打不开了」,我们才知道服务器挂了。

从服务器挂掉到客户打电话,中间过了 40 分钟。这 40 分钟里,客户的机器人调度完全瘫痪,生产中断。

教训:不能等客户投诉了才知道出问题,必须有主动监控和告警。

监控指标:关键指标全覆盖

我们现在监控的关键指标:

类别指标说明
连接指标在线机器人数当前有多少台机器人在线
连接数网关的总连接数
连接成功率机器人连接成功的比例
平均连接时长机器人平均在线多久
延迟指标任务下发延迟从后端下发到机器人受理的耗时
遥测上报延迟从机器人上报到前端显示的耗时
API 响应延迟HTTP API 的平均响应时间(P50/P95/P99)
可靠性指标任务成功率任务成功完成的比例
任务失败率任务异常终止的比例
消息重试率消息需要重发的比例
消息丢失率消息最终丢失的比例(应该接近 0)
系统指标CPU 使用率各节点的 CPU 使用率
内存使用率各节点的内存使用率
磁盘使用率数据库和日志的磁盘使用率
网络带宽入站/出站带宽使用率
队列指标Redis Stream 积压长度待处理的事件数量(持续增长说明处理不过来)
MQTT 消息队列深度待投递的消息数量
数据库连接池使用率活跃连接数/最大连接数
业务指标任务终态分布Success/Aborted 各占多少
机器人利用率机器人在执行任务的时间比例
告警数量各等级告警的数量

监控工具: Prometheus + Grafana(最常用的开源监控方案)、云服务商的监控服务(阿里云 ARMS、腾讯云监控等)。

告警规则: 不是所有指标异常都要告警,只对「影响业务的关键指标」设置告警。比如:

  • 在线机器人数突然下降 >20% → 紧急告警(电话/短信)
  • 任务成功率 <95% → 警告(企业微信/邮件)
  • Redis Stream 积压 >1000 条且持续增长 → 警告
  • 磁盘使用率 >85% → 警告
  • API 响应延迟 P99 >2s → 警告

坑二:「升级新版本全量翻车」的灰度缺失

有一次,我们升级了网关的新版本,全量上线。结果新版本有个 bug——机器人连接后 10 分钟会自动断开。上线后 10 分钟,所有机器人全部掉线,平台瘫痪。

回滚到旧版本花了 20 分钟,加上排查时间,总共中断了近 1 小时。

教训:新版本不能全量上线,必须灰度发布,而且要有快速回滚机制。

灰度发布与回滚怎么做?

灰度发布的流程:

  1. 先升级 1 台网关节点——观察 30 分钟,看连接数、延迟、错误率有没有异常
  2. 再升级 10% 的机器人连接——把少量机器人的连接切到新版本网关,观察任务执行情况
  3. 逐步扩大到 30%、50%——每一步都观察关键指标,确认没问题再继续
  4. 全量升级——所有节点都升级到新版本
  5. 观察 24 小时——全量升级后继续观察一天,确认没有隐藏问题

回滚机制:

  • 灰度过程中任何一步发现问题,立即回滚到旧版本
  • 网关节点回滚——把新版本节点切回旧版本镜像
  • 机器人连接切回旧网关——把机器人的连接从新网关切回旧网关
  • 数据库回滚——如果新版本改了数据库结构,需要有回滚脚本(或者设计成向前兼容的结构变更,不需要回滚)

回滚必须快速、自动化——不能出了问题还要手动改配置、手动重启,那太慢了。用 CI/CD 工具(Jenkins、GitLab CI、GitHub Actions)实现一键回滚。

坑三:「数据丢了才发现没备份」的惨痛

有一次,服务器的磁盘坏了,数据库数据全部丢失。但我们没有备份——因为「数据库一直很稳定,不会出问题」。

结果是:所有历史任务记录、用户信息、配置数据全部丢失,花了三天时间才从各种日志里恢复了一部分数据,还有一部分永远找不回来了。

教训:备份不是「可能需要」,是「必须有」。而且要定期做恢复演练,验证备份真的能用。

备份与恢复怎么做?

备份策略:

  • 数据库备份——每天全量备份 + 每小时增量备份,保留最近 30 天
  • 配置备份——每次配置变更后自动备份,保留所有历史版本
  • 备份异地存储——备份文件存在异地(不同机房或云存储),防止机房故障导致备份也丢了
  • 定期恢复演练——每季度做一次恢复演练,验证备份能用、恢复流程顺畅。很多团队备份了但从来没恢复过,真出问题时才发现备份损坏了或恢复流程有问题

恢复目标:

  • RPO(Recovery Point Objective,恢复点目标):最多丢失 1 小时的数据
  • RTO(Recovery Time Objective,恢复时间目标):4 小时内恢复服务

其他运维基线

除了上面三个大坑,还有几条运维基线:

  1. NTP 时间同步——所有服务器(后端、网关、数据库、Redis)都必须配置 NTP 同步,时钟偏差控制在 100ms 以内。机器人端也要做 NTP 同步(如果连得上网络)。监控时钟偏差,超过阈值立即告警
  2. 应急预案——常见故障场景(网关全部挂了、数据库主库挂了、机器人大面积失联、第三方依赖挂了)都要有明确的应急预案和处理步骤,有紧急联系人列表,定期做应急演练
  3. 容量规划——监控资源使用趋势,提前规划扩容(比如磁盘使用率每月增长 5%,提前在满之前扩容),不要等资源满了服务崩了才发现
  4. 变更管理——所有生产环境变更(版本升级、配置修改、数据迁移)都要有变更记录、有审批、有回滚方案,不能「随便改改」

五、版本治理:长期演进不混乱

平台会持续演进——新版本不断发布、接口不断变化、品牌不断接入。如果没有版本治理,长期演进会导致混乱——旧客户端不兼容新接口、不同版本的行为不一致、出了问题不知道是哪个版本的 bug。

我们踩过的版本治理坑:

坑一:「接口改了就改了」的破坏性变更

有一次,我们改了任务反馈消息的格式——把 status 字段从字符串改成了数字(0=Pending, 1=Executing, 2=Success, 3=Aborted),觉得「更简洁」。

结果上线后,所有还在用旧版本的机器人端 Agent 全部报错——因为它们期望 status 是字符串,收到数字就解析失败。任务反馈全部丢失,平台显示所有任务都「执行中」,但实际上有的已经完成了、有的已经失败了。

最后只能紧急回滚,然后花了两周时间让所有客户升级机器人端 Agent,才敢再上线这个变更。

教训:接口变更不能「说改就改」,破坏性变更必须有兼容窗口,不能直接切断旧客户端。

契约版本化怎么做?

平台和机器人之间的通讯契约(消息格式、任务结构、事件格式)必须版本化

版本化的方式:

  • 每条消息带 contract_version 字段(比如 "contract_version": "1.0.0"),说明这条消息遵循哪个版本的契约
  • 语义化版本(Semantic Versioning)主版本号.次版本号.修订号

- 主版本号(Major):不兼容的 API 变更(改了字段名、删了字段、改了状态机)

- 次版本号(Minor):向下兼容的功能性新增(新增可选字段、新增命令类型)

- 修订号(Patch):向下兼容的问题修正(修复 bug、优化性能,不改变接口)

破坏性变更的处理:

  • 主版本号变更(破坏性变更)不能直接切断旧客户端,必须有兼容窗口

1. 新版本同时支持 v1 和 v2 契约(根据 contract_version 字段分别处理)

2. 通知所有客户端升级到 v2

3. 等所有客户端都升级了(或过了约定的兼容期限,比如 3 个月),再移除 v1 支持

  • 兼容窗口期间,监控各版本的使用比例,确认 v1 的使用量降到 0 再移除

为什么要这么麻烦? 因为机器人端的升级可能很慢——有的客户可能半年才升级一次机器人固件,如果直接切断 v1,这些机器人就会失联。兼容窗口给了客户端足够的升级时间,保证平滑过渡。

渐进式整改:从「能跑」到「规范」

如果平台已经有一些历史实现不规范(比如任务格式不标准、单位不统一、品牌耦合),不要推倒重来,用渐进式整改

渐进式整改的三阶段:

  1. 可运行——先让标准格式能跑通。新任务用标准格式创建和执行,验证标准格式的可行性。旧格式继续支持,不影响现有功能
  2. 可观测——加上监控和统计。统计新旧格式的使用比例、转换错误率、性能差异。用数据驱动迁移决策
  3. 可迁移——制定迁移计划。按客户端、按模块逐步迁移,每个迁移步骤都有回滚方案。等所有客户端都迁移到标准格式后,再移除旧格式支持

优先整改高风险项:

  • 最高优先级:主流程品牌耦合——在核心调度逻辑里写品牌 if/else,最危险,优先整改
  • 高优先级:任务结构不标准——用命令字符串、嵌套结构等,优先改成参数化命令数组
  • 中优先级:单位不统一——逐步统一到毫米、毫度、UTC 毫秒
  • 低优先级:命名不规范、注释不全等——日常开发中逐步改善

六、系列总结

本文是「机器人调度平台架构实战」系列的收官篇。整个系列从「为什么需要统一平台」出发,逐一拆解了通讯架构、任务模型、状态机与事件驱动、南向插件化、安全审计与运维,构建了一个生产级机器人调度管理平台的完整技术蓝图。

系列回顾:

序号主题核心踩坑经验
01为什么需要统一调度平台多品牌碎片化五大痛点、从「各管各的」到统一平台
02WebSocket + MQTT 双通道试过 UDP 发现不可靠、纯 WebSocket 遥测堵塞任务通道、最终双通道分工
03参数化命令数组任务模型四种格式混乱、用某品牌格式做标准被绑架、过度设计「超级格式」、最终找到平衡点
04任务状态机与事件驱动轮询把服务器打崩、状态机定义不清导致事件混乱、最终事件驱动+静默刷新
05南向插件化核心代码塞满品牌 if/else、新增品牌改十几个地方、最终插件化新增品牌只写一个驱动
06安全审计与运维(本篇)不鉴权被安全扫描整改、无审计出问题全靠猜、无监控服务器挂了才知道、全量升级翻车、无备份数据丢失

贯穿全系列的核心思想:

  1. 标准化是基础——通讯协议、任务模型、数据格式、时间单位,全部标准化。标准化是多品牌统一管理、全链路审计、系统间互操作的基础
  2. 插件化是扩展方式——核心逻辑稳定不变,品牌逻辑封装在插件里。新增品牌=新增插件,不改核心代码。小核心、大生态
  3. 事件驱动是架构模式——状态变化主动推送,前端静默刷新,Redis 缓冲层解耦削峰。告别轮询,实现毫秒级实时监控
  4. 可靠性是底线要求——心跳、重连、幂等、重试、超时、回执、灰度发布、回滚。生产级平台必须在每个环节都有可靠性保障
  5. 安全审计运维是生产级门槛——demo 只需要「能跑」,生产级需要「可靠、安全、可运维」。安全基线、全链路审计、监控告警、应急预案,一个都不能少

从 demo 到生产级平台,差的不是「更多功能」,而是「更扎实的基础」。 通讯要可靠、任务要标准、状态要可追踪、品牌要可插拔、安全要到位、审计要完整、运维要体系化。这些基础打牢了,平台才能支撑起成百上千台机器人的 7×24 小时稳定运行。


写在最后

做机器人落地这几年,我们越来越深刻地体会到:机器人的「智能」不仅仅是算法和模型,更是工程化和系统化的能力。 算法再厉害,如果不能稳定地管理、调度、运维,就无法真正在生产环境里跑起来。

这个系列分享的所有经验,都是我们(越微智能)在实际项目中踩坑踩出来的——不是纸上谈兵的架构设计,而是真真切切在客户现场跑着的系统。我们团队一直在做机器人二次开发、多品牌调度、ROS2 系统开发、工业 AI 视觉、边缘计算部署这些落地工作,调度平台是我们日常在维护和迭代的核心产品之一。

如果你也在做机器人调度、ROS2 开发、多品牌管理、工业 AI 视觉相关的工作,欢迎交流,我们一起踩坑、一起进步。


关于作者: 越微智能(Yuewell)是一支专注具身智能与工业 AI 视觉落地的技术团队,提供全品牌机器人二次开发(适配宇树/优必选/智元/傅利叶等)、ROS2 系统开发、工业级视觉算法定制(30+ 算法)、具身机器人调度管理平台、RK3588 边缘一体机等产品和服务,支持从算法、硬件到产线实机部署的全栈交付。团队成员来自一线互联网和机器人公司,有丰富的量产落地经验。
系列完结: 「机器人调度平台架构实战」系列 6 篇到此全部完成。加上之前的「具身智能落地实战」系列 15 篇,越微智能技术专栏已有 21 篇原创技术文章,覆盖具身智能算法、机器人二次开发、多品牌调度、工业 AI 视觉、边缘计算部署等方向。感谢您的阅读!如果您对相关技术或合作有兴趣,欢迎联系越微智能。