Skip to main content
Log in

A pragmatic approach to dimensional analysis for mobile robotic programming

  • Published:
Autonomous Robots Aims and scope Submit manuscript

Abstract

An application-specific approach to the design of a robot programming language may allow for a language better suited to the unique challenges found when programming in this domain. One area of robotics programming that can be supported by an application-specific approach is dimensioned data. Robot programs typically manage a substantial amount of dimensioned data. However, existing robot programming tools do not directly support the description and manipulation of dimensioned quantities. A new system is presented for managing dimensioned data in robot software. The design provides a new primitive data type to support dimensioned data. Its unique syntax improves program readability and writability. Dimensional consistency is automatically checked by the system and any errors are reported, significantly easing the debugging of dimensioned data and improving the reliability of robot software. The data type is evaluated by common criteria for evaluating programming languages and a small user study, and is found to be an improvement.

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.

Similar content being viewed by others

References

  • Agrawal, M. B., & Garg, V. K. (1984). Dimensional analysis in Pascal. SIGPLAN Notes, 19(3), 7–11.

    Article  Google Scholar 

  • Allen, E., Chase, D., Luchangco, V., Maessen, J.-W., & Steele, G. L. Jr. (2004). Object-oriented units of measurement. In OOPSLA ’04: Proceedings of the 19th annual ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications (pp. 384–403). New York: ACM Press, ISBN 1-58113-831-9.

    Chapter  Google Scholar 

  • Armstrong, J. (1997). The development of Erlang. In ICFP ’97: Proceedings of the second ACM SIGPLAN international conference on functional programming (pp. 196–203). New York: ACM Press.

    Chapter  Google Scholar 

  • Baldwin, G. (1987). Implementation of physical units. SIGPLAN Notes, 22(8), 45–50.

    Article  Google Scholar 

  • Biggs, G., & MacDonald, B. (2003). A survey of robot programming systems. In Proceedings of the Australasian conference on robotics and automation, CSIRO, Brisbane, Australia, December 1–3 2003.

  • Biggs, G., & MacDonald, B. (2005). On specifying reactivity in robotics. In Proceedings of the Australasian conference on robotics and automation, University of New South Wales, Sydney, Australia, December 5–7 2005.

  • Blank, D., Meeden, L., & Kumar, D. (2003). Python robotics: An environment for exploring robotics beyond legos. In Proceedings of the Thirty-Fourth SIGCSE Technical Symposium on Computer Science Education, Reno, Nevada, February 2003. New York: ACM Press.

    Google Scholar 

  • Bollella, G. et al. (2001). The real-time specification for Java, version 1.0.2, November 2001. http://www.rtsj.org.

  • Brooks, A., Kaupp, T., Makarenko, A., Williams, S., & Oreback, A. (2005). Towards component-based robotics. In Intelligent robots and systems, 2005 (IROS 2005). 2005 IEEE/RSJ international conference (pp. 163–168).

  • Brown, W. E. (1998). Introduction to the SI library of unit-based computation. In International conference on computing in high energy physics (CHEP’98), Chicago, August 31–September 4 1998.

  • Cañas, J. M., Matellán, V., Biggs, G., & MacDonald, B. A. (2007). Sidebar—programming commercial robots. In Software engineering for experimental robotics (pp. 125–132). Berlin: Springer.

    Chapter  Google Scholar 

  • Cmelik, R. F., & Gehani, N. H. (1988). Dimensional analysis with C++. IEEE Software 5(3), 21–27.

    Article  Google Scholar 

  • Collett, T., MacDonald, B., & Gerkey, B. (2005). Player 2.0: Toward a practical robot programming framework. In Proceedings of the Australasian conference on robotics and automation, University of New South Wales, Sydney, Australia, December 5–7 2005.

  • Cote, C., Letourneau, D., Michaud, F., Valin, J.-M., Brosseau, Y., Raievsky, C., Lemay, M., & Tran, V. (2004). Code reusability tools for programming mobile robots. In Intelligent robots and systems, 2004 (IROS 2004). Proceedings. 2004 IEEE/RSJ International Conference (Vol. 2, pp. 1820–1825).

  • Dautelle, J.-M., & Keil, W. (2008). JSR-275—Units API—Expert group collaboration home. https://jsr-275.dev.java.net/.

  • Dreiheller, A., Mohr, B., & Moerschbacher, M. (1986). Programming Pascal with physical units. SIGPLAN Notes, 21(12), 114–123.

    Article  Google Scholar 

  • Gehani, N. (1977). Units of measure as a data attribute. Computer Languages, 2(3), 93–111.

    Article  MATH  Google Scholar 

  • Gehani, N. H. (1985). Ada’s derived types and units of measure. Software: Practices and Experience, 15(6), 555–569.

    Article  Google Scholar 

  • Gonzalez, D. W., Peart, T. (1993). Applying dimensional analysis. Ada Letters, XIII(4), 77–86.

    Article  Google Scholar 

  • Grein, C., Kazakov, D. A., & Wilson, F. (2003). A survey of physical unit handling techniques in Ada. In Lecture Notes in Computer Science : Vol. 2655. Ada-Europe 2003 (pp. 258–270). Berlin: Springer.

    Google Scholar 

  • Hilfinger, P. N. (1988). An Ada package for dimensional analysis. ACM Transactions on Programming Languages Systems, 10(2), 189–203.

    Article  Google Scholar 

  • House, R. T. (1983). A proposal for an extended form of type checking of expressions. Computer Journal, 26(4), 366–374.

    MATH  Google Scholar 

  • Howatt, J. (1995). A project-based approach to programming language evaluation. SIGPLAN Notes, 30(7), 37–40.

    Article  Google Scholar 

  • Jupp, E. W. (1962). An introduction to the dimensional method. London: Cleaver-Hume Press.

    Google Scholar 

  • Kennedy, A. J. (1996). Programming languages and dimensions. Technical report, St. Catherine’s College, March 1996.

  • Kramer, J., & Scheutz, M. (2007). Development environments for autonomous mobile robots: A survey. Autonomous Robots, 22, 101–132.

    Article  Google Scholar 

  • MacDonald, B. A., Biggs, G., Collett, T. H. J., & Kuo, Y. H. (2007). Software engineering for experimental robotics. Berlin: Springer, Chap. 44.

    Book  Google Scholar 

  • Massey, B. S. (1971). Units, dimensional analysis and physical similarity. London, New York: Van Nostrand Reinhold.

    Google Scholar 

  • Montemerlo, M., Roy, N., & Thrun, S. (2003). Perspectives on standardization in mobile robot programming: the Carnegie Mellon Navigation (CARMEN) Toolkit. In Intelligent robots and systems, 2003 (IROS 2003). Proceedings 2003 IEEE/RSJ international conference (Vol. 3, pp. 2436–2441).

  • Novak, G. S. Jr. (1995). Conversion of units of measurement. IEEE Transactions on Software Engineering, 21(8), 651–661.

    Article  Google Scholar 

  • Prechelt, L. (2000). An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a search/string-processing program. Technical report, Fakultät für Informatik, Universität Karlsruhe, Germany, D-76128 Karlsruhe, Germany, March 2000. URL http://wwwipd.ira.uka.de/EIR.

  • Rogers, P. (1988). Dimensional analysis in Ada. Ada Letters, VIII(5), 92–100.

    Article  Google Scholar 

  • Sebesta, R. W. (2005). Concepts of programming languages (7th ed.). Redwood City: Benjamin/Cummings Publishing.

    Google Scholar 

  • Stephenson, A. G., et al. (1999). Mars climate orbiter mishap investigation board phase I report. ftp://ftp.hq.nasa.gov/pub/pao/reports/1999/MCO_report.pdf, November 10 1999.

  • Umrigar, Z. D. (1994). Fully static dimensional analysis with C++. SIGPLAN Notes, 29(9), 135–139.

    Article  Google Scholar 

  • Vaughan, R. T., Gerkey, B. P., & Howard, A. (2003). On device abstractions for portable, reusable robot code. In Intelligent robots and systems, 2003 (IROS 2003). Proceedings. 2003 IEEE/RSJ international conference (Vol. 3, pp. 2421–2427).

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Geoffrey Biggs.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Biggs, G., MacDonald, B.A. A pragmatic approach to dimensional analysis for mobile robotic programming. Auton Robot 25, 405–419 (2008). https://doi.org/10.1007/s10514-008-9103-x

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10514-008-9103-x

Keywords

Navigation