Difficulty: 🟡 Medium
Category: Kinematics
Tags:
Execution Type: basic_python
GPS doesn't work indoors. Encoders are the first line of defense for localization. Fusing this with IMU (Kalman Filter) is standard practice.
Calculate where the robot is (Odometry) based on how much its wheels have turned (Dead Reckoning).
- Node
odometry_calculator - Subscribe:
/wheel_ticks(Left/Right integers) - Parameters:
radius(m),base_width(m),ticks_per_rev - Publish:
/odom(nav_msgs/Odometry)
Input:
- Wheel Encoder Ticks
Output:
- Odometry message with Position (x,y) and Orientation (yaw/quaternion).
- Integer overflow (ticks wrap around).
- Not handling the very first tick message (delta requires previous state).
- IntegratesForward: x increases for forward ticks
- HandlesWrap: no large jump on wrap
Found an issue with this problem's description, or have a better hint?
Open a PR or report it in Discussions.
Note: TestScripts and reference solutions are maintained by the SimuCode team
and are not part of this open spec. This ensures grading integrity on simucode.online.