Creating a design from modular components necessitates three steps: Acquiring knowledge about available components, conceiving an abstract design concept, and implementing that concept in a concrete design. The third step entails many repetitive and menial tasks, such as inserting parts and creating joints between them. Especially when comparing and implementing design alternatives, this issue is compounded. We propose a use-case agnostic knowledge-driven framework to automate the implementation step. In particular, the framework catalogues the acquired knowledge and the design concept, as well as utilizes Combinatory Logic Synthesis to synthesize concrete design alternatives. This minimizes the effort required to create designs, allowing the design space to be thoroughly explored. We implemented the framework as a plugin for the CAD software Autodesk Fusion 360. We conducted a case study in which robotic arms were synthesized from a set of 28 modular components. Based on the case study, the applicability of the framework is analyzed and discussed.
The CAD design process includes a number of repetitive steps when creating assemblies. This issue is compounded when engineering whole product lines or design families, as steps like inserting parts common to all variations, such as fasteners and product-integral base parts, get repeated numerous times. This makes creating designs time-, and as a result, cost-intensive. While many CAD software packages have APIs, the effort of creating use-case specific plugins to automate creation of assemblies usually outweighs the benefit. We developed a plugin for the CAD software package "Fusion 360" which tackles this issue. The plugin adds several graphical interfaces to Fusion 360 that allow parts to be annotated with types, subtype hierarchies to be managed, and requests to synthesize assembly programs for assemblies to be posed. The plugin is use-case agnostic and is able to generate arbitrary open kinematic chain structures. We envision engineers working with CAD software being able to make designed parts reusable and automate the generation of different design alternatives as well as whole product lines.
Motion Planning is widely acknowledged as a fundamental problem of robotics. Due to the continuous efforts of the scientific community, various algorithmic families emerged that have different strengths and weaknesses. Finding a suitable motion planning program is often not trivial for real-world problems, as various domain-specific factors must be considered. An obvious example is a potential trade-off between path length, computation time, and resource constraints. We propose a technique to systematically explore the space of suitable programs, aiming to find Pareto optimal algorithm configurations. Our approach makes use of Combinatory Logic Synthesis to perform component-based software composition. Software components are injected with domain-knowledge, effectively restricting the solution space of synthesizable programs. We synthesize sample-based global planning programs that make use of the Open Motion Planning Library (OMPL) and evaluate the produced programs to yield numeric result vectors. These steps are encapsulated in a black-box function which is used with a multi-objective optimization tool (Hypermapper) to yield an automatic, learning-based search procedure for a given feature space. We validate our approach with a series of experiments that demonstrate the extensibility and transferability of our methodology regarding different robotic systems and planning instances.