Should You Build Your Robotics Platform On ROS?
ROS is, without a doubt, one of the most widely used frameworks for developing robotics applications. ROS owes its widescale adoption to its robust suite of built-in tools, the large development community, and the fact that it is open source. But regardless of all the benefits ROS provides developers, it is still a very complex framework that could easily lead to more trouble than it is worth. So before implementing ROS, weigh your options and really consider if ROS is the best option for your application.
What is ROS?
Released in 2007, ROS has become one of the most widely used tools in the robotics industry. Contrary to its name, ROS or Robot Operating System is not an operating system but is instead a middleware that provides a flexible framework for developing robotics applications. This framework can be thought of as the plumbing for robotics applications. It provides a structured communication layer between an application and the underlying operating system as well as many other useful utilities for developers.
Predictability is paramount in robotics because you want your employees to focus on other tasks rather than babysitting your robots.
ROS might be a good fit for your project if...
ROS is extremely flexible and can be used to develop highly customized robotic applications that align with your requirements. ROS could be your best option depending on your needs, but consider if alternatives could accomplish what you are attempting to achieve before deciding. Below are some areas to consider before determining if ROS is the right choice for your application:
- You are highly confident that the needs for your project won’t change: ROS is a pervasive framework that requires any future components to be compatible with ROS. While there are many tools and libraries that are readily available for ROS, once you commit to ROS, everything you build now and in the future will be ROS dependent.
- Your product platform can support intensive processing requirements: ROS is a heavy framework that requires a certain level of hardware performance to function properly. While this additional expense may not seem high at first glance, but it is something to consider if you expect to deploy multiple systems as it will cut into the profitability of your application and may even create difficult physical size constraints.
- Your development team (and your development process) can support lots of interdependencies: Managing the interdependencies between components and compatibility with ROS requires complex system design and proper planning. Without a ROS-centric development plan, the same flexibility ROS provides can easily cause many developers to turn their applications into an architectural mess with a low level of Predictability. Predictability is paramount in robotics because you want your employees to focus on other tasks rather than babysitting your robots.
- You have ROS expertise on your development team: ROS is complex and can be overwhelming, so you will likely need an expert in ROS to properly architect your system. Learning ROS on your own while you develop your solution could lead to you taking on technical debt without even realizing it. Having a skilled ROS developer on staff could be expensive but is vital to the future success of a ROS based application.
- Your company and your development team are capable of supporting unpredictable systems in the field: ROS’ messaging yields an inherently non-deterministic system. This means that performance can vary from installation to installation based on timing and system load. Your developers and support team will need to be prepared to debug such issues in the field without a consistent method of reproducing the problem.
- Your budget can support a complete overhaul if you change your mind: Switching off of ROS is an invasive, and complex, process that could require a redesign and significant overhaul of your code.
Ultimately, the list above is meant to convey that ROS can be a great solution if your team has the requisite skills to design your system properly and there is a clear roadmap for all features with their dependencies outlined. ROS could even be a great choice for developing prototypes or demos quickly. However, if you find that most of the areas above are not true for your project, consider if ROS is really the best solution for you.
If you are unsure if ROS would work for your project or are having issues with a current ROS implementation, Go West would be more than happy to help. The Go West team has extensive experience in assessing, implementing and even replacing ROS applications. Please send us a note and let us know how we can help you.
Is there a topic you need help with or would like us to cover? Drop us a quick note and let us know: email@example.com
Want to learn more?
We'd love to talk to you. Contact us to see how we can help.