Robot Agent Hackathon · Industrial Inspection

移动机器人
智能体黑客松

以工业巡检为载体,展示从预编程机器人到自主智能体的范式跃迁—— 一场面向 dora-rs 机器人中间件与 Octos 工业级智能体的两日极限开发实战赛事。

场地 FIELD5m × 5m A/B 双区
任务时限 LIMIT20 min 连续不中断
满分 SCORE100
赛程 SCHEDULE10/16 – 10/17
技术栈 STACKdora-rs + Octos
比赛场景顶视图:5m×5m 场地分为 A/B 两区
图1 · ADORA NANO 智能体黑客松——比赛场景顶视图
Overview · 竞赛介绍

竞赛目标

大赛以工业巡检场景为统一命题,检验参赛队伍在真实硬件上的全栈工程能力。

G-01推动 dora-rs 机器人中间件、Octos 工业级智能体等新一代机器人技术栈在真实工业场景中的落地验证。
G-02探索机器人巡检中的任务分配、动态避障与故障容错机制。
G-03以工业巡检为载体,展示从预编程机器人到自主智能体的范式跃迁。
G-04为参赛选手提供从硬件调试到多机协同的全栈工程实践机会。
A 区 2.5m × 5m B 区 2.5m × 5m 1.2m 隔离板 5m 5m

竞赛布局

  • 场地总面积 5m × 5m,中线设有 1.2m 高物理隔离板。
  • 隔离板将场地分为 A / B 两个独立区域,每区尺寸 2.5m × 5m,互不干扰。
  • 参赛机器人 ADORA NANO 在区域内自主完成建图、巡检任务与回归停放。
Schedule & Results · 日程与结果

日程安排与比赛结果

两日极限开发:10 月 16 日—17 日,具体日程如下。

D110 月 16 日开发日
10:15 – 10:35赛前讲解
10:35 – 12:00选手编程开发调试
12:00 – 13:00午餐与休息
13:00 – 17:00选手编程开发调试
D210 月 17 日比赛日
10:15 – 12:00选手编程开发调试
12:00 – 13:00午餐与休息
13:15 – 15:15正式比赛 · 评委打分
15:15 – 15:30休息
15:30 – 15:50公布成绩 & 颁奖
待公布 · PENDING

参赛情况

参赛队伍名单与分组信息整理中,组委会确认后公布。

待公布 · PENDING

最终比赛结果

各队伍积分、排名与获奖情况将在赛事结束后由组委会统一公布。

Mission · 赛题任务

巡检任务:Point 1 – 4

一台 ADORA NANO 在场地内依次完成阀门操作、仪表识别、物料抓取与物料放置,并安全回归起点。

⚠ 时限与连续性 ADORA NANO 需在 20 分钟内,以连续、不中断的方式按顺序完成以下核心任务;任一环节未达要求即不得分。
POINT 1

阀门操作

15 分

检测阀门是否处于关闭状态,操作机械臂打开阀门。评分依据阀门把手末端落点角度(角度区间以阀门标签标记为准)。

低档区间 5 分中档区间 10 分高档区间 15 分
未打开或未达低档区间不得分
POINT 2

仪表数字识别

10 分

仪表随机生成 6 个数字,需识别全部数字及其顺序。

每个数字 1.5 分全部正确 10 分
6 个数字 × 1.5 分 = 10 分,顺序错误该数字不得分
POINT 3

物料抓取

15 分

检测物料、获取物料抓取点,由机械臂执行抓取动作。按抓取尝试次数计分。

3 次以内 15 分3 次以上 12 分抓错 / 未抓取 0 分
POINT 4

物料放置 Skill 开发

20 分

开发放置物料的 skill,将 Point 3 所抓取物料放置于收纳篮中。本环节考察 skill 是否完整开发。

未完整开发 0 分篮外 10 分收纳篮内 20 分
完整开发 skill:物料放置于收纳篮内得 20 分,篮外得 10 分

全程 · 安全导航 10 分

全程导航过程中,每发生一次碰撞扣 2 分,扣完为止。

无碰撞 10 分每次碰撞 −2 分

终点 · 回归 Start 10 分

ADORA NANO 最终停于红色框线内得 10 分,压线得 8 分,其余停止位置均不得分。

框线外 0 分压线 8 分框线内 10 分
Scoring · 评分细则

积分构成与排名规则

比赛采用任务积分制:总得分 = 各环节任务得分总和 × 权重系数,最终按积分高低排名。

序号得分要点积分
1建图20
2阀门操作(Point 1)15
3仪表数字识别(Point 2)10
4物料抓取(Point 3)15
5导航过程中动态避障10
6开发 Point 4 的 skill20
7回到 Start 位10
总积分100

评分规则与排名

总得分 = 各环节任务得分总和 × 权重系数
×1.0全流程采用 Octos 自主分配任务、自主导航
×0.5导航或任务完成采用摇操作
  1. 按积分高低排名;
  2. 积分相同时,依次比较以下因素决定名次:
①控制方式 —— 自主控制优先
②得分率
③完成时间
建图 20 阀门操作 15 仪表识别 10 物料抓取 15 动态避障 10 Point 4 skill 20 回归 Start 10
Platform · 技术平台

dora-rs 中间件 × Octos 智能体

Dora 是机器人中间件,Octos 是工业级智能体。巡检全流程由五个 Skill 协同完成。

MIDDLEWARE · 机器人中间件

dora-rs

新一代机器人中间件框架,以数据流(dataflow)编排建图、定位、导航与感知节点,负责底层运动与传感器能力。

AGENT · 工业级智能体

Octos

工业级智能体,以 Skill 为能力单元自主分配任务、决策执行,串联「导航到点位 → 执行任务 → 前往下一点」的完整巡检闭环。

OCTOS SKILLS · 五个巡检能力单元

adora-nano-patrol总编排

负责「到点 — 执行任务 — 前往下一点」的总编排 Skill:定义完整巡检流程、失败处理和安全规则,提供 run_patrol / patrol_status / patrol_stop 三个工具,并读取最终巡检结果(正式报告输出至 ~/Pictures/patrol_results)。

adora-nano-navigation底盘导航

移动底盘导航 Skill:定义导航任务的触发方式、安全边界与多点执行规则,提供 navigate_to_waypoint 工具,校验点位并调用 8769 端口的导航 Bridge,跟踪 goal_id 直到返回 REACHED 或失败状态。

adora-nano-valve-operate阀门操作

阀门识别与操作闭环 Skill:提供 valve_operate_loop 工具(含目标状态、决策方式、重试次数与调试模式参数),启动 valve-task.yaml 数据流,串联相机、几何计算与任务编排节点。

adora-nano-meter-detect仪表识别

仪表数字和文字识别 Skill:提供无参数的 meter_detect 工具,启动 meter-detect.yaml 数据流,返回仪表读数识别结果。

adora-nano-object-operate抓取与放置

物体识别、抓取、放置与结果验证 Skill:提供 object_operate_loop 工具(含目标类别、调试模式与重试次数),启动 object-task.yaml 数据流并返回结构化执行结果。

Hardware · 参赛平台

ADORA NANO 双臂移动机器人平台

具身智能,落地为实——从零基础到具身智能达人,你只需一台。

ADORA NANO 移动双臂科研平台真机照片
ADORA NANO 真机 · 移动双臂科研平台

ADORA NANO 是面向教学与科研的移动双臂平台:双机械臂、激光雷达 SLAM 导航、环境与腕部双视觉,昇腾 / NVIDIA 双算力适配,搭载 DORA 框架与 DoRobot 工具链,支持 ACT、VLA、WAM 策略模型。本次黑客松的全部赛题任务,都在这样一台 nano 真机上完成。

双臂协同操作主从双臂协同,一台设备复现学界最新双臂操作模型
全场景移动部署激光雷达 SLAM 导航,不挑场地、落地即用
VLA 世界模型实践经典控制、模仿学习到 VLA,一条路径走完
AI 开发范式借 AI 快速生成动作与逻辑,想法当天就能上机
配套课程体系从第一次上电到独立完成实验,逐课实操进阶
国产化适配昇腾算力与国产系统开箱适配
产品形态移动双臂科研平台
机械臂双机械臂 · 二指夹爪
导航激光雷达 · SLAM 建图 / 定位 / 导航
视觉环境相机 · 腕部相机
短距通信星闪(NearLink)
算力平台昇腾 · NVIDIA
操作系统OpenHarmony · openEuler · Ubuntu
软件框架DORA 框架 · DoRobot 工具链
策略模型ACT · VLA · WAM
Appendix · 操作附录

参赛设备操作手册

摘自赛事官方技术文档,供参赛队伍参考。

初始化操作

设备串口分配:/ttyACM0 移动底盘/ttyACM1 机械臂/ttyACM2 2D 激光雷达

机械臂的初始姿态可保持如图2所示,以防止影响激光雷达扫描范围。

键盘控制底盘
W 前进S 后退A 向左旋转D 向右旋转空格 停车X 停车并退出

建图结束:先在键盘控制终端按空格,确认底盘停止后,再按 X,然后执行 dora stop adora-mapping

2.1 建图操作
终端 1 —— 启动建图数据流
conda activate gosim dora up cd ~/adora_nano_dora_navigation/apps/adora_nano_navigation dora start --attach -n adora-mapping adora_nano_mapping.yml # 启动建图数据流
终端 2 —— 键盘控制移动
conda activate gosim cd ~/adora_nano_dora_navigation python chassis/feetech_kiwi_chassis_dora_node/keyboard_control.py --teleop # 启动键盘控制
地图输出与质量检查
# 地图目录:~/adora_nano_dora_navigation/mapping/maps/ # 主要文件:ms200_keyboard_map.pgm / .yaml / .metadata.json / .posegraph.dora python apps/adora_nano_dora_navigation/adora_nav.py quality # 查看地图质量 # 打开地图:Ristretto Image Viewer

注:禁止进行地图编辑!

2.2 采集点位操作
终端 1 —— 启动定位与点位采集
conda activate gosim # 同步新地图参数 cd ~/adora_nano_dora_navigation python apps/adora_nano_navigation/adora_nav.py sync-map dora up cd ~/adora_nano_dora_navigation/apps/adora_nano_navigation dora start --attach -n adora-localization localization_keyboard.yml
终端 2 —— 初始位姿与键盘控制
conda activate gosim cd ~/adora_nano_dora_navigation python localization/initial_pose_dora_node/set_initial_pose.py 0 0 0 # (0,0,0) 只是初始猜测,定位算法随后根据激光地图匹配修正为实际位姿 python chassis/feetech_kiwi_chassis_dora_node/keyboard_control.py --teleop
终端 3 —— 保存点位
conda activate gosim cd ~/adora_nano_dora_navigation dora-point save point1 # 移到目标位置并停稳后执行 dora-point save point1 --force # 若 point1 已存在

操作流程:用键盘移动小车到目标位置 → 按空格停车 → 停止稳定后保存点位;结束后键盘终端依次按空格、X,并在终端 3 执行 dora stop adora-localization。点位保存于 ~/adora_nano_dora_navigation/apps/adora_nano_navigation/waypoints.yaml

2.3 导航
终端 1 —— 持久导航数据流(务必执行)
conda activate gosim cd ~/adora_nano_dora_navigation/apps/adora_nano_navigation dora up dora start --attach -n adora-navigation adora_nano_persistent_navigation.yml # 重复定位需要先关闭上一个数据流:dora destroy
终端 2 —— 定位初始化与 Octos(务必执行)
conda activate gosim cd ~/adora_nano_dora_navigation dora-localize start # 定位初始化 /home/HwHiAiUser/.octos/bin/octos chat --cwd ~/adora_nano_dora_navigation --profile coding-full # 可用 octos 测试导航;测试完成后输入 /exit 退出
2.4 导航文件汇总
1. 持久导航数据流(Octos 与 dora-nav 当前使用): /home/HwHiAiUser/adora_nano_dora_navigation/apps/adora_nano_navigation/adora_nano_persistent_navigation.yml 2. 建图:/home/HwHiAiUser/adora_nano_dora_navigation/apps/adora_nano_navigation/adora_nano_mapping.yml 生成地图:~/adora_nano_dora_navigation/mapping/maps/ 3. 定位(键盘移动与点位采集):/home/HwHiAiUser/adora_nano_dora_navigation/apps/adora_nano_navigation/localization_keyboard.yml 4. 点位采集:start、point1、point2、point3、point4 保存于 ~/adora_nano_dora_navigation/apps/adora_nano_navigation/waypoints.yaml
Octos 启动
conda activate gosim octos chat --profile coding-full # Octos chat 退出命令:/exit 回车