<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://ckyfi9zero.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ckyfi9zero.github.io/" rel="alternate" type="text/html" /><updated>2026-04-08T03:14:12+00:00</updated><id>https://ckyfi9zero.github.io/feed.xml</id><title type="html">Kuangyi Chen(陈旷镒)</title><subtitle>Chen Kuangyi&apos;s academic portfolio</subtitle><author><name>Kuangyi Chen(陈旷镒)</name><email>kuangyi_chen@hdu.edu.cn</email></author><entry><title type="html">研一上学期工作回顾</title><link href="https://ckyfi9zero.github.io/posts/2026/02/blog-post-1/" rel="alternate" type="text/html" title="研一上学期工作回顾" /><published>2026-03-02T00:00:00+00:00</published><updated>2026-03-02T00:00:00+00:00</updated><id>https://ckyfi9zero.github.io/posts/2026/02/blog-post-1</id><content type="html" xml:base="https://ckyfi9zero.github.io/posts/2026/02/blog-post-1/"><![CDATA[<p>作为第一篇阶段性复盘，本文记录我在研一上学期（2025.07—2026.01）围绕机器人软件工程与相关算法学习所做的核心工作。写作的直接动因是想通过文字总结，系统性训练写作与逻辑表达能力，并提升后续科研与工程效率。<strong>为避免泄露具体研究与项目细节，文中仅保留可对外分享的学习路径。</strong></p>

<blockquote>
  <p>本文按时间顺序梳理 2025 年 7 月至 2026 年 1 月的主要工作，主要覆盖：ROS 工程实践、SLAM/状态估计基础、点云处理工具链，以及深度学习网络复现与工程化尝试。</p>
</blockquote>

<hr />

<h2 id="2025-年-7-月">2025 年 7 月：</h2>

<p>首先学习的是ROS基础，参考的教程是赵虚左老师（<a href="https://www.autolabor.com.cn/book/ROSTutorials/">Autolabor 官方网站</a>），以 Pioneer 3-DX（P3-DX）移动机器人为平台，建图部分使用 gmapping 生成二维栅格地图，实现了简化版 <a href="https://github.com/ckyFi9zero/myastar">A* 全局路径规划</a>算法，并按照 move_base 的全局规划器接口进行封装，作为插件形式注册到系统中。局部规划则直接采用 move_base 自带的 DWA 规划器，通过参数调优实现对动态障碍物的实时避障与稳定跟踪。</p>

<p><img src="https://ckyFi9zero.github.io/picx-images-hosting/20260302/p3.8vngjhvbdk.webp" alt="p3" /></p>

<p><strong>总结收获：</strong></p>

<p>1）<strong>系统框架</strong>：对“让机器人跑起来”的整体框架有了更完整的认知——从传感器/里程计输入、TF 维护、建图与定位，到全局/局部规划、控制输出与可视化调试，各模块之间的依赖关系与数据流闭环更加清晰。</p>

<p>2）<strong>TF</strong>：更清晰地认识到 TF 树的完整性与一致性（坐标系关系正确、时间戳连续、链路可达）是定位与导航稳定运行的前提，任何断链或时序问题都会出现各种问题。</p>

<p>3）<strong>ROS 通信与联调</strong>：在接口开发与系统联调中，对消息类型匹配、话题订阅/发布关系、数据流时序有了更深入的理解，同时也建立了更明确的排查思路与调参方法。</p>

<hr />

<h2 id="2025-年-8-月">2025 年 8 月：</h2>

<p>开始入门slam，阅读了高翔老师的<a href="https://book.douban.com/subject/34782244/">《视觉SLAM十四讲 (第2版)》</a>前六章。特别推荐<a href="https://www.bilibili.com/video/BV1KP4y1i7pU">全日制学生混的一起读书系列</a>，让我对李群李代数、非线性优化的内容有了更深刻的理解和认识。听了深蓝学院的对应前四节课，简单做了一下<a href="https://github.com/ckyFi9zero/slam14-exercises">课程中布置的课后编程作业</a>。</p>

<p><img src="https://ckyFi9zero.github.io/picx-images-hosting/20260302/slam.8hh0smn991.webp" alt="slam" /></p>

<p>关于点云的学习主要是<a href="https://book.douban.com/subject/30659047/">《点云库PCL从入门到精通》</a>前十二章，这本书给我的感觉更像一本词典，让你先了解PCL库封装了哪些方法，可以直接调库进行哪些操作。对照着<a href="https://pointclouds.org/">官网</a>的讲解和代码同时也参考了<a href="https://www.yuque.com/huangzhongqing/pcl">双愚大佬的学习笔记</a>，简单跑了一遍<a href="https://github.com/ckyFi9zero/pcl-exercises">PCL中的demo</a>。</p>

<p><img src="https://ckyFi9zero.github.io/picx-images-hosting/20260302/pcl.5j4qp4exi2.webp" alt="pcl" /></p>

<p><strong>总结收获：</strong></p>

<p>1）<strong>工程与构建</strong>：熟悉 CMake 的基本工程组织与编译流程，能够更顺畅地搭建、编译并链接第三方库与示例项目；已经可以读懂较简单的 <code class="language-plaintext highlighter-rouge">CMakeLists.txt</code>，对后续无论是纯 CMake 项目还是 ROS 工程中的编译/链接报错更敏感，也更容易定位问题。</p>

<p>2）<strong>矩阵变换</strong>：对坐标系、位姿表示以及变换链路的矩阵表达理解更扎实，为后续的位姿估计、坐标对齐与配准打下基础。</p>

<p>3）<strong>优化视角</strong>：初步建立“把问题写成优化问题”的思维框架，理解非线性优化在 SLAM 中的核心作用与常见求解套路；这一视角也为后续理解点云配准等优化问题提供了帮助。</p>

<p>4）<strong>点云处理</strong>：掌握点云处理的常用操作与工具链，能够使用 PCL 完成基础滤波、几何/特征相关处理等；对点云数据的基本操作与典型处理流程形成了整体印象。</p>

<hr />

<h2 id="2025-年-9-月">2025 年 9 月：</h2>

<p>学习了<a href="https://www.bilibili.com/video/BV1NB4y1d7px">点云配准算法基础教程</a>，了解到PCL库中封装的ICP点云配准比较慢，打算手写一个点到点ICP配准。但真正动手时才发现问题并不在“写代码”本身，而在于工程路径不清晰：矩阵变换用Eigen库还是自己封装？kdtree用PCL的还是也自己实现一个更轻量的版本？优化迭代选择哪种求解方式？这时我读到了高翔老师的另一大作<a href="https://book.douban.com/subject/36477900/">《自动驾驶与机器人中的SLAM技术-从理论到实践》</a>，我用 PCL 书中配准章节提供的点云用例做了一次<a href="https://github.com/ckyFi9zero/icp-pointcloud-registration">对比测试</a>，结果观察到自实现版本并未体现出速度优势。不过由于当时没有做足够次数的重复实验、也没有系统统计耗时分布与线程配置差异，这个结论仍然只能算“现象级观察”。</p>

<p><img src="https://ckyFi9zero.github.io/picx-images-hosting/20260302/icp.86u6zh7u5f.webp" alt="icp" /></p>

<p>与此同时，为了把“配准”和“定位”放到更完整的状态估计框架下理解，学习了基础卡尔曼滤波（KF）、扩展卡尔曼滤波（EKF）、误差状态卡尔曼滤波（ESKF）与 IMU 预积分基本理论与工程落地思路，主要参考了《视觉 SLAM 十四讲》第 9 讲，<a href="https://www.bilibili.com/video/BV1Bj411s75v">激光定位学习小组技术分享：基于ESKF的传感器融合算法与IMU预积分理论</a>，以及《自动驾驶与机器人中的 SLAM 技术-从理论到实践》的第4章。作为后续图优化路线的铺垫，我也开始接触 GTSAM 框架，初步理解因子图建模与求解的基本形式。</p>

<p><strong>总结收获：</strong></p>

<p>1）<strong>从用到写：</strong>更熟悉 KF / EKF / ESKF 的建模方式与误差状态表达，能把状态、观测、预测与更新组织成可运行的模块，并清楚每一项噪声与线性化假设对结果的影响。</p>

<p>2）<strong>小工程落地能力：</strong>思路转变为先做最小可运行闭环，再按需求优先级增添迭代。</p>

<p>3）<strong>后端优化入门：</strong>对 GTSAM 等优化库的基本思想建立初步认识：因子图如何表达约束、非线性优化如何求解、先验/噪声模型如何进入系统，为后续理解图优化与融合框架打下基础。</p>

<hr />

<h2 id="2025-年-10-月">2025 年 10 月：</h2>

<p>阅读并梳理了 <strong>LIO-SAM</strong> 的论文与<a href="https://github.com/TixiaoShan/LIO-SAM">代码实现</a>，阅读过程中参考了<a href="https://www.zhihu.com/column/c_1619085291536433152">Simple-LIO-SAM</a>的专栏，重点关注其从前端处理、状态估计/优化到地图维护与闭环的整体数据流与模块协作方式。</p>

<p>学习了B 样条曲线，参考博客<a href="https://www.cnblogs.com/icmzn/p/5100761.html">B-spline Curves 学习之B样条基函数的定义与性质</a>，初步理解其在轨迹表示的意义，为后续可能涉及的轨迹建模工作做知识储备。</p>

<p>另一方面是确立了我的研究方向，我复现了我研究方向领域内常用的经典传统方法，并将其统一改造成 <strong>实时话题接口</strong> 的形式，以便后续进行横向评测。</p>

<p>针对一篇与研究方向相关的顶刊工作，我完成了 <strong>Docker 环境部署与运行</strong>，并实现了容器内推理节点与主机侧 ROS 的 <strong>rviz 可视化数据对接</strong>，打通了从推理输出到可视化验证的链路。</p>

<p><strong>总结收获：</strong></p>

<p>1）<strong>SLAM 工程框架理解</strong>：通过论文与代码对照阅读，建立了对典型slam系统“输入—处理—输出”的整体链路视角，能更清晰定位各模块的职责与误差来源。</p>

<p>2）<strong>阅读文献和复现能力</strong>：完成多种传统方法复现，并统一为实时话题接口，形成可复用的评测/集成形态，便于后续横向对比与快速替换。</p>

<p>3）<strong>认识Docker</strong> ：跑通容器化部署与主机 ROS 可视化对接，形成一套环境复现与调试流程，显著降低后续配环境与迁移成本。</p>

<hr />

<h2 id="2025-年-11-月">2025 年 11 月：</h2>

<p>在深度学习方向，我精读了一篇基于点云深度学习网络改进的论文，并尝试按论文描述自行复现。但由于该工作<strong>未开源代码与数据</strong>，且<strong>缺少公开数据集上的统一指标对比。</strong>复现时不可避免会遇到实现细节缺失与评测口径不一致。最终我跑通了训练与评估流程，但效果并不理想。这个过程让我更清楚地意识到：论文的可复现性与可验证性，往往决定了复现投入的上限。</p>

<p>在传感器标定方面，我学习了 <strong><a href="https://github.com/ethz-asl/lidar_align">lidar_align</a></strong> 与 <strong><a href="https://github.com/APRIL-ZJU/lidar_IMU_calib">lidar_IMU_calib</a></strong> 两套 IMU–LiDAR 标定工具，并做了实际尝试但未能收敛。复盘后认为主要原因在于数据采集场景缺少足够的<strong>运动数据</strong>（尤其是俯仰等姿态变化不足），导致可观测性条件不满足，从而影响外参求解的稳定性与收敛结果。</p>

<p><strong>总结收获：</strong></p>

<p>1）<strong>深度学习 pipeline</strong>：跑通从数据准备、训练到评估的基本链路，建立起对关键环节（数据处理、训练策略、指标评估）的工程化直觉，并能更有针对性地定位“效果不佳”可能出在哪一段流程。</p>

<p>2）<strong>复现边界认知</strong>：理解在缺少开源代码/数据、缺少统一公开评测的情况下，复现往往面临“实现细节缺失 + 指标不可对齐”的双重不确定性；学会更合理地设定复现目标（先对齐流程与基线，再谈改进点），避免在不可验证的细节上过度消耗。</p>

<p>3）<strong>问题认知</strong>：逐渐意识到一些效果/性能问题并非单靠改代码就能解决，更关键的是先定位瓶颈所在，并据此形成可执行的改进策略：有时需要<strong>补数据与改采集方式</strong>（数据分布、覆盖的运动/场景激励、标注与噪声特性），有时需要<strong>调整评测与实验设计</strong>（指标、对照组、消融与复现设置），也可能需要<strong>改建模假设或工程链路</strong>（输入预处理、参数/先验、鲁棒机制与约束条件）。</p>

<hr />

<h2 id="2025-年-12-月">2025 年 12 月：</h2>

<p>我补充学习了 <strong>DBSCAN</strong> 这类常用聚类工具，并借助<a href="https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/">DBSCAN可视化网站</a>案例加深对参数与聚类形态的直观理解。在此基础上，我更多做的是方法迁移：当某个思路在理论上看起来可行时，尝试把它嵌入到自己的流程中，并通过对比实验验证是否带来稳定收益。与此同时，我也尝试在他人的<strong>公开数据集</strong>上进行对比实验，与之前复现的方法做横向对比，以建立更可复现的评估基准。</p>

<p><strong>总结收获：</strong></p>

<p>1）<strong>从能用到可改</strong>：对关键模块的源码理解从“调用与跑通”推进到“看懂并能修改”，逐步具备定位问题、最小改动验证假设的能力。</p>

<p>2）<strong>组合策略意识</strong>：开始形成“多阶段处理 + 互补机制”的工程化思路，把单一方法的短板用流程设计补齐，使整体表现更稳健、可控。</p>

<hr />

<h2 id="2026-年-1-月">2026 年 1 月：</h2>

<p>我学习了 Python 的自动化调参工具 <a href="https://optuna.org/">Optuna</a> ，用贝叶斯优化等策略替代部分网格搜索与纯手工调参，将以往偏经验的参数调整过程推进到<strong>可重复、可迁移</strong>的参数搜索流程：能记录试验轨迹、复现实验配置，也更容易在不同数据/场景下复用调参策略。</p>

<p>最重要的变化，是我开始认真思考。过去半年里我做了不少偏工程的任务：它们当然锻炼了我，也让我把系统跑起来、把链路打通、把问题解决。但工程像一条不断前行的传送带：任务从外部涌来，你就去学、去补、去修；当“能用”为止，学习也往往就停在“交付的那一刻”。下一件事紧接着到来，新的需求覆盖旧的热情，进度条刷新得很快，却不一定是我真正想推进的方向。学术研究更像是在雾里找路：你不一定马上抵达，可每往前一步，雾就会退一点，你会开始看见地图的轮廓，也看见自己真正想去的方向。</p>

<p>所以这段时间我真正收获的，也许不是某个工具、某套方法，而是一种更清晰的自我辨认：我并不排斥工程，只是更渴望把时间投入到那些“暂时没有答案、却愿意一直想”的问题里。读博的念头或许正是从这里长出来的：不是逃离任务，而是把自己从被动的“来什么学什么”，慢慢带回主动的<strong>“我想学什么，就去学什么”</strong>。</p>

<p><strong>总结收获：</strong></p>

<p>1）<strong>自动调参</strong>：用 Optuna 的自动化搜索替代部分网格/手工调参，把调参从“凭感觉试”升级为“有记录、可复现、可迁移”的参数搜索流程，显著提升实验迭代效率。</p>

<p>2）<strong>阶段性规划</strong>：我不再只是摇摆比较，而是逐渐确认自己更倾向于什么：我更享受在不确定中追问、在复现与推导里逼近答案的过程，也愿意为长期问题投入更稳定的时间与耐心。</p>

<hr />

<p><strong>希望我之后可以做到：把重心从“任务驱动”逐步转向“问题驱动的主动积累”。</strong></p>]]></content><author><name>Kuangyi Chen(陈旷镒)</name><email>kuangyi_chen@hdu.edu.cn</email></author><category term="robotics" /><category term="SLAM" /><category term="point-cloud" /><category term="algorithm" /><summary type="html"><![CDATA[作为第一篇阶段性复盘，本文记录我在研一上学期（2025.07—2026.01）围绕机器人软件工程与相关算法学习所做的核心工作。写作的直接动因是想通过文字总结，系统性训练写作与逻辑表达能力，并提升后续科研与工程效率。为避免泄露具体研究与项目细节，文中仅保留可对外分享的学习路径。]]></summary></entry></feed>