Create your ROS packages
TL;DR
ROS (Robot Operating System) is a well-defined framework for robot design. It provides a easy-to-use and multiple-language binding for makers to concentrate on major algorithm implementations, but not routine communication protocols among components. Tons of ROS packages are developed and well-tested, and they are available for free, can save us time and money. Integration with Gazebo and its own visualization tools allow us to do simulation or debug. With C++ as major developing language, it is easy to integration with your favorite toolkits, like OpenCV, PCL, etc. Or, you can use Python to do quick prototypes without long-waiting compiling.