✨职位信息概览
vivo招5天/周,5个月软件系统工程师(上海)岗位,220-300元/天,工作地址:上海浦东新区集贤中心C栋,面向硕士及以上学历在读毕业生
📋岗位职责
负责机器人核心硬件的接入与驱动开发,包括传感器、机械臂、相机、底盘等,完成硬件接口适配与驱动程序编写、调试 参与机器人应用节点开发,基于机器人操作系统(ROS2/cyber RT)完成节点搭建、逻辑实现与调试,保障节点间数据通信稳定 协助开展机器人传感器标定工作,优化传感器数据精度,支撑感知模块正常运行 配合算法团队打通算法与硬件的完整链路,完成算法部署后的硬件适配、功能验证与问题排查,保障端到端业务流程顺畅 配合团队完成跨部门协作,对接硬件团队确认接口需求、同步开发进度,协助整理驱动开发文档、接口手册等技术资料
✅任职要求
在读硕士及以上学历,计算机科学与技术、自动化、电子信息工程、机器人工程等相关专业 核心必备要求:掌握至少一门核心编程语言(C++/Python 优先),具备扎实的 Linux 系统操作能力;拥有 ROS2 或 cyber RT 等机器人操作系统的开发经历;在校期间有机器人开发相关项目经验(课程设计、科创项目均可) 熟悉常用开发工具(Git、VS Code、CMake),了解机器人软件开发基础(如硬件接口协议、分层架构思想),具备机器人数据流链路调试与优化基础者优先;善于使用AI编程提高工作效率 逻辑思维清晰,学习能力强,能快速理解项目需求并落地执行;具备良好的沟通协作能力,能配合团队完成跨部门对接与任务推进
加分项:
具备系统分析与优化相关能力 有传感器标定相关实践经验 熟悉 NV 平台,掌握 CUDA、PyTorch、TensorRT 等技术
📸招聘详情

💡应聘技术问题
问题:"在ROS2中,节点间通信的QoS策略有哪些?如何选择合适的QoS策略来保证节点间数据通信稳定?"
参考答案:ROS2中的QoS策略主要包括:
Reliability(可靠性):BestEffort(尽力而为)或 Reliable(可靠传输) Durability(持久性):TransientLocal(本地持久)、Volatile(易失) History(历史记录):KeepLast(保留最近N条)或 KeepAll(保留全部) Depth(深度):历史记录的队列深度 Deadline(截止时间):消息的最大允许延迟
选择策略:
对于控制指令等关键数据,使用Reliable + TransientLocal确保可靠传输 对于高频传感器数据(如相机、激光雷达),使用BestEffort + KeepLast保证实时性 对于需要状态同步的数据,使用Reliable + TransientLocal Deadline设置应根据数据实际延迟需求配置
问题:"在机器人传感器标定中,如何处理传感器数据的时间同步问题?"
参考答案:传感器时间同步的处理方法:
硬件同步:使用硬件触发信号,确保多个传感器同时采集 软件同步:基于时间戳对齐,通过插值算法补偿时间差 基于触发机制的同步:一个传感器触发其他传感器工作 在ROS2中,可以使用message_filters进行多话题时间同步 实现策略: 优先选择硬件同步方案 记录每个传感器的时钟偏差和延迟 使用线性插值或卡尔曼滤波对数据对齐 建立时间同步监控系统,实时检测同步质量
问题:"如何优化机器人的实时数据处理链路,降低从传感器数据采集到算法处理的端到端延迟?"
参考答案:优化端到端延迟的策略:
硬件层面:
选择高性能传感器,降低采集延迟 使用DMA传输,减少CPU干预 优化硬件接口,使用高速通信协议 软件层面:
使用零拷贝技术减少内存复制 合理使用线程池和异步处理 优化数据结构,减少序列化开销 使用共享内存进行进程间通信 算法层面:
模型剪枝和量化,加速推理 使用TensorRT等推理框架 多线程/多进程并行处理 设置合理的QoS策略,平衡实时性和可靠性 监控与调优:
建立延迟监控系统 使用性能分析工具定位瓶颈 持续优化关键路径
问题:"在机器人驱动开发中,如何处理硬件接口适配中的协议不兼容问题?"
参考答案:处理协议不兼容的方法:
适配器模式:创建适配器类,将不同协议统一为统一接口 中间件层:建立抽象层,隔离硬件差异 协议转换:实现协议转换器,支持多种协议互操作 具体实现策略: 设计统一的硬件抽象接口(HAI) 使用工厂模式创建不同协议的驱动实例 通过配置文件动态加载驱动 维护协议转换表,处理数据格式差异 测试策略: 单元测试验证各协议转换正确性 集成测试验证端到端功能 建立硬件仿真环境,方便测试
问题:"如何使用AI编程工具提高机器人开发效率?请举例说明具体应用场景。"
参考答案:AI编程工具的应用场景:
代码生成与补全:
使用Copilot等工具快速生成样板代码 自动补全API调用,减少查阅文档时间 调试辅助:
使用AI工具分析错误日志,快速定位问题 生成调试测试用例,验证修复效果 文档生成:
自动生成API文档和注释 将技术方案整理成文档 性能优化:
分析代码性能瓶颈,提供优化建议 自动重构低效代码段
具体应用案例:
开发ROS2节点时,用AI快速生成标准节点框架 调试传感器数据流问题,用AI分析日志找出异常点 编写测试用例时,让AI根据代码生成边界条件测试 优化CUDA代码,让AI分析kernel性能并提供优化建议
🎯应聘面试准备
问:想应聘上述岗位,需要做哪些准备?
答:
简历优化
1.核心信息前置
- 学历背景:
硕士在读,计算机科学与技术/自动化/电子信息工程/机器人工程等相关专业 - 工作经验:
在校期间机器人开发相关项目经验(课程设计、科创项目) - 技术栈:
C++/Python、ROS2/cyber RT、Linux系统 - 意向岗位:
软件系统工程师(机器人方向)
2.匹配岗位关键词
- 技术栈:
C++、Python、ROS2、cyber RT、Linux、CMake、Git、VS Code - 工程能力:
硬件驱动开发、传感器标定、系统优化、跨部门协作 - 工具与平台:
CUDA、PyTorch、TensorRT、机器人操作系统 - 能力标签:
机器人开发、驱动开发、系统分析与优化
技能梳理
机器人操作系统
熟悉ROS2的核心概念(节点、话题、服务、动作) 掌握ROS2的通信机制(DDS、QoS策略) 了解ROS2的常用工具(rqt、rviz、tf2) 熟悉cyber RT的基本架构和使用方法
硬件驱动开发
掌握Linux驱动开发基础 熟悉常用硬件接口协议(UART、I2C、SPI、CAN) 了解传感器驱动开发流程 掌握硬件接口适配和调试方法
传感器技术
了解常用传感器原理(相机、激光雷达、IMU) 掌握传感器标定方法 熟悉传感器数据预处理 了解多传感器融合基础
性能优化
掌握代码性能分析方法 了解CUDA编程基础 熟悉模型加速技术(TensorRT) 掌握多线程/多进程优化方法
面试准备
经典问题
ROS1和ROS2的主要区别是什么? 如何保证机器人系统的实时性? 描述一个你参与过的机器人项目,遇到了什么问题,如何解决? Linux系统中如何查看和优化系统性能? C++中如何进行内存管理,避免内存泄漏?
系统设计
设计一个机器人导航系统的软件架构 设计一个多传感器数据融合系统 设计一个机器人远程监控系统 设计一个自动化测试框架用于机器人系统
项目经验准备
准备1-2个核心项目的详细介绍,包括: 项目背景和目标 使用的技术和方法 遇到的挑战和解决方案 项目成果和收获 准备相关论文的复现经验或研究经历 准备开源项目贡献经历 准备机器人竞赛或科创项目经验
夜雨聆风