怎么读
不知道先看哪篇时,从这里开始。每条路径按实际做事的顺序排:先弄清问题,再动手测,最后再把方案放进系统里。
路径一 · Linux 实时性
先把延迟测明白
不要先忙着调优先级。先弄清高优先级线程会被什么卡住,再测最长延迟,最后处理干扰源。
看抢占限制→安排 CPU→测最长延迟→找干扰源→重复测试
- PREEMPT_RT:Linux 怎样变成可抢占的实时内核先看哪些内核路径仍会挡住高优先级线程。
- CPU 隔离:为实时任务留出安静的核心把 housekeeping、IRQ、RCU 和关键线程分开安排。
- cyclictest:怎样测量 Linux 实时调度延迟记录最大值和直方图,不只看平均值。
- osnoise tracer:把实时抖动拆成可解释的噪声检查 IRQ、softirq、调度或固件带来的干扰。
- 实时回归测试:把一次调优变成可持续的延迟基线保存环境和原始数据,方便下次比较。
路径二 · ROS 2 与机器人
让感知结果能安全地用起来
视觉、推理、定位和控制会互相影响。这里先讲数据怎么走,再讲怎样避免把过期或不可靠的结果送到控制侧。
安排平台资源→少拷贝图像→定位与建图→测推理延迟→排查问题
- Jetson 机器人部署:功耗、算力与实时控制怎样分工先分开 GPU 推理和 MCU / RT 控制的职责。
- Isaac ROS NITROS:相机数据怎样少拷贝地送进 GPU看图像在哪儿复制、在哪儿排队。
- Isaac ROS Visual SLAM 与 nvblox:机器人怎样定位并理解空间分清姿态、地图和规划输入分别做什么。
- TensorRT 机器人推理:从训练模型到稳定延迟测量结果从相机到控制侧到底用了多久。
- RoboTraceOpt:ROS 2 跨层运行时诊断与优化把应用事件、trace、调度和 ACK 放在一起看。
路径三 · 嵌入式交付
把程序变成能上板的系统
从交叉编译到系统镜像,再到通信和故障恢复。每一步都要能在另一台机器、另一块板子上重复。
写工具链文件→生成系统镜像→选任务模型→定总线协议→处理故障
- CMake 交叉编译:工具链文件决定目标环境防止配置时误用宿主机库。
- Buildroot:生成可复现的嵌入式 Linux 系统镜像把工具链、内核、rootfs 和服务一起做成镜像。
- 嵌入式 RTOS 选型:不要只比较功能列表按实时性、内存、调试和团队条件来选。
- CAN 总线:仲裁、错误处理与可靠通信先理解优先级、错误状态和总线恢复。
- 看门狗:让系统从不可恢复故障中自动重启由健康检查决定是否复位。