SE367 (HW2)
Vidur Kumar

A+C : Basic Language + Explicit/Implicit:
[The video for the execution of following program has been uploaded in Agrim Gupta’s IITK homepage.]

The biggest difficulty faced in making a robot execute a task as efficiently or effectively as a human, is the dynamism involved in even the smallest aspects of the task – not only is there variation in pressure, force, angle of contact, etc – but also the continuous assimilation of feedback from nerves all over the body, about the relative positioning of body parts, balance, force requirement, slipping of surfaces, etc – makes it nearly impossible to make a robot perform a task as smoothly, or with as much detail as a human.

To be able to break all those aspects down for a robot, involves the identification and inclusion of large numbers of parameters – and also the incorporation of a nearly infinite number of sensory feedback mechanisms to allow for the dynamic adjustments made even during the smallest hand movements.

Even the amount of time required to possibly process all the feedback to dynamically adjust movements for better efficiency or error correction – might possibly exceed humanly required time to do those tasks – even with the higher computational power of the robot. My assertion is based on the fact that since a robot is explicitly told what to do and how, by its program – the sheer amount of processing required to incorporate live-input from multiple sensors, and account for how that data might be used to better achieve the given task’s objective – is something that will all have to defined in millions of parameters for the robot, which will then have to make those millions of comparisons after taking in all the information – before taking any corrective action during the execution of any task.

The biggest hurdle I see – in this ability of robots to perform human tasks, with the same degree of efficiency – is the difficulty in imitating the process of ‘learning’. Since every minute aspect of every task/process must be explicitly stated for their machinery to understand and execute it – it causes a discretization of what would otherwise be continuous data processing. The question of whether that aspect can be made explicit for the sake of programming in machine language, is still left open.

Although it is said that learning is essentially pattern-recognition, etc. It is still rather hard to convert the implicit nature of knowledge developed over years of experience (for any skill – be it chess, or walking, talking, etc) – into the explicit form that is required for processing by a robot. The concept of continuous flow of data and dynamic adjustment of actions, as per this continuous flow – within the constrained system of a machine that works on discretized units of time and date – does not seem like a viable option – till the machine cannot be adapted to ‘learn’ from its own experience, as humans and other organic systems do.

As the human expert – I cannot describe precisely every aspect of how I perform most tasks. The more routine the task – the less likely the explicitness of that knowledge. I believe that is the same for chess players, and experts of any field – when they are performing the tasks in their domain of expertise. Which is not to say that the expertise acquired over long years of practice and training, cannot be re-iterated or stated for the benefit of another human to learn from it. But even so – even if it was possible to explicitly describe every aspect of the movement of a hand, or the decision of a chess move – when it actually comes down to doing that task – it is not executed in that same explicit fashion. The processing, and the decision – are both taken at a more holistic level, and dealt with as a macro-function (of sorts). Example - the individual movement of every muscle in my body, during the movement of picking a pencil, may be describable to its last fibre. But the performance of the task, is not made with the conscious knowledge, or awareness of any of those details. Simply by having performed the task over and over again – it is imprinted into my mind, and performed as such when required.

 

OUR PROGRAM :

Initializations :
Pencil = cylindrical object with conical apex. P-axis=Axis of cylinder (p=0 being tip of cone). Radius of cylinder = 2-3mm
Length >= 7cm. Vector for orientation is defined as starting from posterior end of cylinder, towards the apex of the  cone. Base of pencil = posterior end of cylinder, away from cone.
Paper = object defined as a nearly uniform, finite plane - at z = 2mm, in xy-plane.
Source point- = defined as centre of trough between I and T affectors
NOTE - contact of affectors is always made from TIP of frontal phalange of affector.
X,Y,Z axes with XY-plane = horizontal plane, on which the pencil is lying. Origin of robot is (x=0,y=0,z=0).
I = index finger affector, M = middle finger affector, T = thumb affector.
Hold = contacting surface of specified affectors of robot, with specified object. Placing affectors opposite to each other such that line joining contact points of affectors is  perpendicular to object surface at respective contact points. Application of pressure along line perpendicular to surface of object = 5-10psi.
Parameters = coordinates of affectors, of pencil and pressure sensor output from affectors.
Hinge = maintaining contact as specified in “Hold” function, ensure that pressure is dynamically adjusted to ensure no slipping along P-axis, and allow rotation around axis defined by line joining contact points of affectors.
Parameters = coordinates of affectors, of pencil and pressure sensor output from affectors.
Hook = contacting object by affector, such that the frontal phalange of affector is bent at 150-120degrees from central phalange of affector (and similarly for angle between central and basal phalange). Contact with object made only by points of the frontal - on object surface facing away from “source” parameter.
Parameters = coordinates of affectors, of pencil and pressure sensor output from affector.
Move = movement of affectors (keeping their relative coordinates fixed within the hand - from tip of affector, uptill the wrist) from Initial coordinates, to Final coordinates, or tracing a locus.
Parameters = coorindates of affectors, Intial and Final coordinates. OR Locus of path to be traced.
Move# = movement of tip of affector from Initial to Final coordinates, or tracing a locus, given constraints for movement from Initial to Final Coordinate.
Parameter = coordinates of affector, coordinates of Intial and Final points, OR Locus of path to be traced
Rotate = utilization of Move function, to perform rotation of specified points/objects, in a certain direction. It generates a locus to be traced for the affector to facilitate the rotation.
Parameters = coordinates of point to be rotated, axis of rotation.
Release = remove contact of affectors with object.

Instructions :

1) Identify coordinates of pencil in XY plane
2) Hold pencil at p = 2cm , with M and T affectors
3) Rotate pencil (about Z-axis, passing through p = 0), till (x=0,y=0) coordinate lies on P-axis
4) Move pencil along Z-axis by 20cm
Source point- = defined as centre of trough between I and T affectors
5) Move pencil (keeping orientation of P-axis constant), 1cm closer to ‘source point’.
6) Hook I-affector at p = 5cm, with ‘source point’.
7) Rotate point of contact between I-affector and object, about axis defined by line passing through points of contact of M and T affectors (with object), by an angle such that P-axis lies at perpendicular distance of ‘r’ from ‘source point’.
8) Release I affector
9) Move# I affector, to touch pencil surface at p=1.75cm, such that contact point makes an equilateral triangle with M and T contact points (with pencil)
10) Identify coordinates of Paper
11) Move pencil to contact plane of Paper(with p=0 point of pencil), 10cm away from closest (to origin), adjacent edges of paper.
12) Move base of wrist to contact plane of Paper, while not changing point of intersection of pencil tip with paper. (Ensure no relative movement within hand from finger to wrist)
13) Applying pressure of 2psi, along -ve Z-axis - trace locus defined by image/characters to be written on the plane of the paper, using Move function for each image/character.