Edp Report - Haptics Device For Telepresence

  • Uploaded by: Vipul Potluri
  • 0
  • 0
  • July 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Edp Report - Haptics Device For Telepresence as PDF for free.

More details

  • Words: 10,573
  • Pages: 38
Engineering
Design
Project
2009
 Haptic
Device
for
Telepresense
 Robotic
Arm
Motion
Tracking
 haptics‐telepresence.wikispaces.com


UMAIR
NIAZ
 VIPUL
POTLURI
 DARYL
YAMSON
 




1


Table of Contents

1.0 Objective

3

2.0 Introduction

3

2.1 General Block Diagram 2.2 Technical Specifications 3.0 Design

5

3.1 Microcontroller

5

3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6

5 6 6 7 8 8

Selection Criteria Summarization for selection factors List of MCU considered Arduino Duemilanove Evaluation Additional Add-ons

3.2 Actuators 3.2.1 3.2.2 3.2.3



4 5

10 Selection Criteria Servo Motor Torque Calculation

10 10 12

3.3 Robotic Gripper

13

3.3.1 3.3.2 3.3.3

13 14 14

Selection Criteria Gripper Specifications Approach

3.4 Haptic Functions

14

3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8

14 15 15 16 16 17 17 19

Selection Criteria for force sensing Force Sensor Specifications Approach for gripper haptics Approach for elbow haptics Selection Criteria for collision sensing Collision Sensor Specifications Approach for collision detection Distance calculation



2


3.5 Power Supply 3.5.1 3.5.2 3.5.3 3.5.4

Voltage Regulation Minimum Power Requirement Proposed Power Regulation Design Theory of operation

3.6 Software 3.6.1 3.6.2 3.6.3

19 19 20 20 21 22

Tracking arm User controlled arm Overall system

22 23 24

4.0 Design Challenges

24

5.0 Conclusion

25

6.0 References

26

7.0 Appendix A – Torque Calculation

27

7.1 Parameters chosen 7.2 Static Torque 7.3 Dynamic Torque 7.4 Proposed Servos 7.5 Servo Modification

27 29 29 30 31

8.0 Appendix B – Force Sensors Calculations

33

8.1 Circuit 8.2 Gripper Calculations 8.3 Elbow Calculations 8.4 Maintenance and Operation

33 33 34 35

9.0 Appendix C – Prototype

37

Appendix D – Materials

38

10.0





1.0

3


Objective

Our main objective is to build a robotic arm to implement several Haptic functions. This report outlines the objective and purpose of our engineering design project. The requirements and materials needed shall be discussed in further detail as well as its functions. We first have to build two separate 4-DOG (degrees of freedom) robotic arms that duplicate each other’s motion. Both of them must be essentially identical in terms of components used. Initially, the ‘tracking arm’ mainly follows the motion of the ‘usercontrolled’ arm. As soon as building the two robots is completed, we then can proceed on implementing several haptic functionalities to our robotic arms. The two haptic functions that we would want to realize are: to feel a gripping sensation on an object, to feel the weight of an object, and to feel a restrictive movement due to a possible incoming collision from the sides of the “tracking” robotic arm. When we incorporate haptics to our robots, the ‘user-controlled’ arm should now also track the movements of the ‘tracking arm’. The ‘tracking’ robotic arm’s gripper should be capable of sending a force feedback to the ‘user-controlled’ gripper. This in turn enables the user to feel a haptic sensation on his/her fingers. Likewise, similar logic will be applied to enable the sensation of lifting an object. The elbow of the ‘user-controlled arm’ should also track the elbow of the ‘tracking’ arm. The ‘tracking’ robotic arm should also possess a collision detection capability. In case of incoming collision, the base rotational motion of the ‘user-controlled’ arm should stop moving in the direction of impact. This will give the user a non-movement feedback. However in the interim, adding collision sensors is an optional part of our project. The above objectives must be done in real-time with very minimal delays or lags. Ideally, both arms are required to be moving very smoothly without jitters.

2.0

Introduction

Robotics has profound cultural roots. Over the course of the centuries, human beings have been constantly seeking substitutes capable of mimicking human behavior and sensing various interactions with our surroundings. In 1965, the Computer Graphics pioneer Ivan Sutherland, envisioned the building of an “ulti-mate display”, a multimodal synthetic environment, which included force and feedback [1]. He was one of the first researchers to realize the significance of the sense of touch, especially for the enhancement of virtual worlds. As the philosopher Bertrand Russell put it in [2]: “it is touch that gives out sense of “reality”…Not only our geometry and physics, but out whole conception of what exists outside us, is based upon the sense of touch.” Nowadays, multimodal human-machine interfaces have been established as one of the most important fundamental components of information technology in the 21st century. They already have decisive impacts on all areas of our professional and private life, for





4


example covering everyday communication, manufacturing, trade, financial services, health care and entertainment. In recent times, the importance of sense of touch for human-computer interaction has finally been realized and it is widely believed that haptic interfaces will be a major improvement for human-system interaction. Nevertheless, although the need for highdefinition haptic systems has clearly been identified, up to now no haptic system has been created that is used on a day-to-day basis. This is due to the fact that haptic technology is still at its infancy and most of these devices are still just expensive prototypes. The word ‘Haptics’ is derived from the Greek word ‘haptesthai’ which literally means ‘to touch[3]. Haptics interface, therefore, gives the illusion of touching one’s surroundings. The word ‘surroundings’ may refer to a real physical object but in a remote location or a virtual object in a computer program. There are many types of Haptics interface, such as Machine Haptics, Computer Haptics, Multimedia Haptics, etc. In our project, we will be applying haptics interface that includes humans in the loop, referred to as Human haptics. The idea is to make one of the robotic arms controllable by a human and the second arm follow the user’s instructions. 2.1



General Block Diagram



5


2.2 Technical Specifications: • • • • • • • • • •

Microcontroller – Arduino Duemilanove ATmega328 MCU Philips HEF4051B MUX/DEMUX FlexiForce A201 Force Sensor Devantech Ultrasonic Range Finder SRF05 Hitec HS-422HD Standard Heavy Duty Servo Hitec HS-755HB Giant Scale Servo Hitec HS-805HB Giant Scale Servo Switching regulator – National Semiconductor LM2575 ATX Power Supply Unit (PSU) Switching regulator - 3 Amp Adjustable Switching Regulator (DE-SWADJ 3)

3.0

Design

3.1

Microcontroller

3.1.1

Selection Criteria

Microcontrollers come in various ranges, from low-power, small architecture to highly sophisticated high-speed processor core. The selection is therefore, dependent on the specific application. We look at the amount of memory required, number of I/O pins, communication interfaces, programming language, ADC and DAC pins, and input and output capture requirements, voltage supply, etc. Also, the MCU must be able to process data in real-time, thus it must be capable of multitasking. Microchip Technologies Inc.1 suggested following factors while selecting the microcontroller: Microcontroller speed (MIPS, clock speed for communications channels, etc.): Our project will implement tele-presence using haptics. To smoothly feel the illusion of haptic interaction it has been shown that the refresh rate must be at least 1 [kHz] [5]. Thus, we need a MCU which runs at clock speed higher than 1 [kHz]. • Memory sizes (program memory/ Flash, RAM, data EEPROM): Memory size will depend on the implementation of our project; though, it will not be a major issue as today’s MCU integrate enough memory for program storage and stack management. • Number of I/O pins required: Number of I/O pins is on the other hand is major issue. We require enough number of I/O pins to integrate all the actuators (servos in our case) and torque/force sensors. We will be using at least six servos and two torque/force sensors. We will also need to integrate collision sensors as well in each of robotic arms. Keeping that in mind we need more than 10 dedicated I/O pins. We need to further refine our model to conclude on exact I/O pins. • Peripherals needed (ADC, Input Capture, Output Compare, Motor Control PWM, SPI™, UART, etc.): In order to process data we need ADC, to communicate and to load developed program to flash memory we need UART (standard communication 























































 •

1
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2127¶m=en023431






6
 interface), to control speed of servos we need enough number of CCP pins, where duty cycle of the pulse regulates the speed of servo. Physical size (form factor/package): Physical size is important once we need to commercialize our project, but we are in implementing and testing phase and it is not our primary concern. Analog Input Voltage levels: This will depend on voltage level of servos and sensors. If the voltage levels are low or out of range we need an implement amplifier to operate in proper voltage range. MCU architecture: MCU architecture comes in 8, 16, 32, and now in 64 bit. But 8bit MCU architecture is enough for out project since our project is implemented on a small scale and does not require extensive computation, as 16-bit and 32-bit architecture would be implemented in automobile and digital signal processing application. Software development choices: Software can be developed using numerous programming languages and different MCU manufacturers have their own choices as well. We as a team prefer C programming language or its derivative since we are most familiar with it and also it has wide debugging support. Providing power to peripherals: To provide power to peripherals we need dedicated power supply in order to allow clean, smooth, and regulated power. Single power from MCU is a bad choice since there is threshold on current supply. Therefore, we will use a dedicated power supply to provide necessary power to all peripherals. Cost: Finally the cost of the MCU will be bottleneck since we need to keep within our budget or better stay below. Obviously we can buy MCU, which adheres to our requirement, but it may cost a lot more. Sacrificing on our needs for cost and coming up with engineering solution with limited resources is one of implicit purpose of this project.

• • •







3.1.2

Architecture

8 bit

Operating Frequency

>1 KHz

Memory

>15 KB

Digital Communication Peripherals

Serial Communication (RS232, USB), Wireless Protocols (optional)

Capture/Compare/PWM Peripherals

Ideally 10 PWM (Output Compare or DEMUX can be used as well)

Analog Input

Ideally 10 (otherwise we need MUX)

Physical Size

Small to Medium

Cost

<$100

Programming Language

C programming language

3.1.3 • • • •



Summary of Selection Criteria

List of MCU Considered Microchip PIC18 MCU - PIC18F8628 Arduino - Arduino Duemilanove Actel - Core8051 Cypress Semiconductor - CY3687 MoBL-USB FX2LP18 Development Kit


 3.1.4

7
 Verdict

As stated before, for a given price we can buy the best MCU and evaluation board but we are constraint by our budget. The engineering solution is to employ as much ingenuity possible while remaining within the limited resources. Every MCU in list above was evaluated in the light set rules. After evaluation, we selected Arduino Duemilanove MCU evaluation board because it is the least expansive of one’s discussed previously and more or less fulfills our requirement with additional add-ons, i.e., we need a MUX and DEMUX in order to accommodate all servos and sensors. It is not possible to include evaluation content for every MCU in this report for brevity. For comprehensive evaluation please visit our wiki page. Therefore, only Arduino Deumilanove MCU board is evaluated below. 3.1.4

Arduino Duemilanove

Evaluation Board

Arduino Evaluation Board Summary of Features Microcontroller

ATmega328

Operating Voltage

5V

Input Voltage (recommended) 7-12V



Input Voltage (limits)

6-20V

Digital I/O Pins

14 (of which 6 provide PWM output)

Analog Input Pins

6

DC Current per I/O Pin

40 mA

DC Current for 3.3V Pin

50 mA

Flash Memory

32 KB (Atmega328) of which 2 KB used by bootloader

SRAM

2 KB (Atmega328)

EEPROM

1 KB (Atmega328)

Clock Speed

20 MHz



8


3.1.5

Evaluation

All the required specifications for choosing a microcontroller for our project were met by the Arduino Duemilanove Atmega328 microcontroller. All the specifications for the board to match our needs can be evaluated as follows: •





• • • • • 3.1.6

Microcontroller speed (MIPS, clock speed for communications channels, etc.): This MCU runs at 20 MHz [6]with throughput of up to 20 MIPS. It definitely is enough for our application and haptic implementation, as we require at least 1 MHz refresh rate. The memory sizes (program memory/ Flash, RAM, data EEPROM): It supports 32 KB flash memory of which 2 KB is for bootloader, therefore, there is 30 KB of memory available for storage. The available memory is enough for our project. The number of I/O pins required: There are total of 20 I/O pins, of which 14 are digital and 6 are analog. The 14 digital pins can be set to either be input or output. Also, 6 pins out of 14 digital for dedicated PWM output. We require at least 10 dedicated PWM and analog input pins since we are using 10 servos. Also, we would need some extra pins for collision sensors. Therefore, we need to use MUX and DEMUX to achieve our functional needs. Peripherals needed (ADC, Input Capture, Output Compare, Motor Control PWM, and SPI™, UART): This particular MCU supports serial communication, such as through RS232. PWM requirements are discussed above already. Physical Size (form factor/package): The board's dimensions are 2.7x2.1 inch. This is a small PCB and is suited to practical purposes. Analog Input Voltage Levels: The operating voltage range is 7-12 V. Also, the Arduino takes 5 V input through analog input pins. We would be scaling circuit if the input voltage is not 5 V. Programming Language: Arduino uses its own functions but it is based on C language, which is our preference. Cost: This evaluation board costs CAD $49.9. This is very well priced and well within our budget. Additional Add-ons

Arduino Duemilanove incorporates ATmega328 MCU. ATmega328 MCU has 20 I/O pins, of which 14 are digital I/O pins, of which further 6 can be used as dedicated PWM pins, and 6 as analog input pins. We need to design an approach to accommodate the required number of I/O pins as we are using 10 servos. To accommodate all servos, it is not feasible in ATmega328 MCU. Therefore, we need to employ MUX and DEMUX to fulfill our requirement. The proposed functional design is given below. At the input end, there are only 6 analog input pins. In the design below, the input 2 servos are connected directly to Analog IN 1 (A1) and Analog Input 2 (A2). While all other servos are connected through 8-Channel MUX to Analog IN 3 (A3) where through logic table it is decided which of the servos in active. The read action must be very quick in order to counter transition lag. The decision logic is implemented through 3 Digital IN pins (D12,





9


D13, and D14) as an example. This approach leaves us with 3 free Analog IN pins. Similarly we will use DEMUX at the output end. Though we have much more leeway since there are 14 digital I/O pins, we want to conserve as much pins possible for the of use sensors. Therefore, 2 PWM pins are connected to 2 servos and other PWM pulses are transferred through 8-Channel DEMUX. All remaining 8 servos can be accommodated this way through logic decision from 3 Digital IN pins (D9, D10, and D11) in this example. This way we conserve 5 Digital I/O pins for other uses.

Proposed Design for MCU with Servos

The proposed design for the MUX/DEMUX and MCU interaction can be seen in the figure above. With this approach 5 digital I/O and 3 analog input pins are free and available in order to connect various sensors including the force sensors and collision sensors.





10


3.2

Actuators

3.2.1

Selection Criteria

The basic requirement for the project is to use some kind of an actuator in order to make the rotation of the arms possible. Two types of motors are considered in order to perform this job. •

Stepper Motor: A stepper motor works with permanent magnets, which are attached to the output shaft. Around the body of the motor is a series of coils that create a magnetic field that interacts with the permanent magnets. When these coils are turned on and off the magnetic field causes the rotor to move. As the coils are turned on and off in sequence the motor will rotate forward or reverse.



Servo Motor: A servo motor basically operates using pulse signals from the microcontroller. The output shaft is then controlled according to the pulse widths of the signal received by the microcontroller.

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. 3.2.2

Servo

A servo consists of several internal main parts: • The motor • Gearbox • Position Sensor • Error Amplifier • Motor Driver • Circuit to decode the requested position It can be seen in the figure below that three wires are coming out. • Red – Power (+5V) • Black - Ground • White/Yellow (depending on the servo) – Coded Signal





11


Servo Motor Block Diagram

Servo Wires

The servo consists of an output shaft. This shaft can be positioned to specific angular positions by sending the servo a coded signal. As long as the coded signal exists on the input line, the servo will maintain the angular position of the shaft. As the coded signal changes, the angular position of the shaft changes. This coded signal is a pulse of varying length approximately every 20 msec. The length of the pulse is usually 1 or 2 milliseconds depending on the desired angle. Servo Control The signal controlling a servo can be supplied by the microcontroller in two ways: • •

Pulse Width Modulation (PWM) Timers

Usually, PWM generators are most commonly used due to less complexity in software algorithms. They usually operate by generating an accurate pulse between 0% and 100% duty cycle. But a single PWM generator would not be sufficient to control all the servos. So the microcontroller chosen is capable of providing sufficient PWM generators in order to control all the servos. The control wire is used to communicate the angle. The angle is determined by the duration of a pulse that is applied to the control wire. This is called Pulse Coded Modulation. The servo expects to see a pulse every 20 milliseconds (.02 seconds). The length of the pulse will determine how far the motor turns. A 1.5-millisecond pulse, for example, will make the motor turn to the 90-degree position (often called the neutral position). If the pulse is shorter than 1.5 ms, then the motor will turn the shaft to closer to 0 degrees. If the pulse is longer than 1.5ms, the shaft turns closer to 180 degrees.





12


Pulse Variation for Servo Control The control pulse is fed to a pulse width to voltage converter. This circuit charges a capacitor at a constant rate while the pulse is high. When the pulse goes low, the charge on the capacitor is fed to the output via a suitable buffer amplifier. This essentially produces a voltage related to the length of the applied pulse. The circuit is tuned to produce a useful voltage over a 1ms to 2ms period. The output voltage is buffered and so does not decay significantly between control pulses. A sensor, usually a potentiometer, reads the current rotational position of the output shaft, which produces a voltage that is related to the absolute angle of the output shaft. The position sensor then feeds its current value into the Error Amplifier, which compares the current position with the commanded position from the pulse width to voltage converter. In order to record the current position of the servo, all we need to do is to connect a wire to the potentiometer to read the voltage values at all positions. These readings can be sent to the ‘tracking’ arm to move accordingly. 3.2.3

Torque Calculation

The approximate torque required at each joint has to be calculated initially to choose the best servo required. The servos available in the market are usually denoted in the units ‘oz-in’ or ‘Kg-cm’. If we consider a basic light servo with 3.2 Kg-cm; it means that if there was a horizontally oriented weightless robot arm 1cm long and a 3.2 Kg weight applied on the end, the servo could keep the arm straight. If it was a load of 3.1Kg, the servo could accelerate the arm with 0.1 Kg-cm. of torque. If it were a 3.3 Kg weight, it would move downwards with a torque of 0.1 Kg-cm, despite the servo's best efforts. If gravity is not a factor (ie, not lifting against gravity), it would accelerate the mass at a rate of Torque / (mass x distance^2) rotations/second. 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 




13


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. The torque at each arm is then calculated considering the individual forces at each joint. Worst-case scenarios are considered for all the joints during the torque calculation to make sure that arm would not jitter for weights below 200g. The proposed servos can be seen in the appendix section, which were calculated accordingly with the torque calculations.

3.3

Robotic gripper

3.3.1

Selection Criteria

There are several models of robotic grippers available. We are to find a gripper that can accommodate a reasonably sized object. The gripper must able to support at least two mechanical movements (gripping and wrist rotation). It should also be easily connected to two separate servos to implement both mechanical movements. After further research, the Lynxmotion Gripper is best suited for our design project. Selected gripper: Lynxmotion Robotic Gripper SG-01

Lynxmotion Robotic Gripper SG-01 3.3.2 • • • •



Gripper Specifications Maximum accommodated object thickness is 1.3 inches. Supports a maximum of two mechanical movements all at the same time (gripping and wrist rotation). Can be easily connected to two separate servos (one for each mechanical movement). Compatible with several HiTec servo motors like the HS-422, HS-322, HS-325, etc.



14


3.3.3

Approach

Each robotic arm shall have one gripper each. The gripper on the user side is used to control the gripper of the second arm. A mechanism shall be added on the gripper so that the user can slide his/her two fingers and commence controlling both robotic arms. The Servo Gripper SG-01 can be directly connected to a maximum of two servo motors. One motor is used to open and close the gripper and the other to rotate the wrist.

3.4

Haptic Functions

The primary objective of our robotic arm project is to introduce the haptics technology into it to get the virtual ‘feel’. The following are the haptic functions that we would want to achieve: • • •

Haptic sense to feel the solidity of the gripped object Haptic sense to feel the weight of the lifted object at the elbow Haptic sense to feel the incoming collision

Haptics to feel a gripped object There are many types of sensors available that can be used to implement the haptics of gripping an object. Each one of them has their own specialty and functionality. We are to find a sensor that is to be placed on the gripper of our robotic arm. This sensor shall detect if the robotic gripper has gripped an object. 3.4.1

Selection Criteria

The following are the requirements that need to be considered: • Measures load and force with reasonable range (in lbs) • Flexible material that can be easily attached to the gripper • Rigid material that can sense various shaped objects • Reasonable price Proximity sensors cannot be used since they detect objects at a distance. Slip sensors also have a different functionality as it detects shear force. Furthermore, force sensors measure force or load. There are two general classifications of force sensors: hard and thin film sensors. The former (e.g. Phidgets Force Sensors) are not suitable for robotic grippers as they are not flexible and are bigger in size. Thin film sensors on the other hand are lighter, smaller, and flexible, although some are still only optimized for human touch (e.g. Interlink Force Sensors). Taking into account all the requirements for selection, the Parallax FlexiForce Sensor, which is a thin film force sensor, is best suited for our design project Selected sensor: FlexiForce A201 Force Sensor





15


3.4.2 • • • • • • • 3.4.3

Sensor Specifications Thickness: 0.008” Length: 8” Width: 0.55” Sensing area: 0.375” diameter Connector: 3-pin male square pin Response time: < 5 microseconds Force range: 0 – 25lbs Approach for gripper haptics using a Force Sensor

The force sensor will be placed on the robotic gripper of the output side. It will measure the pressure that the gripper applies to the object. When a pre-selected threshold pressure is attained, the user must no longer be able to command the gripper to close any further. This pressure must be enough to lift the object and to not damage it. Consequently, this non-closing movement of the gripper would make the user feel that he/she has grabbed an object. The maximum pressure that the gripper applies to the object will be around 5 lbs. before it stops closing. This value may change during the testing process. When the force sensor has no load, its resistance is very high (>5MΩ). When a force or load is applied, the resistance decreases. This resistance is measured by connecting an ohmmeter to the two outer pins. This device is designed such that force is inversely proportional to the resistance. Conversely, force is directly proportional to conductance (1/R). A table must be completed to test the precision of the A201 Force Sensor. Resistances are to be measured with respect to various sample forces. Conductance is then calculated from these resistance values (G=1/R). If the device is working correctly, the plot of conductance vs. force should be linear and should show a straight line with a positive slope as seen below.

Resistance vs. Force variation





16


Haptics to feel the object's weight The second haptic function of our design project is to let the user feel the weight of an object being lifted. In addition, the user must be able to distinguish which object is heavier if not lighter. We will have at least two test objects with different weights. 3.4.4

Approach for elbow haptics using a Force Sensor

Our approach in implementing weight haptics on our project is to use a similar force sensor as above. We are to place it on a strategic place where the movements of the elbow arm touch the force sensor. This sensor is to be placed on the elbow joint of the output robotic arm. The varying pressure readings of the force sensor will serve as an input mechanism to the robotic arm of the user side. The force sensor will be connected to a force to voltage circuit. This output voltage will then be read by the microcontroller. Depending on the voltage reading, the microcontroller shall send a signal to the user elbow servo to lower down the arm. This will counteract the lifting movement of the robot applied by the user. As the user rises up the arm, the servo keeps going down with a rate relative to the force sensor measurement. This then is our mechanism to let the user feel an objects weight. We can use the elbow servo as both input and output device by setting up specific times for each. For example, we first send a pulse to the elbow servo so that it can function as an input device. Right immediately, a second pulse is sent so that it can now function as an output device. This process will then repeat. It is worth noting that the time in between pulses must be low enough so that the user will have a more continuous feel with the robots. Haptics to feel possible incoming collision The functionality of a collision sensor can be found in various types of sensors like force sensors, proximity sensors, distance sensors, IR sensors, and range finders. However, not all of them may be suitable for our robotic arm project. 3.4.5

Selection Criteria

The following are the requirements that need to be considered: • Range distance: the range distance must be reasonable enough, low "minimum sensing distance" and reasonable "maximum sensing distance" • Connection: information regarding connecting and programming the sensor must be sufficient. • Price: reasonable price. Force sensors should not be used in this part of our project as they only detect collisions as it happen and not prior. Proximity sensors also tend to be more specific on the object's characteristics (e.g. plastic or metal). Most contact and proximity sensors are only used to detect human fingers. Distance sensors seem to be advantageous because they can output





17


a voltage reading based on the distance of the object. This reading can be converted to distance by means of scaling and proportion. The problem however is that most distance sensors has a very high sensing range (e.g. 4" - 30"). A lower "minimum sensing distance" is needed. On the contrary, most Infrared sensors either have a very small "maximum sensing distance (e.g. Maximum of 6 mm) or a high judgment distance (e.g. 40cm). The last option is to use range finders, which tend to offer more options depending on the distance range that is needed. Taking into account all the requirements for selection, the Devantech Ultrasonic Range Finder SRF05 is best suited for our design project. Selected sensor: Devantech Ultrasonic Range Finder SRF05

This sensor determines the distance of an obstacle within sonar field of view. LED status indicator then blinks when the sonar fires. It can be used to control servo motors based on an obstacle’s distance and they use only a single pin for both trigger and echo. 3.4.6 • • • • • • • • 3.4.7

Sensor Specifications Length: 43 mm Width: 20 mm Height: 3–4 cm Range Distance: 1cm – 4m Interface: Positive TTL level signal width proportional to range Power requirements: 5V and 4mA Frequency: 40 KHz Trigger pulse: 10us at least Approach for collision detection

The SRF05 sensor will be placed on important locations of the output robotic arm. Object detection by one or more of the sensors will translate to a restrictive movement on the respective joints of the robotic arms (both user and output side). We are to put at least two sensors, one for each side, of the second arm. In other words, the sensor will detect any possible collisions to the right or to the left of the robot. Initially, we have





18


decided to set the threshold distance of 5 inches. So the presence of any obstruction that is within 1 cm to 5" of the robot shall restrict movement in that direction. The SRF05 has two modes of operation. Mode 1 - Separate Trigger and Echo This mode uses separate trigger and echo pins. To work on this mode, the Mode pin is left unconnected.

2-pin Trigger Echo Mode

Sensor Timing Diagram

Mode 2 - Single pin for both Trigger and Echo This mode uses a single pin for both trigger and echo signals, therefore, saving valuable pins on microcontrollers. To work on this mode, the Mode pin is connected to the 0V Ground pin. The SRF05 will wait 700uS after the end of the trigger signal before raising the echo line. This wait time should be enough to ready the measuring code and switch the function of the pin into echo.

1-pin Trigger Echo Mode



Sensor Timing Diagram


 3.4.8

19
 Distance Calculation

A 10us pulse is supplied to the trigger input to start ranging. The SRF05 will send out an 8 cycle burst of ultrasound at 40KHz (at the speed of sound) and the echo line is raised to high. After sending out the sonar, the SRF05 listens for an echo and as soon as it detects one, it lowers the echo line. The echo line is a pulse whose width is proportional to the distance of the object from the sensor. If nothing is detected after 30ms, the echo line is lowered. Since the echo pulse is proportional to distance, we can determine the distance of the object. Considering the width of the pulse is measured in us, then dividing by 58 will give the distance in cm, or dividing by 148 will give the distance in inches. The time in between triggers must be 50ms. This is to make sure that the previous emitted sonar will not overlap with the next one. The other 5 pins on the opposite side of the SRF05 are not to be used or connected. They were used only once during manufacturing to program the flash memory on the PIC16F630 chip. Beam Pattern The beam pattern above is the blueprint of the sonar being emitted by the sensor.

3.5

Power Supply

Efficient power supply is the cornerstone to the success of robotic project. It provides the power source to servo motors. Just using battery will not do the job. In fact, there are some rules that need to be taken under consideration before making continuing. We need a circuit that regulates desired voltage, supply the required amount power at all times, and allow for additional special requirements of particular application2. 3.5.1

Voltage Regulation

For efficiency, optimally it would be best to use a power source slightly above the desired voltage input required. However this is rarely easy or even feasible. Different electronics require different voltages. A MCU will require 5V, the servo motors perhaps 12V and a voltage amplifier perhaps both 20V and -20V. Batteries are never at a constant voltage. A 6V battery will be at around 7V when fully charged, and can drop to 3-4V when drained. This below image shows how a typical battery voltage changes over time. 























































 2
http://www.societyofrobots.com/schematics_powerregulation.shtml






20


Typical Battery Life Chart To correct for this, an IC module called a voltage regulator is used. What a voltage regulator does is take any input voltage and outputs a regulated voltage. So if the battery is at 7V, then a 5V regulator will output 5V and rest will dissipate as the unused energy/heat. To calculate wasted power, use this equation:

Since MCU and sensors typically do not consume that much current, the wasted energy isn't that much. But for motors, this can be a huge problem. We do not want to over voltage them, but to regulate the voltage is a huge waste of energy. To correct for this, instead is switching regulator used. They act just like a voltage regulator in terms of output, but are much more efficient. 3.5.2

Supply a minimum required amount of power

The total power required for the servos has to be below the maximum amount the power circuit can supply. If power drops even for a fraction of a second below what the servos require, things like the MCU could reset, or sensors would give bad readings, or motors won’t work very well. The rule of thumb is: energy required by robot < energy battery can supply To solve this problem, we determine how much total power servos will require by experimenting, calculating equations, and looking up datasheets of the servos and other parts used: power = voltage x current 3.5.3

Proposed Power Regulation Circuit

The proposed power regulation circuit has the following additional features: Short circuit protection, regeneration, negative voltages and noise protection





21



 Main Components used: • • 3.5.4

Proposed Power Regulation Circuit

ATX Power Supply Unit (PSU) Switching regulator - 3 Amp Adjustable Switching Regulator (DE-SWADJ 3) Theory of Operation

We proposed ATX PSU as power source because it is relatively cheap. Along with that we get huge current outputs, short-circuit protection, and a very good voltage regulation. Generally PSU give 5 V, 30 A, and 12 V, 12A, supply. These rating can easily replace standard lab power supply. In order to convert PSU to our power supply, we need to first identify which wires are 5 V, 12 V, and GND, etc. The 5 V rail can be used as it is since it already regulated to 5 V. In addition to that we proposed an additional fuse, on/off switch, LED, and a capacitor to take out any transients. The 5 V supply will provide power to MCU and sensors. On the other hand, the 12 V rail need to be regulated to around 6~6.5 V to provide power to servos. Its schematic is identical to 5 V except it has an additional switching regulator. The switching regulator is similar to regular voltage regulator but it is much more efficient. A regular voltage regulator may burn and melt due to overwhelming power requirement. This is where switching regulator comes. Before choosing the switching regulator, we found the total power consumed in worst case and it was about 93 Watts for all 10 servos. We propose 3 Amp Adjustable Switching Regulator from Dimension Engineering, model DE-SWADJ3. It should be





22


ideal for our application as it provides maximum of 25 Watts and an adjustable output voltage from 3 to 13 V. Using this switching regulator with four 12 V rails should provide ample power to the servos.

3.6 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. 3.6.1 Tracking arm Servo control Initially, a continuous signal of 1ms/20 ms duty cycle (‘1ms’ might vary depending on the servo) must be provided by the microcontroller to all the servos in order to function, which is provided by the pulse width modulators on the microcontroller. The 1ms pulse width would make the servo stay constant at a particular angle carrying the maximum load depending on its torque. 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.





23


3.6.2 User controlled arm 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. The second logic would be the implementation of a force sensor on the tracking gripper and the elbow to detect the exact force acting, which is later converted to voltage. This voltage is then converted to pulse widths through ADC, to be passed to the user’s gripper. These pulse widths are then sent though the signal wires which were initially connected to the servo prior to the modification. This would be a mixed signal with varied pulse widths to make the user feel pressure towards the opposite direction of movement. According to our current knowledge, we are assuming that the former method would work well for the gripper and latter for the elbow joint. This would probably change once the testing procedure starts.





24


3.6.3 Overall System After successfully implementing the individual testing procedures, both the methods should now be programmed to function at the same time. The changing pulse widths which are received from the user controlled arm should be sent to the tracking arm, which are converted to voltage values by the servo in order to move accordingly. The analog feedback from the tracking gripper and the elbow should be sent to the microcontroller, which is then converted to pulse widths through ADC and outputted to the user’s arm to feel the haptics. Ideally, the tracking arm should receive a varied pulse width for even the slightest movement in the user’s arm. Similarly, the user’s gripper should respond for even the slightest force on the tracking gripper and same goes to the elbow.

4.0

Design Challenges

Considering the complexity involved in out project, it is certain for sure that we are going to face hurdles in order to complete it successfully. Some of these challenges are: • • • • • • •



Building the arm successfully with physical stability. The components need to be connected securely and safely to avoid injuries and avoid property damages. Modifying the servos so that they can be used as an input feedback mechanism without damaging them. Accommodating all the servos needed using limited resources such as number of pins in the microcontroller. Syncing both robotic arms seamlessly. We have a theoretical and plausible approach in dealing with this challenge, but still there is no assurance of effectiveness until we begin testing. Supplying enough power to all the servos at once. The servos need clean power to avoid jittering. Implementing the haptic functions of our robotic arm can easily be considered as one of the biggest challenges of our design project. The aforementioned haptic functions in the report will be difficult to implement. Programming all the mechanisms and functions of our design project will be the biggest challenge to our design project in the 8th semester.



5.0

25


Conclusion

The research for this project was divided into equal parts due the broadness of concepts, strategies, and resources entailed. During our research we coordinated continuously with each other to arrive at optimal solution. During the course, we made some bad choices but with consultation of FLC and FA we think that we have finally arrived at solid grounding to jump start our project. Our approach is first implement 3 DOF by limiting the action of base and gripping rotating servo. Our goal is successfully implement haptics with this configuration and then build upon it for 4 DOF. Likewise, we have already designed a strategy for moving from 3 DOF to 4 DOF. As a whole, this design project would be a great experience for us to learn many new concepts in terms of understanding. Also this is great opportunity is get sense of practical experience with all the components. Overcoming all the design challenges stated above would definitely be a great task. But we are sure that after putting our best efforts we can make this project successful. Our design process considered all aspects including time, cost and complexity level. Estimated cost for the entire project would come out to be around $600 CAD in total, with the servos taking up most of the cost. Our design project can be extended other levels as well. We can implement some additional features like wireless communication between the robotic arms, live-camera feedback, etc. We will keep ourselves open to any opportunity where we can integrate new ideas and technologies.





6.0

26


References 1. Brewster, S.A., Murray-Smith, R.: First International Workshop on Haptic Human-Computer Interaction. In: Brewster, S.A., Murray-Smith,R. (eds) Haptic HCI 2000. LNCS, vol. 2058, Springer, Heiderlberg (2001) 2. Mclaughlin, M., EspanhaM, J.: Touch in Virtual Environments. Haptics and the Design of Interactive Systems. Prentice Hall, Englewood Cliffs (2001) 3. (2009), Haptic. Retrieved from http://www.absoluteastronomy.com/topics/Haptic 4. (2009), Robotshop. Retrieved from http://www.robotshop.ca 5. (El Saddik, “The Potential of Haptics Technologies,” Instrumentation & Measurement Magazine, IEEE, vol.10, no.1, pp.10-17, Feb. 2007). 6. (2009), Microchip. Retrieved from http://www.micrchip.com 7. Seattle Robotics. Retrieved from http://www.seattlerobotics.org/guide/servos.html 8. (July, 2009), Jess. Retrieved from http://forums.trossenrobotics.com/tutorials/how-to-diy-128/get-position-feedbackfrom-a-standard-hobby-servo-3279/ 9. (2009), RC Servos. Retrieved from http://www.digitalnemesis.com/info/docs/rcservo/ 10. (February, 2003), Lightening Rotary Servos and the R4P Receiver. Retrieved from http://www.rcgroups.com/forums/showthread.php?t=185271 11. http://dimensionengineering.com/DE-SWADJ3.htm 12. http://www.societyofrobots.com/schematics_powerreglations.shtml





7.0

27


Appendix A – Torque Calculation

This appendix includes the details for the torque calculation for the robotic arms: 7.1

Parameters



Gripper Servo 1 (Gripping) Total weight: 200g o Object to be lifted – 200g (maximum)



Gripper Servo 2 (Rotating the wrist) Total weight: 300g o Gripping servo 1 – 50g o Object to be lifted – 200g o Gripper – 50g



Joint Servo Total weight: 450g o Gripper servo 1 – 50g o Gripper servo 2 – 50g o Object to be lifted –200g o Gripper – 50g o Material – 100g (includes body and servo brackets)



Base Servo 1 (Moving Up and Down) Total weight: 550g o Gripper servo 1 – 50g o Gripper servo 2 – 50g o Gripper – 50g o Object to be lifted – 200g o Joint servo – 50g o Material – 150g (includes body and servo brackets)



Base Servo 2 (Moving Sideways) Total weight: 650g o Gripper servo 1 – 50g o Gripper servo 2 – 50g o Gripper – 50g o Object to be lifted – 200g o Joint servo – 50g o Base servo 1 - 100g o Material – 150g (includes body and servo brackets)

Length of link 1: 5 inches Length of link 2: 8 inches Acceleration required: Gripper Servo 2: 50 Joint Servo: 50 Base Servo 1: 50





28


Rough Sketch of the Arm where, W1: Weight of the Base servo 1 = 0.98 N W2: Weight of the joint = 0.98 N W3: Weight of the Joint servo = 0.49 N W4: Weight of the joint = 0.98 N W5: Weight of the Gripper servos (Rotating & Gripping) = 0.98 N W6: Weight of the object lifted + Gripper = (2 + 0. 49) N L1: Length of the joint 1 = 6 inches = 15.24 cm L2: Length of the joint 2 = 8 inches = 20.32 cm M0: Base servo 2 (Sideways movement) M1: Base servo 1 (Upwards movement) M2: Joint servo M3: Gripper servos (Rotating & Gripping)




 7.2

29
 Static Torque

Joint 0: M0 = 0 N.m (as it is not affected by gravity) Joint 1: M1 (Tracking arm) = L1/2 * W2 + L1 * W3 + (L1 + L2/2) * W4 + (L1 + L2) * (W5+W6) = (15.24/2)(0.98) + (15.24)(0.49) + (15.24 + 20.32/2)(0.98) + (15.24 + 20.32)(0.98 + 2.45) = 1.6180 N.m = 16.5 Kg-cm = 229 oz-in Joint 1: M1 (User-controlled arm) = L1/2 * W2 + L1 * W3 + (L1 + L2/2) * W4 + (L1 + L2) * (W5+W6) = (15.24/2)(0.98) + (15.24)(0.49) + (15.24 + 20.32/2)(0.98) + (15.24 + 20.32)(0.98 + 0.49) = 1.02 N.m = 10.44 Kg-cm = 145 oz-in 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) 7.3

Dynamic Torque

It is too complicated to calculate the dynamic torque, as the arm does not denote a specific shape. So an approximation was done in order to calculate the total torque required. The basic formula in order to calculate the dynamic torque is ‘I x α’, where I is the moment of inertia and α is the angular acceleration of the arm. The angular acceleration of the arm can be approximated, but the moment of inertia will be very complex to calculate, as the arm is not a constant rigid body. So, it will be very complex in order to approximate this.




 7.4

30
 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 Total servo cost for each arm (approx.) = $150




 7.5

31
 Servo Modification

A hobby servo works by sending pulses to the servo from a controller. There is a small potentiometer inside the servo that is attached to the servo arm. The electronics inside the servo compares the position of the potentiometer with the desired position from the pulses and moves the arm as required until they match. The servo does not give any feedback to the controller; therefore the controller has to assume that servo is always at the desired position. Therefore, the servo has to be modified so that the potentiometer inside the servo provides us with the information about the location of the servo arm. We can ‘close the loop’ with this data and always know the location of the arm. The steps to modify the servo are as follows: 1. Firstly, remove the four screws on the back of the servo casing. The back of the casing should just slide off, exposing the circuit board, as shown in Figure 1. 2. The board is only held in place by compression so it should lift free of the casing. Gently pry it up, taking care not to damage the board or the wires holding the board. The potentiometer should now be exposed. The wire in the middle of the potentiometer will be the wiper. This is the wire that we will want to connect to in the future, shown in Figure 2.

Figure 1

Figure 2

3. Connect the red and black wires from the servo cable to a power supply or battery that will supply the voltage for the servo. Move the servo arm all the way to one side and measure the voltage from the wiper of the potentiometer (yellow wire in Figure 2) to ground (black wire of servo cable). Write down the voltage, move the servo arm all the way around to the opposite position, and record that voltage as well. These values will be used in a moment. 4. Follow the wire that is attached to the wiper on the potentiometer to where it connects to the circuit board. This is shown as the yellow wire in the upper right corner of the circuit board in Figure 3. 5. Gently heat the solder on the wire and remove it from the circuit board. Strip one piece of wire that will be used to make the feedback cable and solder it to the yellow





32
 wire. Re solder both wires back to where the wire was just removed. Take extreme care not to damage the board or apply too much heat. Place the board back into the casing and fold the new wire so that it exits next to the motor, as shown in Figure 4.

Figure 3

Figure 4

6. Locate a good ground by checking resistance from various points on the top of the board to the back wire on the servo cable. The anode of the surface mount diode, shown in Figure 5, makes a nice place to attach the ground wire. Strip the second wire of the feedback cable and solder it to the ground, as shown in Figure 5. 7. Move the feedback cable so that it is parallel to the servo cable and secure it with a very small amount of hot glue. This will protect the cables by giving them a small amount of strain relief. Place the cover back on the servo and tighten down all of the screws, as shown in Figure 6

Figure 5



Figure 6



33


8.0

Appendix B – Force Sensors Calculations

8.1

Circuit

To process the input signal (force) from the A201 force sensor, it has to be connected to a force-to-voltage circuit. This drive circuit is used to calibrate and convert the force signal into a proper engineering unit (voltage). Also, it is used to adjust sensitivity of the sensor. The drive circuit is shown below.

• • • •

Supply Voltages should be constant Resistance RF is 1kΩ to 100kΩ Max recommended current is 2.5mA Aim is to get a Vout of 0V when no force is applied and 4.2V when max force is applied.

8.2

Gripper Calculations

VT Vsat Vout

= = =

-5V +5V 4.2V

Rs F

= =

? (Force sensor resistance at F = 5 lbs) 5 lbs (Threshold Force)

Based on the preceding conductance vs. force plot, we use the equation find the relationship between force F and sensor resistance Rs. Conductance = 1/Rs = F =

to

(Slope * Force) + y intercept (0.005/25) * F + 0 5000/Rs

Given that F = 5 lbs, we can determine the sensor resistance, Rs = 1KΩ. Also, given that Vout = 4.2V, we can determine RF using the equation Vout 4.2 RF



= = =

-VT*(RF/Rs). 5*(RF/1000) 840Ω



34


Thus, when the force applied by the gripper on the object reaches 5 lbs, the resistance reading on the sensor will be Rs = 1KΩ. Furthermore, when the sensor is connected to the inverted amplifier circuit with RF = 840Ω, Vout will have a reading of 4.2V at F = 5 lbs. When the microcontroller detects a 4.2V on one of the input capture pins, it then sends a signal to the user gripper servo to stop closing any further.

8.3

Elbow Calculations

The calculation for this approach is essentially similar to that of the calculation of the gripper pressure. The difference would be that the gripper force sensor detects a fixed threshold force of 5 lbs. but the elbow force sensor detects a range of forces. VT Vsat RF F

= = = =

-5V Rs = +10V Vout = 1KΩ 0 - 8 lbs. (Force Range)

? (Force sensor resistance at F = 0 – 8 lbs.) ?

Based on the preceding conductance vs. force plot, we use the equation find the relationship between force F and sensor resistance Rs. Conductance = 1/Rs = F =

to

(Slope * Force) + y intercept (0.005/25) * F + 0 5000/Rs

Given that F = 0 lbs, we can determine the sensor resistance, Rs > 5MΩ. At maximum pressure F = 8 lbs, Rs = 625Ω. Thus, the resistance range of the force sensor will be from 625Ω to 5MΩ. Also, given that the feedback resistor RF = 1KΩ, we can determine the range of Vout values by using the equation Vout = -VT*(RF/Rs). Assuming F Vout Vout Vout

= = = =

0 lb -VT*(RF/Rs) 5*(1KΩ/5MΩ) 1 mV

Assuming F Vout Vout Vout

= = = =

8 lbs -VT*(RF/Rs) 5*(1KΩ/625Ω) 8V

The input pin of the microcontroller will then detect voltage readings within the range of 1 mV to 8 V. Having a higher value of Vout will result in a faster rotation of the elbow servo. This will move the elbow arm faster downwards. The rate of downward movement of the elbow is directly proportional to the Vout of the force to voltage circuit.





8.4 •

• • •











35


Maintenance and Operation of FlexiForce sensor If the footprint of the applied load is larger than the sensing area, it may be necessary to use a "puck." A puck is a piece of rigid material (smaller than the sensing area) that’s placed on the sensing area to ensure that the entire load path goes through this area. The puck must not touch any of the edges of the sensing area, or these edges may support some of the load and give an erroneous reading. Avoid shear forces on the sensor (since sensor reads forces that are perpendicular to the sensor plane) Use tapes or adhesives that will not degrade the substrate (polyester) material of the sensor. Saturation force - when maximum force of sensor is achieved and no change in output will occur. This can be altered by changing the sensitivity (reference resistance). A lower RF will make the system less sensitive, and increase its active force range. It is essential that the sensor(s) do not become saturated during testing. If the sensor saturates at a lower load than desired, adjust the "Sensitivity." Conditioning the sensors - As with most measurement devices, it is customary to exercise, or "condition" a sensor before calibrating it or using it for measurement. This is done to reduce the amount of change in the sensor response due to repeated loading and unloading. A sensor is conditioned by loading it to 110% of the test weight four or five times. Hysteresis is the difference in the sensor output response during loading and unloading, at the same force. For static forces, and applications in which force is increased, and not decreased, the effects of hysteresis are minimal. If an application includes load decreases, as well as increases, there may be error introduced by hysteresis that is not accounted for by calibration. Drift is the change in sensor output when a constant force is applied over a period of time. If the sensor is kept under a constant load, the resistance of the sensor will continually decrease, and the output will gradually increase. It is important to take drift into account when calibrating the sensor, so that its effects can be minimized. The simplest way to accomplish this is to perform the sensor calibration in a time frame similar to that which will be used in the application. Linearity error - FlexiForce standard sensors are linear within +/- 3%.



9.0

36


Appendix C - Prototype

In order for better understanding of the project, a prototype has been considered. The LEGO Mindstorms NXT Robotic Kit would be the best kit for our case, as it is perfectly stable for lightweights. It is an alternative to all the robotic parts mentioned in this report. This LEGO kit contains everything including the microcontroller and servos. When Dr. James Smith’s advice was taken regarding the project, knowing that this is our first robotic project, he advised us to work with the NXT kit first as it is more trouble free than using our own parts. The LEGO Mindstorms NXT Robotic Kit can either be a prototype of our project or can even be our final design.

LEGO Mindstorms NXT Robotic Arm

LEGO Mindstorms NXT Robotic Kit





37


10.0 Appendix D - Materials Choosing the right materials for building the robotic arm is one of the most important things. Lighter weight and easy to build are the two main features considered in the selection of materials. After thorough research, it was finalized to use carbon fiber for building the arm using servo brackets that are attached directly to the servo.

Carbon Fiber Rods



Servo Brackets

Related Documents


More Documents from "Oscar Zurita"