教程与介绍

机顶盒改造 · 机器人开源

两套开源项目的入门读物:讲清楚原理、流程、模块与安全边界。
本页只做介绍,不包含下载;安装包与源码在对应项目页。

机顶盒改造教程不刷机 · 旁路加装 · 可逆

核心思路是不换掉原厂 Android,而是在 /data 里放一个 Ubuntu 子系统(chroot),让服务跑在子系统里;原厂 IPTV、遥控、串口都保留。不想要时删掉子系统即可还原。

通用流程

  1. 确认机型:安卓机顶盒(Android 4.4+,armv7 / arm64),并且已 root。
  2. 开启 ADB:盒子「开发者选项」里打开网络调试(5555);电脑装好 adb。
  3. 连通盒子:adb connect <盒子IP>:5555,确认 adb devices 能看到设备。
  4. 看方案页的安装说明:在「机顶盒」项目页找到对应方案,按其教程操作(一键脚本或手动步骤)。
  5. 设置开机入口:把方案设为桌面 / 开机自启,重启后自动进入。
  6. 验证与还原:确认功能正常;需要还原时卸载应用、重新启用被禁用的系统应用、删除子系统目录。
⚠️ 风险边界:本系列不刷机、不改系统分区,改动集中在应用层与 /data。但盒子存储小、内存少,装之前先确认剩余空间;重要数据不要只放在盒子里。

方案导览

🖨️

打印机服务器

把老 USB 打印机接上盒子,变成局域网网络打印机:网页/扫码传文件、IPP、AirPrint;按型号自动匹配驱动。

  • CUPS
  • IPP
  • 扫码打印
⬇️

下载机 + NAS

aria2 挂机下载(磁力/BT/直链)+ Samba 家庭网盘;插 U 盘/硬盘优先存外置,没插就落内部存储。

  • aria2
  • Samba
  • 热插拔
📹

监控录像主机

USB 摄像头直播 + 30 秒循环录像 + 手机远程看;可加移动侦测、物体识别与告警推送。

  • MJPEG
  • 循环录像
  • 告警
🎮

家庭游戏机

开机即玩的 8 款原生小游戏 + 学科/考证/教学;1–9 人同屏,手机扫码当手柄。

  • 离线
  • 多人
  • 手机手柄
🖥️

桌面小电脑

原生桌面 + Firefox 桌面版 + 中文输入法 + 局域网互传 + U 盘;适合上网、看视频、轻办公。

  • 桌面
  • 浏览器
  • 互传
🎤

KTV 点歌台

开机直进点歌大屏;本地/U 盘曲库 + 在线点歌;歌词进度染色,遥控器/鼠标/手机都能点。

  • 本地+在线
  • 卡拉OK
  • 扫码
🛡️

去广告 DNS 盒子

盒子当局域网 DNS(AdGuard Home):全家设备去广告、防跟踪,一次配置全屋生效。

  • DNS
  • 去广告
  • 旁路由
🧒

少儿电脑

给小学生用的简单桌面:浏览器/文件/设置,设置免密;默认电脑版网页,不弹软键盘。

  • 少儿
  • 免密
  • 简单桌面

关键概念

chroot 和刷机有什么区别?

刷机是换掉整个系统(有变砖风险、丢失原厂功能);chroot 是在原厂系统里旁路跑一个 Ubuntu 子系统,原厂系统不动,删掉子目录即可还原。

为什么总说 /data 很紧张?

老盒子的 /data 常常只有 1 GB 左右,装子系统和大应用会满;/sdcard 是独立分区,通常更大。必要时把缓存/数据目录软链到 /sdcard,或用 U 盘扩展。

开机自启是怎么做的?

常见做法是装一个桌面/前台 App 作为 HOME,或在系统启动脚本里拉起服务。不同机型入口不同,方案页会写具体做法。

装坏了怎么还原?

先卸载安装的 apk / 服务,重新启用被 pm disable 的系统应用;再删除子系统目录与自启脚本。因为不动 boot / 系统分区,一般不需要刷机。

科沃斯八界机器人教程6 轴机械臂 · 从控制到训练

以科沃斯八界机器人(Ecovacs BaJie)为例:一条完整的控制与数据链路 Jetson 上位机 → adb → chroot → ssh → ROS 2 下位机,上面跑 3D 真机仿真、控制台、视觉/语音、抓取、数据采集与训练分析。教程只讲原理与步骤,源码在「机器人」项目页;其他品牌/型号将陆续加入。

系统架构

🖥️

上位机(Jetson)

跑控制台与 3D 页面(:8790)、关节桥(:8796)、模式服务(:8795)、双路相机流(:8799/:8800)。

  • Web 控制台
  • 关节桥
  • 相机流
🔗

机器人链路

adb 连机器人上位板(5555)→ chroot 到 Ubuntu → ssh 到下位机 → ROS 2 话题。关节轨迹与流式 jog 都走这条链路。

  • adb
  • chroot
  • ssh
🦾

下位机(ROS 2)

发布 /joint_states,订阅 /arm_controller/joint_trajectory;升降、夹爪、头部各有控制脚本。

  • ROS 2
  • 轨迹
  • jog
👁️

视觉与数据

头部 + 腕部相机推流;采集 episode、标注目标、记录限位点,最后进训练数据综合分析台。

  • 双相机
  • 采集
  • 训练

快速开始(步骤)

  1. 准备环境:上位机 Linux + Python 3;下位机 ROS 2 Humble;机器人 adb 5555 可连。
  2. 改配置:在 serve.sh 里按实际路径修改目录、ADB、ROBOT_HOST、ROBOT_PW、LOWER_IP。
  3. 起服务:bash serve.sh,打开 http://<jetson-ip>:8790/robot_home.html。
  4. 起下位机:把 lower/jogd 放到下位机,启动 jtstream.py;确认关节桥 /joints 有数据。
  5. 先空载验证:慢速模式,小幅度动一下关节、升降、夹爪,确认方向与限位都对。
  6. 再进流程:3D 示教 / 抓取 / 采集 / 训练分析 / 测试计划,按需使用。

模块导览(13 个)

  • 控制 · 主控制台
    实时看板、关节执行、升降与夹爪。
  • 控制 · 3D 机械臂
    真机网格、拖拽示教、定点头、限位保护。
  • 控制 · 夹爪控制
    开度滑杆、合爪/张爪、实时反馈。
  • 控制 · 语音控制
    语音指令、TTS 播报、麦克风状态。
  • 控制 · 指挥系统
    任务指令入口与状态回传。
  • 数据与训练 · 综合分析台
    质量指标、Δp99、回放、HDF5。
  • 数据与训练 · 定点头采集
    真机/仿真、双相机、episode 标记。
  • 数据与训练 · 限位数据库
    临界角点位、方向覆盖、CSV 导出。
  • 数据与训练 · 标注训练
    抓取物 / 存放位置标注。
  • 测试与验收 · 测试计划
    运动/标定/感知/数据/可靠性清单。
  • 工具 · 舞蹈编辑器
    关键帧编排、3D 预览、真机播放。
  • 工具 · 头部相机
    percd 实时 MJPEG(:8799)。
  • 工具 · 爪子相机
    percg 实时 MJPEG(:8800)。
  • 关键概念与安全边界

    真机模式 / 本地模式

    默认是真机模式;机器人连续掉线约 10 秒会自动切到本地模式(页面照常可看)。本地模式下探测到 adb 5555 重新可连并稳定几秒,会自动切回真机;手动切的本地模式不会自动回切。

    为什么要先“侧摆 A”?

    大臂靠近立柱时直接前伸/大角度展开可能撞柱。安全做法是先把大臂摆到离柱更远的侧摆位,确认间隙,再走目标姿态;路径安全时系统会跳过这一步。

    定点头是什么?

    让机械臂绕固定的爪尖点改变姿态,爪尖位置不变;同时限制工具轴与起始方向的夹角,避免夹爪上的相机翻转。常用于从不同角度看同一个目标。

    抓取为什么要从上往下?

    先从侧面或下方接近容易撞桌沿、把物体推走,也不利于相机定位。规则是:先把立柱升到桌面以上,夹爪到预抓取位(≥ 桌面 + 12 cm),再从上往下接近;指尖离桌面至少 1 cm。

    数据闭环怎么走?

    定点头采集 episode → 标注抓取物/存放位置 → 记录爪头限位点 → 在综合分析台看质量指标与回放 → 训练 → 用测试计划做验收。每一步都有对应页面与数据格式。

    3D 页面打不开 / 全黑?

    3D 页面需要 WebGL。没有硬件 GL 的环境(部分 Chromium / 远程桌面)请换 Firefox,或给浏览器加软件渲染参数;Jetson 桌面建议直接用 Firefox。

    安装包与源码不在这里:机顶盒方案见 机顶盒项目页,机器人源码见 机器人项目页。教程只负责把原理和步骤讲清楚,下载与校验放在各自项目页。