Title of Publication : A Custom single purpose fixed point Processor Based System for Map Generation Using Ultrasound Sensors
Publisher:
ICEDSP 09 (IEEE - International Conference on Electronic Design and Signal Processing)
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Ic09 171118
1. IC09-171/118
A Custom single purpose fixed point Processor Based
System for Map Generation Using Ultrasound
Sensors
Prabhakar Mishra†, H N Shankar††, Avinash Gokhale*, Rakshith Shetty*, Kiran Kumar Mangond*, Shashank V*
†
Author for correspondence, Department of Telecommunication Engineering, PESIT, Bangalore
††
Department of Telecommunication Engineering,*Department of Electronics and Communication Engineering, PESIT,
Bangalore
1
prabhakar.mishra@pes.edu
hnshankar@pes.edu
Abstract— In this paper, in motion mapping of the real world as
perceived by a robot using a real time embedded system based on
a custom single purpose fixed point processor is proposed. The
processor is optimized for low power and is used for acquiring
the range reading from a set of ultrasound sensors and calculating
the probability of occupancy of cells in the region under the sonar
scan . The architecture considerably lowers the switching activity
at various stages of acquiring and processing the sensor data to
provide updates of cell occupancy values for rapid in-motion
mapping for robot navigation. Various mapping strategies using
the system are evaluated for their efficacy and computational
complexity.
Keywords—Autonomous robot navigation, Low-power design,
Occupancy grids, Ultrasound sensors.
I. INTRODUCTION
Autonomous robot navigation in unknown and unstructured Fig. 1 The Sonar Model
environments is central to many industrial and research
applications. It involves creation of a world model of the R is the range measurement returned by the sonar sensor
environment of the robot using sensory data and orientation of ε is the mean sonar deviation error
the robot. Previous works in this area include the use of ultra- ω is the beam aperture
sound sensors for map generation using occupancy grids. [1] S (x, y, z) is the position of the sonar sensor
Many mapping techniques use a probabilistic approach to δ is the distance between P and S
detect the presence or absence of obstacles in the environment θ is the distance between the main axis and SP
as perceived by the robot. The sonar sensor’s data range is
divided into cells and probability functions are applied on them In the method proposed by [2], the mapping is based on
to ascertain if the cell is empty or occupied. The map is evaluation of probability of cells being occupied or empty.
incrementally updated based on Bayesian estimation In the empty region, the probability is calculated using the
procedures to improve the map definition. formula
The sensor array consists of 24 transducers arranged as a
ring, each spaced 15º apart to cover the entire 360º panorama PE(X, Y) = Er (δ) * Ea (θ)
around the robot. Each sensor has a beam width of 30º and a
maximum range of 20 feet. The sensors in close vicinity are
fired sequentially to avoid interference and each sensor reading
is converted into a probability profile.
The sonar beam is divided into two parts, empty region and
somewhere occupied region [1],[2]. The final sonar map is a Er (δ) is the estimation that the cell is empty based on its
two-dimensional array of cells with values ranging between (0, range from the sensor. The closer it is to the sensor, the more
1). The values below a certain threshold are considered likely that it is not occupied.
probably empty and the values above it are considered
probably occupied. Fig. 1 shows the sonar model and
associated parameters.
2. IC09-171/118
Ea(θ) is the estimation that a cell is unoccupied based on the Freelancer is powered by two sources – one for drive and one
difference in angle between it and the central beam of the for control. It can take a payload of 5.8 Kg with a top speed of
sonar, θ. Cells closer to the central beam of the sonar are more 30cm/s.
strongly updated as empty than cells near the extremities of the
beam.
The probability that the cell is occupied is calculated using
the formula,
PO(X, Y) = Or (δ) * Oa (θ)
Or = 0 otherwise.
Or (δ) is the probability that the cell is occupied based on its
range from the sensor. The closer it is to the range reading
received, the higher the probability that the cell is occupied.
Oa (θ) is the probability that the cell is occupied based on the Fig. 3 Schematic of the control architecture for freelancer
difference in angle between the obstacle and the central beam
of the sonar. The closer the cell is to the centre of the beam, the The overall schematic of the control architecture is shown in
more likely it is that the cell is occupied. fig 3. The Intermediate Processing Unit (IPU) takes the sensor
These probability values are calculated and thresholding is inputs and generates different descriptions of the world model;
applied wherein the values below a certain upper bound and these are the inputs to different algorithms as per their
above a certain lower bound are treated as the end points of the individual requirements. In addition, the IPU generates an
range of probability values. estimate of the obstacle density in the polar reference frame.
This in turn is used to decide whether or not a path with
Our robot- freelancer sufficient clearance exists within a specific range and in a
specific orientation in relation to the current state of the robot.
The inputs to the fuzzy controller are the speed commands and
the steering commands of the individual algorithms along with
the polar obstacle density. The fuzzy controller outputs the
speed and angle control. This is transformed into PWM signals
for the individual drive motors. The details of these are omitted
here.
II. THE EMBEDDED DATA ACQUISITION SYSTEM
Sensor data acquisition and evaluation of the probability
values imposes significant overheads on the processor time.
Hence a single purpose fixed-point processor supporting multi-
channel ultrasound sensor interface and dedicated memory
Fig. 2 Our robot freelancer.
block is used in the present system.
Freelancer as shown in Fig 2, is our multi-sensor robot. It In this method, the processing sequence of one sonar scan
measures 65cm×45cm×40cm with ground clearance 8cm. It includes the following steps.
has a four-wheel differential drive. It has (i) provision for up to The sonar sensor returns a pulse whose width is
24 sonar sensors, Devantech SRF-04/07/08, currently it has proportional to the range of the obstacle.
one at each corner for detection and ranging of obstacles up to This pulse is used to enable an 8-bit counter.
3m; (ii) 15 infrared LED sensor pairs to detect obstacles in The range value and the constants used in the evaluation
close proximity of the robot to facilitate guiding through a of the probability are stored in a set of registers.
clutter of closely spaced obstacles; and (iii) a Devantech A fixed-point ALU with separate instances of adder and
CMPS03 digital compass for precise orientation. The Logitech multiplier calculate the probabilities and a finite state
webcam seen in the front has been mounted very recently. machine sequences the flow of operands.
Freelancer has a distributed control architecture with an Two RAM areas hold the values of probability of empty
IRFZ44N MOSFET based full-bridge chopper drive in Class E and occupied cells which is used by the main processor
configuration and driven by ATMEGA 88 microcontroller. The for generating and updating the map of the environment
top level processing unit is built around an AMD Athlon 2600+ as perceived by the robot.
processor and an ASUS A7S266-VM/U2 mother board.
3. IC09-171/118
The architecture of the custom fixed point processor based the sensor when looking at the cell. Each cell has a N-size
system is shown in Fig. 4. array associated which stores cell responses in N-directions, as
resp[i] (index i corresponds to ith direction wrt a fixed
reference).
The original response grid method has the following
probability function
α
,δ = R
P(occupied) = δ
0.05, δ <
0.5, δ >
where α is normalising constant.
The resp[i]’s are updated using the Bayesian formula as
resp[i] ∗ P(occupied)
resp[i] =
resp[i] ∗ P(occupied) + (1 − resp[i]) ∗ (1 − P(occupied)
The N-responses are combined to give final occupancy as
Occupancy = 1 − (1 − resp[i])
Modified method:
Fig. 4 Custom single purpose fixed-point processor architecture for data The main modification is that we have changed the function
acquisition and calculation of probability of empty and occupied cells. P(occupied) to
. Rmax − δ (halfangle − θ)
P(occupied) = + when R − ε < δ < −ε
Rmax halfangle
III. OUR PROPOSED SOLUTION where k is a constant. The value of k gives the weightage to
the readings in proximity.
P(occupied) = 0.5 when δ > R + ε
And here we don’t store responses from all the n directions
but instead store only the maximum response considering all
directions and the direction in which maximum response was
obtained. So each cell has a 1 X 2 array associated with it
where the 1st value (max_resp[0]) is the maximum response it
generated and the 2nd (max_resp[1]) is the direction. They are
initialized to 0 and -1 respectively.
Now if a cell falls in the somewhere occupied region of the
sonar beam and its response, given by P(occupied) is greater
than the stored maximum (max_resp[0]) then this value and the
Fig. 5 Test area. corresponding direction is stored in the max_resp array.
The test area shown in Fig. 5 consists of a long narrow If a cell falls in the empty region of the sonar beam then its
corridor with adjacent walls being taller than the sensor value is updated only if the current reading’s direction is same
mounting. The region is highly specular and the mapping as that of the stored maximum. By this we reduce the effect of
methods described in [1],[2],[6], did not generate satisfactory false readings while preserving advantage of response grid
map. method. The final occupancy is the stored maximum value.
The method proposed here is the modification of response IV. RESULTS AND CONCLUSION
grid method described in [9]. In response grid method the Both methods were tested on the environment described
occupancy value assigned to each cell depends not only on the previously and the resulting maps generated are shown
distance of the cell from the sensor, but also the orientation of
4. IC09-171/118
Fig. 6 shows the map generated using original response grid
method for N=16. It is evident from the map that the walls are
not distinct and feature extraction is difficult and cannot be
done using simple thresholding.
Fig. 7 shows the map that is generated using modified
response grid method. It might look clumsy but by applying
simple threshold, obstacles can be extracted. Fig. 8 and Fig. 9
illustrate this.
Fig. 8 is the map obtained for modified response grid for
k=2 and thresholding of 0.90. Here the walls are distinct and
can be used for feature extraction.
Fig. 9 the map obtained for modified response grid for k=4
and thresholding of 0.90. Again the walls are distinct. Fig. 8
In the modified method, memory usage and computations
are independent of N. But the original method requires N+1
fixed point values per cell and N multiplications per update.
The results are tabulated below.
Original response Modified response
grid Method grid method
N=16 N=16
Time taken▲ (in ms) 473 460
Memory used (per 17 fixed point 2 fixed point values
cell) values
▲: involved 103,520 map updates.
Fig. 9
ACKNOWLEDGMENT
We thank the management of PESIT for providing us with
the support needed for the work.
REFERENCES
[1] A.Elfes, “Sonar-Based Real World Mapping and Navigation”, IEEE
J.Robotics and Automation, Vol. RA-3, No. 3, June 1987.
Fig. 6 [2] H.P.Moravec and A.Elfes, “High-Resolution Maps from Wide-Angle
Sonar”, Proc. IEEE, CS Press, Los Alamitos, Calif., March 1985.
[3] Prabhakar Mishra, H.N.Shankar et. al, “A Fuzzy Controller for a Multi-
Sensor Based Autonomous Robot Navigating in an Unknown
Environment”, IEEE International Conference on Signal and Image
Processing, ICSIP, Hubli, India, Dec 2006.
[4] M.Becvar, P. Stukjunger, “Fixed-Point Arithmetic in FPGA”, Acta
Plolytechnica, Vol. 45, No. 2/2005.
[5] Scott Hauck, Mathew Hosler, Thomas Fry, “High-Performance Carry
Chains for FPGA’s”, International Symposium on Field Programmable
Gate Arrays, California, United States, 1998.
[6] Alberto Elfes, “Using Occupancy Grids for Mobile Robot Perception
and Navigation”, Vol. 22, Issue 6, IEEE Computer Society, June 1989.
[7] The Programmable Logic Data Book, San Jose, CA: Xilinx Corp, 1996.
[8] Konolige, K. 1997. "Improved Occupancy Grids for Map Building"
Autonomous Robots 4(4) 351-367.
[9] “Sonar Mapping for Mobile Robots”, Andrew Howard, Les Kitchen.
andrbh@cs.mu.OZ.AU.
Fig. 7