Assignment 2
SE 367


To get a ROBOT tie your Shoelace



PART-A


Basic First order functions given in BASIC LANGUAGE
1. Sense end-points of lace
2. Sense mid-point of string between 2 points
3. Sense position of right/left hand
4. Move hand to co-ordinate (X, Y, Z)
5. Move thumb and index/middle finger apart
6. Close thumb over index/middle finger
7. Rotate wrist so that thumb is on top
8. Pull string to a given tension T

9. Separate only index finger from thumb/Separate only middle finger from thumb/Separate only thumb from index and middle finger

10. Move to the right till the index finger touches the loop


Very basic programming required to execute these BASIC FUNCTIONS:


Basic functions 1 to 3 require
Visual sensors which will take input as images in front of its sensors and find a possible match for the patterns representing the objects to be located in order to locate its position and give, as output, the co-ordinates of the objects. This is done by analyzing several such images and calculating the co-ordinates based on the data from all of the images
we can also ensure that in case robot needs to tie shoe lace in future in dark it can ensure that it uses its pressure sensors instead of visual for sensing or locating the shoelace


Basic function 4 to 10 require
Pressure sensors in hand of robot which will take the input and also have a feed back which will ensure that robot has sensed what we wanted it to sense for further processing
The robot to get into mechanical work which takes the input as co-ordinate of the points and give instruction to different parts of hand to work in symbiosis with help of proper programming to execute the function.


5 onward functions, besides having programming for mechanical work, also needs a feedback mechanism in them which will ensure that the functions are completed. For example, close thumb over the middle finger needs a feedback from pressure sensors on thumb and middle finger side by side and rotate wrist till thumb is on top will need to continuously take the pictures of the rotating wrist and process them to find when the goal has been attained. i.e. The thumb is on top.
There is a combined effort needed by all the basic sensors and processing units to devise and execute such basic functions.




What are the difficulties in defining a program for doing the task as efficiently as you can?


Mainly the difficulty arrived in defining a program for a robot to do a task as efficiently as we do because we don't need to define or learn the very basic of the functions for us to execute the task, they are implicit to greater extent to us like we don't learn how to search the object that is kept in front of our sight neither do we learn to feel that something has been touched ,but for a robot to function we need to define these very basic function in a manner that it serves the minimum requirement and hence has to be explicit for it. These functions when tuned together in order to get higher level functions require the input of these very basic functions that are implicit to us explicitly defined for robot at almost every step of the algorithm ,and since these functions are implicit we are not able to define them for the robot with equal complexity making the robot less efficient in performing the task as us.Learning in human is far more complex and evolved while robots follow simple algorithms
When we perform we don't need the very basic learning of sensation and image processing but for robot there has to be a programming which at least serves the bare minimum understanding of these sensation in humans and the difference in this level of learning in human and programming in robots leads to the great difference in efficiency of doing same work.




PART-F
Parameters
Different parameters which could affect the working of robot and will need to be incorporated in the function of B are :


Length of the laceif the length of the lace is less than the required then in the process of pulling the loops of the second knot there is a possibility of getting the edge out of loop itself leading to opening of the loop so when we instruct to put index finger and thumb through the loop and hold middle point of right string instead of getting hold of middle point we will have to instruct the robot to hold it at some point near the intersection. In order to know the exact point we would have to get the robot to tie different length shoelaces by holding at different points and come up with the best point after being train.
Light available- if the light available is not enough to get the visual sensors work efficiently then for that case robot can be programmed to resort to pressure sensors in order to sense and locate the edge, midpoint and intersection points of the lace. This will also require training of the robot beforehand. As such, the functions will have to ensure that the robot is trained using the inputs from the pressure sensors whenever it performs a task.
Orientation of shoes- if the shoes is not oriented in the way it has been assumed while writing the program then the robot needs to orient itself with respect to shoes first before starting to tie the lace. This needs a visual and pressure input so that robot can process and check how much is the shoe deviated from its required orientation and can orient the shoe in correct way or reorient itself with the help of relative concept .This require a precondition to be added to the higher level function which takes care of tying the shoelaces.
Stability- in cases when the shoes are not kept in a stable environment like if a robot is asked to tie a shoe in a bus running on very poor road, then in that case the functions defined need to take care of a few more points like when we leave the lace between two steps its should be ensured that the position its left in is stable enough. For e.g. : just before robot is asked to pull the 2 loops in last step it is asked to make loops from the two string we need to ensure that the radius of these strings are big enough so that the loops so formed do not open up .This require the functions defined to incorporate such safety checks before the execution of any crucial step which may be affected by the environment.
On which step the knot is- this parameter needs to be carefully taken care of since robot need to check from which step onwards the procedure are to be executed, in case if the knot is half tied it need to take inputs in form of visual and match them across the patterns it has stored in the memory from past experience and then when the input is matched it could be instructed to start execution from the corresponding step. This also needs a learning algorithm to be incorporated into the functions.




Videos:

Link to video of the robot performing Part 1 (first knot) of the process (with step-wise instructions): http://www.youtube.com/watch?v=hi-6bCYpGYM

Link to video of the robot performing Part 2 (full bow knot) of the process (with step-wise instructions): http://www.youtube.com/watch?v=v6eGFups1DA