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.