nxt lego mindstorms alpa rex

Introduction The Alpha Rex

 

 

Probably the most complex of the RoboCenter series of robots, both from the mechanical

 

design perspective and the software programming perspective.

 

The following discussion will concentrate on software programming of the Alpha Rex.

 

The program described below illustrates two advanced programming

 

 

lego mindstorms nxtLEGO Mindstorms NXT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

techniques: state machines and abstraction.

 

A state machine design handles basic movements

 

such as tilting side to side and

 

striding the robotís feet forward and backward.

 

 

Abstraction handles combining the basic movements into more complex movements,

 

such as walking forward and turning right and left.

 

The inspiration for this program comes mainly from sources other than the

NXT lego Mindstorms

RoboCenter software examples for the Alpha Rex.

 

The RoboCenter examples perform basic movements such as walking forward and turning.

 

However the examples are rather inadequate when it comes to combining basic movements

 

into more complex movements, such as having your Alpha Rex move in a figure eight pattern.

 

Furthermore, including such functionality as having the Alpha Rex walk around avoiding

 

obstacles behooves the application of more advanced programming techniques.

 

The following sections describe these techniques in much more detail.

 

The final section, following the description of these techniques, presents the development

 

of a complete program for avoiding obstacles.

 

 

Abstraction In short, abstraction in software design means designing software according to

 

a hierarchal approach that begins with basic building blocks and ends with

 

complex programs built from basic building blocks.

 

For example, the Alpha Rex program begins with basic building blocks for tilting the

 

robot side to side, and moving the robotís feet forward and backward.

 

The second level of abstraction combines these basic building blocks into routines that

 

perform such movements as: walking forward, walking backward, turning right, and turning left.

 

The third level of abstraction uses these building blocks to do something practical, such as have

 

the Alpha Rex walk in squares, or move about avoiding obstacles.

 

Microsoft Windows provides a classical example of abstraction.

 

At the lowest level of Windows we find the Microsoft Hardware Abstraction Layer (or HAL).

 

The HAL contains all the drivers that actually operate all the hardware in your

 

computer: memory, disk drives, USB ports, keyboard, monitor, etc.

 

(Use the Windows Device Manager to see all the hardware drivers in your PC.)

 

The Alpha Rex mechanical design falls into a category referred to by robotics hobbyists as a toddler biped.

 

Generally speaking a toddler robot uses only two servos for movement, like the Alpha Rex.

 

One servo shifts the robotís weight from one foot to the other foot.

 

The other servo moves the feet backward and forward.

 

Efficiency and economy in programming dictates that these basic movements link together

 

seamlessly to provide more complex movements, such as walking forward, or turning right.

 

Seamless movement, from a programming perspective, requires that movements do no

 

t depend on other movements. Seamless movement means that a composite movement,

 

such as tilting left and moving the right foot forward, may be combined together without the

 

programmer needing to concern themselves with the

 

details of servo position, direction of rotation, and amount of rotation.

 

The composite movement routines, described below, make use of two basic building

 

blocks: a routine for tilting the robot side to side, and a routine to move the robotís feet back and forth.

 

In the case of the Alpha Rex the components are the robotís two legs, which have two

 

degrees of freedom in the way they can move: shifting the weight of the robot from one leg to the other,

 

and moving one leg forward at the same time moving the other leg backward.

 

The rotation sensors built into the NXT motors allow them to work very nicely as servo motors.