Robotics software design
I have experience designing software architecture for multicomponent robots based on Robot Operating System and proprietary embedded systems. Having a right set of tools and a clear architecture from the project start allows for significant time saving, as most of the problems can be identified and solved before the start of software development activities.
Robot Operating System
The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries and conventions that aim to simplify the task of creating complex and robust robot behaviour across a wide variety of robotic platforms.
ROS is a great tool for robot prototyping, allowing for quick idea validation and easy creation of high level functionality for robotic systems. When used in right way ROS can significantly shorten your time to market.
It has to be noted tha the flexibility of ROS comes at a price of not being a true real time system, which is a requirement for some systems. Understanding the advantages and disadvantages of Robot Operating System is crucial for making the right decisions on system design and project execution.
Hardware In The Loop and simulations
When creating physical hardware a Hardware-In-The-Loop (HIL/HITL) combined with the right simulation tools allows for creation of a set of robust tools for prototyping, integration testing and system verification. Correctly setup HIL simulation allows for creation of standardized set of tests, allowing for early identification of potential bugs and mistakes in system architecture.
I believe that safety comes first in Robotic Systems. I have experience working with companies that put safety of their systems as their main objective (for example through DO-178B, Software Considerations in Airborne Systems and Equipment Certification). Safety in Robotic Systems is my priority. I always consider safety implications of every part of the system, especially the software.