Local locomotion ================= Move to a measured planar pose using local odometry feedback. Finite locomotion does not plan a path or avoid obstacles, so use it only where the swept path is known to be clear. ``move`` accepts X and Y displacement in metres and signed yaw in radians, all relative to the base frame captured when the command starts. Yaw is unwrapped: pass the total rotation you want, not an angle limited to one turn. For example, 3π radians rotates the base about 1.5 full turns before the command succeeds. Commands stop when odometry reaches the target and report progress through ``on_feedback`` / ``onFeedback``. .. note:: - The endpoint is controlled without guaranteeing a particular path or that translation and rotation finish simultaneously. - Every requested axis is commanded regardless of motion model; unsupported axes stall when odometry stops making progress on them. For direct teleoperation, or applying your own control logic rather than measured motion based on odometry feedback, see :doc:`locomotion-teleop`. .. tab-set:: :sync-group: sdk-language .. tab-item:: Python :sync: python .. literalinclude:: scripts/locomotion-motion.py :language: python .. tab-item:: TypeScript :sync: typescript .. literalinclude:: scripts/locomotion-motion.ts :language: typescript The conventional topics are ``/{namespace}/odom`` and ``/{namespace}/cmd_vel``. Pass ``odom_topic`` / ``odomTopic`` or ``cmd_vel_topic`` / ``cmdVelTopic`` for a nonstandard robot. Cancellation and all terminal outcomes publish zero velocity.