0% found this document useful (0 votes)
96 views5 pages

Final Draft

Our manipulator arm has 3 degrees of freedom and was constructed using LEGO MINDSTORMS NXT components. It consists of a rotating base joint, lifting base joint, bending elbow joint, and claw, each controlled by an individual motor. We built the arm sections to be strong using Technic beams and tested them to withstand drops. The sideways-facing claw allows it to firmly grasp objects. Rubber bands and a counterweight system were added to counteract the arm's weight and improve stability.

Uploaded by

bleargh66
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
96 views5 pages

Final Draft

Our manipulator arm has 3 degrees of freedom and was constructed using LEGO MINDSTORMS NXT components. It consists of a rotating base joint, lifting base joint, bending elbow joint, and claw, each controlled by an individual motor. We built the arm sections to be strong using Technic beams and tested them to withstand drops. The sideways-facing claw allows it to firmly grasp objects. Rubber bands and a counterweight system were added to counteract the arm's weight and improve stability.

Uploaded by

bleargh66
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Building a Lego MINDSTORM Robot: A Manipulator Arm

William Du, Rachel Fang


Cosmos 2010 Cluster 5: Computational Biophysics and Robotics

A manipulator arm can perform arm like tasks. The manipulator arm that we constructed in robotics class
has 3 degrees of freedom, using the LEGO NXT system, including NXC code. See page 5 for a picture of
the completed robot.

I. Introduction construct a rectangular prism. In order to make them


stronger, we braced each arm section. A drop test from
A manipulator arm is a robot that can perform arm- five feet had no effect on each of the sections of the
like tasks that humans cannot carry out due to manipulator arm. In order to mount each section of the
inconvenience. Companies such as Schillings Robotics, a arm on a motor, Technic axel bars were placed at the
company based in Davis, California, commercially bottom of each of the sections so that there would be
produce manipulator arms. These commercial robots are maximum flexibility without modifying any main
technologically advanced and extremely powerful. structure.
Because of this, these arms are used in places where
Figure 1: The top arm section.
humans cannot go, such as the deep sea or highly toxic
areas. Inspired by these capabilities, we hoped to create
our own version of the manipulator arms. Our robot, built
using the Lego NXT system, is a smaller, scaled-down
version of these commercial systems showing how a
simpler, more economical version of the most high-tech
arms can act in less extreme environments.
The Lego NXT is a user-programmable robotics kit
that comes with a central command center known as the
brick. The brick can accommodate sensors that act like
the senses a human being would have. A touch sensor is
equivalent to a human’s sense of touch, while the
ultrasonic sensor can act as the eyes of the robot, etc.
Motors that may be attached to the robot can be used for
transportation or other motorized activities. The user can
program specific tasks into the brick, or the brain of the
robot. The NXT system provides an easy way to build
robots.
Our manipulator arm is comprised of two NXT
bricks that will control the four motors. The arm consists
of a rotating base joint, a heaving base joint, a bending
elbow joint, and a claw. An individual motor controls III. Building the Claw
each joint and the claw piece. A console that is attached to
the NXT controls the NXT. Combined together, the The claw is one of the most important parts of
manipulator arm is an extremely versatile robot. the manipulator arm; without it, the arm ceases to have its
In our report, we will cover building the individual functionality. It is composed of four claw pieces, which
parts, assembling, programming, and controlling the robot. we mounted onto a motor. Two pieces of the claw mount
onto either side of the motor so that they remain stagnant;
II. Building the Arm Sections the other two pieces mount onto the motor. The motor
mounts on the inside of the second section of the arm,
The bending arm sections are almost identical to sideways. Originally, the claw faced forward instead of
each other (See Figure 1). We constructed the sections so sideways, but this made picking things up more difficult
that the motor can be mounted in the center of each part. as the top part did not always hold down pieces well. For
This enables the joints to move freely and ensures that the example, when picking up a ball the bottom claw would
motors do not obstruct their movement. The sections knock the ball away when closing. After determining that
consist of four Technic 15M beams that run parallel to mounting the claw facing forward was unreliable, we
each other while two Technic 7M beams run at the bottom rotated the claw into a sideways position. Because of this
and two cross axel 10M rods run at the top. Together they

1
sideways position, the manipulator arm has a firm grasp
on many items and does not have issues with rolling or The base of the robot is essentially an extended
easily moved objects such as balls. The claw, a simple version of the base in the web instruction. Since two NXT
structure on the robot, needs to be orientated and placed bricks were used, the second brick was attached directly
in the right position in order to maximize the functionality above the first, with enough room in between to access
of the manipulator arm (See Figure 2). the buttons and screen. We found this construction to be
the simplest and most stable method of holding the bricks,
Figure 2: The current claw on the robot. compared to placing them back to back or stacking them
on their sides.

V. Assembling the Final Product

The final product was assembled base up. First,


we laid down the base layer, including the rotation motor.
Above that, we placed the lower segment of the arm. The
final piece we added was the upper arm, with claw
already intact. As the robot approached the testing stage,
it became obvious that the weight of the extended arm
was enough to lift the structure from the base. Not only
did this make the robot structurally unsound in picking up
heavy objects, it caused the range of the arm to fluctuate.
To counteract the weight of the arm, an extension was
IV. Building the Rotating Joint and the Base attached to the back of the arm to hold a counterweight
box. The box, filled with lead marbles, was heavy enough
The base and rotating gear design are adapted to make the leaning of the structure manageable without
from the instructions for a simpler robot arm found at causing it to tilt in the other direction when the arm was
http://www.nxtprograms.com/robot_arm/steps.html. i upright (See Figure 4). In addition to that, rubber bands
The main component that allows for one motor hook onto the arm pieces across the joints to counteract
rotation is a turntable (figure 3). In our robot, the turntable the weight penalties. Two large rubber bands were added
connects to the stationary segment of a motor, which is to the base, and a red band and blue band combined to
then connects to the base. The motor turns an eight gear hold the center the bottom structure (See Figure 5). Two
that then moves the turntable, powering the whole system. rubber bands stretch across the second joint (See Figure
Gearing down gives the system more torque, and thus 6). After the motors and control panel wires were
power, as well as allows for rotation that is more precise. connected to the correct ports, the final product became a
The motor powering the next joint was then attached to manipulator arm with 3 degrees of freedom.
the top half of the turntable, acting as the hinge
connecting the rest of the arm.
Figure 4: The counterweight system filled with lead marbles.

Figure 3: Turntable: one side of the gear moves independently of the


other.

2
Figure 5: The rubber bands on the first joint. was split into two programs, controlling two motors and
four sensors each.
Figure 7: the code to program the rotating base of the robot. While-
loops make up the core of the code so that the touch sensors can act as
remotes continuously. As long as one button is pressed, the motor will
rotate forward. When the other button is pressed, the motor will rotate
in reverse. A mutex is used so that the two commands will not conflict
with each other.

mutex rotate;
task rotate1()
{
SetSensorTouch(IN_2);
while(true)
{
Acquire(rotate);
while(SENSOR_2==1)
Figure 6: The rubber bands on the second joint. {
OnFwd(OUT_B,-50);
}
Off(OUT_B);
Release(rotate);
}
}
task rotate2()
{
SetSensorTouch(IN_1);
while(true)
{
Acquire(rotate);
While(SENSOR_1==1)
{
OnFwd(OUT_B,50);
}
VI. Programming and Controlling the Robot Off(OUT_B);
Release(rotate);
Relative to others, the programming of the }
manipulator arm is simple. Compared to pre-programmed }
actions, however, a “remote control” system is most
task main()
suitable for the arm. The function of the robot is to be {
able to perform in multiple situations, adjusting to any start rotate1;
angle or distance within its allowed range. Pre- start rotate2;
programmed actions, no matter how complex, would limit }
the arm to certain realistic, predictable scenarios. ii
To accomplish this flexibility, the program relies
on touch sensors to act as remote control buttons instead There were also custom adjustments made for
of making the robot do one specific task. For each of the each motor to compensate for the different functions.
four motors, two touch sensors are used (because of this Power in the rotation motor is set to the highest, since the
sensor port requirement, the bricks were connected to two weight of the whole arm is upon it; the other motors
motors each). Pushing down a sensor for one motor will generally run at a power of 10. Originally, all the motors
cause the motor to turn forward (causing the arm to rotate used had different power settings to account for the
or bend one way); pushing the other sensor cause the weight of the arm when outstretched or picking up objects.
motor to reverse (the arm will rotate or bend in the However, this was ineffective as the numbers would be
opposite direction). inaccurate once the weight or position of the arm changed.
The codes for the individual motors are the same, Additionally, the power required to lift the arm upright
with slight adjustments to account for other variables such when holding an object would cause the arm to slingshot
as weight. A general example for the control of one motor backwards if empty-handed.
is in figure 7. Since two NXT bricks were used, the code To fix this, the codes for all the motors except
for the rotation motor use the OnFwdReg(output, power,
OUT_REGMODE_SPEED) command instead of

3
OnFwd(output, power). Using the regulation command motor connections: we moved all three relevant motors to
eliminates the necessity to calculate how much power to an action onto the same robot to avoid the greater
apply in order to counter the weight of the arm when difficulty of using Bluetooth between robots.
stretched out. Since the motors automatically increase
power when rotation slows, the command is also more VII. Conclusion
flexible as it will adjust to situations such as picking up
heavier objects [cite]. It also allows the arm to move at a The finished robot is a balanced, remote
slower, more precise pace. The OnFwdReg() command is controlled robotic arm that user can manipulate to grab,
also used in place of the Off(output) commands on the lift, and move objects. With a rotating base and two
other motors, with power set to zero. This keeps the arm bending joints to increase its range of motion, a horizontal
in any outstretched position, preventing it from lowering claw to grab onto its target objects better and adjusted
due to gravity. programming to support heavier or larger objects, the arm
Though the remote program is the most is capable of a variety of tasks. It can be automated to
functional in using the robot for many purposes, we also perform tasks such throwing a ball. The remote system
compiled a few set actions for the robot to do in order to implemented allows for these freedoms and possibilities.
test the movement capabilities of the arm as well as our Though not as flexible, strong, or durable as its
programming skills as designers. As such, the robot also commercial, titanium-made counterparts, our manipulator
contains prototype programs for actions such as throwing arm defines some of the capabilities and uses these types
a ball. These programs required some alteration of the of robots have for simpler, everyday tasks.

4
Claw

Arm Section 2
Joint 2

Arm Section 1

NXT’s

Joint 1

Control Box 1 Control Box 2

Counter Weight

i
D. Parker, “Robot Arm,” NXT Programs, 2007. [online]. Available: http://www.nxtprograms.com/robot_arm/steps.html.
[Accessed: July 28, 2010].
ii
J. C. Hansen, Lego NXT Power Programming: robotics in C. Winnipeg, Manitoba, CAN: Variant, 2007.

You might also like