https://learnbydoing.dev/ros-vs-ros-2-whats-the-difference-which-one-to-use/