— 实习故事 —
从Mac虚拟机到PIX实车:
我的自动驾驶ROS实操指南
马浚哲
01
实习工作介绍
— Internship Job Description —
任务背景
我是来自24级计算机科学与技术3班的马浚哲,我本次的实习是围绕自动驾驶展开的。
自动驾驶的“实战演习”本次实习的核心任务是基于 PIX 自动驾驶底盘,利用 ROS (Robot Operating System) 与 Apollo 系统实现自动寻迹。这不仅是一次简单的代码编写,更是一场从软件算法到硬件控制的深度协同。
02
环境筑基
跨越架构与配置的“第一道坎”工程开发,环境先行。由于我使用的是 Mac 设备,其架构与 Apollo 系统存在兼容性冲突。为了规避潜在的硬件风险,我通过 Parallels Desktop 搭建虚拟机环境,为后续开发扫清障碍。为了提升团队效率,我提前一周预研了 Linux 核心命令(Git、管道、Tmux、SSH 等),并利用 NumPy 实现了多视图几何中四元数与不同坐标系的统一转换。此外,我整理了 IPC(工控机)、双目相机及激光雷达的 ROS 教程,将资源与总结文档同步给组成员,确保团队在同一技术水平线上起跑。
03
核心攻坚
从数学公式到实时控制在 ROS 的学习过程中,我重点攻克了两个进阶功能:椭圆路线轨迹规划: 最初我尝试用微积分推导极坐标下椭圆与角度的关系公式,但在 ROS 的工程实现中,核心在于对速度与角度的实时闭环控制。这让我深刻意识到,纯数学推导与解决实际工程问题之间存在微妙的鸿沟。多机协作(V字编队跟随): 实现三只乌龟的编队飞行,关键在于为两只从属“乌龟”建立独立的动态参考系。这对于刚接触 ROS 坐标变换的我来说颇具挑战,经过反复调试,最终成功打通了代码逻辑。
04
协作与工程思维
现场才是真正的战场实际开发远比模拟环境复杂。在实习期间,我经历了多次虚拟机崩溃后的系统重装,这锻炼了我的系统维护能力。更重要的是,实车调试与电脑敲键盘完全不同:硬件运行存在概率性的 Bug 和各种不可预知的环境干扰。每一行代码的下发都必须谨慎小心,以防系统错误或安全事故。这种对硬件的敬畏之心,是工程思维的重要一课。
工作总结
— WORK SUMMARY —
在实践中打磨工程之光这次实习让我对“计算机控制具体器械”有了从理论到体感的认知。它不仅提高了我的工程落地能力,更让我明白:一个优秀的开发者,既要有扎实的理论根基,也要有在现场解决突发问题的韧性。在未来的团队协作中,我将继续精进,为具身智能与自动驾驶贡献力量。
投稿学生:24级计算机科学与技术3班的马浚哲
通讯员:贾芸楚 范宇
一审:陈周旭洋
二审:邓梓丰
三审:徐嘉宣