We are not looking for someone to maintain old code. We are looking for an Architect to lead this migration. You will deal with the pain of bridging ros1_bridge, porting custom messages, and rewriting node lifecycles from scratch. If you are afraid of breaking changes and complex dependency hell, stop reading now.
Responsibilities
- The Migration: Port our core navigation and control logic from ROS 1 to ROS 2 This involves rewriting nodes to utilise Lifecycle Management and Node Composition for zero-copy transfer.
- Nav2 Architecture: We don't just install Nav2 You will write custom Behaviour Tree plugins and Costmap layers to handle dynamic obstacles in unstructured environments.
- Middleware Optimisation: You will own the DDS layer (FastDDS/CycloneDDS). You must tune QoS profiles for lossy WiFi environments and debug discovery traffic issues that traditional network engineers don't understand.
- Sensor Fusion and State Estimation: Implement and tune EKF/UKF pipelines (robot_localization) to fuse IMU, Wheel Odometry, and LiDAR. You must understand Covariance Matrices. If your covariance grows unbounded, you have failed.
- Serialisation Strategy: Implement Protocol Buffers (Protobuf) for high-efficiency, non-ROS internal data logging and inter-process communication where overhead must be zero.
Requirements
The Stack (ROS 1 and ROS 2):
- Deep ROS 2 Mastery: You know the difference between spin(), spin_some(), and Multi-Threaded Executors. You understand why we are moving to ROS 2 (Real-time constraints, DDS security, QoS).
- Navigation Stack: In-depth knowledge of Nav2 (Planners, Controllers, Recoveries). You understand Global vs. Local planners (A*, DWB, TEB).
- SLAM and Localisation: Experience with Graph-based SLAM (Cartographer, SLAM Toolbox). You know how to close loops and optimise pose graphs.
- Control Theory: Implementing real-time safe controllers that handle non-linear dynamics and hardware constraints.
The Math (The Weeder):
- Linear Algebra and Geometry: Rigid body transformations are your second language. You understand Quaternions, homogeneous transformation matrices ($T in SE(3)$), and how to avoid Gimbal Lock.
- Kinematics: You can derive forward and Inverse Kinematics for the Differential Drive and Ackermann steering chassis.
- Probabilistic Robotics: Understanding of Bayesian estimation. You know that sensors are noisy and that Ground Truth is a myth.
The Code
- C++ (14/17): Real-time safe coding standards. RAII, Smart Pointers, and template metaprogramming.
- Python: For prototyping and complex orchestration.
This job was posted by Ishan Bhatnagar from Octobotics Tech.