An
Algorithm Library is used by the developer for performing the complex calculations necessary in robotics. The algorithm library is
independent of the controller library in the fact that it only calculates the angles necessary in the joints of a robot to perform the requested movements. The AL also does not talk directly to the controller library or write to the TROM. It only returns data to the developer's requesting code and it is up to the developer when and how to use the data.
For our example we will walk through the steps of when a developer makes a
request to the Algorithm Library (AL) to perform some calculations for them. In
this example the developer wants to know what the correct joint positions will
be for a new arm position as defined by the X,Y,Z coordinates for the tip of the
arm gripper.
What's in the Returned Data?
The above example demonstrated a very simple request for a single set of arm
joint angles. This data is returned in a single dimension array. In robotics it
is more common to need a full set of positions to perform a fluid movement such
as sweeping an arm from position A to position B or to move a leg through a full
step. These type of movements require larger data sets in the form of
multidimensional arrays. Below is a table of different types of data arrays that
an Algorithm Library might return.
One can start to see how helpful a good Algorithm Library can be. A simple robotic gate for a six legged walker requires hundreds of complex calculations. An
Algorithm Library takes care of
this for the user and returns the data in a nice tidy array giving the joint angles needed to execute a movement.
This creates an extremely powerful toolbox for developers to use. Take for
example the six legged crawler above. New crawler gates can be created in
advance or on the fly for conditions reported back by sensors. If terrain
changes the gate can be made to walk with a higher body or lower to the ground.
Gates can be made for climbing up hill or down hill. When a toe sensor reports
that the ground has disappeared due to a hole or drop off or a camera sensor
reports an obstacle the code can change to a side gate or turning gate in an
instant. The speed at which developers can build intelligent behavior has never
been faster.
|