Principle:Haosulab ManiSkill Ego Centric Control
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Mobile_Robotics, Control_Theory |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Mobile robot base controllers accept velocity commands in the robot's local (ego-centric) frame and transform them to world-frame joint targets using the robot's current orientation, decoupling the policy's action space from the robot's global heading.
Description
The Ego Centric Control principle addresses navigation for mobile robots in simulation. A policy controlling a mobile base naturally reasons in the robot's local frame: "move forward", "strafe left", "rotate right". However, the physics engine operates in a global world frame where joint drive targets must account for the robot's current orientation. Ego-centric controllers bridge this gap by applying a 2D rotation matrix based on the robot's current heading to convert local velocity commands to world-frame velocities.
ManiSkill provides two variants: PDBaseVelController for omnidirectional (holonomic) bases supporting xy-plane translation plus z-axis rotation (3D action), and PDBaseForwardVelController for differential-drive robots supporting forward velocity plus rotation only (2D action). Both extend the PD velocity controller with the ego-centric transformation.
Usage
This principle applies whenever:
- A mobile robot (wheeled base, legged platform) must be controlled via local-frame velocity commands.
- The policy should not need to track the robot's absolute orientation to issue movement commands.
- Omnidirectional or differential-drive semantics must be enforced at the controller level.
Theoretical Basis
2D Rotation Transform: Given ego-centric velocities (vx_ego, vy_ego) and robot heading angle θ, world-frame velocities are:
vx_world = vx_ego * cos(θ) - vy_ego * sin(θ)
vy_world = vx_ego * sin(θ) + vy_ego * cos(θ)
Holonomic vs Non-Holonomic: The omnidirectional controller allows independent lateral movement. The forward-only controller constrains the robot to move along its heading direction, simulating differential-drive kinematics.
Velocity Drive: The transformed velocities are set as velocity drive targets on the base joints (typically prismatic x/y joints and a revolute z joint on the robot's root link).
Related Pages
- Implementation:Haosulab_ManiSkill_PDBaseVelController -- Ego-centric base velocity controllers (omnidirectional and forward-only).