ROS机器人-从零开始每日日志记录day5 首次使用深度相机编译完 ROS 驱动后成功获取了深度点云信息遇到以下问题。问题一深度点云太多打开可视化就卡死原始深度图得到的点云数量大约有百万甚至千万级。如果逐一对这些点进行渲染显示对于边缘计算的工控机来说简直是噩梦。如何在减少点数量的同时保留物体特征这里我采用的是体素下采样Voxel Downsampling的方式对深度点云进行稀疏化将点云所在的三维空间划分为若干个边长为 5 cm可根据需求调整的体素Voxel将同一体素内所有点的坐标取均值最终仅用一个点来代表该体素内的所有点。问题二深度点云坐标转换坐标系定义坐标系名称含义color_0RGB 点云坐标系depth_0深度点云坐标系link_0相机刚体基座坐标系为什么一个深度相机会有这么多坐标系深度相机内部集成了多颗摄像头RGB 摄像头、红外/深度摄像头等每颗摄像头有自己独立的光学坐标系同时相机本体还有一个机械基座坐标系。各坐标系之间存在固定的物理偏移外参。配准模式开启前深度点云发布在depth_0坐标系下RGB 点云发布在color_0坐标系下两者通过各自的 TF 变换挂载到link_0深度link_0→depth_0parent link_0, child depth_0RGBlink_0→color_0parent link_0, child color_0配准模式开启后深度点云与 RGB 点云对齐统一发布在color_0坐标系下再由 TF 变换到link_0。遇到的驱动 Bug开启配准模式后驱动仅仅将深度点云 TF 的child_frame_id从depth_0改成了color_0但底层使用的变换矩阵仍然是link_0 → depth_0的那组外参。这就导致了一个诡异的现象在 rviz 中观察到点云在持续地微小抖动。其本质是同一个 TF 变换link_0 → color_0下RGB 点云和深度点云各自使用了不同的变换矩阵两帧数据在空间中产生了微小的错位随帧率交替刷新就表现为抖动。解决思路在驱动源码中修正配准模式下的 TF 发布逻辑确保child_frame_id与变换矩阵一致或在 launch 文件中关闭驱动自带的 TF 发布改用static_transform_publisher手动发布正确的外参。补充系统监控脚本前段时间调试时又发生了一次非正常关机可以用AI写一个更详细且偏向硬件的监控脚本对工控机的电源轨、内核状态、串口、总线等进行持续采样并写入日志以便崩溃后回溯。伪代码示例═══════════════════════════════════════════════════════ 嵌入式 Linux 系统崩溃前状态监控 目标每秒采样一次崩溃后通过 CSV 回溯最后时刻 ═══════════════════════════════════════════════════════ // ───────────────────────────────────────── // 初始化 // ───────────────────────────────────────── FUNCTION 初始化(): 创建日志目录 /home/user/crash_logs 生成时间戳 TS 当前时间(YYYYMMDD_HHMMSS) 创建 CSV 文件写入表头: [时间, 12V输入, 5V_SYS, 5V_Host, 5V_OTG, USB_Hub, 3.3V, CPU小核电压, 逻辑域电压, DDR电压, DDR2电压, GPU电压, SoC温度, 大核温度, GPU温度, 小核频率, 大核0频率, 大核1频率, 内核错误计数] // ───────────────────────────────────────── // 后台任务持续保存内核日志尾部 // ───────────────────────────────────────── FUNCTION 后台保存dmesg(): LOOP 每 2 秒: 将 dmesg 最后 20 行 → 写入 dmesg_tail.log // 目的崩溃后能看到内核最后在做什么 // ───────────────────────────────────────── // 主循环每秒采样一次 // ───────────────────────────────────────── FUNCTION 主循环(): 计数器 0 LOOP 每 1 秒: 计数器 1 当前时间 NOW(HH:MM:SS) // ── 第一组电源轨电压μV── V_12V ← 读取 /sys/class/regulator/regulator.1/microvolts V_5VSYS ← 读取 /sys/class/regulator/regulator.2/microvolts V_5VHOST ← 读取 /sys/class/regulator/regulator.6/microvolts V_5VOTG ← 读取 /sys/class/regulator/regulator.7/microvolts V_USBHUB ← 读取 /sys/class/regulator/regulator.8/microvolts V_3V3 ← 读取 /sys/class/regulator/regulator.3/microvolts // ── 第二组SoC 核心电压μV── V_CPULIT ← 读取 /sys/class/regulator/regulator.18/microvolts V_LOG ← 读取 /sys/class/regulator/regulator.19/microvolts V_DDR ← 读取 /sys/class/regulator/regulator.21/microvolts V_DDR2 ← 读取 /sys/class/regulator/regulator.22/microvolts V_GPU ← 读取 /sys/class/regulator/regulator.17/microvolts // ── 第三组温度m°C── T_SOC ← 读取 /sys/class/thermal/thermal_zone0/temp T_BIG ← 读取 /sys/class/thermal/thermal_zone1/temp T_GPU ← 读取 /sys/class/thermal/thermal_zone2/temp // ── 第四组CPU 频率KHz── F_LIT ← 读取 /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq F_BIG0 ← 读取 /sys/devices/system/cpu/cpu4/cpufreq/scaling_cur_freq F_BIG1 ← 读取 /sys/devices/system/cpu/cpu6/cpufreq/scaling_cur_freq // ── 第五组内核错误计数 ── DERR ← dmesg 中匹配 error|fail|panic|oops|disconnect|timeout 的行数 // ── 写入 CSV ── 追加一行到 CSV: [当前时间, V_12V, V_5VSYS, V_5VHOST, V_5VOTG, V_USBHUB, V_3V3, V_CPULIT, V_LOG, V_DDR, V_DDR2, V_GPU, T_SOC, T_BIG, T_GPU, F_LIT, F_BIG0, F_BIG1, DERR] // ── 定期刷盘防掉电丢数据── IF 计数器 % 15 0: sync() 等待 1 秒 // ───────────────────────────────────────── // 启动 // ───────────────────────────────────────── 初始化() 启动后台线程 → 后台保存dmesg() 主循环()后续 TODO增加串口/dev/ttyS*、/dev/ttyUSB*在线状态检测增加 I²C / SPI 总线通信心跳检测增加 USB 设备枚举状态监控lsusb定期快照用systemd服务托管开机自启 崩溃自动重启注意不同的系统监控会产生大量日志数据在使用AI写的脚本的时候要特别注意。

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/25 12:45:43
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/24 14:25:52
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/24 14:49:33
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/23 8:01:38
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 14:28:18
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/25 15:49:36

日新闻

周新闻