Go to the documentation of this file.
34 #include <mpc_local_planner_msgs/StateFeedback.h>
56 using Ptr = std::shared_ptr<Controller>;
62 const std::vector<teb_local_planner::PoseSE2>&
via_points);
66 bool step(
const std::vector<geometry_msgs::PoseStamped>& initial_plan,
const geometry_msgs::Twist& vel,
double dt,
ros::Time t,
100 double inscribed_radius = 0.0,
double circumscribed_radius = 0.0,
101 double min_resolution_collision_check_angular = M_PI,
int look_ahead_idx = -1);
104 void reset()
override;
112 const std::vector<teb_local_planner::PoseSE2>& via_points);
115 const std::vector<geometry_msgs::PoseStamped>& initial_plan,
bool backward);
147 #endif // CONTROLLER_H_
ros::Subscriber _x_feedback_sub
virtual bool isPoseTrajectoryFeasible(base_local_planner::CostmapModel *costmap_model, const std::vector< geometry_msgs::Point > &footprint_spec, double inscribed_radius=0.0, double circumscribed_radius=0.0, double min_resolution_collision_check_angular=M_PI, int look_ahead_idx=-1)
Check whether the planned trajectory is feasible or not.
ViaPointContainer via_points
corbo::NlpSolverInterface::Ptr _solver
int _force_reinit_num_steps
static corbo::ControllerInterface::Ptr getInstanceStatic()
corbo::NlpSolverInterface::Ptr configureSolver(const ros::NodeHandle &nh)
corbo::DiscretizationGridInterface::Ptr configureGrid(const ros::NodeHandle &nh)
double _force_reinit_new_goal_dist
StageInequalitySE2::Ptr getInequalityConstraint()
RobotDynamicsInterface::Ptr getRobotDynamics()
bool _initial_plan_estimate_orientation
bool configure(ros::NodeHandle &nh, const teb_local_planner::ObstContainer &obstacles, teb_local_planner::RobotFootprintModelPtr robot_model, const std::vector< teb_local_planner::PoseSE2 > &via_points)
std::shared_ptr< NlpSolverInterface > Ptr
void setOptimalControlProblem(corbo::OptimalControlProblemInterface::Ptr ocp)=delete
double _force_reinit_new_goal_angular
bool _publish_ocp_results
std::shared_ptr< OptimalControlProblemInterface > Ptr
std::shared_ptr< DiscretizationGridInterface > Ptr
corbo::DiscreteTimeReferenceTrajectory _x_seq_init
StageInequalitySE2::Ptr _inequality_constraint
void setInitialPlanEstimateOrientation(bool estimate)
std::vector< ObstaclePtr > ObstContainer
void publishOptimalControlResult()
RobotDynamicsInterface::Ptr _dynamics
corbo::StructuredOptimalControlProblem::Ptr _structured_ocp
std::shared_ptr< ControllerInterface > Ptr
teb_local_planner::PoseSE2 PoseSE2
ros::Publisher _ocp_result_pub
void stateFeedbackCallback(const mpc_local_planner_msgs::StateFeedback::ConstPtr &msg)
bool step(const PoseSE2 &start, const PoseSE2 &goal, const geometry_msgs::Twist &vel, double dt, ros::Time t, corbo::TimeSeries::Ptr u_seq, corbo::TimeSeries::Ptr x_seq)
corbo::DiscretizationGridInterface::Ptr _grid
bool _guess_backwards_motion
Eigen::VectorXd _recent_x_feedback
std::shared_ptr< StageInequalitySE2 > Ptr
std::shared_ptr< Controller > Ptr
corbo::StructuredOptimalControlProblem::Ptr configureOcp(const ros::NodeHandle &nh, const teb_local_planner::ObstContainer &obstacles, teb_local_planner::RobotFootprintModelPtr robot_model, const std::vector< teb_local_planner::PoseSE2 > &via_points)
bool generateInitialStateTrajectory(const Eigen::VectorXd &x0, const Eigen::VectorXd &xf, const std::vector< geometry_msgs::PoseStamped > &initial_plan, bool backward)
RobotDynamicsInterface::Ptr configureRobotDynamics(const ros::NodeHandle &nh)
teb_local_planner::PoseSE2 _last_goal
std::shared_ptr< TimeSeries > Ptr
geometry_msgs::TransformStamped t
MPC controller for mobile robots.
std::shared_ptr< RobotDynamicsInterface > Ptr
std::mutex _x_feedback_mutex
corbo::ControllerInterface::Ptr getInstance() const override
std::shared_ptr< StructuredOptimalControlProblem > Ptr
mpc_local_planner
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:35:06