1. Review code from [src/custom_controller/src/custom_controller.cpp](https://github.com/DIT-ROBOTICS/Eurobot-2026-Navigation2/blob/badba57008a34d6ea13fbb8cef3d3faa62f4043c/src/custom_controller/src/custom_controller.cpp) and [src/custom_controller/include/custom_controller/custom_controller.hpp](https://github.com/DIT-ROBOTICS/Eurobot-2026-Navigation2/blob/badba57008a34d6ea13fbb8cef3d3faa62f4043c/src/custom_controller/include/custom_controller/custom_controller.hpp) 2. rename the controller base on the feature and what the controller can do, please discuss with @JustinShih0918 . 3. refactor the code with the new name and new namespace. 4. refactor the redundant if-else or local variable, align the variable name and function name. 5. fix CMakeLists & package.xml to make it build-able 6. fix [custom.xml](https://github.com/DIT-ROBOTICS/Eurobot-2026-Navigation2/blob/badba57008a34d6ea13fbb8cef3d3faa62f4043c/src/custom_controller/resource/custom.xml) so that the system can find the controller 7. change the name of these line, see if anything went well in simulator [src/navigation2_run/params/nav2_params_default.yaml#L126-L173](https://github.com/DIT-ROBOTICS/Eurobot-2026-Navigation2/blob/badba57008a34d6ea13fbb8cef3d3faa62f4043c/src/navigation2_run/params/nav2_params_default.yaml#L126-L173) 8. if everything works fine, change on machine param [src/navigation2_run/params/nav2_params_11.yaml](https://github.com/DIT-ROBOTICS/Eurobot-2026-Navigation2/blob/badba57008a34d6ea13fbb8cef3d3faa62f4043c/src/navigation2_run/params/nav2_params_11.yaml) & [src/navigation2_run/params/nav2_params_14.yaml](https://github.com/DIT-ROBOTICS/Eurobot-2026-Navigation2/blob/badba57008a34d6ea13fbb8cef3d3faa62f4043c/src/navigation2_run/params/nav2_params_14.yaml) 9. test on machine 10. update readme
src/navigation2_run/params/nav2_params_default.yaml#L126-L173