机器人C++软件工程师
Job description
岗位职责 1、参与机器人软件模块的设计和实现,可能涉及设备驱动、传感器/视频、状态估计、运动控制、ROS 2 节点、模型推理或仿真工具。 2、维护和改进现有 Python/C++ 链路,使用 profiling 定位性能问题,逐步把合适的热路径迁移到 C++,并完成前后行为和性能验证。 3、处理多线程、队列、内存、网络和 I/O 等系统问题,提升数据链路的稳定性、时延和可诊断性。 4、开发和维护 ROS 2 节点及跨进程通信,处理消息、QoS、DDS、时间戳、版本兼容和断连恢复。 5、参与 ONNX/TensorRT 等推理模块的集成,协助管理模型、配置、目标 GPU 和发布制品之间的匹配关系。 6、参与 x86 开发/仿真到 ARM64 目标机的构建、交叉编译、测试和部署,维护 CMake、colcon、Docker、CI 及必要的 systemd 配置。 7、参与回放、故障注入、设备联调和版本升级,记录测试结果、日志和问题定位过程。 8、与算法、控制、硬件、设备和应用团队协作,推动接口和工程规范落地。
基本要求: 1、有较扎实的现代 C++ 开发经验,熟悉 C++11/14/17 中的一种或多种;理解对象生命周期、RAII、智能指针、常见 STL 容器、并发和错误处理,能够编写可维护的模块。 2、熟悉 Linux 开发环境,能够使用 GDB、日志、sanitizer 或 profiling 工具进行基本的问题定位。 3、有机器人、嵌入式、实时数据处理、设备软件或后端系统开发经验中的至少一项;不要求经历完全相同的业务领域。 4、愿意学习并使用 ROS 2、CMake 和 colcon,能够理解节点、消息、QoS 和构建依赖;已有 ROS 1/ROS 2 经验更佳。 5、能阅读和维护 Python,理解现有代码行为,并能与 C++ 模块协同工作;有 pybind11 或其他语言绑定经验更佳。 6、具备基本的测试和交付意识,能够通过固定输入、日志和指标验证修改没有破坏原有行为。 7、能够阅读英文技术文档,与跨团队同事清晰沟通问题、方案和验证结果。
加分项: 1、有人形机器人、移动机器人、机械臂、运动控制、感知、仿真、设备驱动或机器人应用经验。 2、熟悉 ROS 2 的 rclcpp、DDS/RMW、QoS、消息生成和跨主机通信。 有 CMake 工程、交叉编译、AArch64、Docker、CI、systemd 或软件发布经验。 3、有 NVIDIA Jetson、CUDA、TensorRT、ONNX Runtime、GStreamer 或其他边缘 GPU 开发经验。 4、使用过 Eigen、Pinocchio、MuJoCo,或接触过运动学、动力学和仿真到真机验证。 5、了解 protobuf、pybind11、动态库 ABI、网络协议或多仓库接口管理。 6、能够说明一次具体的性能优化、并发问题、设备故障或跨平台部署问题是如何定位和解决的。
Description copied from EngineAI Robotics's careers page. Read the full posting before you apply.
More jobs at EngineAI Robotics
数据工程师(身智能数据标注方向)
EngineAI Robotics· Shenzhen机器人群控定位算法工程师
EngineAI Robotics· Shenzhen软件集成负责人
EngineAI Robotics· Shenzhen具身感控一体大模型算法工程师
EngineAI Robotics· Shenzhen行政经理
EngineAI Robotics· Shenzhen