Abstract
Robotics researchers have been unable to capitalize easily on existing software components to speed up their development efforts and maximize their system's capabilities. A component-based approach for building the software for robotics systems can provide reuse and sharing abilities to the research community. The software engineering community has been studying reuse techniques for three decades. We present several results from those efforts that are applicable to the robotics software integration problem. We describe how to specify a software component so that a potential user may understand its capabilities and facilitate its application to his or her system. At the National Institute of Standards and Technology, we have developed a three-stage, component-specification approach. We illustrate this approach for a component that is relevant to robotics.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Albus, J. 1996. An engineering architecture for intelligent systems. In Proceedings of the American Association for Artificial Intelligence (AAAI), Fall Symposium Series.
Albus, J.S. 1997. 4-D/RCS: A reference model architecture demo III, Technical Report NIST Technical Note 5994, U.S. Department of Commerce, National Institute of Standards and Technology, NIST, Gaithersburg, MD 20899.
Bailo, C., Alderson, G., and Yen, C. 1994. Requirements of open, modular, architecture controllers for applications in the automotive industry, white paper. Available on the Wide World Web http://www.arcweb.com/omac/Documents/omacv11.htm.
Baresi, L., Orso, A., and Pezzè, M. 1997. Introducing formal specification methods in industrial practice. In Proceedings of the 1997 International Conference on Software Engineering, pp. 56–66.
Basili, V. and Abd-El-Hafiz, S. 1992. Packaging reusable components: The specification of programs, Technical Report CS-TR-2957, UMIACS-TR–92-97, Department of Computer Science, University of Maryland.
Batory, D. and O'Malley, S. 1992. The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering Methodology, 1(4):355–398.
Berners-Lee, T. and Connolly, D. 1993. Hypertext markup language: A representation of textual information and metainformation for retrieval and interchange, Technical Report, CERN and Atrium Technology Inc.
Brockschmidt, K. 1995. Inside OLE, 2nd edition, Microsoft Press: Redmond, WA.
Chappell, D. 1996. Understanding ActiveX and OLE—A Guide for Developers and Managers. Microsoft Press: Redmond, WA.
Chen, Y. and Cheng, B. 1997. Formally specifying and analyzing architectural and functional properties of components for reuse. In WISR8, the 8th Workshop on Software Reuse. http://www.umcs.maine.edu/ftp/wisr/wisr8/papers.html.
Dementhon, D. and Davis, L. 1995. Model-based object pose in 25 lines of code. International Journal of Computer Vision, 15:123–141.
Demeyer, S., Meijler, T., Nierstrasz, O., and Steyaert, P. 1997. Design guidelines for ‘tailorable’ frameworks. Communications of the ACM, 40(10).
Denning, A. 1997. ActiveX Controls Inside Out. Microsoft Press: Redmond, WA.
Diller, A. 1997. Z: An Introduction to Formal Methods, 2nd edition, John Wiley & Sons: New York, NY.
Fayad, M. and Schmidt, D.C. 1997. Object-oriented application frameworks—Introduction. Communications of the ACM, 40(10):32–38.
Haralick, R.M. 1992. Performance characterization in computer vision. In Proceedings of the 3rd British Machine Vision Conference.
Haralick, R.M. et al. 1989. Pose estimation from corresponding point data. In Machine Vision for Inspection and Measurement.
Herman, M. and Albus, J. 1988. Overview of the multiple autonomous underwater vehicles (MAUV) project. In IEEE International Conference on Robotics and Automation, Philadelphia, PA.
Huang, H. 1996. An architecture and a methodology for intelligent control. IEEE Expert, 11(2).
Huttenlocher, D.P. and Ullman, S. 1990. Recognizing solid objects by alignment with an image. International Journal of Computer Vision, 5(2):195–212.
IEEE 1994. IEEE Std 1076–1993: IEEE standard VHDL language reference manual, IEEE Standards.
ISO 1994a. Industrial automation systems and integration, product data representation and exchange—part 11. EXPRESS Language Reference Manual. International Organization for Standardization.
ISO 1994b. Industrial automation systems and integration, Product data representation and exchange—part 21: Clear text encoding of the exchange structure, International Organization for Standardization.
JavaSoft 1998. Products and APIs. See Web URL: http://www.java.sun.com/products.
Kara, D. 1997. Seeing the forest for the trees. Software Magazine.
Kazman, R., Clements, P., Bass, L., and Abouwd, G. 1997. Classifying architectural elements as a foundation for mechanism matching. In Proceedings of the 1997 21st Annual International Computer Software and Applications Conference.
Krueger, C. 1992. Software Reuse. ACM Computing Surveys, 24(2).
Liskov, B. and Wing, J. 1993. Specifications and their use in defining subtypes. In Proceedings of the 8th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 16–28.
Luckham, D.C., Kenney, J.J., Augustin, L.M., Vera, J., Bryan, D., and Mann, W. 1995. Specification and analysis of system architecture using rapide. IEEE Transactions on Software Engineering, 21(4):336–355.
McCool, R. 1994. The common gateway interface. NCSA, 1.1 edition.
Morris, K. 1993. Data probe: A tool for EXPRESS-based Data. In Proceedings of the 7th Annual Engineering Database Symposium—ASME Computers in Engineering Conference.
Murphy, K., Juberts, M., Legowik, S., Nashman, M., Schneiderman, H., Scott, H., and Szabo, S. 1993. Ground vehicle control at NIST: From teleoperation to autonomy. In Proceedings of the 7th Annual Space Operations, Applications, and Research Symposium, Houston, TX.
Murphy, K., Norcross, R., and Proctor, F. 1988. CAD directed robotic deburring. In Proceedings of the Second International Symposium on Robotics and Manufacturing Research, Education, and Applications, Albuquerque, NM.
Musser, D.R. and Saini, A. 1996. STL Tutorial and Reference Guide, Addison Wesley: Reading, MA.
Nauer, P. and Randel, E.B. 1968. Software Engineering: Report on a Conference by the NATO Science Committee, NATO Scientific Affairs Division: Brussels, Belgium.
Nierstrasz, O., Gibbs, S., and Tsichritzis, D. 1992. Component oriented software development. Communications of the ACM, 35(9).
Nierstrasz, O. and Meijler, T. 1995. Research directions in software composition. ACM Computing Surveys, 27(2).
OMAC API Workgroup 1997. OMAC API Set. Open Modular Architecture Controls (OMAC) User Group. See Web URL: http://isd.cme.nist.gov/info/omacapi.
OMG 1996. Description of the New OMA Reference Model, Draft 1. OMG Document ab/96–05-02. Object Management Group, Framingham, MA. http://www.omg.org.
OMG 1997. The common object request broker: Architecture and specification. Object Management Group Formal Document 97–02-25. Object Management Group, Framingham, MA. http://www.omg.org.
OSACA 1998. Open system architecture for controls within automation systems. See Web URL: http://www.osaca.org.
Paredis, C., Brown, B., and Khosla, P. 1997. A rapidly deployable manipulator system. Robotics and Autonomous Systems, 21:289–304.
Piccinocchi, S., Ceccarelli, M., Piloni, F., and Bicchi, A. 1997. Interactive benchmark for planning algorithms on the web. In Proceedings of the 1997 IEEE International Conference on Robotics and Automation.
Podgurski, A. and Pierce, L. 1993. Retrieving reusable software by sampling behavior. ACM Transactions on Software Engineering and Methodology, 2(3):286–303.
Postel, J. (Ed.). 1981. Transmission control protocol—DARPA internet program protocol specification. RFC 793.
Pree, W. 1997. Component-based software development—A new paradigm in software engineering? Software-Concepts and Tools, 18:169–174.
Rogerson, D. 1997. Inside COM, Microsoft Press: Redmond, WA.
Short, K. 1997. Component based development and object modeling. See Web URL: http://www.cool.sterling/cbd/whitepaper.
SML Corporation 1998. Open system environment for controller (OSEC) architecture overview. Published on the Wide World Web http://www.sml.co.jp/OSEC.
Steenstrup, M., Arbib, M.A., and Manes, E.G. 1983. Port automata and the algebra of concurrent processes. Journal of Computer and System Sciences, 27(1):29–50.
Stewart, D., Volpe, R., and Khosla, P. 1997. Design of dynamically reconfigurable real-time software using port-based objects. IEEE Transactions on Software Engineering, 23(12):169–174.
Stouffer, K. and Russell, R. 1995. ADACS—An advanced deburring and chamfering system. In Proceedings of the 6th International Conference on Manufacturing Engineering, Melbourne, Australia.
Szyperski, C. 1998. Component Software: Beyond Object-Oriented Programming. Addison Wesley Longman Limited: Essex, England.
Tan, T., Sullivan, G., and Baker, K. 1992. Linear algorithms for object pose estimation. In Proceedings of the 3rd British Machine Vision Conference.
Tan, T., Sullivan, G., and Baker, K. 1994, Pose determination and recognition of vehicles in traffic scenes. In European Conference on Computer Vision.
Tan, T., Sullivan, G., and Baker, K. 1996. Pose determination and recognition of vehicles in traffic scenes. Pattern Recognition, 29(3):449–461.
Zaremski, A. and Wing, J. 1996. Specification matching of software components. ACM Transactions on Software Engineering and Methodology, 6(4):449–461.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Messina, E., Horst, J., Kramer, T. et al. Component Specifications for Robotics Integration. Autonomous Robots 6, 247–264 (1999). https://doi.org/10.1023/A:1008980211618
Issue Date:
DOI: https://doi.org/10.1023/A:1008980211618