Introduction
If you follow robotics, or are even just a little curious about robotics software, you’ve probably heard of ROS.
ROS stands for Robot Operating System, and it was built by Willow Garage in 2007, coincidentally the same year I was born.
Contrary to what the name suggests, it's not actually an operating system. Instead, ROS is a framework and a collection of tools that make it easier to build robotic applications.
ROS operates at the middleware level, meaning it sits on top of an actual OS, most commonly Ubuntu Linux and helps with tasks like communication, control, and coordination between different robot components.
And before knowing whether to use ROS or not, you need to know the main point of ROS:
“Don’t reinvent the wheel. Build something new and faster using ROS.”
Do You Really Need ROS?
While ROS is not mandatory for building robots, it makes life significantly easier.
Think of it like this: if you're building a house, ROS is like having pre-made bricks. Sure, you could make your own bricks from scratch, but that’s only reasonable if you’re doing something very specialized or huge in scale. Otherwise, it's a lot of unnecessary effort and overhead.
As ROS says itself, using ROS really allows you to focus more on innovation rather than spending time re-implementing basic features like communication, mapping, or sensor data processing.
The Main Perks
1. Open Source
ROS is open source, which means you can view, modify, and contribute to its entire code base. Additionally, it’s completely free and actively maintained by a global community of developers and researchers. ROS is now governed by the Open Source Robotics Foundation (OSRF).
Example: To understand how a LiDAR driver works, you can check out the velodyne driver in the ros-drivers/velodyne GitHub repo. You can see exactly how data is processed and sent to the rest of the robot, all open and tweakable.
2. Permissive Licensing
ROS uses licenses like BSD and Apache 2.0, which means you can use it in commercial products or modify it to suit your needs as long as you give proper credit.
Example: If you're building a delivery robot startup, you can use ROS as the base framework as well as modify code as per your need, without paying any licensing fee.
3. Pre-Built Integration with Visualizations and Simulations
Before testing robots in the real world (which is risky and expensive), simulations are crucial. ROS has tight integration with popular simulation tools like Gazebo, Webots, and Ignition, as well as visualization tools like RViz and rQt.
Example: If you want to simulate a self-driving car avoiding pedestrians, Gazebo + ROS will make it very easy.
4. Tools Out of the Box
ROS comes with a toolbox full of amazing tools like SLAM (Simultaneous Localization and Mapping), navigation stacks, sensor drivers, and diagnostic tools.
Example: Instead of writing your own mapping algorithm from scratch, you can use gmapping or Cartographer.
5. Multi-Language Support
ROS supports both Python and C++ natively, making it easy for teams with different language backgrounds to collaborate. Community-supported SDKs also exist for other languages like JavaScript, Java, and even Rust, so no worries.
Example: A machine learning engineer can write the perception module in Python, while your embedded systems teammate can handle control logic in C++, and all that in ROS to make a awesome intelligent robot.
6. Modular Architecture
ROS encourages a modular design. Which means, each component (called a node) can run independently and communicate via standard protocols.
This enables:
- Easy upgrades to parts of your system without touching everything else
- Swarm robotics applications
- Plug-and-play with other robots or sensors
Example: You can build a robot arm using one ROS package and attach a mobile base with another, all working together like a team.
7. Resource Efficiency
Using ROS saves both time and money. Since it’s widely used and well-documented, you’ll spend less time training people and more time innovating. Hiring developers familiar with ROS is also easier compared to building your own custom framework hiring developers and training them for your framework.
Example: A startup using ROS can quickly onboard interns or freelancers who already know the basics, reducing development overhead.
Conclusion
So unless you’re someone who codes in binary, builds your own compiler, and hates pre-built tools (in which case, more power as well as more work to you) you’ll probably love ROS.
(Just kidding…)
If you enjoyed this post, consider following me on LinkedIn or giving it a like. Cheers to ROS!
Top comments (1)
Love you 1000 for this!!