Pehuen and I are working on computational design and evaluation of robots.
This project will take realistic manufacturable robotic designs from RoCo and evaluate them in Webots.
Flowchart: here is a flow chart that we came up
Tasks: the parts that are marked in red are what is missing in this project, which will be accomplished one by one. Here is a list of what need to be done (more coming up)
- Get ready-to-evaluate files from RoCo
- Decide file types that works for Simulation tool
- Develop ways to make discrete components work together, e.g. wheels in a car
- Etc …
- Build pipelines that connect/transfer RoCo outputs to Simulation software
- Develop potential re-design methodology
- What parameters to change, how will those influence performance. One challenge here is we do not have mathematical models that can tell us directly how changing parameters will affect the results. So we need a “methodology”. Possibly RL?
- How to apply the re-designed parameters to RoCo and re-evaluate the whole process?
- How to quantify performance
What to present?
- RoCo output file (e.g. .stl) can be evaluated by Webots (or other simulation software).
- "Upgraded" RoCo that can generate discrete components; assemblies made in RoCo or in 'file transfer pipeline'; demonstrations in Webots showing the assemblies works.
- For example, the robot car has a body and two wheels. Currently RoCo produce a .stl file for visualization, which is one piece (body and wheels are considered as one solid part). This can be analyzed in Webots if we consider it as one part, but we can not make the wheels rotate.
- For this example, the intermedium goal is to get a robot car design from RoCo and an assembly that has rotatable wheels, and show it works in Webots.
- The pipeline.
- Re-design suggestions (if any).
- Re-design (if needed).
Some thoughts
- It is said Webots can be programmed using Python. And based on what is shown in my last blog post, the geometry and location of robot components are programmed. So maybe we can skip generating part files, instead, we generate .py files that have robots information, i.e. components geometries & locations, link types & locations, transmission types & locations, etc. (I need to look into how RoCo is programmed and Webots input files)
- ...