Exercise: Project Simulation¶
Simulation is an essential tool in robotics for evaluating both mechanical designs and software without the expense of fabrication or real-world testing.
However, the process must be treated be care. It is sometimes said that “simulations are doomed to succeed.” Taking away the messiness of the real world can leave a toy problem which is all too easily solved, without actuator limits, sensor noise, structural failures, or the sheer unpredictability of the physical world. Reducing a space of effectively infinite dimensions to a few rigid freedoms leaves out a lot of freedoms and possible problems.
In this exercise you’ll choose an aspect of your project idea to test in simulation. The key initial step is identifying a first experiment toward resolving your project idea. Please focus on the critical path: what are the greatest artistic and technical unknowns?
A clear understanding of the concept will help with selecting the critical path. Please focus on the artistic questions first; it does not help to resolve technical problems which later become mooted by a better understanding of the central idea.
Learning Objectives¶
After this exercise, you should be able to:
Identify the core artistic concept for a kinetic sculpture installation.
Identify the principal unresolved artistic questions.
Identify the critical path of technical development.
Resolve an idea to the smallest, simplest form which can resolve the highest-priority questions.
Formulate a simulation problem to evaluate an important critical path question.
Build and test the simulation.
Resources
The recommended model is the Menagerie World.
All sample Webots worlds are included in the reference project Webots.zip described under Webots Robot Simulator Examples.
The necessary components are also isolated in the menagerie.zip archive.
Prompt Questions¶
The objective of the simulation is to discover the most important unknown regarding your creative conceit. This is necessarily going to vary by your approach to the project. Please make a careful choice about the most important experiment to try first and then mock up a first iteration.
For some scenarios, this may be physical: what is the form of the robot(s)? What are the props or objects? In this case, a reasonable first milestone would be mocking up all the physical elements in simulation to answer a question about sculptural interpretation.
For some, it may be behavioral: What is the action? What is the animation? In this case, a reasonable first milestone would be implementing the most minimal simulated hardware, then scripting or animating a test sequence which answers a question about behavioral interpretation.
In all cases, the discipline of thinking through the idea using simulated hardware with practical, feasible limits is intended to help ground your result in sculptural robotic practice. Done well, you won’t take advantage of purely synthetic properties or the non-physicality of cinema, animation, and games.
Prompts to consider:
What is the central artistic inquiry of your ideas?
What is the most unresolved visual element?
How does your choice of materials and form support this inquiry?
How does your choice of behavior (movement and interaction) support this inquiry?
What is the most difficult technical element?
What exactly would an audience see, hear, and experience?
What are the concrete details of a physical implemention suggested by the simulated outcome?
What is a simpler form which expresses the same underlying idea?
Deliverables¶
Please include the following in your results:
A clear statement of your artistic objective.
An explanation of your simulated result, including the specific creative question it resolves.
A description of the physical system you might now build based upon the simulation.
A short video clip presenting the simulated result.
A Webots simulator project including your machine(s) in the HL A11 space.
Please be prepared to show your results in class, including:
showing your video clip
explaining the question posed by your experiment
showing and explaining your code