Skip to content

Pose·

dead-reckoning {x, y, yaw} in the RoomPlan frame — IMU heading + commanded velocities, so Scout knows roughly where it istools/rover_pose.py, 1 tool.

From the module docstring

🧭 rover_pose — dead-reckoning localization in RoomPlan coordinates.

tool does
rover_pose 🧭 Scout's estimated position in the room (dead-reckoning localization).

rover_pose·

rover_pose(
    action: str = 'get',
    x: float = 0.0,
    y: float = 0.0,
    yaw_deg: float = 0.0,
    linear: float = 0.0,
    angular: float = 0.0,
    duration: float = 1.0,
    measured: float = None,
) -> Dict[str, Any]

🧭 Scout's estimated position in the room (dead-reckoning localization).

Scout maintains a best-guess {x, y, yaw} in the RoomPlan map's coordinate frame, updated automatically as it drives. GPS is useless indoors — THIS is how Scout knows where it is. It's a PRIOR estimate that drifts; re-seed whenever you get a confident visual fix.

argument meaning
action "get" | "seed" | "reset".
x room X coordinate in meters (for seed).
y room Y coordinate in meters (for seed).
yaw_deg heading in degrees, 0=+x, CCW positive (for seed).

Actions

get   → current estimated pose + nearest mapped objects.
seed  → set/reset pose to a KNOWN location (x, y in meters, yaw_deg
        heading where 0°=+x axis, 90°=+y, CCW positive). Do this when
        you physically place Scout at a recognizable spot, or when a
        camera view lets you confidently match the map.
reset → forget the pose (mark un-seeded).
calibrate → tune motion constants from a measured drive. Pass the
        linear/angular command + duration you used, and measured =
        actual meters driven (linear) or degrees turned (angular).
        Back-solves         reset → forget the pose (mark un-seeded). saves LIN/ANG_SPEED_MAX so dead-reckoning is accurate.

Returns

Dict with status, summary text, and pose JSON.

source: tools/rover_pose.py:280