BACK

Project Goals

The goal of the project is to design and implement the electro mechanical and control systems of a robotic platform.  The robotic platform will consist of two DC motors controlled by a microprocessor, using variable PWM control.  The microprocessor will obtain the "Encoder Wheel Frequency" from each motor, and then adjust the motor's input signal to obtain the desired encoder frequency specified by the user.   A set of control instructions will be written to allow for easy programmability by the user.  The user can use the robotic platform to perform various precise movements, either in real time using a joystick, or as an autonomous vehicle using a programmed set of maneuvers.

One of the major goals of the project is to use feedback to control and synchronize the two DC motors, better known as, "Closed Loop Control."   Proper synchronization will allow for precise movement, along with the ability to maneuver an almost perfect straight line.   More importantly, the feedback system will overcome any non-linear affects and loadings of the motors to further provide a very accurate system.

Inputs

The user will be given a set of pre-defined control instructions specifically created for this robotic platform.  The control instructions will be very simple to write, and they relate to the more complex functions created in assembly language for the 8051 micro-controller.  The user will be required to write a simple text file listing the instruction in the order they are to be performed.  The provided JAVA program will then call the text file, extract each instruction, and send it to the memory of the micro controller.  The micro controller then performs each instruction.  The control signals may also be sent in real time via the user's PC joystick, or a JAVA program utilizing a simple user interface.   All control signals will be sent to the robotic platform via the onboard wireless modem.  After receiving the control signals, the robot will perform the required movement, and return a "Finished" signal to the user.

Example User Written Program:  F(10), TR(90), F(10), TL(90), B(5), TR(45)         

Translates to: Move Forward 10 inches, Turn Right 90 degrees, Move Forward 10 inches, Turn Left 90 degrees, Move Back 5 inches, Turn Right 45 degrees.

The robotic platform may use several ultrasonic pingers to detect walls, and to provide another method for calculating speed and distance traveled.   The pingers will be placed on the front, back, and sides of the robot to provide data from all directions.

An alternative that may be implemented instead of Ultrasonic pinging would be ultrasonic radar.  This would be used to give ground speed, and to detect track slippage.  This would also allow for greater accuracy to determine distance traveled, and provide a way to carry out an input of distance as well as speed.

The project is very open ended.  Depending on the amount of processor power required to control the DC motors, more sensors and/or inputs will be added.  One such example is the use of an electronic compass to provide assistance in making accurate turns.  However, it will require nearly all the processing power of the 8051 micro-controller to create the variable PWM signals that control the DC motors, so such speculation is premature.

Outputs

The main output from the system is the movement of the vehicle.   The output is directly related to the control inputs.  Hence, Forward = Forward, Turn = Turn, and so on.  Precise movement will be achieved through program libraries after the system is built and calibrated.

The robotic platform may use several ultrasonic pinging devices.  The signal transmitted from the pinging device can also be viewed as an output from the system.  The signal set from the pinging device will leave the vehicle and be reflected back to the vehicle by any obstruction near the vehicle.  This device would also be the basis for collision detection and/or velocity calculations.

Any signal sent from the robotic platform to the user.  Some examples include: A finished process signal and an error signal.

Modes of Operation

In this mode the platform will react to commands given to it one at a time.  As soon as the command is received, it is executed, with only transmission delay.  A PC joystick will provide the greatest amount of controllability and fun for the user. 

Though it is not entirely autonomous, this mode allows a string of commands to be sent and executed.  The user delay of the real time mode disappears, giving the vehicle continuous movement from one command to the next.  This allows a predefined path to be programmed and followed in a semi autonomous fashion. After the set of commands are complete, a signal will be returned stating that the program has been run.   If there is an error and the program was unable to run, the feedback would notify the user of this also.

BACK