Class MPPIController

Inheritance Relationships

Base Type

  • public ControllerMethodBase

Class Documentation

class MPPIController : public ControllerMethodBase

A MPPI Controller.

Public Functions

MPPIController()
~MPPIController() override

Destructor.

void on_initialize() override

Initializes parameters and MPPI controller.

Throws:

std::runtime_error – if initialization fails.

void update_rt(NavState &nav_state) override

Updates the controller using the given NavState.

Parameters:

nav_state – Current navigation state, including odometry and planned path.

Protected Functions

void publish_mppi_markers(const std::vector<std::vector<std::pair<double, double>>> &all_trajs, const std::vector<std::pair<double, double>> &best_traj)

Publishes MPPI markers for visualization.

Parameters:
  • all_trajs – All trajectories generated by MPPI.

  • best_traj – Optimal trajectory generated by MPPI.

Protected Attributes

int num_samples_ = {100}

Number of samples for MPPI.

int horizon_steps_ = {10}

Prediction horizon for MPPI.

double dt_ = {0.1}

Time step for MPPI.

double lambda_ = {0.1}

Temperature parameter for MPPI.

double max_lin_vel_ = {1.0}

Maximum linear velocity for MPPI.

double max_ang_vel_ = {1.0}

Maximum angular velocity for MPPI.

double max_lin_acc_ = {0.5}

Maximum linear acceleration for MPPI.

double max_ang_acc_ = {1.0}

Maximum angular acceleration for MPPI.

double fov_ = {M_PI / 2.0}

Field of view for MPPI.

double safety_radius_ = {0.6}

Safety radius for obstacle avoidance.

geometry_msgs::msg::TwistStamped twist_stamped_

Current velocity command.

std::unique_ptr<MPPIOptimizer> optimizer_

MPPI optimizer.

rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr mppi_candidates_pub_

Publisher for MPPI candidates markers.

rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr mppi_optimal_pub_

Publisher for MPPI optimal path markers.