[ieee workshops (icumt) - st. petersburg, russia (2009.10.12-2009.10.14)] 2009 international...

7
A Time-Power Efficient Fixed Point Single Purpose Processor for Mapping Using Ultrasound Sensors Prabhakar Mishra , H N Shankar , R Rajeswari , Mudit Mathur**,Pai Dipti G* Department of Telecommunication Engineering,*Department of Computer Science and Engineering,** Department of Electronics and Communication Engineering, PESIT, Bangalore [email protected] [email protected] Abstract-Creation of a world model of the environment as perceived by a robot is central to autonomous navigation. This involves use of multiple sensors and intelligent sensor data fusion techniques. Mapping techniques based on the occupancy grid method use a probabilistic model of the ultrasound sensors to compute probability of presence or absence of obstacles in the environment. Acquiring sensor data and evaluating the probability functions in a real time environment imposes a significant overhead on the processing time which can be better utilised for event handling and affecting control. In this paper, we propose a custom single purpose fixed point processor architecture which supports multi-channel ultrasound sensor interface along with a dedicated memory block for acquiring range readings from up to 24 sensors, evaluating the probability values for empty and occupied cells in the environment around the robot and updating them in the memory block. The architecture is optimised for low power operation keeping in mind the constraints of on-board power on a navigating robot. Keywords- Ultrasound sensors, occupancy grids, Fixed point processing unit, Field Programmable Gate Arrays, Autonomous Robot Navigation. I. INTRODUCTION Effective utilization of robotic systems requires the ability to sense, plan and operate them in unstructured and unknown environments. In order to do this a robot must be able to obtain spatial description of the environment around it using sensory information. [1]describes a technique for mobile robot sonar mapping in which a probabilistic model of sonar behavior is used to derive a probability function on the space of all maps, which is then searched for the map of highest probability. Another strategy has been presented in [2] which is based on having one robot carry a sensor that acts as a “robot tracker” to estimate the position of the other robot.One more approach is to generate and update a map of the environment using ultra-sound sensors based on the occupancy grid method [3] [4]. In this method probabilistic sensor models are used to obtain the estimates of the empty and occupied cells. Incremental update of the probability values of these cells are achieved through the Bayesian estimation process by assimilating information from multiple views of the sensors. The map definition ameliorates with every successive update. The sensor array consists of 24 transducers arranged as a ring, each spaced 15º apart to cover the entire 360º panorama 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. [5][6] The final sonar map is a two-dimensional array of cells with values ranging between (0, 1). The values below a certain threshold are considered probably empty and the values above it are considered probably occupied. Fig. 1 shows the sonar model and associated parameters. 9781-4244-3941-6/09/$25.00 ©2009 IEEE

Upload: pai

Post on 17-Mar-2017

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: [IEEE Workshops (ICUMT) - St. Petersburg, Russia (2009.10.12-2009.10.14)] 2009 International Conference on Ultra Modern Telecommunications & Workshops - A time-power efficient fixed

A Time-Power Efficient Fixed Point Single Purpose Processor for Mapping Using

Ultrasound Sensors

Prabhakar Mishra†, H N Shankar†, R Rajeswari†, Mudit Mathur**,Pai Dipti G* †Department of Telecommunication Engineering,*Department of Computer Science and Engineering,** Department

of Electronics and Communication Engineering,

PESIT, Bangalore

[email protected] [email protected]

Abstract-Creation of a world model of the environment as perceived by a robot is central to autonomous navigation. This involves use of multiple sensors and intelligent sensor data fusion techniques. Mapping techniques based on the occupancy grid method use a probabilistic model of the ultrasound sensors to compute probability of presence or absence of obstacles in the environment. Acquiring sensor data and evaluating the probability functions in a real time environment imposes a significant overhead on the processing time which can be better utilised for event handling and affecting control. In this paper, we propose a custom single purpose fixed point processor architecture which supports multi-channel ultrasound sensor interface along with a dedicated memory block for acquiring range readings from up to 24 sensors, evaluating the probability values for empty and occupied cells in the environment around the robot and updating them in the memory block. The architecture is optimised for low power operation keeping in mind the constraints of on-board power on a navigating robot.

Keywords- Ultrasound sensors, occupancy grids, Fixed point processing unit, Field Programmable Gate Arrays, Autonomous Robot Navigation.

I. INTRODUCTION Effective utilization of robotic systems requires the ability to sense, plan and operate them in unstructured and unknown environments. In order to do this a robot must be able to obtain spatial description of the environment around it using sensory information. [1]describes a technique for mobile robot sonar mapping in which a probabilistic model of sonar behavior is used

to derive a probability function on the space of all maps, which is then searched for the map of highest probability. Another strategy has been presented in [2] which is based on having one robot carry a sensor that acts as a “robot tracker” to estimate the position of the other robot.One more approach is to generate and update a map of the environment using ultra-sound sensors based on the occupancy grid method [3] [4]. In this method probabilistic sensor models are used to obtain the estimates of the empty and occupied cells. Incremental update of the probability values of these cells are achieved through the Bayesian estimation process by assimilating information from multiple views of the sensors. The map definition ameliorates with every successive update.

The sensor array consists of 24 transducers arranged as a ring, each spaced 15º apart to cover the entire 360º panorama 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. [5][6] The final sonar map is a two-dimensional array of cells with values ranging between (0, 1). The values below a certain threshold are considered probably empty and the values above it are considered probably occupied. Fig. 1 shows the sonar model and associated parameters.

9781-4244-3941-6/09/$25.00 ©2009 IEEE

Page 2: [IEEE Workshops (ICUMT) - St. Petersburg, Russia (2009.10.12-2009.10.14)] 2009 International Conference on Ultra Modern Telecommunications & Workshops - A time-power efficient fixed

R is the range measurement returned by the sonar sensor

is the mean sonar deviation error is the beam aperture

S (x, y, z) is the position of the sonar sensor is the distance between P and S is the distance between the main axis and SP

Figure 1. The sonar model In the empty region, the probability is calculated

using the formula PE(X, Y) = Er ( ) * Ea ( )

( ) ( )( )( )εδ

εδδ−≤≤

−−−−=RforR

RRREr

min

2minmin /1)(

Or 0 otherwise Er ( ) is the estimation that the cell is empty based on

its range from the sensor. The closer it is to the sensor, the more likely that it is not occupied.

( ) ≤≤−−=22

212 wwfor

wEa θθθ

Ea( ) is the estimation that a cell is unoccupied based

on the difference in angle between it and the central beam of the sonar, . Cells closer to the central beam of the sonar are more 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 ( )

( ) ( ) ( )εδεε

δδ +≤≤−−−= RRforROr

2

1

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.

( ) ≤≤−−=22

212 wwfor

wOa θθθ

Oa ( ) is the probability that the cell is occupied

based on the 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 more likely it is that the cell is occupied.

Figure 2. Our robot freelancer.

Freelancer is our multi-sensor robot. It measures

65cm×45cm×40cm with ground clearance 8cm. It has a four-wheel differential drive. It has (i) provision for up to 24 sonar sensors, Devantech SRF-04/07/08, currently it has one at each corner for detection and ranging of obstacles up to 3m; (ii) 15 infrared LED sensor pairs to detect obstacles in close proximity of the robot to facilitate guiding through a clutter of closely spaced obstacles; and (iii) a Devantech CMPS03 digital compass for precise orientation. The Logitech webcam seen in the front has been mounted very recently. Freelancer has a distributed control architecture with an IRFZ44N MOSFET based full-bridge chopper drive in Class E configuration and driven by ATMEGA 88 microcontroller. The top level processing unit is built around an AMD Athlon 2600+ processor and an ASUS A7S266-VM/U2 mother board. Freelancer is powered by two sources – one for drive and one for control. It can take a payload of 5.8 Kg with a top speed of 30cm/s.

The overall schematic of the control architecture [7] is shown in fig 3. The Intermediate Processing Unit (IPU) takes the sensor inputs and generates different descriptions of the world model; these are the inputs to different algorithms as per their individual requirements. In addition, the IPU generates an estimate of the

Page 3: [IEEE Workshops (ICUMT) - St. Petersburg, Russia (2009.10.12-2009.10.14)] 2009 International Conference on Ultra Modern Telecommunications & Workshops - A time-power efficient fixed

obstacle density in the polar reference frame. This in turn is used to decide whether or not a path with 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.

Figure 3. Schematic of the control architecture for freelancer

II. THE PROBLEM We address the problem of acquiring sonar range

data and generating and updating the map of the environment as perceived by the robot using a probabilistic sensor model and a cell based estimate and update. The range data is converted into probability values of empty and occupancy for each cell as described earlier.

The task of computing these probability values are presently handled by a microprocessor based system on the robot. The range data of each of the 24 sonar sensors are divided into 80 cells that cover the entire 360º

panoramic view around the robot. To reinforce the probability measures of the cells as the robot changes its pose, it is essential to integrate readings from multiple sensors periodically.

In the present setup, a microprocessor-based data acquisition system is used in conjunction with a co-

processor for computing these values. The processor follows a round robin architecture enabling one sonar sensor at a time acquiring the range readings, computing the probability values and storing them in a predefined memory space for use in map generation. This involves significant software overhead for the microprocessor as it performs the acquisition process in a dedicated mode.

Another variant of this method is to interrupt the microprocessor whenever the range reading from a particular sensor is received and to handle the computation of probability values in the interrupt service routine. However, the latency of critical tasks increases and it involves overheads of context save and context switch.

Figure 4. Conventional architecture for acquisition of range data and hence calculation of probability values of empty and occupied cells.

As shown in the fig. 4, the sonar sensor outputs are

given as inputs to an NX1 multiplexer. The following activities are undertaken to acquire data from the set of 24 sensors:

• The processor selects one sonar sensor for sensing and enables a 48 KHz modulating signal to be fed to the sonar sensor to generate a chirp.

• The output of the receiver of the sonar sensor is selected by a suitable select signal given to the multiplexer and it is fed to the gate of a counter and the counter counts with a pre-determined clock frequency.

• The count value in the counter is thus proportional to the distance of the obstacle and that value is used by the processor for computation of the probability values for 80 cells.

• This process is repeated till the probability values of cells for all 24 sensors are evaluated.

• As the robot changes its pose, the probability values are used to generate and update the map of the environment as perceived by the robot.

The probability function as explained before is applied to obtain the probabilities of empty and occupied regions. The values obtained are normalised and thresholding is applied wherein the probability

Page 4: [IEEE Workshops (ICUMT) - St. Petersburg, Russia (2009.10.12-2009.10.14)] 2009 International Conference on Ultra Modern Telecommunications & Workshops - A time-power efficient fixed

values below a certain upper bound and above a certain lower bound are treated as the end points of the range of probability values. These calculations also demand the use of a separate Fixed or Floating Point Unit (FPU) as a co-processor on the mother board. The task of calculation of probability values for each of the cells and extensive sensor integration thus involves handshaking and polling overheads that consume significant processor time which could otherwise be utilised for event handling and other critical processing activities.

In this paper we propose a time and power-efficient system based on custom single purpose fixed point processor architecture for data acquisition and evaluation of the probability values, thereby relieving the processor from these overheads. Six sensors are fired at a time to eliminate cross talk and spurious triggering. The sequence of sensor firing needs four iterations for a panoramic view.

III. THE PROPOSED METHOD The proposed method supports acquisition of

range readings from up to 24 ultrasound sonar sensors and evaluation of the probability values in a parallel architecture so that the occupancy grid for a 360º panoramic view can be obtained rapidly. The design is modular and scalable depending upon the actual number of sensors that need to be supported.

Figure 5. Proposed architecture.

Fig. 5 shows the overall architecture of the proposed scheme. The processing sequence for one sonar scan is as follows.

• The sonar sensor returns a pulse whose width is proportional to the range of the obstacle.

• This pulse is used to enable an 8-bit counter whose clock frequency is set such that the counter doesn’t overflow for the pulse width corresponding to the maximum range

• Since the probability values lie between (0, 1) an 8-bit fixed point notation is used for desired accuracy.

• The range value and the constants used in the evaluation of the probability are stored in a set of registers.

• A fixed-point ALU with separate instances of adder and multiplier calculate the probabilities and a finite state machine sequences the flow of operands on the data-path.

• Two RAM areas hold the values of probability of empty and occupied cells. The RAM area is partitioned into blocks corresponding to each sensor.

• A unified view of the RAM area is presented to the processor which uses this data for generating and updating the map.

• The RAM area is addressable both from the FSM of individual sensor data acquisition system as well as the processor.

Two variations have been tried out for data integrity due to shared data problem. In the first method, when the external processor reads the RAM area, write to the RAM is inhibited. In the other approach, two separate banks are designed such that when the external processor is accessing one bank, the data acquisition system can access the other.

IV. IMPLEMENTATION OF THE FPU

A. Design space exploration

The data acquisition system is intended to be used in an environment typical of on-board systems with constraints on space occupied, power drawn, weight and cost. With turn around time, flexibility and reuse in mind the platform for implementation was chosen to be field programmable gate arrays (FPGA) [8]. Various adder structures [9] and multiplier structures were implemented on different FPGA and Complex Programmable Logic Devices (CPLD) [10] and their performance metrics in terms of area occupied, delay of the critical section and power consumed were extracted. The performance of various adders are tabulated in Table I and those for the multipliers in Table II.

Page 5: [IEEE Workshops (ICUMT) - St. Petersburg, Russia (2009.10.12-2009.10.14)] 2009 International Conference on Ultra Modern Telecommunications & Workshops - A time-power efficient fixed

Based on the design space exploration, a Carry Save adder and Dadda multiplier were selected for the implementation of the Fixed Point processor.

TABLE I. PERFORMANCE METRIC FOR ADDERS

Type No. of slices

Delay (ns)

Power (mw)

Ripple adder 15 7.16 60.14

Carry look ahead adder

47 9.18 59.03

Carry skip adder 40 13.74 59.24

Carry select adder 68 33.80 39.67

Carry save adder 96 7.165 42.04

TABLE II. PERFORMANCE METRIC FOR MULTIPLIER Type No. of

slices Delay (ns)

Power (mw)

Array 136 9.23 105.18

Dadda 157 9.28 62.75

Serial 61 7.95 58.71

Wallace 153 9.27 63.95

The Finite State Machine with Datapath (FSMD)

for the processor was identified and the inputs and outputs of the controller along with the state encoding were chosen to satisfy the number of distinct iterations in the FSMD.

Figure 6. Architecture of the FPU

The overall architecture of the FPU is as shown in

fig. 6. The controller takes as inputs the enable for beginning the operation. It gives out the signals en_empty i.e. enable computation of probability values of empty cells and en_occ i.e. enable computation of occupied cells and receives a feedback of completion of

the two processes through done_emp and done_occ signals. After each iteration, the RAM is enabled for WRITE operation through the signal en_ram and the probability values are stored in the RAM area. At the end of calculation of the probability values of all cells for all the 24 sensors the controller generates an intr signal to interrupt the processor to indicate that the probability values for one 360º panoramic view is completed. The processor sends a WRITE INHIBIT signal to disable any WRITE operation on the RAM and reads the probability values from it. At the end of the read operation the processor de-asserts the WRITE INHIBIT signal so as to enable storing the values in the RAM.

The datapath of the FPU consists of the registers to store constants like Rmin, and . It also consists of the arithmetic unit for multiply and accumulate operations based on Dadda Multiplier and carry save adders. The FSMD of the dataflow is described in fig. 7(a). We enter the loop on power-on-reset (POR). The output of the corresponding sonar sensor is fed as the enable to the counter (en_cnt). When this signal is high, the counter starts incrementing with respect to a pre-decided clock. When the output of the sonar sensor goes low, a load counter signal is generated (ld_cnt) to latch the count value into a temporary register. This corresponds to the acquired range data (R). The computation of probability value of empty cells is then enabled for cells between Rmin and R. Upon completion of this process, a signal done_emp is generated to signal the end of computation of probability values of empty cells. The procedure is repeated to compute the values of occupied cells between the range R- and R+ .

The sequence of activities for computing the probability of empty cells is shown in fig. 7(b) and that for occupied cells is shown in fig. 7(c). The computation of the probability of empty for cells begins with the assertion of en_empty. The en_sub and en_mul signals, delta ( ) and other parameters are used to apply the probability functions described above. The computed value is stored in the RAM. This process is repeated 4 times, once each for being -7.5º, 0º, 7.5º, 15º and for ranging from 1 to R incrementally. For the computation of probability of occupied cells, en_occ signal is asserted and the rest of the flow follows along the lines of calculation of probability values of cells being empty.

Page 6: [IEEE Workshops (ICUMT) - St. Petersburg, Russia (2009.10.12-2009.10.14)] 2009 International Conference on Ultra Modern Telecommunications & Workshops - A time-power efficient fixed

Figure 7. (a) FSMD for the complete dataflow (b) Sequence of

activities for calculation of probability of empty cells (c) Sequence of activities for calculation of probability of occupied cell

V. CONCLUSION In the previous scheme, the processor works in a

round-robin fashion, selecting one sonar sensor at a time, whose scan area is divided into 80 cells for which the probability of every cell being empty or occupied is to be ascertained. This process is repeated for as many sensors as are used on the robot. The representative timing diagram of the previous scheme for our robot with a ring of 24 sensors is as shown in figure.

Figure 8. Representative timing diagram of the scheme for our robot

with 24 sensors.

The latency for sensor data acquisition comprises of two parts.

1. Selection of the sensor and waiting for the echo. 2. After receiving the echo pulse, delay due to the

following. • Generating a binary number

proportional to the range using a counter.

• Calculating the probability values using the range reading according to the defined probability function.

The process of generating a number proportional to

the range depends upon the width of the pulse returned by the sonar sensor and hence is variable. The computation of probability values is done using the co-processor.

The generation of the map of the world as perceived by the robot and updating the same are done periodically after calculating the probability values for a 360º panoramic scan. Path planning for navigation requires an updated map for selecting a feasible path and actuation of the motors depends on the path chosen. Thus, the sequence of activities in one control cycle is as shown below.

Figure 9. Sequence of activities in one control cycle for autonomous

robot navigation. Due to the software overheads of sensor data

acquisition, the latency of the control cycle can be reduced if the processor is relieved of the task of data acquisition in a polled, programmed or interrupt-driven mode. It would be desirable if the processor is also relieved of the map generation and the task of periodically updating the map so that the latency can be further reduced. This is envisaged in the extension of this work.

In the present work we have demonstrated the design and implementation of a custom fixed point processor based data acquisition system which relieves the processor of software overheads of data acquisition and computation of probability values of cells in the sonar scans. A screenshot of the simulation is shown below in Fig. 10.

Page 7: [IEEE Workshops (ICUMT) - St. Petersburg, Russia (2009.10.12-2009.10.14)] 2009 International Conference on Ultra Modern Telecommunications & Workshops - A time-power efficient fixed

Figure 10. Screenshot of the simulation of the custom fixed point processor.

The design takes into account the optimal

architecture for power reduction. The architectural advantages offered by FPGA’s have been exploited for space trade-off with reduction in the payload on the robot.

The implementation on SPARTAN3 FPGA results in 655 slices for the architecture with the time required for computation of probability values for one value of and four values of is 10ns. The power dissipation including dynamic and standby components is 58mw. The work of integrating this system with the robot and evaluating the performance of the system with all sonar sensors in place and with interface to the other subsystems is currently underway.

ACKNOWLEDGMENT We wish to acknowledge the support provided by

PES Institute of Technology, Bangalore, India for carrying out this work. We also acknowledge the excellent support provided by the Centre for Intelligent Systems for completion of this work.

REFERENCES

[1] Kenneth D. Harris, Michael Recce “Robot Sonar Mapping by Bayesian Search”, AAAI

Technical Report SS-9 [2] Ioannis Rekleitis, Gregory Dudek and

Evangelos Milios, “ Localization and Mapping in Practice”.

[3] Alberto Elfes, “Using Occupancy Grids for Mobile Robot Perception and Navigation”, Vol. 22, Issue 6, IEEE Computer Society, June 1989.

[4] Konolige, K. 1997. "Improved Occupancy Grids for Map Building" Autonomous Robots 4(4) 351-367.

[5] A.Elfes, “Sonar-Based Real World Mapping and Navigation”, IEEE J.Robotics and Automation, Vol. RA-3, No. 3, June 1987.

[6] H.P.Moravec and A.Elfes, “High-Resolution Maps from Wide-Angle Sonar”, Proc. IEEE, CS Press, Los Alamitos, Calif., March 1985.

[7] 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.

[8] M.Becvar, P. Stukjunger, “Fixed-Point Arithmetic in FPGA”, Acta Plolytechnica, Vol. 45, No. 2/2005.

[9] Scott Hauck, Mathew Hosler, Thomas Fry, “High-Performance Carry Chains for FPGA’s”, International Symposium on Field Programmable Gate Arrays, California, United States, 1998.

[10] The Programmable Logic Data Book, San Jose, CA: Xilinx Corp, 1996.