Skip to main content
Log in

A Mersenne Twister Hardware Implementation for the Monte Carlo Localization Algorithm

  • Published:
Journal of Signal Processing Systems Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9

Similar content being viewed by others

Notes

  1. http://www.math.sci.hiroshima-u.ac.jp/ m-mat/MT/emt.html

References

  1. Thrun, S., Burgard, W., & Fox, D. (2005). Probabilistic robotics. Cambridge, MA: MIT Press.

    MATH  Google Scholar 

  2. Thrun, S. (2002). Robotic mapping: A survey. Technical Report - CMU-CS-02-111 (p. 31), Carnegie Mellon University.

    Google Scholar 

  3. Fox, D., Hightower, J., Liao, L., Schultz, D., & Borriello, G. (2003). Bayesian filters for location estimation. IEEE Pervasive Computing, 2(3), 24–33.

    Article  Google Scholar 

  4. Brunl, T. (2003). Embedded robotics: Mobile robot design and applications with embedded systems (pp. 111–129). Berlin Heidelberg: Springer-Verlag.

    Google Scholar 

  5. Matsumoto, M., & Nishimura, T. (1998). Mersenne twister: A 623-dimensionally equidistributed uniform pseudo-random number generator. ACM Transactions on Modeling and Computer Simulation, 8(1), 3–30.

    Article  MATH  Google Scholar 

  6. Thrun, S., Fox, D., Burgard, W., & Dellaert, F. (2001). Robust Monte Carlo localization for mobile robots, artificial intelligence (Vol. 128, pp. 99–141). New York: Elsevier.

    Google Scholar 

  7. Kramer, J. A. (2010). Accurate localization given uncertain sensors. Master Thesis. Department of Computer Science and Engineering, University of South Florida, USA.

  8. Chalimbaud, P., Marmoiton, F., & Berry, F. (2007). Towards an embedded visuo-inertial smart sensor. The International Journal of Robotics Research, 36(6), 537–546.

    Article  Google Scholar 

  9. Anne, K. R., Kyamakya, K., Erbas, F., Takenga, C., & Chedjou, J. C. (2004). GSM RSSI-based positioning using extended Kalman filter for training artificial neural networks. IEEE Vehicular Technology Conference, 6, 4141–4145.

    Google Scholar 

  10. Albukerque, J., Lair, J. L., Govin, B., Muller, G., & Riant, P. (1985). Autonomous satellite navigation using optico-inertial instruments. In Proceedings of the 10th IFAC symposium on automatic control in space. Toulouse, France.

  11. Hornung, A. (2009). Learning policies for reliable mobile robot localization. Master Thesis. Albert-Ludwigs-Universität Freiburg, Germany.

  12. Koperski, C. (2007). Multi-robot FastSLAM for large domains. Master Thesis. Albert-Air Force Institute of Technology, Graduate School of Engineering and Management, Ohio, USA.

  13. Cant-Paz, E. (2002). On random numbers and the performance of genetic algorithms. In GECCO’02: Proceedings of the genetic and evolutionary computation conference. San Francisco, CA, USA.

  14. Thomas, D. B., Howes, L., & Luk, W. (2009). A comparison of CPUs, GPUs, FPGAs, and massively parallel processor arrays for random number generation. In Proceedings of the ACM/SIGDA 17th international symposium on field programmable gate arrays, FPGA 2009. Monterey, California, USA.

  15. Thomas, D. B., & Luk, W. (2008). FPGA-optimised high-quality uniform random number generators. In Proceedings of the ACM/SIGDA 16th international symposium on field programmable gate arrays, FPGA2008. Monterey, California, USA.

  16. Dalal, I., & Stefan, D. (2008). A hardware framework for the fast generation of multiple long-period random number streams. In Proceedings of the ACM/SIGDA 16th international symposium on field programmable gate arrays, FPGA2008. Monterey, California, USA.

  17. Konuma, S., & Ichikawa, S. (2005). Design and evaluation of hardware pseudo-random number generator MT19937. IEICE Transactions on Information and Systems, E88-D (Oxford, UK)(12), 2876–2879.

  18. Sriram, V., & Kearney, D. (2006). An area time efficient field programmable Mersenne twister uniform random number generator. In Proceedings of international conference on engineering of reconfigurabe systems and algorithms. CSREA Press.

  19. Chandrasekaran, S., & Amira, A. (2008). High performance FPGA implementation of the Mersenne twister. In Proceedings of the 4th IEEE international symposium on electronic design, test and applications, DELTA2008. IEEE Computer Society.

  20. White, D. R., Clark, J., Jacob, J., & Poulding, S. M. (2008). Searching for resource-efficient programs: Low-power pseudorandom number generators. In GECCO’08: Proceedings of the genetic and evolutionary computation conference. Atlanta, GA, USA.

  21. Howard, A., & Roy, N. (2003). The robotics data set repository (Radish). http://radish.sourceforge.net/.

  22. Volder J. E. (2000). The birth of cordic. Journal of VLSI Signal Processing Systems, 25(2), 101–105.

    Article  Google Scholar 

  23. Bluespec System Verilog (2010). Technical specifications. http://www.bluespec.com.

  24. Gruian, F., & Westmijze, M. (2008). VHDL vs. BlueSpec system verilog: A case study on a Java embedded architecture. In Proceedings of the 2008 ACM symposium on applied computing (pp. 1492–1497). ACM.

  25. Ecuyer, P., & Simard, R. (2007). TestU01: A C library for empirical testing of random number generators. ACM Transactions on Mathematical Software, 33(4), 22:1–22:40.

    Google Scholar 

Download references

Acknowledgements

The authors would like to thank CNPq (Ref. 573963/2008-8) for the financial support given to this research project and to the INCT-SEC (National Institute of Science and Technology-Critical Embedded Systems).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Vanderlei Bonato.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Bonato, V., Mazzotti, B.F., Fernandes, M.M. et al. A Mersenne Twister Hardware Implementation for the Monte Carlo Localization Algorithm. J Sign Process Syst 70, 75–85 (2013). https://doi.org/10.1007/s11265-012-0661-y

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11265-012-0661-y

Keywords

Navigation