Plan: I-MPPI (Informative MPPI) Development
This plan outlines the steps for developing the i_mppi controller variant in the cuda-mppi library, based on the “Hierarchical Informative MPPI” framework.
Goal
Implement IMPPIController, a controller that integrates:
- Biased Sampling: A mixture distribution of samples centered around the previous solution and a global reference trajectory.
- Information Cost: A cost term based on Fast Shannon Mutual Information (FSMI) to reward exploration.
Steps
1. Research and Definition
-
- Biased Sampling: Implemented by shifting the mean of the noise buffer for a subset of samples. \(u = u_{nom} + \epsilon\), where \(\epsilon\) is shifted such that effectively \(u \sim \mathcal{N}(u_{ref}, \Sigma)\).
- FSMI Cost: A custom
Costfunctor that performs raycasting on a GPU-resident map (Occupancy Grid for MVP).
2. Infrastructure Setup
3. Implementation
-
- Implement
raycastandcompute_info_gaindevice functions.
- Implement
-
- Manage
u_ref(reference trajectory). - Implement
shift_noise_meanskernel/function to apply bias.
- Manage
4. Testing & Verification
-
- Setup a mock map (e.g., a wall with a hole or a simple room).
- Verify that the controller is attracted to unknown areas.
5. Integration
Progress Tracking
- 2026-02-05: Updated plan with specific I-MPPI details.
- 2026-02-05: Implemented IMPPIController, FSMICost, OccupancyGrid and verified with i_mppi_test.
- 2026-02-05: Conducted extensive testing campaign, generated comparison plots and updated documentation.