乐于分享
好东西不私藏

上海实习|vivo招软件系统工程师岗位|220-300元/天

上海实习|vivo招软件系统工程师岗位|220-300元/天

✨职位信息概览

vivo招5天/周,5个月软件系统工程师(上海)岗位,220-300元/天,工作地址:上海浦东新区集贤中心C栋,面向硕士及以上学历在读毕业生

📋岗位职责

  1. 负责机器人核心硬件的接入与驱动开发,包括传感器、机械臂、相机、底盘等,完成硬件接口适配与驱动程序编写、调试
  2. 参与机器人应用节点开发,基于机器人操作系统(ROS2/cyber RT)完成节点搭建、逻辑实现与调试,保障节点间数据通信稳定
  3. 协助开展机器人传感器标定工作,优化传感器数据精度,支撑感知模块正常运行
  4. 配合算法团队打通算法与硬件的完整链路,完成算法部署后的硬件适配、功能验证与问题排查,保障端到端业务流程顺畅
  5. 配合团队完成跨部门协作,对接硬件团队确认接口需求、同步开发进度,协助整理驱动开发文档、接口手册等技术资料

✅任职要求

  1. 在读硕士及以上学历,计算机科学与技术、自动化、电子信息工程、机器人工程等相关专业
  2. 核心必备要求:掌握至少一门核心编程语言(C++/Python 优先),具备扎实的 Linux 系统操作能力;拥有 ROS2 或 cyber RT 等机器人操作系统的开发经历;在校期间有机器人开发相关项目经验(课程设计、科创项目均可)
  3. 熟悉常用开发工具(Git、VS Code、CMake),了解机器人软件开发基础(如硬件接口协议、分层架构思想),具备机器人数据流链路调试与优化基础者优先;善于使用AI编程提高工作效率
  4. 逻辑思维清晰,学习能力强,能快速理解项目需求并落地执行;具备良好的沟通协作能力,能配合团队完成跨部门对接与任务推进

加分项:

  • 具备系统分析与优化相关能力
  • 有传感器标定相关实践经验
  • 熟悉 NV 平台,掌握 CUDA、PyTorch、TensorRT 等技术

📸招聘详情

💡应聘技术问题

问题:"在ROS2中,节点间通信的QoS策略有哪些?如何选择合适的QoS策略来保证节点间数据通信稳定?"

参考答案:ROS2中的QoS策略主要包括:

  1. Reliability(可靠性):BestEffort(尽力而为)或 Reliable(可靠传输)
  2. Durability(持久性):TransientLocal(本地持久)、Volatile(易失)
  3. History(历史记录):KeepLast(保留最近N条)或 KeepAll(保留全部)
  4. Depth(深度):历史记录的队列深度
  5. Deadline(截止时间):消息的最大允许延迟

选择策略:

  • 对于控制指令等关键数据,使用Reliable + TransientLocal确保可靠传输
  • 对于高频传感器数据(如相机、激光雷达),使用BestEffort + KeepLast保证实时性
  • 对于需要状态同步的数据,使用Reliable + TransientLocal
  • Deadline设置应根据数据实际延迟需求配置

问题:"在机器人传感器标定中,如何处理传感器数据的时间同步问题?"

参考答案:传感器时间同步的处理方法:

  1. 硬件同步:使用硬件触发信号,确保多个传感器同时采集
  2. 软件同步:基于时间戳对齐,通过插值算法补偿时间差
  3. 基于触发机制的同步:一个传感器触发其他传感器工作
  4. 在ROS2中,可以使用message_filters进行多话题时间同步
  5. 实现策略:
    • 优先选择硬件同步方案
    • 记录每个传感器的时钟偏差和延迟
    • 使用线性插值或卡尔曼滤波对数据对齐
    • 建立时间同步监控系统,实时检测同步质量

问题:"如何优化机器人的实时数据处理链路,降低从传感器数据采集到算法处理的端到端延迟?"

参考答案:优化端到端延迟的策略:

  1. 硬件层面:

    • 选择高性能传感器,降低采集延迟
    • 使用DMA传输,减少CPU干预
    • 优化硬件接口,使用高速通信协议
  2. 软件层面:

    • 使用零拷贝技术减少内存复制
    • 合理使用线程池和异步处理
    • 优化数据结构,减少序列化开销
    • 使用共享内存进行进程间通信
  3. 算法层面:

    • 模型剪枝和量化,加速推理
    • 使用TensorRT等推理框架
    • 多线程/多进程并行处理
    • 设置合理的QoS策略,平衡实时性和可靠性
  4. 监控与调优:

    • 建立延迟监控系统
    • 使用性能分析工具定位瓶颈
    • 持续优化关键路径

问题:"在机器人驱动开发中,如何处理硬件接口适配中的协议不兼容问题?"

参考答案:处理协议不兼容的方法:

  1. 适配器模式:创建适配器类,将不同协议统一为统一接口
  2. 中间件层:建立抽象层,隔离硬件差异
  3. 协议转换:实现协议转换器,支持多种协议互操作
  4. 具体实现策略:
    • 设计统一的硬件抽象接口(HAI)
    • 使用工厂模式创建不同协议的驱动实例
    • 通过配置文件动态加载驱动
    • 维护协议转换表,处理数据格式差异
  5. 测试策略:
    • 单元测试验证各协议转换正确性
    • 集成测试验证端到端功能
    • 建立硬件仿真环境,方便测试

问题:"如何使用AI编程工具提高机器人开发效率?请举例说明具体应用场景。"

参考答案:AI编程工具的应用场景:

  1. 代码生成与补全:

    • 使用Copilot等工具快速生成样板代码
    • 自动补全API调用,减少查阅文档时间
  2. 调试辅助:

    • 使用AI工具分析错误日志,快速定位问题
    • 生成调试测试用例,验证修复效果
  3. 文档生成:

    • 自动生成API文档和注释
    • 将技术方案整理成文档
  4. 性能优化:

    • 分析代码性能瓶颈,提供优化建议
    • 自动重构低效代码段

具体应用案例:

  • 开发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个核心项目的详细介绍,包括:
    • 项目背景和目标
    • 使用的技术和方法
    • 遇到的挑战和解决方案
    • 项目成果和收获
  • 准备相关论文的复现经验或研究经历
  • 准备开源项目贡献经历
  • 准备机器人竞赛或科创项目经验