A Mersenne Twister Hardware Implementation for the Monte Carlo Localization Algorithm

Mobile robot localization is the problem of estimating a robot position based on sensor data and a map of the environment. One of the most used methods to address this problem is based on the Monte Carlo Localization (MCL) algorithm, which is a sample based state estimation that offers some advantages over the traditional Gaussian method. This work presents an embedded system based on an FPGA (Field-Programmable Gate Array), customized to compute the complete MCL algorithm in a response time compatible with real mobile robot applications. At the core of the system is the Mersenne Twister pseudo-random number generator, used to spread random particles over the robot navigation map. Experimental results have shown that the proposed hardware architecture is able to generate 125M numbers of 32bits/sec and that for 1k features each MCL iteration takes 0.27 sec. Additionally, this paper provides some evidences about the impact caused by the choice of random number generator on the MCL algorithm convergence speed.

[1]  François Berry,et al.  Towards an Embedded Visuo-Inertial Smart Sensor , 2007, Int. J. Robotics Res..

[2]  John A. Clark,et al.  Searching for resource-efficient programs: low-power pseudorandom number generators , 2008, GECCO '08.

[3]  Jeffrey A. Kramer,et al.  Accurate Localization Given Uncertain Sensors , 2010 .

[4]  Sebastian Thrun,et al.  Probabilistic robotics , 2002, CACM.

[5]  Jack E. Volder The Birth of Cordic , 2000, J. VLSI Signal Process..

[6]  Jon Rigelsford,et al.  Embedded Robotics: Mobile Robot Design and Applications with Embedded Systems , 2004 .

[7]  Erick Cantú-Paz,et al.  On Random Numbers and the Performance of Genetic Algorithms , 2002, GECCO.

[8]  Thomas Bräunl Real-Time Image Processing , 2003 .

[9]  Sebastian Thrun,et al.  Robotic mapping: a survey , 2003 .

[10]  Deian Stefan,et al.  A hardware framework for the fast generation of multiple long-period random number streams , 2008, FPGA '08.

[11]  Takuji Nishimura,et al.  Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator , 1998, TOMC.

[12]  W. Burgard,et al.  Learning Policies for Reliable Mobile Robot Localization , 2009 .

[13]  Wayne Luk,et al.  A comparison of CPUs, GPUs, FPGAs, and massively parallel processor arrays for random number generation , 2009, FPGA '09.

[14]  Choyong G. Koperski Multi-Robot Fastslam for Large Domains , 2012 .

[15]  Dieter Fox,et al.  Bayesian Filtering for Location Estimation , 2003, IEEE Pervasive Comput..

[16]  Wayne H. Enright,et al.  Robust and reliable defect control for Runge-Kutta methods , 2007, TOMS.

[17]  Shuichi Ichikawa,et al.  Design and Evaluation of Hardware Pseudo-Random Number Generator MT19937 , 2005, IEICE Trans. Inf. Syst..

[18]  Wayne Luk,et al.  FPGA-optimised high-quality uniform random number generators , 2008, FPGA '08.

[19]  G. Muller,et al.  AUTONOMOUS SATELLITE NAVIGATION USING OPTICO-INERTIAL INSTRUMENTS , 1986 .

[20]  Thomas Braunl Embedded Robotics , 2003 .

[21]  下平 丕作士,et al.  The Genetic and Evolutionary Computation Conference , 2002 .

[22]  J.C. Chedjou,et al.  GSM RSSI-based positioning using extended Kalman filter for training artificial neural networks , 2004, IEEE 60th Vehicular Technology Conference, 2004. VTC2004-Fall. 2004.

[23]  David Kearney,et al.  An Area Time Efficient Field Programmable Mersenne Twister Uniform Random Number Generator , 2006, ERSA.

[24]  Flavius Gruian,et al.  VHDL vs. Bluespec system verilog: a case study on a Java embedded architecture , 2008, SAC '08.

[25]  Pierre L'Ecuyer,et al.  TestU01: A C library for empirical testing of random number generators , 2006, TOMS.

[26]  Thomas Bräunl Embedded robotics - mobile robot design and applications with embedded systems (2. ed.) , 2003 .

[27]  Wolfram Burgard,et al.  Robust Monte Carlo localization for mobile robots , 2001, Artif. Intell..

[28]  Dirk Schulz,et al.  Bayesian Filters for Location Estimation , 2003 .

[29]  Abbes Amira,et al.  High Performance FPGA Implementation of the Mersenne Twister , 2008, 4th IEEE International Symposium on Electronic Design, Test and Applications (delta 2008).