Summary
Ben Finio, Ph.D., Science Buddies
- Windows is a registered trademark of Microsoft Corporation.

If you want a Project Idea with full instructions, please pick one without an asterisk (*) at the end of the title.
Abstract
In our introductory VoxCAD project, you were challenged to use the VoxCAD software to design the fastest possible robot using different materials. However, we did not ask you to think about one big thing — efficiency. It is great to design a robot that is very fast, but what if it also consumes a lot of energy? Engineers must consider this when designing robots in the real world — robots that use more energy to move will drain their batteries faster, which can be a problem. This is similar to the concept of fuel economy in cars — everyone wants a car that "gets good gas mileage" — meaning the car will travel as far as possible on a gallon of gas (which in turn, saves money). Fuel economy for cars is measured in miles per gallon (mpg).Most robots must carry a payload, or cargo, of some sort. The exact payload will vary depending on the purpose of the robot — for example, a search-and-rescue robot might need to carry cameras and wireless communication equipment, and a vacuum-cleaner robot will need to carry the dirt it vacuums from the floor. This is also true for non-robotic vehicles, ranging from everyday passenger cars to the Space Shuttles, which carried astronauts and other equipment to the International Space Station. In either case, moving the robot and its payload requires energy, and energy (whether in the form of batteries, gasoline, or rocket fuel) costs money — so engineers want to minimize the cost, and environmental impact, of movement. To measure how efficiently a robot can transport its payload and its own weight, engineers use the variable cost of transport. Determining the cost of transport for a robot answers the question "How much energy does the robot take to move one unit mass over one unit distance?" and can be calculated with the equation:
Equation 1:
Cost of transport is typically measured in joules per kilogram x meter (J/[kg·m]). For example, say a 10 kg robot consumes 10 J to move 1 meter (m), and a 50 kg robot consumes 50 J to move 1 m. Even though the heavier robot uses more energy, both of those robots have the same cost of transport of 1J/[kg·m]. Notice that a lower cost of transport is a good thing — it would be like measuring fuel economy of cars in gallons per mile, instead of miles per gallon (you want to use as few gallons per mile as possible). But remember that the cost of transport calculation for a robot includes the robot's weight, while the fuel economy of a car does not — so they are different things.
Cost of transport can also be calculated in terms of power and velocity. Power is energy consumption per unit time:
Equation 2:and is expressed in watts (W), or one joule per second (J/s).
Velocity is distance per unit time:
Equation 3:and expressed in meters per second (m/s).
This means that, if you divide both the numerator and denominator of Equation 1 by time, you can also express cost of transport as:
Equation 4:
This means that in order to calculate cost of transport for your robot, you need to determine its power consumption, mass, and velocity. (Note: Can you show that the result in Equation 4 has the same units as Equation 1?).
Power Consumption
Your robot is made up of active and passive materials. You can think of active materials as muscles in an animal or motors in a machine — they require energy to move. So, you will need to assign a power consumption rate to each voxel of your active materials. Materials that expand and contract more will in general consume more power, so it is a good idea to make the power consumption rate proportional to the absolute value of the material's coefficient of thermal expansion. For example, you could say that a voxel with a coefficient of thermal expansion of 0.01 consumes 1 W (or 1 J/s) of power, and a voxel with a coefficient of thermal expansion of -0.02 consumes 2 W (or 2 J/s) of power. The total power consumption of your robot is the sum of the individual power consumption of all your active voxels, so you will need to count your active voxels for each robot, and keep track of material types.
You can access each material's coefficient of thermal expansion in the Physical sub-tab of the Palette tab, as shown in Figure 1. Remember that each material has its own unique material properties — click on the material name in the list at the top of the Palette tab to select that material, and then view its properties.

Screenshot of the VoxCAD program with selected material, physical sub-tab, coefficient of thermal expansion, and palette sub-tab highlighted in the right-hand sidebar. Values under the physical tab can be changed to alter the properties of a selected object.
Figure 1. The coefficient of thermal expansion property can be found in the Physical sub-tab of the Palette tab. In this example, the red material named "Active_+" is selected, and has a coefficient of thermal expansion (CTE) of 0.01.
Tip: In the Voxel Info section of the Palette tab, VoxCAD displays the total number of voxels for each material type in your model. This can be useful for counting voxels in large robots — but remember that it shows the total number of each type in the entire model. So this will not work if you have multiple robots in a single simulation.
Mass
Each material is assigned a density. Density is mass per unit volume:
Equation 5:and is generally expressed in kilograms per cubic meter (kg/m3).
You can find the value for density of the selected material right above the value for thermal expansion in the Palette tab (see Figure 1). However, to calculate mass you also need to know the volume of each voxel. You can determine the volume of a single voxel by looking at the voxel shape and size in the Workspace tab. The default voxel shape is "Cube," and the Lattice Dimension determines the length of the sides of the cube.
Once you know the volume and density, you can use Equation 5 to calculate the masses of your different types of voxels. Add up the mass of each voxel to determine the total mass of your robot. Note that, unlike with power, all materials contribute to the mass, not just the active materials.

Screenshot of the VoxCAD program with lattice dimension and workspace tab highlighted in the right-hand sidebar.
Figure 2. The Lattice Dimension can be found in the Workspace tab. In this case, the voxels are cubes with a side length of 1 millimeter (mm), and thus a volume of 1 mm3. The dimensions of the entire workspace (in voxels) are set with the controls for X Voxels, Y Voxels, and Z Voxels. In this case, the workspace is a 10x10x10 voxel cube.
Speed
Remember that velocity is distance per unit time (Equation 3) — so you will have to measure how far your robot travels in a given time. However, especially with robots that bounce, flail, and roll, it is unlikely that they will have a constant velocity. This means that you will need to measure the average velocity over a certain period of time. You can do this in Physics Sandbox mode by following these steps:
- Enter Physics Sandbox mode, and set a Stop Condition for the simulation in "Simulation Time," as shown in Figure 3. The time you pick for stopping your simulation will depend on how fast your robot moves. A good rule of thumb is to allow your robot to travel a distance equal to several times its own body length.
- Start your simulation as normal. It should stop automatically after reaching the simulation time you entered.
- Click on the Output sub-tab of the Physics Settings tab. This tab will display information about the simulation including the current time, and the distance the robot's center of mass has traveled since the simulation started (see Figure 3). You can use this information to calculate the robot's average velocity.
- Important: To measure time, do not use a stopwatch. Simulation time can be very different from real-world time because the simulation might run faster or slower depending on the size of your VoxCAD model or the speed of your computer.
- Important: This technique will only work for VoxCAD simulations that contain a single robot. The center of mass (COM) location is calculated for the entire simulation — VoxCAD does not track individual COMs for multiple robots within a single simulation. So, in order to compare different robots, you will have to put them each in their own simulation file.

Screenshot of the VoxCAD program showing stop condition settings, output sub-tab, distance robot's center of mass (COM) has traveled, and physics settings tab in the right-hand sidebar.
Figure 3. To measure your robot's average velocity, set a Stop condition in "Simulation Time." Then, when the simulation stops running, you can measure the distance the robot has traveled using the Output sub-tab. Use the final time and distance to calculate velocity.
Remember that this is an abbreviated project idea, so now that you know how to calculate cost of transport, the exact procedure at this point is up to you. Here are some ideas:
- If you did the introductory VoxCAD project, go back and calculate the cost of transport for each robot you designed. Now, rank the robot designs in two different ways: from fastest to slowest, and from lowest to highest cost of transport. Are the lists the same, or do some of your fast robots actually have a high cost of transport?
- Assign a payload requirement to your robot designs. For example, you could create a passive "payload" material and say that "The robot must carry ten voxels of payload material to represent electronics and sensors" or that "The robot must carry one voxel of battery material for every five active voxels." Now, create new designs with the smallest possible cost of transport, that still meet your payload requirements.
- Can you think of other ways to rank and compare your robots? For example, what if you rank them by total power consumption, or calculate cost of transport without including mass? What if you assign a financial "cost" (e.g. in U.S. dollars) to each material, and calculate the total cost of each robot? How would engineers take all these different things into account when designing a real robot? For example, you might have a robot that has a low cost of transport, but is also expensive to build. Would that necessarily be a good trade-off?
Bibliography
- Hiller, J. (n.d.). VoxCAD. Retrieved March 22, 2013.

Ask an Expert
Careers
If you like this project, you might enjoy exploring these related careers: