The way a creature is built greatly affects how it behaves. By observation, one can note that birds usually perch and fly, roosting high in the treetops, while fish use their fins to propel themselves into the depths of bodies of water. While the fundamental idea seems basic, the use of such a concept in a field of mechanical design is vital. The connection between design and movement of robotic creatures was the key focus in the explorations of a project at the Artificial Intelligence Laboratory.
Three of the 43 phenotypes of moving robots developed by Mike Rinderknecht
Some possible robots created by Mike Rinderknecht, each with a distinct way of moving, are shown in the video below:
A movie compilation of some different models developed
through the Artificial Intelligence Laboratory
Before you begin[ download tutorial pdf (2.4MB) ] | [download Tutorial.rbt ]
This activity requires a working knowledge of some basic LEGO MINDSTORMS NXT-G programming concepts. In addition, it is important to be familiar with the use of the NXT brick and other hardware involved in building robots with the NXT, such as sensors and servo motors. The completion of this brief tutorial provided by the Artificial Intelligence Laboratory specifically for this project should allow for confidence in completing the activity below.
The activity[ download activity PDF (46 kB) ] | [ download OneMotor (126 kB).rbt ] | [ download TwoMotors (212 kB).rbt ]
Using LEGO MINDSTORMS software, the NXT brick, and a set number of LEGO pieces, a variety of locomotion methods can be explored through a relatively simple activity. The end goal of the efforts involved is to propel a robot forward, covering as much distance as possible in a specified amount of time. The programs involved are extremely sleek:
First, one motor is used in port B, moving in reverse at power level 75 to propel a creation forward. Many types of robotic movement can be used with this program, and optimization of these movements is achieved through changing the physical build of the robot rather than through complicated programming changes.
After using the single motor block to start making uniquely moving robots, a program with two motor blocks is used. This program involves both motors with power level 75, going backwards on ports B and C. These two motors control appendages of the robotic creature and are 180 degrees out of phase, meaning they alternate movement of the appendages attached to motors B and C. This creates an effect similar to how humans alternate movement between legs to propel themselves forward.
This sort of alternating movement makes moving across greater distances easier in a shorter amount of time. To test out this concept on yourself, try jumping forward with both legs as fast as you can across a room or down a hallway. Now, try alternating the movement of your legs by walking briskly, and try to cover the same amount of distance. Which method is faster?
Using the program with two motors, even more robotic creatures – some with realistic animal movements – can be easily built with some forethought as to how the robot should move. Should it slide, slither, trot, or bound? Any locomotion method chosen can be used as inspiration for a robot that can be propelled using the simple program TwoMotors.rbt, shown above. Below are some design examples that have been made and used with this program:
Three more of the 43 phenotypes developed by Mike Rinderknecht
After a prototype is built, it should be tested using the program and improved upon as part of the design process. At any point that the robot seems satisfactory, test it out and see if there is a way to improve upon it – can you make it faster, more durable? Can the robot be built with fewer pieces to achieve the same goal, without making it too unstable? Can the appendage(s) be placed differently to cover more distance? Should the appendages be changed a little or completely revised? With a little creativity and experimentation, it should quickly become apparent that there are endless possibilities.
Developed at the Artificial Intelligence Laboratory Department of Informatics at the University of Zurich in Switzerland.
For more information about this project, please visit Mike Rinderknecht’s website.