PPT - Dept. of Electrical and Computer Engineering

Download Report

Transcript PPT - Dept. of Electrical and Computer Engineering

Design of an Autonomous Analog Path-Planning Robot
Research Experience for Undergraduates
Department of Electrical Engineering
Texas A&M University
Emily Weisbrook
Undergraduate Student
University of Oklahoma
Takis Zourntos
Assistant Professor
Texas A&M University
Design of a test bed for an autonomous analog robot that will use a Field Programmable Gate Array to
implement the system of mathematical equations that govern its path planning abilities.
BACKGROUND
SENSORS
With the recent advent of the digital revolution, analog electronics
are being used less frequently for computation purposes. Most
computation can be accomplished using a simple microcontroller
for processing purposes, and it is typically more efficient for
processing and computation. Digital electronics, however, are not
optimal for every application. In certain applications, analog
computation may actually be more efficient. Digital computing
methods and processors require sequential processing. In contrast,
analog systems do not “think” in the same way. The output from
analog components is simply a response to the input. It does not
operate based on a series of instructions from the processor, it
responds based on the intrinsic physical properties of the circuit
that runs it. Because of the lack of requisite “instruction”, the analog
computations (assuming no digital sequencing) can be performed
at the rate at which the electrical signal can be transmitted.
Analog computational systems, however, are more difficult to
design. People with little knowledge of the design of a digital
system like a microprocessor can use a high-level programming
language like C to accomplish their goal. In contrast, analog
systems must be configured for a given application using a system
of differential equations that incorporate the particular specifications
of that system. The resulting equations must then be translated into
electronic circuitry and implemented. There is currently no devised
systematic method of doing this.
The work accomplished this summer focused on a robotic
application of this method. Most robots run on a system of “if-then”
statements based on input from the sensors about the environment.
Our project was to design a test bed for a lightweight, low-power,
autonomous, analog robot that could traverse a path ridden with
obstacles to find an auditory source. The path planning of this robot
would be completely controlled by a system of differential
equations.
To work properly, the equations modeling the robots path will need two values: the distance
from the robot to the target and the angle the target is from the current trajectory. There will be
two sets of sensors: long-range and short-range. Two microphones, mounted on the front
corners of the robot, will serve as long-range sensors. The location and bearing of the target will
be determined by the distance between the sensors and the difference in the time it takes for
the noise signals to reach each microphone. The law of sines and the law of cosines will be
used to determine the angle, and the amplitude of the signal will determine the distance from
the target. An ultrasound sensor will be mounted on the front of the robot to detect upcoming
obstacles. In future versions of this robot, more short-range sensors will be added to other sides
of the robot to gain a more accurate knowledge of the robot’s surroundings The additional
information will facilitate more efficient and accurate path planning. The values of distance and
bearing will be passed into a system of differential equation which will output two rotational
velocities—one for the left set of wheels and one for the right—transmitted as voltages.
MATERIALS AND METHODS
A basic diagram of the robot systems is shown below. Three main
subsystems comprise the make up the robot: the sensors
(ultrasonic and two microphones), the computations (performed by
the National Instrument RIO FPGA), and the actuators (motors).
FIELD PROGRAMMABLE GATE ARRAY
2
1-
3-
1
3
5
7
9
11
13
15
9
11
13
15
Channel A
7
2
1-
3-
1
3
5
7
Channel B Lagging Channel A (Clockw ise Rotation)
1-
A Field Programmable Gate Array (FPGA) is a piece of programmable hardware that uses a
computer program (in our case, Labview FPGA) to design circuitry. Labview FPGA is a subset
of the graphical programming software Labview, in which only the functions that can be
implemented using the gates on the FPGA can be used for the programs. Technically, the
FPGA is a digital machine and all the computations it does are using digital parts. However, the
FPGA is not digital in the same sense that a computer is. There is no resident operating system
to tell it what to do. In addition, the hardware responds based on its physical properties and
therefore is able to work in real time. The equations are implemented on an FPGA rather than in
an analog circuitry method because the FPGA can be reprogrammed. Analog systems can be
quite complex and since reaching a solution is an iterative process, an FPGA allows the
flexibility of changing the equations and not having to start over from scratch with creating the
necessary circuitry.
3-
1
3
5
7
9
11
13
15
Sample outputs from the encoder channels
Using a D flip flop, the direction of the rotation of the wheel can be
easily determined. A flip flop is a device that, whenever triggered by
a square wave (such as the one coming from the encoders), passes
a discrete value from the input to the output. For a falling-edge
triggered flip flop, if channel A is connected to the clock and channel
B is connected to the input, then every time the voltage falls from 5
to 0, the flip flop will be trigger and the voltage from the input of the
chip passed to the output side. From the diagrams above, if the
output of the flip flop was low (0 V) then the motor is rotating in the
clockwise direction. If the output is high, then the motor is rotating in
the counter-clockwise direction.
MOTORS
The FPGA receives the distance and bearing of the target from the sensors, as well as
information about oncoming obstacles and translates this data into rotational velocities for the
motors as a voltage. These velocities are then passed to the motors through a unity gain buffer
to source the amount of current the motors require. In order to ensure the accuracy of the
velocity, encoders are attached to the motors. The encoders return the frequency of the motors
as two pulse waves offset from each other by 90º. One of the pulse waves will then be fed into
a frequency to voltage conversion chip and compared with the desired speed. This feedback
loop ensures the accuracy of the control loop. A diagram of the motor system is shown below. 0
RIO Board
motor with
digital encoder
∫
ωR -
(subsystem)
∫
D/A
buffer
D/A
buffer
+
Environment
motor with
digital encoder
k
0-5 V
The work accomplished this summer was foundational for the design
and construction of a robot that will be built in the upcoming
semester. The control algorithms will be implemented using Labview
FPGA and a National Instruments RIO board. Once the robot is
constructed and the RIO board programmed, testing will be done to
determine the accuracy of the path-planning algorithm. After finetuning the algorithm , the circuitry will be implemented on a custom
chip to determine the actual power used.
F→V
+
ωL
Motor
FUTURE WORK
left motor control
-
(Subsystem)
7
2
Full Size Diagram
Sensor
Block
Channel B Leading Channel A (Counter-Clockw ise Rotation)
7
k
RIO
Board
Both pulse waves from the encoder will be required to determine the
direction of the wheel. The two channels return pulses like the ones
below.
F→V
right motor control
Key
ωL→desired angular velocity of left wheel (in Volts)
ωR→desired angular velocity of right wheel (in Volts)
-7.2 to 7.2 V
ACKNOWLEDGEMENTS
Nebu Mathai, Ph.D. student, Texas A&M
Blake Hayman, Undergraduate REU student
Marcus Dunn, Undergraduate USRG student
Anthony Pham, Undergraduate student, Texas A&M
National Science Foundation
Department of Defense
motors
Notes:
The integrator may be placed outside the FPGA
and implemented using an op-amp.
Acknowledgements
NSF Award ESI-0083336