<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sundong_81的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/sundong_81</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; sundong_81]]></copyright><item><title><![CDATA[200、从零搭建具身智能实验平台：硬件选型软件栈与调试]]></title><link>https://blog.csdn.net/sundong_81/article/details/164398459</link><guid>https://blog.csdn.net/sundong_81/article/details/164398459</guid><author>sundong_81</author><pubDate>Sat, 05 Sep 2026 11:39:33 +0800</pubDate><description><![CDATA[我一开始图便宜，3D打印了一个平行夹爪，结果抓取力不够，稍微重点的物体就滑落，而且开合控制延迟大，VLA模型输出的动作指令根本跟不上。如果你非要自己做，记住两个原则：一是用谐波减速器而不是直驱，二是加力传感器，哪怕是一个简单的电阻应变片也行——没有力反馈，你的夹爪就是个瞎子。我的建议是，如果你用的是UR5老款，ROS1的ur_modern_driver包更成熟，但如果你要跑最新的VLA框架，很多库已经不支持ROS1了。所以，保持耐心，多备份代码，多记录日志，少熬夜。毕竟，这条路上，我们都是摸着石头过河。]]></description><category></category></item><item><title><![CDATA[199、安全性与容错设计：VLA模型校验执行安全与异常恢复]]></title><link>https://blog.csdn.net/sundong_81/article/details/164398451</link><guid>https://blog.csdn.net/sundong_81/article/details/164398451</guid><author>sundong_81</author><pubDate>Sat, 05 Sep 2026 11:38:59 +0800</pubDate><description><![CDATA[VLA模型的执行安全，本质上是一个“概率生成器”和“物理世界”之间的适配问题。模型不知道物理规律，不知道机械臂的极限，不知道环境的风险。我们的工作，就是在这两者之间架一座桥——用校验规则过滤危险输出，用修正策略处理轻微偏差，用恢复机制应对意外情况。这座桥的设计没有标准答案，取决于你的机械臂型号、任务场景、模型能力。但有一点是共通的：安全设计要前置，要分层，要可配置，要能记录。别等出了事故再补，那时候代价就大了。调试VLA模型的安全模块，是个“磨性子”的活儿。]]></description><category></category></item><item><title><![CDATA[198、机器人系统的可观测性与监控：日志指标与链路追踪]]></title><link>https://blog.csdn.net/sundong_81/article/details/164398446</link><guid>https://blog.csdn.net/sundong_81/article/details/164398446</guid><author>sundong_81</author><pubDate>Sat, 05 Sep 2026 11:38:25 +0800</pubDate><description><![CDATA[上个月调试一台七轴机械臂，抓取动作偶发失败。现象很诡异：早上跑一整天都好好的，下午三点半左右准时抽风，每次都是抓取后放置那一下，末端夹爪莫名其妙松开。查了机械结构，没问题；查了控制指令，发送的力矩值也正常。最后翻日志，发现下午三点半恰好是隔壁工位同事开空调的时间——电压波动导致伺服驱动器内部温度漂移，进而影响了夹爪的保持力矩。这个案例让我意识到，在具身智能系统里，可观测性不是“锦上添花”，而是“保命符”。]]></description><category></category></item><item><title><![CDATA[197、具身智能项目完整实战：从需求到部署的全流程案例]]></title><link>https://blog.csdn.net/sundong_81/article/details/164398438</link><guid>https://blog.csdn.net/sundong_81/article/details/164398438</guid><author>sundong_81</author><pubDate>Sat, 05 Sep 2026 11:37:49 +0800</pubDate><description><![CDATA[项目交付之后，我们复盘了整个流程，有几个经验想分享给做类似项目的同学。第一，需求分析阶段一定要把“失败”的定义和应对策略说清楚。我们这次因为提前明确了重试机制和报警策略，省了很多扯皮的时间。第二，模块化架构是具身智能项目的救命稻草。不要试图做一个端到端的黑盒系统，出了问题你根本没法调试。每个模块都要有独立的输入输出接口和可视化工具，这样你才能快速定位问题。第三，数据采集的投入永远值得。我们项目里数据采集和标注的时间占了总工期的40%，但正是这些数据质量保证了模型的最终效果。]]></description><category></category></item><item><title><![CDATA[196、机器人端侧VLM推理：MobileVLM与TinyLLaVA嵌入式部署]]></title><link>https://blog.csdn.net/sundong_81/article/details/164398434</link><guid>https://blog.csdn.net/sundong_81/article/details/164398434</guid><author>sundong_81</author><pubDate>Sat, 05 Sep 2026 11:37:16 +0800</pubDate><description><![CDATA[后来发现，真正的问题是序列长度——224x224的图像，patch size 14，序列长度是256，这个长度对于GPU来说太短了，并行度上不去。MobileVLM的视觉编码器是CLIP ViT-L/14，这个模型在TensorRT里有个老坑——LayerNorm的epsilon值默认是1e-5，但CLIP用的是1e-6，不手动改的话，图像特征会偏一点，最后影响的是VQA准确率，不是推理速度。构建引擎时，我们用了FP16精度，视觉编码器和语言模型都转成FP16，精度损失在1%以内，但速度提升了一倍。]]></description><category></category></item><item><title><![CDATA[195、大模型蒸馏与压缩：知识蒸馏与VLA模型轻量化]]></title><link>https://blog.csdn.net/sundong_81/article/details/164398423</link><guid>https://blog.csdn.net/sundong_81/article/details/164398423</guid><author>sundong_81</author><pubDate>Sat, 05 Sep 2026 11:36:43 +0800</pubDate><description><![CDATA[折腾完这一整套流程，最大的感悟是：知识蒸馏不是简单的模型压缩，而是知识迁移的工程艺术。每一步都有坑，每个参数都可能影响最终性能。给后来者的建议是：先别急着上蒸馏，把teacher模型的推理延迟和显存占用测清楚，确定瓶颈在哪里——是计算量太大还是内存带宽不够，这决定了你该用蒸馏还是量化还是剪枝。蒸馏训练时一定要监控每一层的特征对齐loss，别只看总loss。如果某一层的对齐loss特别高，说明student在这一层学歪了，需要调整该层的损失权重或者增加该层的投影头容量。]]></description><category></category></item><item><title><![CDATA[194、Docker容器化机器人应用：镜像构建GPU直通与版本管理]]></title><link>https://blog.csdn.net/sundong_81/article/details/164398418</link><guid>https://blog.csdn.net/sundong_81/article/details/164398418</guid><author>sundong_81</author><pubDate>Sat, 05 Sep 2026 11:36:07 +0800</pubDate><description><![CDATA[昨晚在调试一台UR5e的抓取管线时，又双叒叕遇到了那个经典问题——宿主机上跑得好好的PyTorch模型，一进容器就报CUDA out of memory。更诡异的是nvidia-smi在容器里显示显存占用为0，但程序就是分配不到显存。这种问题在机器人实验室里太常见了，今天就把Docker容器化机器人应用这件事彻底讲透。]]></description><category></category></item><item><title><![CDATA[193、多机通信与分布式部署：ROS2 DDS与gRPC在多机器人协同]]></title><link>https://blog.csdn.net/sundong_81/article/details/164398411</link><guid>https://blog.csdn.net/sundong_81/article/details/164398411</guid><author>sundong_81</author><pubDate>Sat, 05 Sep 2026 11:35:35 +0800</pubDate><description><![CDATA[昨晚在实验室调三台机器人的协同搬运，折腾到凌晨两点。问题出在ROS2的DDS发现机制上——三台机器人在同一个Wi-Fi下，节点互相看不到。我一度以为是防火墙问题，后来发现是DDS的发现协议默认走多播，而实验室的AP禁用了多播。这种问题在仿真里永远遇不到，一上真机就现原形。今天就把多机通信这块的坑和解决方案捋一遍。先说结论：ROS2的DDS适合机器人内部的实时通信，但跨机器人、跨网段的场景，gRPC往往更省心。不是二选一，而是各司其职。]]></description><category></category></item><item><title><![CDATA[192、实时推理系统设计：多级缓存异步流水线与优先级调度]]></title><link>https://blog.csdn.net/sundong_81/article/details/164398406</link><guid>https://blog.csdn.net/sundong_81/article/details/164398406</guid><author>sundong_81</author><pubDate>Sat, 05 Sep 2026 11:35:01 +0800</pubDate><description><![CDATA[接下来是异步流水线。VLA模型输出的动作序列往往有很强的时序连续性，我们缓存最近5个决策周期的动作序列，当新的观测与缓存中的某个历史状态高度相似时（用状态向量的余弦相似度判断，阈值0.95），直接返回对应的历史动作，省掉整个LLM的推理。一开始怀疑是相机驱动的问题，抓了半小时的包才发现，问题出在推理服务内部——多个请求同时进来的时候，GPU利用率只有40%，但CPU核却全部打满，任务全部卡在Python层的GIL锁和序列化上。异步流水线虽然好，但调试复杂度是指数级上升的，没有充分的监控手段之前，别轻易上。]]></description><category></category></item><item><title><![CDATA[191、大模型推理优化：vLLM与TensorRT-LLM在机器人服务化部署]]></title><link>https://blog.csdn.net/sundong_81/article/details/164398396</link><guid>https://blog.csdn.net/sundong_81/article/details/164398396</guid><author>sundong_81</author><pubDate>Sat, 05 Sep 2026 11:34:26 +0800</pubDate><description><![CDATA[两个工具之间的模型转换有个坑，vLLM用的是HuggingFace的权重格式，TensorRT-LLM需要转成自己的格式，转换脚本里有个。TensorRT-LLM没有这个问题，因为它是编译好的静态图，但它的服务化部署要自己写HTTP封装，我用了FastAPI包了一层，结果发现并发处理时线程安全问题——多个请求同时访问同一个TensorRT引擎实例会崩溃。vLLM的API是OpenAI兼容的，写起来很爽，但它的调度策略是贪心的——总是优先处理最短的请求。控制最大并发序列数，我一开始设成256，结果显存爆了。]]></description><category></category></item><item><title><![CDATA[190、Jetson边缘部署：从Orin到Nano的模型移植与实时推理]]></title><link>https://blog.csdn.net/sundong_81/article/details/164366062</link><guid>https://blog.csdn.net/sundong_81/article/details/164366062</guid><author>sundong_81</author><pubDate>Fri, 04 Sep 2026 12:03:25 +0800</pubDate><description><![CDATA[最后说点个人经验，这些是论文里不会写的。第一，别追求极致性能。客户说实时，你做到15FPS就够了，别非要30FPS。留点余量应对系统波动和未来功能扩展。我见过太多人把性能榨到极限，结果系统一抖就崩。第二，做好降级方案。模型推理失败时，要有fallback逻辑。比如检测模型超时了，就返回上一次的结果，或者用简单的规则判断。产线上不能因为模型挂了就停线。第三，日志要详细。部署到现场，出了问题你看不到屏幕，只能靠日志排查。每个关键节点都要打日志，时间戳、耗时、输入输出尺寸，这些信息能帮你快速定位问题。]]></description><category></category></item><item><title><![CDATA[189、TensorRT推理加速：VLA与感知模型的端侧优化与部署]]></title><link>https://blog.csdn.net/sundong_81/article/details/164366054</link><guid>https://blog.csdn.net/sundong_81/article/details/164366054</guid><author>sundong_81</author><pubDate>Fri, 04 Sep 2026 12:02:47 +0800</pubDate><description><![CDATA[上个月在调试一台六轴机械臂的视觉抓取管线，用的是一套开源的VLA模型做末端位姿预测，感知部分挂的是DINOv2加一个轻量分割头。整条链路在PC上跑得欢快，一上Jetson Orin，推理延迟直接从35ms飙到180ms，抓取动作肉眼可见地“犹豫”。一开始怀疑是模型太大显存爆了，后来发现根本不是——是TensorRT的plugin没写对，DINOv2里的grid_sample算子被降级到了基础实现，内存拷贝来回折腾了三次。]]></description><category></category></item><item><title><![CDATA[188、模型量化INT8与INT4：VLA模型在边缘设备的精度速度权衡]]></title><link>https://blog.csdn.net/sundong_81/article/details/164366039</link><guid>https://blog.csdn.net/sundong_81/article/details/164366039</guid><author>sundong_81</author><pubDate>Fri, 04 Sep 2026 12:02:05 +0800</pubDate><description><![CDATA[回头看这个项目，最大的教训是：量化不是简单的精度换速度，而是对模型结构的重新理解。你得知道模型的哪部分在“干活”，哪部分只是“传话”。视觉编码器是“传话”的，语言模型的中间层是“干活”的，动作头是“签字”的——签字的人不能出错，传话的人可以稍微含糊。给后来者的建议：第一，敏感性分析必须做，别跳过，半天时间换来的是几周的调试时间；第二，校准数据集一定要覆盖多模态输入，纯图像或纯文本都会导致量化尺度错位；第三，混合精度是常态，别指望全INT4或全INT8一步到位；第四，知识蒸馏比QAT更实用，尤其对于大模型。]]></description><category></category></item><item><title><![CDATA[187、机器人软件架构设计：模块化可扩展与实时性兼顾的系统]]></title><link>https://blog.csdn.net/sundong_81/article/details/164366029</link><guid>https://blog.csdn.net/sundong_81/article/details/164366029</guid><author>sundong_81</author><pubDate>Fri, 04 Sep 2026 12:01:27 +0800</pubDate><description><![CDATA[昨晚在实验室调一台六轴机械臂的抓取程序，又碰到老问题——视觉节点刚把目标位姿发出来，运动控制节点那边已经超时丢包了。控制周期是1ms，视觉推理跑一次要80ms，中间还隔着一层ROS2的DDS通信，消息在队列里排队等着，等控制节点真正拿到数据，机械臂早就不知道跑到哪里去了。这种问题不是第一次遇到，每次都是临时加个缓冲区或者把视觉频率调低糊弄过去，但治标不治本。今天索性把机器人软件架构这件事彻底捋一遍，把我这些年踩过的坑和沉淀下来的设计思路写出来，希望能帮到正在被实时性和模块化折磨的同学。先说说为什么机器人软件]]></description><category></category></item><item><title><![CDATA[186、ROS2基础与机器人中间件：节点通信话题服务与DDS]]></title><link>https://blog.csdn.net/sundong_81/article/details/164366017</link><guid>https://blog.csdn.net/sundong_81/article/details/164366017</guid><author>sundong_81</author><pubDate>Fri, 04 Sep 2026 12:00:47 +0800</pubDate><description><![CDATA[ROS2的通信机制，本质上就是DDS的封装。遇到问题，先别急着改代码，用和定位问题在哪一层——是节点没起来，还是话题没数据，还是QoS不匹配。这三步走完，大部分问题都能解决。另外，写节点的时候，养成好习惯：节点名、话题名、服务名都用完整的、有意义的命名，别用node1topic1这种。命名空间用好了，多机器人系统会省很多事。我见过一个项目，所有节点都挂在根命名空间下，两个机器人一启动，话题冲突，数据全乱了。后来改成和，问题立刻消失。最后，别迷信“默认配置”。]]></description><category></category></item><item><title><![CDATA[185、数据飞轮与自监督学习：真实数据回流与模型自我提升]]></title><link>https://blog.csdn.net/sundong_81/article/details/164366003</link><guid>https://blog.csdn.net/sundong_81/article/details/164366003</guid><author>sundong_81</author><pubDate>Fri, 04 Sep 2026 12:00:05 +0800</pubDate><description><![CDATA[问题的根源不在网络结构，不在超参数，在于我们喂给VLA模型的数据——那些从真实产线采集的轨迹，和模型自己生成的伪标签，正在形成一个互相污染的闭环。仿真和真实之间的数据回流，我们用了域随机化——每次仿真环境随机换物体纹理、光照、摩擦系数，这样模型学到的特征更鲁棒，回流到真实场景时不会水土不服。我们现在的流程是——模型每训练1000步，就在真实机器人上跑20个episode做验证，用物理反馈筛选出真正有效的轨迹，再混入训练集。如果你正在做类似的工作，记住：物理反馈是唯一的真理，模型自己的预测都是谎言。]]></description><category></category></item><item><title><![CDATA[184、GPU并行仿真加速：大规模并行环境与吞吐优化]]></title><link>https://blog.csdn.net/sundong_81/article/details/164365988</link><guid>https://blog.csdn.net/sundong_81/article/details/164365988</guid><author>sundong_81</author><pubDate>Fri, 04 Sep 2026 11:59:24 +0800</pubDate><description><![CDATA[写到这里，把最核心的几条经验再强调一遍。第一，并行环境数不是越大越好，先做扫描实验找到拐点。第二，数据管线比仿真本身更容易成为瓶颈，关注dtype、内存拷贝和异步管线。第三，相机渲染是显存杀手，合理降采样和分层渲染能省出大量显存。第四，decimation参数要结合任务类型调，别一味追求高频控制。第五，多卡并行优先考虑环境并行，同步频率要结合硬件条件选择。这些经验都是我在实际项目里踩坑踩出来的，希望能帮你少走一些弯路。如果你在调参过程中遇到什么奇怪的现象，欢迎在评论区交流——说不定你遇到的问题我也遇到过。]]></description><category></category></item><item><title><![CDATA[183、仿真渲染与物理引擎对比：视觉真实度与物理精度权衡]]></title><link>https://blog.csdn.net/sundong_81/article/details/164365974</link><guid>https://blog.csdn.net/sundong_81/article/details/164365974</guid><author>sundong_81</author><pubDate>Fri, 04 Sep 2026 11:58:47 +0800</pubDate><description><![CDATA[上个月调试一个抓取透明水杯的任务，在仿真里用MuJoCo训练了二十万步，策略收敛得漂亮，成功率百分之九十八。迁移到真机，直接崩了——机械臂对着空气抓了三次，第四次才勉强碰到杯壁。排查了半天，问题出在渲染上。MuJoCo默认的软阴影和材质参数让透明物体在视觉上呈现一种"半透明白雾"的效果，而真实世界里的透明塑料杯在特定光照下会有强烈的镜面反射和折射高光。策略学到的是"抓那个半透明的白色区域"，而不是"抓那个透明的杯子"。这个案例让我想认真聊聊仿真里渲染和物理引擎的关系。]]></description><category></category></item><item><title><![CDATA[182、具身智能数据集盘点：Open X-Embodiment的构建与使用]]></title><link>https://blog.csdn.net/sundong_81/article/details/164365969</link><guid>https://blog.csdn.net/sundong_81/article/details/164365969</guid><author>sundong_81</author><pubDate>Fri, 04 Sep 2026 11:58:10 +0800</pubDate><description><![CDATA[上个月我在调试一个双臂倒水任务，源策略在Franka上已经收敛到85%成功率，换到自家的六轴协作臂上直接掉到12%。一开始我怀疑是动力学参数没标定好，折腾了两天，后来把训练数据里的关节角度分布拉出来一看——两个机器人的工作空间重叠不到30%，策略学到的根本不是“倒水”这个技能，而是Franka那一套关节轨迹的肌肉记忆。那一刻我意识到，具身智能的核心瓶颈从来不是模型，是数据。而Open X-Embodiment这个数据集，就是冲着这个痛点来的。Open X-Embodiment是Google DeepMind]]></description><category></category></item><item><title><![CDATA[181、真实世界数据与仿真数据配比：数据混合训练的最佳实践]]></title><link>https://blog.csdn.net/sundong_81/article/details/164365957</link><guid>https://blog.csdn.net/sundong_81/article/details/164365957</guid><author>sundong_81</author><pubDate>Fri, 04 Sep 2026 11:57:33 +0800</pubDate><description><![CDATA[再聊一个实战中经常遇到的尴尬场景：你手头有一批高质量的真实数据，但数量太少，仿真数据又便宜又大碗，怎么配比才能让模型既学到仿真里的多样性，又不丢掉真实数据的“手感”？后来我改成“混合训练+周期性真实数据重放”，具体做法是：每个训练轮次里，先用90%仿真+10%真实的数据训练，然后每隔5个轮次，单独用全部真实数据做一次纯微调，学习率降低到原来的十分之一。真实数据往往是按时间顺序采集的，比如今天上午采集的抓取数据，和下午采集的，虽然都是抓取，但可能因为环境光照变化、物体磨损程度不同，分布会有细微差异。]]></description><category></category></item></channel></rss>