The Trossen Robotics system offers users a set of prebuilt robotic Algorithms for common robotic needs. By using the XML configuration file method we are able to make use of re-usable algorithms which work for robotics calculations regardless of the robot size or dimensions. The same algorithm applies whether you are using a robot that is 12 inches tall or 3 meters tall. The use of the Robotic Algorithm Library is very simple. Here's how it works:
1)
A developer feeds in the robotic dimensions from their XML configuration file when initializing their robot. (This can be 1 line of code by telling the RAL where the XML file is.)
2)
A developer sends the required instructions to a specific RAL function they wish to perform such as moving an arm up or moving a hexabot one more quadrant through a forward step.
3)
The RAL function returns the proper values in public arrays which the user can then send to the robot servos in order to execute the move.
A developer is in complete control of the robot's behaviors at all times. The RAL acts as a toolbox for performing complex calculations which most people do not want to spend time building. Let's say that a developer wants to make a hexabot take one step forward. To do this without the RAL they would have to figure out the positions for all 18 servos on a standard hexabot for the 4 main quadrants of each step; up, down, forward, and backward. That's 72 total positions for a single step. Now add the aspect that a developer will want to be able to tell the robot how large each step should be. This is usually figured out as a % of the full leg swing. Another layer of complication is added when you want to tell your robot to make a slight turn during those steps. As you can imagine this is a lot of math! By using the RAL all this complicated calculating is taken care of for developers. The following example line of code returns the servo positions for quadrant 1 of a 3 DOF hexabot step using a 70% leg swing. The following loop sends the new positions to the servos telling them to move. For i=0 to 5 For x=0 to 2 Call fncServoMove(i, x, RAL.Hexabot.3DOF.CurrentQuadrant(i, x)) Next Next
Algorithm Library