News: Join the team! The Wunderbot V is looking for new memebers. Just contact someone on the contacts page!
Wunderbot - LADAR Subsystem Tutorial
If there are any questions about this tutorial feel free to email me at patrickm@etown.edu and I will try to answer them.

Main Ladar Vi:

Front Panel:


This front panel plots the ladar data that we recieve.  A polar plot is drawn out to the radius of our look ahead.

Block Diagram:



This begins the loop recording the start time


This step in the loop gets the LADAR data and makes the polar plot.  The Ladar data is converted to XP from polar and recorded into global variables.



This records the end time of the loop and determines the total scan time from start to finish.

CheckLadarWindow VI

Front Panel:



This is the front panel for the window checking VI.  This VI constitutes the majority of the LADAR subsystem. Analying the object windows.

Block Diagram:


This records the start time of the loop.


This step clears and initializes variables for each loop through.


This step checks to see if there is an obstacle in our look ahead window.  It runs a for loop through all 360 point (1 for ever .5 degrees of vision).  It then determines the start and end points of any obstacle in the window.



This step stores the found obstacle boundaries in temporary variables so it will not be lost if a secondary object is detected.



This case scans to the right of the detected object for a possible window to move past the object.  It stores the start and end boundaries of the window.



This once again stores a found object in the temporaty variables before searching for a left window.



Like the step above this one also searches for an opening past the obstacle.  This search is to the left of the obstacle.  The start and end points of the window are stored.



This is the final step of the case statement.  This step calculates the loop time and returns it.

GetSickData VI

Front Panel:



This VI reads in the data from the SICK Laser Rangefinder for processing in our code.

This VI reads in the data from the serial connection to the Laser Rangefinder and stores it into an array.  It reads a distance value for ever 0.5 degrees scanned.  This data is converted from Hex to Decimal for used in our algorithm.

IsObjectInWindow VI



This is the front panel for the VI that checks if an obstacle is in the window.



This initializes the variables in the loop .



This step runs a for loop through all the points checking to see if there is any values less than out specified look ahead distance.  If the value is less than the look ahead distance, and obstacle has been detected.  W recored the start and end points of the obstacle and set the flag to true.


If there is no obstacle this sets that there is no obstacle.

LadarAngle VI

Front Panel:



This is the fron panel for the Ladar Angle VI.  It calcualtes the angle vector for the robot to best transverse the obstacle.  It takes into accout the width of the robot and the lookahead distance we set.



This VI calculates the angle the robot needs to folow to enter the open window between obstacles.

There are several VIs created to convert one form of units to another for use in the program.  These VIs are an essential part of the program as they allow us to quickly change between coordinate systems or number bases,

Hex2Dec VI



This is the front panel for the VI.  It converts a HEX string to a Decimal number.



The Hex string is read in a parsed using built in array managmeny and outputs a decimal value

Polar2Cart VI


This is the front panel for a vi that calculates the x and y coordinates from polar coordiantes.


For each of the 360 points in the cluster the magnitude and phase are converted into their x-y counterparts through simple trigonometry.

Pythagorean VI


This is the front panel for a VI that calculates the magnuitde from the origin to the point with the specified x-y coordinates.


The VI uses the pythagorean theorem to calculate the magnitude of the vector.