I have heard about open source 3D printed robotics projects (https://www.poppy-project.org/en/ is somehow obsolete example). My question is - are there open source holistic/integrated frameworks of automated design, simulation and analysis of such projects? The pipeline of design/simulation/analysis consists of the following steps:

  1. Open source 3D CAD files for the robot are provided;
  2. Special open source processor receives CAD files of structures and generates mathematical expressions of kinematics and dynamics of the robot (e.g. Jacobian matrices and so on), as well as input files for the simulators (like Gazebo, MoveIt or OpenRave);
  3. Standard mathematical software (Mathematica, Matlab or open source GNU Octave) execute standard derivation of the expressions (from point 2) to determine all the necessary results of analysis (like space of reachability, singularities and so on);
  4. Simulators are used to perform simulations or robot in some standard set of environments, e.g., the industrial cells;
  5. Results from the 3. and 4. are provided to the GNU Octave expressions to determine the quality of the 3D CAD design and the numerical parameters of the design are tuned to arrive at the optimal values of numerical parameters (e.g. length of links and so on);
  6. Results from the 3., 4., 5. (i.e. the overall estimate of the quality) are feeded in the Genetic Programming system as the fitness measure and new generation of the 3D CAD design is generated using evolutionary algorithms whose genes encode the 3D CAD design of the robot. Or alternatively the quality measure is used as the reward for the Reinforcement Learning system that learns the optimal structural 3D CAD design of the robot.
  7. Results from the 6. (i.e. automatically improved 3D CAD design) is feeded into step 1. and the improved robotic structure is analysed again.

There is computational creativity research with automatic exploration of the design space. So, one can consider the design space for the 3D CAD project and automatically explore it for finding the design that operates the most efficiently in the predetermined environments (like industrial cells).

From time to time some generation of the 3D CAD robot can be printed out and put into operation for gathering hard data (that can be feeded into improving the simulation process at step 4.) and for reaping the practical and material reward from the effort.

I am not asking to name the particular open source integrated frameworks (if such exists) (however the references would be great) or the open source components for such framework. My question is about the feasibility and possible obstacles for creating such framework?

E.g. step 2. can be quite esoteric - to generate the Jacobians from the 3D designs, but is it really so hard to do that? There is no need for creativity to do this and it is the standard procedure that every student does in their homework.

And then there is problem about integrated representation of the robot? 3D CAD files usually are used for designing single components, like single link or single join or single structure, cover. But what about whole robot? Can similar 3D CAD files be used for the representation of the whole robot and that representation also include motors, sensors, actuators, wiring, computing units and so on. Only such integrated designs are suitable for the step 2 automatic analysis.

Artificial intelligence is developing and that is why we should try to use both the automation of the mathematical analysis of the robot and also the automatic exploration of the designs space using evolutionary programming and reinforcement learning (which works quite nicely in generation of computer arts).

And all this should be open sourced to improve each component.

What is the state of art of such integrated pipelines?


1 Answer 1


The state of such a pipeline is that it each and every individual point is difficult and such a fully explored pipeline such as your hypothetical one simply doesn't exist and likely won't for many years to come.

Much like in this answer I mentioned that Fuzzy logic and AI things are plastered on everything under the sun or being marketed that way as an end all be all solution to the worlds problems.

They are not.

I feel your question is inherently misinformed about AI's and their use compared to 'classical' design when it comes to mechanical engineering in a non-academical setting.

There are two main things to think about when designing a product or a machine.

Time and Money.

Can your thing be made in a reasonable amount of time and will it break the bank trying to build it?

A companies budget on one or the other will dictate how deep in the modelling hole one will fall.

At this point to simplify one will now decide how to model your system and it will depend on what development tools one already has, how much is already known about said system, and what time frame all of this has to be done in

A machine will often be designed by entire teams of people who only work on their specific fields of expertise...often on only individual parts or subsystems.

  1. Materials (choosing the correct one, finding new ones, etc)
  2. Electronics, programming
  3. Statics, dynamics of full or subsystem simulations
  4. CAD design of parts and their specific requirements such as:
    • Safety requirements,
    • Their simulations of individual parts and subsystems,
    • Stress analysis, most of which have to be chosen (as in decided upon by a person) and designed specifically to follow standards and laws applicable to the local or international regions.
  5. Control of said full or subsystem(s)
  6. Thermodynamics, Fluid dynamics, etc
  7. And extremely important, verification of models with physical experiments and prototypes.

All of this often done in parallel, with constant communication between each of them...and most of these people being experts...and I definitely didn't write down everything.

As a rule of thumb, 'classical' modelling starts from simple and increases in complexity until a sufficient accuracy in your system has been obtained.

If your system is inherently complicated (think chemical plant) such methods rarely work out regardless of how many parameters your ODE(s) has/have and how many engineers you throw at it. In this case AI's can be / will be used to try and model the dynamics of such systems with varying degrees of success.

To list a few examples of failures in training:

  1. Aircraft Landing:

    • Evolved algorithm for landing aircraft exploited overflow errors in the physics simulator by creating large forces that were estimated to be zero, resulting in a perfect score
  2. Robot Arm

    • A robotic arm trained to slide a block to a target position on a table achieves the goal by moving the table itself.
  3. Impossible Superposition

    • Genetic algorithm designed to find low-energy configurations of carbon exploits edge case in the physics model and superimposes all the carbon atoms

To quote the summary of the book "Nonlinear Problems in Machine Design"

Modern machine design challenges engineers with a myriad of nonlinear problems, among them fatigue, friction, plasticity, and excessive deformation. Today's advanced numerical computer programs bring optimal solutions to these complex problems within reach, but not without a trained and experienced overseer.

Engineering and science is inherently hard and even experts in the designing of AI's make massive mistakes...

With all of that said, each one of your points mostly exists in different forms.

  1. Step files and stls are common formats to use for sharing between different programs, open source software such as FreeCAD exists.

  2. I am not aware of a system even capable of finding a dynamical model from a CAD model, as it has not knowledge of the entire system, their limits, boundries, the space(s) they work in, initial conditions, their ideal or non ideal characteristics...etc etc (if someone knows one..I'd like to hear about it)

Yes, Finding the equations of a system can really be that hard...

  1. Standard softwares as you mentioned are commonly in use today for system simulations and automatic optimizations.

  2. Again such softwares exist..simulink, system modeler, mathematica, ANSYS, countless others

  3. 5, 6, 7 Are varying in their inter connections, however I can think of Generative Design as an example where this is mostly what you describe as in, define specific boundries, allow automatic design, iterate, retest...rinse and repeat.

AI is certainly great for many things. But it can't be used for everything...nor does it have to be. Many mechanical (sub)systems can be accurately (enough) solved in the 'classic' method quickly and it would be a waste of time and effort to implement AI's....for now anyways...Judgement Day was just delayed after all...


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.