├── .clang-format ├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── README.md ├── config └── mpc_tracker_param.yaml ├── include ├── cgmres_solver │ ├── cgmres_initializer.hpp │ ├── continuation_gmres.hpp │ ├── linear_algebra.hpp │ ├── matrixfree_gmres.hpp │ ├── newton_gmres_for_ocp.hpp │ ├── optimal_control_problem.hpp │ ├── single_shooting_continuation.hpp │ ├── single_shooting_ocp.hpp │ ├── time_varying_smooth_horizon.hpp │ └── zero_horizon_ocp.hpp └── mpc_tracker │ ├── CSVWriter.hpp │ ├── FrenetCoordinate.hpp │ ├── MPCCourse.hpp │ ├── Pose.hpp │ ├── StopWatch.hpp │ ├── Twist.hpp │ ├── course_manager.hpp │ ├── frenet_serret_converter.hpp │ ├── frenet_state_filter.hpp │ ├── matplotlibcpp.h │ ├── mpc_formulation.hpp │ ├── mpc_simulator.hpp │ ├── mpc_tracker_core.hpp │ ├── rapidcsv.h │ └── state_space_order.hpp ├── launch └── mpc_tracker.launch ├── package.xml ├── scripts ├── EgoVehicle.py ├── TwoWDRobotState.py ├── autogenu │ ├── autogenu.py │ └── symbolic_functions.py ├── gen_mpc_tracker_kinematic.py ├── generated_c_source │ └── MPCTracker_2WD │ │ ├── MPCTracker_2WD.cpp │ │ └── MPCTracker_2WD.hpp ├── offline_simulation.sh ├── plot_tool.py ├── requirements.txt └── utils.py ├── simulation ├── reference_path │ ├── circuit_cource.csv │ ├── curv_90deg.csv │ ├── oval_cource.csv │ ├── sinwave_05.csv │ ├── sinwave_075.csv │ ├── sinwave_1.csv │ ├── sinwave_big.csv │ └── step_1m.csv ├── simulation.cpp └── simulation_result │ └── .gitkeep └── src ├── cgmres_solver ├── cgmres_initializer.cpp ├── continuation_gmres.cpp ├── linear_algebra.cpp ├── optimal_control_problem.cpp ├── single_shooting_continuation.cpp ├── single_shooting_ocp.cpp ├── time_varying_smooth_horizon.cpp └── zero_horizon_ocp.cpp ├── course_manager.cpp ├── frenet_serret_converter.cpp ├── frenet_state_filter.cpp ├── mpc_formulation.cpp ├── mpc_simulator.cpp ├── mpc_tracker_core.cpp └── mpc_tracker_node.cpp /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/.clang-format -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/.gitignore -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/README.md -------------------------------------------------------------------------------- /config/mpc_tracker_param.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/config/mpc_tracker_param.yaml -------------------------------------------------------------------------------- /include/cgmres_solver/cgmres_initializer.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/cgmres_solver/cgmres_initializer.hpp -------------------------------------------------------------------------------- /include/cgmres_solver/continuation_gmres.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/cgmres_solver/continuation_gmres.hpp -------------------------------------------------------------------------------- /include/cgmres_solver/linear_algebra.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/cgmres_solver/linear_algebra.hpp -------------------------------------------------------------------------------- /include/cgmres_solver/matrixfree_gmres.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/cgmres_solver/matrixfree_gmres.hpp -------------------------------------------------------------------------------- /include/cgmres_solver/newton_gmres_for_ocp.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/cgmres_solver/newton_gmres_for_ocp.hpp -------------------------------------------------------------------------------- /include/cgmres_solver/optimal_control_problem.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/cgmres_solver/optimal_control_problem.hpp -------------------------------------------------------------------------------- /include/cgmres_solver/single_shooting_continuation.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/cgmres_solver/single_shooting_continuation.hpp -------------------------------------------------------------------------------- /include/cgmres_solver/single_shooting_ocp.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/cgmres_solver/single_shooting_ocp.hpp -------------------------------------------------------------------------------- /include/cgmres_solver/time_varying_smooth_horizon.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/cgmres_solver/time_varying_smooth_horizon.hpp -------------------------------------------------------------------------------- /include/cgmres_solver/zero_horizon_ocp.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/cgmres_solver/zero_horizon_ocp.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/CSVWriter.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/CSVWriter.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/FrenetCoordinate.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/FrenetCoordinate.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/MPCCourse.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/MPCCourse.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/Pose.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/Pose.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/StopWatch.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/StopWatch.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/Twist.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/Twist.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/course_manager.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/course_manager.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/frenet_serret_converter.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/frenet_serret_converter.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/frenet_state_filter.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/frenet_state_filter.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/matplotlibcpp.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/matplotlibcpp.h -------------------------------------------------------------------------------- /include/mpc_tracker/mpc_formulation.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/mpc_formulation.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/mpc_simulator.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/mpc_simulator.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/mpc_tracker_core.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/mpc_tracker_core.hpp -------------------------------------------------------------------------------- /include/mpc_tracker/rapidcsv.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/rapidcsv.h -------------------------------------------------------------------------------- /include/mpc_tracker/state_space_order.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/include/mpc_tracker/state_space_order.hpp -------------------------------------------------------------------------------- /launch/mpc_tracker.launch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/launch/mpc_tracker.launch -------------------------------------------------------------------------------- /package.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/package.xml -------------------------------------------------------------------------------- /scripts/EgoVehicle.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/EgoVehicle.py -------------------------------------------------------------------------------- /scripts/TwoWDRobotState.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/TwoWDRobotState.py -------------------------------------------------------------------------------- /scripts/autogenu/autogenu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/autogenu/autogenu.py -------------------------------------------------------------------------------- /scripts/autogenu/symbolic_functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/autogenu/symbolic_functions.py -------------------------------------------------------------------------------- /scripts/gen_mpc_tracker_kinematic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/gen_mpc_tracker_kinematic.py -------------------------------------------------------------------------------- /scripts/generated_c_source/MPCTracker_2WD/MPCTracker_2WD.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/generated_c_source/MPCTracker_2WD/MPCTracker_2WD.cpp -------------------------------------------------------------------------------- /scripts/generated_c_source/MPCTracker_2WD/MPCTracker_2WD.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/generated_c_source/MPCTracker_2WD/MPCTracker_2WD.hpp -------------------------------------------------------------------------------- /scripts/offline_simulation.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/offline_simulation.sh -------------------------------------------------------------------------------- /scripts/plot_tool.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/plot_tool.py -------------------------------------------------------------------------------- /scripts/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/requirements.txt -------------------------------------------------------------------------------- /scripts/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/scripts/utils.py -------------------------------------------------------------------------------- /simulation/reference_path/circuit_cource.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/simulation/reference_path/circuit_cource.csv -------------------------------------------------------------------------------- /simulation/reference_path/curv_90deg.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/simulation/reference_path/curv_90deg.csv -------------------------------------------------------------------------------- /simulation/reference_path/oval_cource.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/simulation/reference_path/oval_cource.csv -------------------------------------------------------------------------------- /simulation/reference_path/sinwave_05.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/simulation/reference_path/sinwave_05.csv -------------------------------------------------------------------------------- /simulation/reference_path/sinwave_075.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/simulation/reference_path/sinwave_075.csv -------------------------------------------------------------------------------- /simulation/reference_path/sinwave_1.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/simulation/reference_path/sinwave_1.csv -------------------------------------------------------------------------------- /simulation/reference_path/sinwave_big.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/simulation/reference_path/sinwave_big.csv -------------------------------------------------------------------------------- /simulation/reference_path/step_1m.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/simulation/reference_path/step_1m.csv -------------------------------------------------------------------------------- /simulation/simulation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/simulation/simulation.cpp -------------------------------------------------------------------------------- /simulation/simulation_result/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/cgmres_solver/cgmres_initializer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/cgmres_solver/cgmres_initializer.cpp -------------------------------------------------------------------------------- /src/cgmres_solver/continuation_gmres.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/cgmres_solver/continuation_gmres.cpp -------------------------------------------------------------------------------- /src/cgmres_solver/linear_algebra.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/cgmres_solver/linear_algebra.cpp -------------------------------------------------------------------------------- /src/cgmres_solver/optimal_control_problem.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/cgmres_solver/optimal_control_problem.cpp -------------------------------------------------------------------------------- /src/cgmres_solver/single_shooting_continuation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/cgmres_solver/single_shooting_continuation.cpp -------------------------------------------------------------------------------- /src/cgmres_solver/single_shooting_ocp.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/cgmres_solver/single_shooting_ocp.cpp -------------------------------------------------------------------------------- /src/cgmres_solver/time_varying_smooth_horizon.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/cgmres_solver/time_varying_smooth_horizon.cpp -------------------------------------------------------------------------------- /src/cgmres_solver/zero_horizon_ocp.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/cgmres_solver/zero_horizon_ocp.cpp -------------------------------------------------------------------------------- /src/course_manager.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/course_manager.cpp -------------------------------------------------------------------------------- /src/frenet_serret_converter.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/frenet_serret_converter.cpp -------------------------------------------------------------------------------- /src/frenet_state_filter.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/frenet_state_filter.cpp -------------------------------------------------------------------------------- /src/mpc_formulation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/mpc_formulation.cpp -------------------------------------------------------------------------------- /src/mpc_simulator.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/mpc_simulator.cpp -------------------------------------------------------------------------------- /src/mpc_tracker_core.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/mpc_tracker_core.cpp -------------------------------------------------------------------------------- /src/mpc_tracker_node.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kohonda/mpc_tracker_ros/HEAD/src/mpc_tracker_node.cpp --------------------------------------------------------------------------------