From c152fcce6711e7ec666a411618259edabbe32016 Mon Sep 17 00:00:00 2001 From: Alessio Parmeggiani Date: Tue, 21 Apr 2026 14:29:13 +0200 Subject: [PATCH 1/3] updates to mppi configuration and migration Signed-off-by: Alessio Parmeggiani --- configuration/packages/configuring-mppic.rst | 46 ++++++++++++-------- migration/Kilted.rst | 22 ++++++++++ 2 files changed, 50 insertions(+), 18 deletions(-) diff --git a/configuration/packages/configuring-mppic.rst b/configuration/packages/configuring-mppic.rst index 341f3d728..4bbb98640 100644 --- a/configuration/packages/configuring-mppic.rst +++ b/configuration/packages/configuring-mppic.rst @@ -35,11 +35,34 @@ MPPI Parameters ============== =========================== Type Default -------------- --------------------------- - string "DiffDrive" + string "diff_drive" ============== =========================== Description - The desired motion model to use for trajectory planning. Options are ``DiffDrive``, ``Omni``, or ``Ackermann``. Differential drive robots may use forward/reverse and angular velocities; Omni add in lateral motion; and Ackermann adds minimum curvature constraints. + The desired motion model plugin to use for trajectory planning. The plugin type is required to be specified in the corresponding namespace. + +:````.plugin: + + ============== =========================== + Type Default + -------------- --------------------------- + string N/A + ============== =========================== + + Description + The plugin to use for the motion model constraints of the MPPI planner. + Supported motion model plugins include "mppi::DiffDriveMotionModel", "mppi::OmniMotionModel", and "mppi::AckermannMotionModel" for differential drive, omnidirectional, and Ackermann robots respectively. + +:````.min_turning_r: + + ============== =========================== + Type Default + -------------- --------------------------- + double 0.2 + ============== =========================== + + Description + The minimum turning radius possible for the vehicle platform (m). This is only used if ````.plugin is set to "mppi::AckermannMotionModel". :critics: @@ -374,19 +397,6 @@ Trajectory Visualization Description Whether to allow QoS profiles to be overwritten with parameterized values. -Ackermann Motion Model ----------------------- - -:min_turning_r: - - ============== =========================== - Type Default - -------------- --------------------------- - double 0.2 - ============== =========================== - - Description - The minimum turning radius possible for the vehicle platform (m). Default Optimal Trajectory Validator ------------------------------------ @@ -1085,7 +1095,9 @@ Example iteration_count: 1 temperature: 0.3 gamma: 0.015 - motion_model: "DiffDrive" + motion_model: "diff_drive" + diff_drive: + plugin: "mppi::DiffDriveMotionModel" visualize: false critic_index_to_visualize: 0 reset_period: 1.0 # (only in Humble) @@ -1097,8 +1109,6 @@ Example plugin: "mppi::DefaultOptimalTrajectoryValidator" collision_lookahead_time: 2.0 consider_footprint: false - AckermannConstraints: - min_turning_r: 0.2 critics: ["ConstraintCritic", "CostCritic", "GoalCritic", "GoalAngleCritic", "PathAlignCritic", "PathFollowCritic", "PathAngleCritic", "PreferForwardCritic"] ConstraintCritic: enabled: true diff --git a/migration/Kilted.rst b/migration/Kilted.rst index 165c727e4..9ba055e8b 100644 --- a/migration/Kilted.rst +++ b/migration/Kilted.rst @@ -945,3 +945,25 @@ Global planner plugin natively accepts viapoints `PR #5995 `_ updates the ``createPath`` API for the ``BaseGlobalPlanner`` to include a vector ``std::vector`` argument that takes in a list of intermediate points and passes them to the planner plugin implementation. The function signature for ``createPath`` must be updated accordingly for all custom planner plugins inheriting from the ``BaseGlobalPlanner``. This change does not alter the behavior of ``ComputePathThroughPoses`` that connects consecutive segments end-to-end but does upgrade the ``ComputePathToPose`` action. + +MPPI motion uses support plugin-based configuration +---------------------------------------------------- + +`PR #6076 `_ adds support for plugin-based configuration of motion models in MPPI. + +Motion model now has to be set up by specifying plugin to use: + +.. code-block:: yaml + + MPPIController: + plugin: "nav2_mppi_controller::MPPIController" + motion_model: "diff_drive" + diff_drive: + plugin: "mppi::DiffDriveMotionModel" + +Supported motion model plugins are: + - ``mppi::DiffDriveMotionModel`` : replaces ``motion_model: DiffDrive`` + - ``mppi::OmniMotionModel`` : replaces ``motion_model: Omni`` + - ``mppi::AckermannMotionModel`` : replaces ``motion_model: Ackermann`` + +While "diff_drive" is the default value for ``motion_model`` parameter, it is still required to specify the plugin for it, as shown above. \ No newline at end of file From 005e8a1a9ff7cb68b3e423f68fd6b0e38f26e516 Mon Sep 17 00:00:00 2001 From: Alessio Parmeggiani Date: Tue, 21 Apr 2026 21:04:31 +0200 Subject: [PATCH 2/3] restored AckermannMotionModel parameter section Signed-off-by: Alessio Parmeggiani --- configuration/packages/configuring-mppic.rst | 24 +++++++++++--------- migration/Kilted.rst | 6 ++--- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/configuration/packages/configuring-mppic.rst b/configuration/packages/configuring-mppic.rst index 4bbb98640..fd21e9a3e 100644 --- a/configuration/packages/configuring-mppic.rst +++ b/configuration/packages/configuring-mppic.rst @@ -53,17 +53,6 @@ MPPI Parameters The plugin to use for the motion model constraints of the MPPI planner. Supported motion model plugins include "mppi::DiffDriveMotionModel", "mppi::OmniMotionModel", and "mppi::AckermannMotionModel" for differential drive, omnidirectional, and Ackermann robots respectively. -:````.min_turning_r: - - ============== =========================== - Type Default - -------------- --------------------------- - double 0.2 - ============== =========================== - - Description - The minimum turning radius possible for the vehicle platform (m). This is only used if ````.plugin is set to "mppi::AckermannMotionModel". - :critics: ============== =========================== @@ -397,6 +386,19 @@ Trajectory Visualization Description Whether to allow QoS profiles to be overwritten with parameterized values. +AckermannMotionModel +-------------------- + +:````.min_turning_r: + + ============== =========================== + Type Default + -------------- --------------------------- + double 0.2 + ============== =========================== + + Description + The minimum turning radius possible for the vehicle platform (m). This is only used if ````.plugin is set to "mppi::AckermannMotionModel". Default Optimal Trajectory Validator ------------------------------------ diff --git a/migration/Kilted.rst b/migration/Kilted.rst index 9ba055e8b..0ecd7e6fa 100644 --- a/migration/Kilted.rst +++ b/migration/Kilted.rst @@ -946,8 +946,8 @@ Global planner plugin natively accepts viapoints The function signature for ``createPath`` must be updated accordingly for all custom planner plugins inheriting from the ``BaseGlobalPlanner``. This change does not alter the behavior of ``ComputePathThroughPoses`` that connects consecutive segments end-to-end but does upgrade the ``ComputePathToPose`` action. -MPPI motion uses support plugin-based configuration ----------------------------------------------------- +MPPI motion models use plugin-based configuration +-------------------------------------------------- `PR #6076 `_ adds support for plugin-based configuration of motion models in MPPI. @@ -966,4 +966,4 @@ Supported motion model plugins are: - ``mppi::OmniMotionModel`` : replaces ``motion_model: Omni`` - ``mppi::AckermannMotionModel`` : replaces ``motion_model: Ackermann`` -While "diff_drive" is the default value for ``motion_model`` parameter, it is still required to specify the plugin for it, as shown above. \ No newline at end of file +While "diff_drive" is the default value for ``motion_model`` parameter, it is still required to specify the plugin for it, as shown above. From 6773dbe42d6657b8650d3ea7c12a4aca78cb6945 Mon Sep 17 00:00:00 2001 From: Alessio Parmeggiani Date: Tue, 21 Apr 2026 21:25:02 +0200 Subject: [PATCH 3/3] remove extra spaces Signed-off-by: Alessio Parmeggiani --- configuration/packages/configuring-mppic.rst | 4 ++-- migration/Kilted.rst | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configuration/packages/configuring-mppic.rst b/configuration/packages/configuring-mppic.rst index fd21e9a3e..e4a0e69cc 100644 --- a/configuration/packages/configuring-mppic.rst +++ b/configuration/packages/configuring-mppic.rst @@ -39,7 +39,7 @@ MPPI Parameters ============== =========================== Description - The desired motion model plugin to use for trajectory planning. The plugin type is required to be specified in the corresponding namespace. + The desired motion model plugin to use for trajectory planning. The plugin type is required to be specified in the corresponding namespace. :````.plugin: @@ -50,7 +50,7 @@ MPPI Parameters ============== =========================== Description - The plugin to use for the motion model constraints of the MPPI planner. + The plugin to use for the motion model constraints of the MPPI planner. Supported motion model plugins include "mppi::DiffDriveMotionModel", "mppi::OmniMotionModel", and "mppi::AckermannMotionModel" for differential drive, omnidirectional, and Ackermann robots respectively. :critics: diff --git a/migration/Kilted.rst b/migration/Kilted.rst index 0ecd7e6fa..360be2192 100644 --- a/migration/Kilted.rst +++ b/migration/Kilted.rst @@ -949,7 +949,7 @@ The function signature for ``createPath`` must be updated accordingly for all cu MPPI motion models use plugin-based configuration -------------------------------------------------- -`PR #6076 `_ adds support for plugin-based configuration of motion models in MPPI. +`PR #6076 `_ adds support for plugin-based configuration of motion models in MPPI. Motion model now has to be set up by specifying plugin to use: