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 lace –
if
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