diff --git a/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp b/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp
index ec80f5045fecf6549a0f440f1537fbbee9219c49..b25fab39e4c4e0eb50ef7e19e851c85838d8e90e 100644
--- a/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp
+++ b/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp
@@ -182,7 +182,6 @@ protected:
    * @param name The namespace of this planner.
    */
   virtual void loadCritics();
-  void loadBackwardsCompatibleParameters();
 
   rclcpp_lifecycle::LifecycleNode::WeakPtr node_;
   rclcpp::Clock::SharedPtr clock_;
diff --git a/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp b/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp
index 4b68eafd49c5b7d6fa0f4043954d17cf72e59e64..c214922ed62d030b32260a06dfd39b0908441dd2 100644
--- a/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp
+++ b/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp
@@ -180,7 +180,7 @@ DWBLocalPlanner::loadCritics()
 
   std::vector<std::string> critic_names;
   if (!node->get_parameter(dwb_plugin_name_ + ".critics", critic_names)) {
-    loadBackwardsCompatibleParameters();
+    throw std::runtime_error("No critics defined for " + dwb_plugin_name_);
   }
 
   node->get_parameter(dwb_plugin_name_ + ".critics", critic_names);
@@ -210,64 +210,6 @@ DWBLocalPlanner::loadCritics()
   }
 }
 
-void
-DWBLocalPlanner::loadBackwardsCompatibleParameters()
-{
-  std::vector<std::string> critic_names;
-  RCLCPP_INFO(
-    logger_,
-    "DWBLocalPlanner", "No critics configured! Using the default set.");
-  critic_names.emplace_back("RotateToGoal");      // discards trajectories that move forward when
-                                                  //   already at goal
-  critic_names.emplace_back("Oscillation");       // discards oscillating motions (assisgns cost -1)
-  critic_names.emplace_back("ObstacleFootprint");  // discards trajectories that move into obstacles
-  critic_names.emplace_back("GoalAlign");          // prefers trajectories that make the
-                                                   //   nose go towards (local) nose goal
-  critic_names.emplace_back("PathAlign");          // prefers trajectories that keep the
-                                                   //   robot nose on nose path
-  critic_names.emplace_back("PathDist");           // prefers trajectories on global path
-  critic_names.emplace_back("GoalDist");           // prefers trajectories that go towards
-                                                   //   (local) goal, based on wave propagation
-
-  auto node = node_.lock();
-  if (!node) {
-    throw std::runtime_error{"Failed to lock node"};
-  }
-
-  node->set_parameters({rclcpp::Parameter(dwb_plugin_name_ + ".critics", critic_names)});
-
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".path_distance_bias");
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".goal_distance_bias");
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".occdist_scale");
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".max_scaling_factor");
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".scaling_speed");
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".PathAlign.scale");
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".GoalAlign.scale");
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".PathDist.scale");
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".GoalDist.scale");
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".ObstacleFootprint.scale");
-  declare_parameter_if_not_declared(
-    node, dwb_plugin_name_ + ".ObstacleFootprint.max_scaling_factor");
-  declare_parameter_if_not_declared(node, dwb_plugin_name_ + ".ObstacleFootprint.scaling_speed");
-
-  /* *INDENT-OFF* */
-  nav_2d_utils::moveParameter(node, dwb_plugin_name_ + ".path_distance_bias",
-    dwb_plugin_name_ + ".PathAlign.scale", 32.0, false);
-  nav_2d_utils::moveParameter(node, dwb_plugin_name_ + ".goal_distance_bias",
-    dwb_plugin_name_ + ".GoalAlign.scale", 24.0, false);
-  nav_2d_utils::moveParameter(node, dwb_plugin_name_ + ".path_distance_bias",
-    dwb_plugin_name_ + ".PathDist.scale", 32.0);
-  nav_2d_utils::moveParameter(node, dwb_plugin_name_ + ".goal_distance_bias",
-    dwb_plugin_name_ + ".GoalDist.scale", 24.0);
-  nav_2d_utils::moveParameter(node, dwb_plugin_name_ + ".occdist_scale",
-    dwb_plugin_name_ + ".ObstacleFootprint.scale", 0.01);
-  nav_2d_utils::moveParameter(node, dwb_plugin_name_ + ".max_scaling_factor",
-    dwb_plugin_name_ + ".ObstacleFootprint.max_scaling_factor", 0.2);
-  nav_2d_utils::moveParameter(node, dwb_plugin_name_ + ".scaling_speed",
-    dwb_plugin_name_ + ".ObstacleFootprint.scaling_speed", 0.25);
-  /* *INDENT-ON* */
-}
-
 void
 DWBLocalPlanner::setPlan(const nav_msgs::msg::Path & path)
 {
diff --git a/nav2_dwb_controller/dwb_plugins/src/kinematic_parameters.cpp b/nav2_dwb_controller/dwb_plugins/src/kinematic_parameters.cpp
index 27af24f24e5236a153f7ddfe208f6ab0cde47859..88e4cf1db4f98bedf412626814cea7ca8ccb9873 100644
--- a/nav2_dwb_controller/dwb_plugins/src/kinematic_parameters.cpp
+++ b/nav2_dwb_controller/dwb_plugins/src/kinematic_parameters.cpp
@@ -41,7 +41,6 @@
 #include "nav2_util/node_utils.hpp"
 
 using nav2_util::declare_parameter_if_not_declared;
-using nav_2d_utils::moveDeprecatedParameter;
 using rcl_interfaces::msg::ParameterType;
 using std::placeholders::_1;
 
@@ -63,11 +62,6 @@ void KinematicsHandler::initialize(
   const std::string & plugin_name)
 {
   plugin_name_ = plugin_name;
-  // Special handling for renamed parameters
-  moveDeprecatedParameter<double>(nh, plugin_name + ".max_vel_theta", "max_rot_vel");
-  moveDeprecatedParameter<double>(nh, plugin_name + ".min_speed_xy", "min_trans_vel");
-  moveDeprecatedParameter<double>(nh, plugin_name + ".max_speed_xy", "max_trans_vel");
-  moveDeprecatedParameter<double>(nh, plugin_name + ".min_speed_theta", "min_rot_vel");
 
   declare_parameter_if_not_declared(nh, plugin_name + ".min_vel_x", rclcpp::ParameterValue(0.0));
   declare_parameter_if_not_declared(nh, plugin_name + ".min_vel_y", rclcpp::ParameterValue(0.0));
diff --git a/nav2_dwb_controller/dwb_plugins/src/standard_traj_generator.cpp b/nav2_dwb_controller/dwb_plugins/src/standard_traj_generator.cpp
index 3b7e1685797c41aee6ec4f677d957b06e03e7c74..49a62de302e78239ddf0ceb325687d2a8df14932 100644
--- a/nav2_dwb_controller/dwb_plugins/src/standard_traj_generator.cpp
+++ b/nav2_dwb_controller/dwb_plugins/src/standard_traj_generator.cpp
@@ -43,8 +43,6 @@
 #include "dwb_core/exceptions.hpp"
 #include "nav2_util/node_utils.hpp"
 
-using nav_2d_utils::loadParameterWithDeprecation;
-
 namespace dwb_plugins
 {
 
diff --git a/nav2_dwb_controller/nav_2d_utils/include/nav_2d_utils/parameters.hpp b/nav2_dwb_controller/nav_2d_utils/include/nav_2d_utils/parameters.hpp
index 15dd3b9e4dc899f23333d10568c350c3a97e0d73..5951bd09efaa7351badfa6b8d496763fa4128079 100644
--- a/nav2_dwb_controller/nav_2d_utils/include/nav_2d_utils/parameters.hpp
+++ b/nav2_dwb_controller/nav_2d_utils/include/nav_2d_utils/parameters.hpp
@@ -80,95 +80,6 @@ param_t searchAndGetParam(
   return value;
 }
 
-/**
- * @brief Load a parameter from one of two namespaces. Complain if it uses the old name.
- * @param nh NodeHandle to look for the parameter in
- * @param current_name Parameter name that is current, i.e. not deprecated
- * @param old_name Deprecated parameter name
- * @param default_value If neither parameter is present, return this value
- * @return The value of the parameter or the default value
- */
-template<class param_t>
-param_t loadParameterWithDeprecation(
-  const nav2_util::LifecycleNode::SharedPtr & nh, const std::string current_name,
-  const std::string old_name, const param_t & default_value)
-{
-  nav2_util::declare_parameter_if_not_declared(
-    nh, current_name, rclcpp::ParameterValue(default_value));
-  nav2_util::declare_parameter_if_not_declared(
-    nh, old_name, rclcpp::ParameterValue(default_value));
-
-  param_t current_name_value;
-  nh->get_parameter(current_name, current_name_value);
-  param_t old_name_value;
-  nh->get_parameter(old_name, old_name_value);
-
-  if (old_name_value != current_name_value && old_name_value != default_value) {
-    RCLCPP_WARN(
-      nh->get_logger(),
-      "Parameter %s is deprecated. Please use the name %s instead.",
-      old_name.c_str(), current_name.c_str());
-    // set both parameters to the same value
-    nh->set_parameters({rclcpp::Parameter(current_name, old_name_value)});
-    current_name_value = old_name_value;
-  }
-  return current_name_value;
-}
-
-/**
- * @brief If a deprecated parameter exists, complain and move to its new location
- * @param nh NodeHandle to look for the parameter in
- * @param current_name Parameter name that is current, i.e. not deprecated
- * @param old_name Deprecated parameter name
- */
-template<class param_t>
-void moveDeprecatedParameter(
-  const nav2_util::LifecycleNode::SharedPtr & nh, const std::string current_name,
-  const std::string old_name)
-{
-  param_t value;
-  if (!nh->get_parameter(old_name, value)) {return;}
-
-  RCLCPP_WARN(
-    nh->get_logger(),
-    "Parameter %s is deprecated. Please use the name %s instead.",
-    old_name.c_str(), current_name.c_str());
-  nh->get_parameter(old_name, value);
-  nh->set_parameters({rclcpp::Parameter(current_name, value)});
-}
-
-/**
- * @brief Move a parameter from one place to another
- *
- * For use loading old parameter structures into new places.
- *
- * If the new name already has a value, don't move the old value there.
- *
- * @param nh NodeHandle for loading/saving params
- * @param old_name Parameter name to move/remove
- * @param current_name Destination parameter name
- * @param default_value Value to save in the new name if old parameter is not found.
- * @param should_delete If true, whether to delete the parameter from the old name
- */
-template<class param_t>
-void moveParameter(
-  const nav2_util::LifecycleNode::SharedPtr & nh, std::string old_name,
-  std::string current_name, param_t default_value, bool should_delete = true)
-{
-  param_t value = 0;
-  if (nh->get_parameter(current_name, value)) {
-    if (should_delete) {nh->undeclare_parameter(old_name);}
-    return;
-  }
-  if (nh->get_parameter(old_name, value)) {
-    if (should_delete) {nh->undeclare_parameter(old_name);}
-  } else {
-    value = default_value;
-  }
-  nh->set_parameter(rclcpp::Parameter(current_name, value));
-}
-
-
 }  // namespace nav_2d_utils
 #pragma GCC diagnostic pop