EasyNav Plugins
Loading...
Searching...
No Matches
MPPIController Class Reference

A MPPI Controller. More...

#include <MPPIController.hpp>

Inheritance diagram for MPPIController:
Collaboration diagram for MPPIController:

Public Member Functions

 MPPIController ()
void on_initialize () override
 Initializes parameters and MPPI controller.
void update_rt (NavState &nav_state) override
 Updates the controller using the given NavState.
 ~MPPIController () override
 Destructor.

Protected Member 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.

Protected Attributes

double dt_ {0.1}
 Time step for MPPI.
double fov_ {M_PI / 2.0}
 Field of view for MPPI.
int horizon_steps_ {10}
 Prediction horizon for MPPI.
double lambda_ {0.1}
 Temperature parameter for MPPI.
double max_ang_acc_ {1.0}
 Maximum angular acceleration 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_lin_vel_ {1.0}
 Maximum linear velocity for MPPI.
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.
int num_samples_ {100}
 Number of samples for MPPI.
std::unique_ptr< MPPIOptimizeroptimizer_
 MPPI optimizer.
double safety_radius_ {0.6}
 Safety radius for obstacle avoidance.
geometry_msgs::msg::TwistStamped twist_stamped_
 Current velocity command.

Detailed Description

A MPPI Controller.

Constructor & Destructor Documentation

◆ MPPIController()

MPPIController ( )

◆ ~MPPIController()

~MPPIController ( )
overridedefault

Destructor.

Member Function Documentation

◆ on_initialize()

void on_initialize ( )
override

Initializes parameters and MPPI controller.

Exceptions
std::runtime_errorif initialization fails.

◆ publish_mppi_markers()

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

Publishes MPPI markers for visualization.

Parameters
all_trajsAll trajectories generated by MPPI.
best_trajOptimal trajectory generated by MPPI.

◆ update_rt()

void update_rt ( NavState & nav_state)
override

Updates the controller using the given NavState.

Parameters
nav_stateCurrent navigation state, including odometry and planned path.

Member Data Documentation

◆ dt_

double dt_ {0.1}
protected

Time step for MPPI.

◆ fov_

double fov_ {M_PI / 2.0}
protected

Field of view for MPPI.

◆ horizon_steps_

int horizon_steps_ {10}
protected

Prediction horizon for MPPI.

◆ lambda_

double lambda_ {0.1}
protected

Temperature parameter for MPPI.

◆ max_ang_acc_

double max_ang_acc_ {1.0}
protected

Maximum angular acceleration for MPPI.

◆ max_ang_vel_

double max_ang_vel_ {1.0}
protected

Maximum angular velocity for MPPI.

◆ max_lin_acc_

double max_lin_acc_ {0.5}
protected

Maximum linear acceleration for MPPI.

◆ max_lin_vel_

double max_lin_vel_ {1.0}
protected

Maximum linear velocity for MPPI.

◆ mppi_candidates_pub_

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

Publisher for MPPI candidates markers.

◆ mppi_optimal_pub_

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

Publisher for MPPI optimal path markers.

◆ num_samples_

int num_samples_ {100}
protected

Number of samples for MPPI.

◆ optimizer_

std::unique_ptr<MPPIOptimizer> optimizer_
protected

MPPI optimizer.

◆ safety_radius_

double safety_radius_ {0.6}
protected

Safety radius for obstacle avoidance.

◆ twist_stamped_

geometry_msgs::msg::TwistStamped twist_stamped_
protected

Current velocity command.


The documentation for this class was generated from the following files: