Cart/Login/Help Tutorials Blog Community Contact
Become an Affiliate!




TRS Explained Part 5

Algorithm Libraries

   
 





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. 


 
1)

The Request
The developers code makes a request to the AL for a new arm position by passing in new X,Y,Z coordinates and any other necessary information.



 
2)

Gathering Info
The AL reads the TROM to retrieve the information it needs such as arm section lengths and joint limitations.



 
3)

Calculating
After retrieving all the information the AL will perform the calculations necessary to determine the joint angles needed to achieve the position.



 
4)

Delivering the Goods
The AL will return the data as joint angles for the developers code to use as needed. If errors are encountered those will be returned instead. Notice that the AL does not make any changes to the TROM itself or execute any plans, it merely returns the data.



 
5)

Executing
The developers code can now take the new position angles and update them into the current positions in the TROM to execute the move or store them for later.





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.

Single Leg
Single Position
 
1 dimensional array
 
 

Defines a position for a leg



Multiple Legs
Single Position
 
2 dimensional array
 
 

Defines a full pose for a hexabot



Single Leg
Multiple Positions
 
2 dimensional array
 
 

Defines the cycle for a full step for a leg



Multiple Legs
Multiple Positions
 
3 dimensional array
 
 

Defines the cycle for a full step for a hexabot


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.



 








Request Time: 1.453125 - SID/ASID: 1022615 | xkygelyrddrvdxr3dr0ipd55 - SERVER: WEB1