Member-only story
Making Your State Estimator ROS 2 Compliant (REP-105)
I have been having so much fun building and testing my custom state estimator. Although I am designing it to be framework-agnostic, I am building a dedicated ROS 2 layer. ROS 2 is the obvious choice for prototyping the System 1 / System 2 (Physical AI, Embodied AI, or whatever trendy term you prefer) architecture.
Clearly, the state estimator acts as a core component of a robot’s navigation stack. I am not entirely convinced that Nav2 — the standard navigation stack for ROS 2 — is the definitive choice for System 1 / System 2 research, given that it is built around the classical “sense-think-act” robotics loop. Nevertheless, I need to validate my estimator against it to determine whether Nav2 is a keeper or something we will need to replace moving forward.
To make any state estimation algorithm compatible with Nav2 and the broader ROS 2 ecosystem, it must comply with REP-105.
REP stands for ROS Enhancement Proposal. These are design and standard documents used to establish coding conventions, propose new features, or define technical specifications for the ROS community. REP-105 specifically defines the naming conventions and semantic meanings for the coordinate frames of mobile platforms. While it explicitly mentions mobile robots, almost every other robotic embodiment uses REP-105 with very minor modifications.






