The behaviour of a real-world robotic agent is determined by its control program and its morphology, i.e. its shape and material composition, and its interaction with the environment. For building a real-world agent, we only have control over the first two factors: Control and Morphology. How can we, given a set of tasks, automatically derive a well-suited morphology and the associated control strategy to produce a robot that robustly solves these tasks in a wide range of situations? How can we divide responsibilities between hardware and software simultaneously and synergistically for achieving robust behaviour ? This joint programming of morphology and control is called co-design (Deimel et al., 2017).
The biggest challenge of automated co-design of hardware and software is the tremendous size of the co-design space over which the optimization must be performed. A generic and complete parametrization of morphology and control would be of such high dimensionality that no hope exists to search it systematically in any reasonable amount of time, irrespective of the computational resources at hand. To achieve competent automated co-design must find ways to reduce the search space by leveraging appropriate inductive biases to guide the search.
You can find all the necessary information here.