Escolar Documentos
Profissional Documentos
Cultura Documentos
The basic requirement for the project is to use some kind of a motor in
order to rotate both the arms. Two types of motors are considered in
order to perform this job.
• Stepper Motor
• Servo Motor
Differences
Various differences can be pointed out between both the motors, but
the solid reason for bending towards a servo is due to its position
feedback control. Usually a stepper motor easily serves the purpose of
a servo in these kind of robotic arms, as high rotations per min (rpm) is
not required. The stepper motor would probably be better than a servo
for a general robotic arm, where high speed is not a priority due to its
high holding torque nature and a comparatively cheaper cost.
Therefore, even though a stepper motor would be a better choice for a
non-industrial robotic arm, where high acceleration is not a priority,
the servo motor is considered for our project as it operates similar to a
stepper motor at low speeds but also provides positional feedback.
Servo
Outside the casing, all we see is, three wires coming out.
• Red – Power (+5V)
• Black - Ground
• White/Yellow (depending on the servo) – Coded Signal
Servo Wires
How Servo works
Torque Calculation
Gravity pulls down against any rotational arm with a torque of mass x
length of arm. So, take the torque provided by the motor, subtract the
torque created by gravity, and if the number is still greater than zero
the arm will move in the direction the motor is turning.
So in our case, we will need different servos at each joint of the arm,
i.e., two similar servos for both the arms at each joint. The gripper
would need the lightest servo, only depending on the weight of the
object lifted by the arm. But when it comes to the second joint from
the gripper, it should be powerful enough to carry everything above it
including the object, gripper and the weight of the material above it.
So in order to achieve this, that joint would require a stronger servo
compared to the one used at the gripper. It goes for the rest of the
joints below. The base servo would have to be the strongest in the
entire arm, while the gripper has the lightest.
Approximate Parameters
Acceleration required:
Gripper Servo 2: 50 deg/sec^2
Joint Servo: 50 deg/sec^2
Base Servo 1: 50 deg/sec^2
where,
Static Torque
Joint 0: M0
= 0 N.m (as it is not affected by gravity)
The torque for the 'user-controlled' arm at Joint 1 is lesser than the
'tracking arm' as it is not lifting the object. But in order to simplify the
calculations, similar servos are used in both the arms at Joint 1.
Joint 2: M2
= L2/2 * W4 + L2 * (W5+W6)
= (20.32/2)(0.98) + (20.32)(0.98 + 2.45)
= 0.7965 N.m = 8.12 Kg.cm = 112.78 oz-in
Joint 3: M3
= 0 N.m (distance is 0)
Dynamic Torque
Proposed Servos
Gripper:
Hitec HS-322HD Standard Heavy Duty Servo
(http://www.robotshop.ca/hitec-hs-322hd-servo.html) - $11.30
• Speed: 0.15 sec @ 60°
• Torque: 3.7 kg/cm – 51.38 oz/in
• Size: 40x20x36.5 mm
• Weight: 43 g - 1.51 oz
• Karbonite Gear
Wrist:
Hitec HS-322HD Standard Heavy Duty Servo
Link (http://www.robotshop.ca/hitec-hs-322hd-servo.html) - $11.30
• Speed: 0.15 sec @ 60°
• Torque: 3.7 kg/cm – 51.38 oz/in
• Size: 40x20x36.5 mm
• Weight: 43 g - 1.51 oz
• Karbonite Gear
Elbow:
Hitec HS-755HB Giant Scale Servo
Link (http://www.robotshop.ca/hitec-hs755hb-servo.html) - $31.34
• Speed (sec/60o): 0.23
• Torque (Kg-cm/Oz-in): 13.2/183
• Size (mm): 59 x 29 x 50
• Weight (g/oz): 110 /3.88
Base:
Hitec HS-805HB Giant Scale Servo
Link (http://www.robotshop.ca/hitec-hs805BB-servo-motor.html) -
$44.77
• Speed (sec/60o): 0.14
• Torque (Kg-cm/Oz-in): 24.7/343
• Size (mm): 66x30x58
• Weight (g/oz): 152/5.26
Base (rotating):
Hitec HS-805HB Giant Scale Servo
Link (http://www.robotshop.ca/hitec-hs805BB-servo-motor.html) -
$44.77
• Speed (sec/60o): 0.14
• Torque (Kg-cm/Oz-in): 24.7/343
• Size (mm): 66x30x58
• Weight (g/oz): 152/5.26
Software Design
The software design plays the most important role in this project.
Optimization has to be done to the maximum level in order to cut short
the delay between each servo communicating with the microcontroller.
The complexity level for controlling one servo or a sensor at a time
might not be that high, but when it comes to controlling upto various
number of servos and sensors, the compleity level definitely rises.
Tracking arm
Servo control
The next step is to test the servos by giving certain signals. This would
be done by connecting the servos of the ‘tracking’ arm to the digital
ports of the microcontroller and sending the desired signals. The
microcontroller then sends pulse widths varied between 1 ms to 2 ms
to the digital ports depending on the desired angle, which are then
converted to voltage by the pulse width to voltage converters on the
servos.
Ideally, the arm has to operate according to the signals sent by the
computer via the microcontroller.
Haptics
The testing principle for force sensors will be similar to the servo
control for the user controlled arm, due to the fact that the force
sensors on the tracking arm will be the input to the microcontroller
unlike the servos.
The signal wires from the force sensors will be connected to the analog
ports of the microcontroller to receive the varied voltage values
depending on the force exerted on them. These voltage values then go
through the ADC to get the corresponding pulse widths, which can be
sent to either the gripper or the elbow servos of the user controlled
arm. These varied pulse widths should then be displayed on the LCD
that is connected to the microconctroller for testing purposes.
Ideally, the pulse widths displayed should be varying even for the
slightest of the force.
Servo control
After the servos have been modified (to move freely using hand
controls and give positional feedback), the servo signal wires are
connected to the analog ports of the microcontroller. The
microcontroller then receives various voltages depending on the servo
movement, which are later converted to pulse widths using analog to
digital conversion. The pulse widths after the ADC are to be displayed
on the LCD that is connected to the microcontroller for testing
purposes.
Ideally, the LCD has to be displaying a change in pulse width even for
the slightest of the movements by the arm.
Haptics
This is the most crucial part in the project, where the servos of the user
controlled arm at the gripper and elbow joints should be programmed
to act as both input and output devices. As mentioned in the previous
section, all the servos are programmed to move freely sending the
position feedback, acting as an input device. But now the gripper and
elbow servos, should be able to act as an output device as well to
receive the force feedback. As of now, we are considering multiple
approaches for this part, as we do not know for certain which will work
the best with the highest accuracy.
The first logic we will try implementing for the gripper is to use the
servo angle of the tracking arm’s gripper to act as an input/output
device without using a force sensor. This will restrict the movements of
the user’s gripper depending on the tracking gripper’s position. The
analog voltage received from the tracking gripper is converted to pulse
widths through ADC, which is then passed to the user’s gripper. This
logic cannot be applied at the elbow joint, as it would work only if the
arm is lifting an object heavier than its maximum torque, and it starts
jittering. So this logic would not be implemented at the elbow joint as
we desire to feel any kind of weight even when its within the torque
range for the servo.
Overall System