5. Some important sub.vis with ROBOLAB

 

First study our math-pages around the square-root (our only robotics-page in French) and the atan-function. You'll find all the explanations there. The square-root is computed through Heron's algorithm with only 10 iterations. The Atan-function is a polynomial approximation.

 

As we need these functions in the present project, we created two beautiful sub.vis. Specialists will recognize LABVIEW behind  ROBOLAB.

 

Note that the argument of the function has to be passed through a variable and may NOT be passed directly. This is a limitation of Robolab 2.0. Mind also that this function needs the local variables 18, 19 and 20. So, they should NOT be used simultanously in any ather task, while the function is running!

 

 


 

Returns the arctan of values between 0 and 100%. Note that the argument of the function has to be passed through a variable and may NOT be passed directly. This is a limitation of Robolab 2.0. Mind also that this function needs the local variables 18, 19 and 20. So, they should NOT be used simultanously in any ather task, while the function is running!

 

 


 

Note that the argument of the function has to be passed through a variable and may NOT be passed directly. This is a limitation of Robolab 2.0. Mind also that this function needs the local variables 7 and 8. So, they should NOT be used simultanously in any ather task, while the function is running!

 

 


Note that the argument of the function has to be passed through a variable and may NOT be passed directly. This is a limitation of Robolab 2.0. Mind also that this function needs the local variables 7 and 8. So, they should NOT be used simultanously in any ather task, while the function is running!

 

 


 

 

This is a great simplification by modelling robot behaviour. The pilot-functions are LOGO-like. BUT, you cannot pass indirect addressing, e.a. you must enter constants. This is a ROBOLAB 2.0 limitation.

 

 


 

This pilot-sub.vi makes only sense within a bigger program. Here the test program SQUARE for square-movement and IR/ultrasonic positioning and datalogging. ROBOLAB makes complex programs transparent!

 

 

where PING.vi means:

 

 

AND where  Beac_pos.vi means:

 

 

Note that beac_pos.vi returns values which are 100times units of 4.3904 cm. (See above).

SQUARE works together with the two beacon-programs: (not yet turnable !!!)

 

 

These useful files can be downloaded in the down-load area. Look also to the ROBOLAB investigator-files.

 


 

Here the result of the SQUARE test program. The lonely and grouped peaks disturb the information. They are generated because for this test the beacons were still STATIC. This will largely be improved by the turnable beacons. The result is expressed as 100 times units of 4.3904 cm!

 

 

Here the same graphic without these peaks, but with a (finite respons) tendency curve (black).

 

 

Here the positions M(x,y) and a (finite respons) tendency. Note the noise at the corners. This comes from the circular movement. Note also the small distances, the square has dimensions of 80x80cm.

 

 


 

The system seems to render a precision of about 20cm, mainly because of calculations errors. This is due to the RCX limitation of only integer variables under the original firmware. The next pictures illustrates well this problem. The IR/ultrasonic sensor has a precision of 4.3904cm! The raw-values jiggle up and down from beacon1-value to beacon2-value and so on. But individually taken, they have a continuous developpment. The calculation generates some additional noise! Note that sometimes the sensor does not receive the direct wave, but an echo wave. This might be th echo from the robot body.

 

So, for good interpretation of the result we have to consider all the error-sources.

 

Note that the tendency line is curved! In reality, the robot didn't drive straight, because the forward sub-routine has no drift-correction. This will added soon.

 

 

 

 


RetourMain Page