Have you seen the dancing robots from Boston Dynamics? Several years ago, nobody thought it was possible for robots and other hardware to dance to music, talk to users, repair turbines, or drive autonomously through production lines. Now, this is simply reality and part of our day-to-day life. But – and stay with me here – the transformation of hardware development has only just begun.
A major part of the added value in these products results from the software part. Nevertheless, without sophisticated and reliable as well as precise hardware these products would be useless. To ensure a smooth development we have to overcome department thinking, like the hardware vs. software debate, but rather collaborate closely, even if the approaches and challenges are different.
The Challenge for Interdisciplinary Hardware Product Development Projects
Everybody is keen on rapid prototyping and agile development to show quick proof of concepts (PoC) as early as possible. But I have experienced several challenges there if you bring together hardware engineers and software developers to build one product together to develop a more complex product like a self-driving robot. For simple PoC (Proof of Concept) or MVPs (Minimum Viable Product) of products that just consist of maybe some 3D printed parts and a microcontroller with some IoT functionality, you can rapidly prototype as much as you want. But once you have to build a functional robot that can lift up to one ton and drive around a production facility, things are getting more complicated. Still, you want to be fast and agile and want to show a prototype as soon as possible. I want to guide you through the process at Motius. How we deal with such challenges and which approach has shown great success in our hardware cluster.
When we form the perfect team for a project at Motius, the challenge is to manage and connect the different technologies and methods that we want to use. Bringing together Motees that are software experts, for example at ROS (Robot Operating System), with others, who focus on hardware topics such as the design of a drivetrain unit, can be challenging. Another challenge arises as software and hardware projects undergo different development cycles. The development of hardware components goes through many iterative loops in the concept phase because changes afterward are much more expensive in comparison to software. On the other hand, software components and features in most cases can be added easier throughout the project within the team. For both areas a proper system architecture is equally important from the beginning on. As complexity increases, new methods are necessary to combine SW and HW without sacrificing the speed of software development and the need for accuracy and safety in hardware.
The Motius Way of Agile Hardware Development
In general, we pursue the following approach: Fast where possible and keen to detail where necessary. This means detailed Requirements Engineering and especially Systems Engineering throughout the development and rapid prototyping and fast user testing with a more iterative approach have to be combined. Especially in the beginning while defining the concept, we need to be fast at verifying new ideas. Why especially in the beginning? The issue with hardware is the overall complexity of some products and that’s why e.g. in the airspace industry enormous efforts are spent on doing a waterfall project plan from the beginning to the end of a project. At Motius, we know how to work on complex projects, while still being fast and agile. To meet the demand and to cope with the complexity, we emphasize Requirements Engineering as well as Systems Engineering. They could seem like overhead in the beginning as you need to do them properly, but the effort is necessary and pays off in the end.
1. Requirements Engineering
Let’s start with the first aspect, Requirements Engineering (RE). This covers the aspects of product properties and specifications and the management of these, such as documentation and validation throughout the project. RE is basically a systematic approach for dealing with requirements. Motius uses RE within projects to manage the complexity of a project or product. This helps the team to identify which activities to focus on and how to test them. It is important to specify more than just technical aspects of the product. The business and user perspectives are important as well. This is why Motius uses design thinking methods to support our RE activities and have a holistic product development process in mind. We learn more about the use case and, above all, the user needs. To do this, we focus on the users’ wishes. Thogether with the user we develop a solution around them or their problem.
2. Systems Engineering
Once we defined and documented all goals, requirements, and use cases we can engineer the system architecture. For complex robotics projects, it is important to focus on the various interfaces between subsystems as well. Systems Engineering (SE) is a methodical approach to define and manage this complexity throughout the project. It is defined by an integrative approach. Be aware that the term engineering is used in a broader sense when it comes to SE. The goal of Systems Engineering is to ensure that the components fit together to form a cohesive product. We are using Visual Paradigm as a tool for that, it allows us to manage our requirements and visualize our system design via SysML.
3. Being Agile With Scrum
RE and SE are two of the approaches which help us to deal with the complexity. Nevertheless, throughout the development we are working in an agile setup to react to changes and learnings based on our iterative rapid prototyping approach.
4. Rapid Prototyping
Apart from the question of which manufacturing methods you want to use, like 3D printing, laser cutting, etc. a very interesting question to think about when it comes to prototyping, is which parts and components do you buy vs. which components do you make by yourself. To go through initial concept verification, a fast and reliable supplier network can be the key. We use rapid prototyping to test early prototypes and therefore reduce the complexity and risks throughout the development of e.g. a gearbox. A good showcase is the testing of the kinematics of our mecanum wheels, which we are using now in our autonomously moving LED Walls for AUMOVIS.
5. On-site Testing
As part of our agile approach, we include intensive on-site testing with end-users and inspection authorities, like TÜV. We initiate this process as soon as possible, as it allows save time and money by identifying and improving errors early in the process when changes are cheaper.
So, What Are the Takeaways?
If you want to build complex products which combine hardware and software, it is crucial to plan your processes and structure beforehand. You should try to connect the best of both worlds while still keeping a big focus on interfaces and dependencies. This means you need a methodical and systematic approach to deal with the complexities of the product itself and the development processes around it. On top, you need a motivated team that is eager to learn and adapt throughout the journey. But once you have found your setup, you can build as exciting products as the dancing robots of Boston Dynamics. The successful development of various products we built shows that the described approach works very well to master the increasing complexity of hardware products. Need help developing your next product? Get in touch, we know-how!