#pragma once

#include <iostream>
#include <ros/ros.h>
#include <nav_msgs/Path.h>
#include <Eigen/Dense>
#include <nav_msgs/Odometry.h>
// #include "mpc/mpc_solver.h"

namespace mpc_controler_ns
{
    class MPC_Controler
    {
    public:
        MPC_Controler();
        ~MPC_Controler();
        void initialize(std::string name);
        Eigen::Vector2d trackTrajectory(const geometry_msgs::PoseStamped &robot_pose, const double &robot_velocity, const nav_msgs::Path &local_plan, const bool is_get_new_path);

    private:
        double robot_yaw_;
        geometry_msgs::PoseStamped robot_pose_;
        // std::shared_ptr<mpc_car::MpcCar> mpcPtr_;
        ros::Publisher robot_control_signal_pub_;

    };
};