Showing posts with label Robot. Show all posts
Showing posts with label Robot. Show all posts

Saturday, 11 October 2014

Calibrating the Arm

In the previous posts we talked about how we applied Inverse Kinematics and kinematic analysis of the mentor arm. As mentioned the arm consists with Potentiometers and DC motors and with the POTs we get a feedback on the angle and movement direction. In this post we will be talking on calibrating the arm. 

Indeed the reading from the POTs are consistent. And we don't have a control circuit to receive accurate readings. We are passing each POT readings through a digital low pass filter so it filters out the high frequency noise. Also there is a threshold value for pot readings (+/- 10) to avoid the overshoot. 

In the mentor arm there are physical limits to avoid gears getting damaged physically. In the code we will limiting the movement of each arm respect to the limits of the leap motion and including these physical limits. Also in the using the IK formulae calculated angles, will go to infinity if the distance of the palm and the leap origin is greater than the total length of Top arm and bot arm which is 31.5cm. So if the function "jointangles"outputs "NaN" (Not a Number - infinity) we ignore them.


Inverse Kinematics on MENTOR Arm - Part 2

As mentioned in the previous post we are using IK only for 2dof (on x and y plane). By that we calculated the joint angles on the Top and Bottom arm for the given x,y,z coordinates. 

Using the conversion from cartesian coordinate system (x,y,z) to cylindrical coordinates (ρ,theta2,r) the joint angle for base arm (theta2) was calculated.

Angle - Base arm


To calculate the joint angles the function "jointAngles" is used. The x,y,z coordinates of the palm that we get from the leap motion data are passed as an array "v" into the function and theta2 - base angle, angle2 - Bottom angle and angle3 - Top angle are returned as the output. 

Friday, 10 October 2014

LBSv2 Hand (movement analysis)

We described the linkage mechanism in an older post. This post will described how the linkages work in LBSv2 hand. Here a video demonstration:


LBSv2 Hand (Integration)

The robot hand is finally made!

Now we have to integrate it. 

There was a list of tasks tasks that we had to perform:
  1. Mount the hand on Mentor arm. 
  2. Find a way to control the servos via the same Arduino Mega used for the Mentor arm.
  3. Finally, the software integration with the other sub systems.
Other tasks:
  1. Mitigate overshoot
The extra stuff on the hand will be discussed in a later post

LBSv2 Hand (Solidworks drawings)

Illustrations of LBSv2 robot hand on Solid Works!


Wednesday, 8 October 2014

LBS hand v2 (problems)

In the last post, we showed the CAD model on Google sketch and had the CNC router machine to cut out the pieces. This blog post will discuss some problems we had during assembly.

Problem during assembly: Some parts were too big/small and wouldn't fit properly. 
Solution: Use a file to cut fine amounts of material until it fits.

This was an issue because (1) we were unaware of the limitations of the CNC router (2) some holes were cut out too small. The CNC router uses a 2mm drill to cut out the pieces and this would set a limit on how small our holes/gaps may be. However this also meant that the corner of inner rectangular cut outs are rounded. We used a file to create those desired sharp edges.

The issue with the holes being too small was not the CNC machine's fault. For example, the CAD drawing specified 3mm holes and the holes came out exactly 3mm. The holes were meant for the 3mm diameter ABS material (the same filament used in 3D printing) however it was a very tight fit. The 3mm diameter ABS material had to be thinner such that it would easily fit inside the hole.
Using a File we were able to make some changes.


Problem during assembly: The work shop didn't have M2s long enough to hold 8 pieces of 2mm plastic pieces (screw must be longer than 16mm)
Solution: Ordered new M2 20mm plastic screws.

The solution above was very simple but we tried to work around this problem for 2 weeks! We tried some pretty dodgy ways to work around the problem by using shorter M2s found in the work shop but the finger was too fragile. In the end, we decided to order some 20mm M2 plastic screws.

Tuesday, 30 September 2014

LBS hand v2 (design + CAD + CNC machined)

In our previous blog, we made a prototype of a mechanical finger using the concept of 4 bar linkages. In this post, we are gonna write about the design considerations for LBS hand v2.
LBSv2 on Google Sketch


Our aim is to:
  1. form an actual robot hand
  2. make space for the servos (Decided to use HTX900 since they are available from Ray)
  3. create space for the light sensors on the finger tips
  4. have the entire thing made out of plastic with the exception of the screws and bolts
  5. Reduce the weight 
  6. Make it smaller 
Lets elaborate each point.

Tuesday, 2 September 2014

LBS finger v1

In a previous post a new mechanism, namely linkages was introduced to replace the previous tendon driven mechanism. We justified this in a previous post. In this blog post, we will show you the prototype design steps that we took to fabricate our first LBS finger v1. (Loh Boon Shen Finger)

Step 1: Design a quick prototype on Google Sketchup (5 hours)
Fig 1: Corner view 























Friday, 29 August 2014

New Mechanism for the Hand!

Previously ( Link ) we found the Flexy hand limited and unsatisfactory to our needs. We foresee problems with the mechanism and decided to take a different route. In this post, we will explore a different mechanism as described in our presentation (Fig 1), namely linkages.

Fig 1. Linkages (From our presentation , slide 11)

Tuesday, 12 August 2014

Inverse Kinematics on MENTOR Arm

In this article we will talk about using inverse kinematics on the Mentor arm. The purpose of this is to position the wrist position of the Mentor Arm according to the x,y,z coordinates that we get from leap motion (will be discussed in a future post). 

Figure 1: Overview of Palm position and the wrist position

Sunday, 10 August 2014

Kinematic Analysis of the Mentor Robot Arm

As shown in ARMazing, Mentor Arm has an articulated arm with joints similar to that of human arm, and each of the axis is driven by a 12V DC servo motor with its position monitored by a potentiometer.


AxisAngular Movement (degrees)Axle Centre Length(mm)
Axis 0 (wrist)210185
Axis 1 (Shoulder)180165
Axis 2 (Elbow)230150
Axis 3 (Left Wrist Axle)3200
Axis 4 (Right Wrist Axle)3200
Wrist Pitch140
Wrist Roll320

mentor arm kinematic structure
http://www.anf.nildram.co.uk/beebcontrol/arms/mentor/index.html

So the mentor Arm has  6 degrees of freedom. In the next post we will discuss about controlling the arm.

Thursday, 7 August 2014

Problems with Flexy and the demo version

This blog post will be split into two parts. (1) Problems with Flexy and (2) demo version. In summary, we found problems with our design but we still used it in our presentations (Mid semester FYP review and Monash Open Day) as a demo version.You can see it in action with the Leap Motion here!

Problems with Flexy

In our last post about our progress: ARMazing! (Part Four: Arm + Hand = oh noes ) we found that we could not control the fingers with our proposed mechanism. Reasons were: 
  1. Too much friction. Especially the part where the wires were rubbing against the plastic tube
  2. The mechanical energy could not be efficiently transferred from the servos to the robot hand.
  3. Hence the servos would stall and the fingers would no move.
Our first 3D printed hand

Friday, 6 June 2014

Presentation Day!

Yesterday we had to present what we had done in front of our supervisor, Jonathan Li. Andy Russell was secondary supervisor while Geoff Binns and a dozen other friends were there to support us.

We had four demos we wanted to show.

1. Mentor Arm responding to commands from the keyboard

2. Haptic feedback from proximity IR sensors

3. Robot Hand responding to hand gestures via Leap motion

4. Invisible wall - Haptic feedback and Leap motion

The demos went really well. There were some glitches here and there however the overall response was positive!

If you missed our presentation, here are the slides:





Thursday, 29 May 2014

ARMazing! (Part Four: Arm + Hand = oh noes )

in ARMazing! (Part Three: the nervous system), we understood the nervous system of Mentor Arm. The motors and Potentiometer are connected to the front panel.

Next we wanted to put the 3D printed hand and mentor arm together!
LOOKS good... but will it work?

Friday, 16 May 2014

ARMazing! (Part Three: the nervous system)

In ARMazing! (Part Two: Dissecting and our Blue Print) we took out what we didn't need and decided on a strategic plan for the robot.


We decided that the hand will be placed at the end of the Mentor Arm. In the future (hopefully) it will look something like Figure 1. We created a naming methodology for the components in Mentor Arm. Then we decided to connect the motors and potentiometers to the existing front panel with banana plugs (Figure 2). More information is shown on Table 1.

Figure 1.  Mentor Arm and Hand

NAMING METHODOLOGY
Mentor Arm = The whole entire robot arm that we salvaged

Top Arm = The Part attached to the Hand (BLUE in Figure 1)
Bot (bottom) Arm = The Intermediate part (RED in Figure 1)
Under Arm = The Part bound to the base but rotates (GREEN in Figure 1)

Motor_1 = The Motor located under Mentor Arm, rotates the Under Arm.
Pot_1 = The Potentiometer for Motor_1 feedback.

Motor_2 = The Motor found in Bot Arm, rotates the Bot Arm.
Pot_2 = The Potentiometer for Motor_2 feedback.

Motor_3 = The Motor found in Top Arm, rotates the Top Arm.
Pot_3 = The Potentiometer for Motor_3 feedback.

Motor_4R = The Right Motor located at the end of Top Arm.
Pot_4R = The Potentiometer for Motor_4R feedback.

Motor_4L = The Left Motor located at the end of Top Arm.
Pot_4L = The Potentiometer for Motor_4L feedback.


Figure 2. Reusing these Banana jacks 

1- INPUT2 - OUTPUT3 - INPUT4 - INPUT5678 - INPUT
Motor_4R VccPot_4R signalMotor_4R GndMotor_4L VccXXXMotor_4L Gnd
1 - OUTPUT2 - INPUT3 - INPUT4 - OUTPUT5 - INPUT6 - INPUT7 - OUTPUT8 - INPUT
Pot_1 signalMotor_1 Vcc(?)Motor_1 Gnd(?)Pot_2 signalMotor_2 GndMotor_2 VccPot_3 SignalMotor_3 Vcc
GndGnd - INPUT+5V - INPUT+5V1 - INPUT2 - OUTPUT3 - INPUT4 - INPUT
XPot_2,3,4L,4R GndPot_2,3,4L,4R VccXMotor_3 GndPot_4L SignalPot_1 Vcc(?)Pot_2 Gnd(?)
Table 1. Input Output configuration for the front panel banana jacks in Figure 2.

Next we will attempt to mount the hand on the Mentor Arm!

Tuesday, 29 April 2014

ARMazing! (Part Two: Dissecting and our Blue Print)

In ARMazing! (Part Two: The discovery)  we found a robot call 'Mentor' by Cybernetic Application. Feedback Instrument Limited took over the manufacturing rights in Cybernetic Application but Mentor is no longer being manufactured. It was originally used for educational purposes. For this blog post we will show you whats is INSIDE mentor and what future plans we have.

Firstly, a brief acknowledgement to a blogger namely BlizBiggy who was working on another Mentor. You can follow him on here. Here is a video where he talks about his work with Mentor.  


The bulk of the electronics can be found underneath Mentor. Underneath contains a control board, a transformer and an AC-DC converter.

Dissecting Mentor
The front has a set of banana sockets that was used to control external actuators and receive signals from external sensors. This machine takes power directly from the 240 volt wall socket but that won't be necessary for our project. Mentor can take its power from the DC Power Supplies found in our university laboratory.

Banana sockets and power socket
In its prime, Mentor would had been connected to a computer via some old fashion IO interface. Nowadays everything is USB. Here is a close look at the control board (below).

Control Board
Top left: Port for the adapter that
connects to the computer
Bottom left: wires connected to
the banana sockets found
in front of the robot
   
Right side: wires connected to the
motors and potential meters found in the robot arm

The transformer and the AC to DC converter (characterised by the massive capacitors) will be useless for us. We decided to power the robot via the DC Power Supplies we have at our university.

Top: AC-DC converter
Botom: Transformer
We took apart the casing on the arm and found potential meters and gear boxes inside. The gear boxes have very high torque ratio to transform the motor's high speed into powerful torque.

One of the gear boxes
After looking at all the parts we decided to draw up a diagram to illustrate how Mentor will fit into our project.

Interrelationship of power, Arduino, Mentor and the 3D printed Hand.

All we have to do now is work on each box!



Monday, 28 April 2014

ARMazing! (Part One: the discovery)

This post will illustrate some ideas we had regarding the making of a robot arm. We are not looking to create something that looks like the human arm.

Not like this
We want to control the the robot hand in the x, y, z axis. The volume of space that the robot can reach does not have to be huge (it is also restricted to the Leap Motion's interaction space). 
Is it too ambitious to build a robot that has so much 'reachable' space
We had some lengthy discussion on whether we should invest time in making a robot arm. We didn't have any mechanical knowledge accept for Engineering first year Dynamics that most of us have forgotten. 

We found some inspiration online and got a lot of support from the work shop where Andrew and Walter works. We wanted to create something simple but strong enough to carry the weight of the 3D printed hand.

Then we found this:

The 'gripper' that we found could rotate about its wrist and the grip can open/close. It uses two stepper motors. After a handful of hours we found that it was not strong enough. It will not be able to support the weight of our 3D printed hand.

Then Andrew found this for us:

 This is our 'discovery'!

This is the official website. Here is more information about it.

As you can see above, we took it apart and connected the motors  directly to the 12volt supply. The motors work! In the next post we will explore the kind of things INSIDE this robot and find out how we can interface it with the Arduino.

Wednesday, 16 April 2014

3D printing: Shells and Infill (Part 3: Printing the 3D model hand)

Before we begin: In part 1 we described what are infills and shells. In Part 2 we did some testing.

We took what we learned from part 1 and part 2 and printed our 3D hand model! For your information, the 'original' model had 15% infill and 2 extra shells. The 'new' model was set to 0% infill and 1 extra shell. Lets look at the results.

The Main Hand Body
Original: 224 grams (24 hours), material: Red PLA
New: 54 grams (6 hours), material: Red PLA
Comments: The New model was four times lighter, more aesthetic and it took significantly less time to print! The improvement in weight was due to no infills. It looked better since we printed the new model standing (as shown in the pictures) but the original model was printed lying flat at the back of the hand with the palm facing upwards. It took only 6 hours to complete compare to 24 hours because less material was used.
New and Original hand body (Palm side)
New and Original Hand Body (Back of Hand)

The Fingers
Original fingers : 118 grams (13 hours), material: Red PLA
New fingers : 128 grams (13 hours), material: transparent PLA
Comments: The weight had increased and it took around the same time as before.  Furthermore, it looks really ugly. Each individual piece did not have a uniform material density. The bottom half of the printouts were solid (even though we set it to zero infill) and the top half had no infill. You can see in the image (bottom right) that the base is very yellow because transparent PLA turns yellow when it is densely printed, hence solid! The top part is slightly transparent because less material was used. We will probably have to print out another batch!
New fingers and Old fingers
Base was solid while the top has no infill

Conclusion: The body of the hand improved in weight however the fingers did not. Something went wrong and we will investigate further.

Tuesday, 8 April 2014

3D printing: Shells and Infill (Part 2: Testing)

Before we begin: In our last post, namely "3D printing: Shells and Infill (Part 1: Introduction)we gave a brief account on what shells and infills are in the context of 3D printing. We intend to use this knowledge to reduce the weight of our 3D printed hand.

In this post we tested the 'shell' and 'infill' function and had some fun with more 3D printing!

Test 1: Rectangular cuboid
Infill: NONE
Extra Shells: NONE
Test 1: We found that it was very easy to break. This was MINIMAL material. We thought that we needed extra shells. 
--------------------------------- 

Test 2: 3D finger
Infill: 1%
Extra Shells: 3 layers

Test 2: The extra shells made it much thicker. It was very tough. The 1% infill was negligible. We didn't complete the print.
-------------------------------------

Test 3: Another 3D finger with external defects Test 3: Broke in half to look inside
Infill: NONE
Extra Shells: NONE

Test 3: Easy to break. Some defects visible and will be a problem. Looks like we need more shells to improve its hardiness. 



Conclusion: To reduce the weight of our 3D models we can have ZERO infill and ONE extra shell. We will attempt to print the 3D hand model with these settings. 

Friday, 28 March 2014

3D printing: Shells and Infill (Part 1: Introduction)

Before we begin: The aim of this short study was to decrease the weight/material of our 3D models (the hand). We have successfully printed a hand (link) however it was too heavy. If the hand was lighter, it will be more portable and easier to make future add-ons (such as wrist or arm).

In this post we will introduce the terms 'shells' and 'infills'. We believe that we can significantly reduce the weight by removing the unnecessary material inside 3D models.

The SHELLS, also known as perimeters, are extruded outlines defining the shape of the layer. Extra shells strengthen objects.

INFILL is what happens in the space left over.

It's usually extruded in some kind of pattern. The main setting we're dealing with here, though, is infill percentage. (refer to the image below)

More infill will make an object stronger. Less will make it lighter and quicker to build.

Objects for display often won't need more than 10% infill, while even objects that are going to see hard use rarely need more than 80% infill. Not using more infill than necessary will help us save time and plastic.
Taken from http://blog.teambudmen.com/2013/09/understanding-shells-layer-height-and.html
Author: Isaac Budmen