Programowe struktury ramowe do tworzenia sterowników robotów
Streszczenie
Liczba typów robotów oraz wykorzystywanych przez nie czujników niezmiennie wzrasta, otwierając wciąż nowe pola ich zastosowań. Różnorodność ta wpływa na zapotrzebowanie na narzędzia ułatwiające ich programowanie. W artykule skupiono uwagę na narzędziach programistycznych umożliwiających tworzenie wysokopoziomowych sterowników robotów. Pokrótce omówiono ewolucję metod programowania robotów, od języków specjalizowanych, przez biblioteki, aż po programowe struktury ramowe. W szczególności omówiono szereg popularnych programowych struktur ramowych, umożliwiających tworzenie złożonych sterowników robotów.
Słowa kluczowe
języki programowania robotów, metody programowania robotów, programowe struktury ramowe, sterowniki robotów
Programming frameworks for development of robot controllers
Abstract
The constantly increasing diversity of types of robot and sensors opens new fields of applications. This affects the demand for tools facilitating their programming. This article focuses on the programming tools for development of high-level robotic controllers. It briefly discusses the evolution of methods of robot programming, starting from specialized languages, specialized libraries of functions for general purpose programming languages, ending up on robot programming frameworks. In particular, it presents a number of popular programming frameworks, enabling the creation of complex robot controllers.
Keywords
programming frameworks, robot controllers, robot programming languages, robot programming methods
Bibliografia
- Strona projektu URBI. URBI [www.gostai.com].
- Internet Communication Engine. [http://zeroc.com/ice.html], 2008.
- CORBA Basics. [www.omg.org/gettingstarted/corbafaq.htm], 2014.
- Alami R., Chatila R., Fleury S., Ghallab M.M., Ingrand F., An architecture for autonomy. Int. J. of Robotics Research, 17(4):315–337, 1998.
- Ambler A.P., Corner D.F., RAPT1 user’s manual. Department of Artificial Intelligence, University of Edinburgh, 1984.
- Backes P., Hayati S., Hayward V., Tso K., The kali multi-arm robot programming and control environment. NASA Conference on Space Telerobotics, 89–7, 1989.
- Baillie J.-C., Design principles for a universal robotic software platform and application to URBI. IEEE ICRA 2007 Workshop on Software Development and Integration in Robotics (SDIR-II). IEEE Robotics and Automation Society, 2007.
- Baillie J.-C., Nottale M., Pothier B., The URBI Tutorial v.1.5. [www.urbiforge.org/tutorial], 2007.
- Blume C., Jakob W., PASRO: Pascal for Robots. Springer-Verlag, 1985.
- Blume C., Jakob W., Programming languages for industrial robots. 1986.
- Brooks A., Kaupp T., Makarenko A., Williams S., Orebäck A., Towards componentbased robotics. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS’05), 163–168, August 2005.
- Brooks A., Kaupp T., Makarenko A., Williams S., Orebäck A., Orca: A component model and repository. D. Brugali, (red.), Software Engineering for Experimental Robotics, wolumen 30 serii Springer Tracts in Advanced Robotics, 231–251. Springer, 2007.
- Broten G., Monckton S., Giesbrecht J., Collier J., Towards framework-based uxv software systems: An applied research perspective. D. Brugali, (red.), Software Engineering for Experimental Robotics, 365–393. Springer-Verlag, 2007.
- Brugali D., Sidebar – middlewares for distributed computing. D. Brugali, (red.), Software Engineering for Experimental Robotics, strony 395–398. Springer-Verlag, 2007.
- Brugali D., Stable analysis patterns for robot mobility. Brugali D., (red.), Software Engineering for Experimental Robotics, 9–30. Springer-Verlag, 2007.
- Brugali D., Agah A., MacDonald B., Nesnas I., Smart W., Trends in robot software domain engineering. D. Brugali (red.) Software Engineering for Experimental Robotics, 3–8. Springer-Verlag, 2007.
- Brugali D., Brooks A., Cowley A., Côté C., Domínguez-Brito A.C., Létourneau D., Michaud F., Schlegel C., Trends in component-based robotics. D. Brugali, (red.), Software Engineering for Experimental Robotics, wolumen 30 serii Springer Tracts in Advanced Robotics, 135–142. Springer-Verlag, 2007.
- Brugali D., Broten G. S., Cisternino A., Colombo D., Fritsch J., Gerkey B., Kraetzschmar G., Vaughan R., Utz H., Trends in robotic software frameworks. D. Brugali, redaktor, Software Engineering for Experimental Robotics, 259–266. Springer-Verlag, 2007.
- Bruyninckx H., Open robot control software: the orocos project. International Conference on Robotics and Automation (ICRA), wolumen 3, 2523–2528. IEEE, 2001.
- H. Bruyninckx. OROCOS – Open Robot Control Software. [www.orocos.org], 2002.
- H. Bruyninckx. The real-time motion control core of the OROCOS project. Proceedings of the IEEE International Conference on Robotics and Automation, 2766–2771. IEEE, September 2003.
- Chrysanthakopoulos G., Singh S., An asynchronous messaging library for C#.
- Cisternino A., Colombo D., Ambriola V., Combetto M., Increasing decoupling in the robotics4.net framework. D. Brugali, redaktor, Software Engineering for Experimental Robotics, 307–324. Springer-Verlag, 2007.
- Collett T., MacDonald B., Gerkey B., Player 2.0: Toward a practical robot programming framework. Proceedings of the Australasian Conference on Robotics and Automation (ACRA), December 2005.
- Corke P., Kirkham R., The ARCL robot programming system. 484–493. 14–16 July 1993.
- Corporation M., Microsoft Robotics Studio.
- Czarnecki K., Helsen S., Classification of model transformation approaches. Proceedings of the 2nd OOPSLA Workshop on Generative Techniques in the Context of the Model Driven Architecture, wolumen 45, 1–17. Citeseer, 2003.
- Fitzpatrick P., Metta G., Natale L., YARP User Manual, 2007.
- Fitzpatrick P., Metta G., Natale L., Towards long-lived robot genes. Robotics and Autonomous Systems, 56(1):29–45, 2008.
- Fleury S., Herrb M., Chatila R., GenoM: A tool for the specification and the implementation of operating modules in a distributed robot architecture. Proceedings of the 1997 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS’97), 2:842–849, September 1997.
- Gerkey B.P., Vaughan R. T., Støy K., Howard A., Sukhatme G. S., Mataric M. J., Most Valuable Player: A Robot Device Server for Distributed Control. Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 1226–1231, 2001.
- Hayward V., Daneshmend L., Hayati S., An overview of KALI: A system to program and control cooperative manipulators. K. Waldron, redaktor, Advanced Robotics, 547–558. Springer–Verlag, Berlin, 1989.
- Hayward V., Hayati S., Kali: An environment for the programming and control of cooperative manipulators. 7th American Control Conference, 473–478, 1988.
- Hayward V., Paul R. P., Robot manipulator control under unix RCCL: A robot control C library. International Journal of Robotics Research, 5(4):94–111, Winter 1986.
- Kaisler S., Software Paradigms. Wiley Interscience, 2005.
- Kedzierski J., Janiak M., Budowa robota społecznego FLASH. Tchon K., Zielinski C., redaktorzy, Postępy Robotyki, wolumen 182 serii Prace Naukowe – Elektronika, 681–694. Oficyna Wydawnicza Politechniki Warszawskiej, 2012.
- Kędzierski J., Małek Ł., Oleksy A., Zastosowanie otwartego oprogramowania w systemie sterowania robotem społecznym. Tchoń K., Zieliński C., redaktorzy, Postępy Robotyki, wolumen 182 serii Prace Naukowe – Elektronika, 671–680. Oficyna Wydawnicza Politechniki Warszawskiej, 2012.
- Kleppe A., Software Language Engineering: Creating Domain-Specific Languages Using Metamodels. Addison-Wesley, 2009.
- Kornuta T., Application of the FraDIA vision framework for robotic purposes. Bolc L., Tadeusiewicz R., Chmielewski L., Wojciechowski K., redaktorzy, Proceedings of the International Conference on Computer Vision and Graphics, Part II, wolumen 6375 serii Lecture Notes in Computer Science, strony 65–72. Springer Berlin/Heidelberg, 2010.
- Kornuta T., Stefańczyk M., DisCODe: komponentowa struktura ramowa do przetwarzania danych sensorycznych. Pomiary Automatyka Robotyka, 16(7-8):76–85, 2012.
- Kornuta T., Zieliński C., Robot control system design exemplified by multi-camera visual servoing. Journal of Intelligent & Robotic Systems, 1–25, 2013.
- Lloyd J., Parker M., McClain R., Extending the RCCL Programming Environment to Multiple Robots and Processors. 465–469, 1988.
- MacDonald B., Biggs G., Collett T., Software environments for robot programming. D. Brugali, redaktor, Software Engineering for Experimental Robotics, 107–124. Springer-Verlag, 2007.
- Metta G., Fitzpatrick P., Natale L., YARP: Yet Another Robot Platform. International Journal on Advanced Robotics Systems, 3(1):43–48, 2006.
- Mujtaba S., Goldman R., AL users’ manual. Stanford Artificial Intelligence Laboratory, Sty. 1979.
- Nesnas I., The CLARAty project: Coping with hardware and software heterogenity. Brugali D., redaktor, Software Engineering for Experimental Robotics, 9–30. Springer–Verlag, 2007.
- Nesnas I., Simmons R., Gaines D., Kunz C., Diaz-Calderon A., Estlin T., Madison R., Guineau J., McHenry M., Shu I., Apfelbaum D., Claraty: Challenges and steps toward reusable robotic. International Journal of Advanced Robotic Systems, 3(1.):23–30, 2006.
- Nesnas I. A. D., The CLARAty project: Coping with hardware and software heterogeneity. D. Brugali, redaktor, Software Engineering for Experimental Robotics, wolumen 30 serii Springer Tracts in Advanced Robotics, 31–70. Springer-Verlag, 2006.
- Niederliński A., Roboty przemysłowe. Wydawnictwa Szkolne i Pedagogiczne, 1981.
- Nilakantan A., Hayward V., The Synchronisation of Multiple Manipulators in Kali. Robotics and Autonomous Systems, 5(4):345–358, 1989.
- Object Management Group. The Common Object Request Broker: Architecture and Specification, Version 2.6.1. Object Management Group, May 2002.
- Paul R., WAVE: A model based language for manipulator control. The Industrial Robot, 10–17, March 1977.
- Paul R., Robot Manipulators: Mathematics, Programming, and Control. The MIT Press, 1982.
- Popplestone R. J., Ambler A.P., Bellos I., RAPT: A Language for Describing Assemblies. Industrial Robot, 5(3):131–137, September 1978.
- Quigley M., Gerkey B., Conley K., Faust J., Foote T., Leibs J., Berger E., Wheeler R., Ng. ROS: an open-source Robot Operating System. Proceedings of the Open-Source Software workshop at the International Conference on Robotics and Automation (ICRA), 2009.
- Schmidt D. C., Gokhale A., Harrison T. H., Parulkar G., A high-performance endsystem architecture for real-time CORBA. IEEE Communications Magazine, 14(2), 1997.
- Szyperski C., Oprogramowanie komponentowe – obiekty to za mało. WNT, 2001.
- Vaughan R. T., Gerkey B. P., Reusable robot software and the Player/Stage project. D. Brugali, redaktor, Software Engineering for Experimental Robotics, wolumen 30 serii Springer Tracts in Advanced Robotics, 267–289. Springer, 2007.
- Volpe R., Nesnas I., Estlin T., Mutz D., Petras R., Das H., The claraty architecture for robotic autonomy. Jet Propulsion Laboratory, 2001.
- Willow Garage. Website of the Ecto framework for perception, [http://ecto.willowgarage.com], 2011.
- Zieliński C., TORBOL – język programowania robotów przeznaczonych do wykonywania zadan transportowo-montażowych. Archiwum Automatyki i Telemechaniki, 3, 1989.
- Zieliński C., TORBOL: An object level robot programming language. Mechatronics, 1(4):469–485, 1991.
- Zieliński C., The MRROC++ system. Proceedings of the First Workshop on Robot Motion and Control, RoMoCo’99, 147–152, June 1999.
- Zielinski C., Implementation of control systems for autonomous robots. 6th Int. Conf. on Control, Automation, Robotics and Vision, ICARCV’2000, 5–8 December 2000, Singapore (on CD-ROM), 2000.
- Zieliński C., Formal approach to the design of robot programming frameworks: the behavioural control case. Bulletin of the Polish Academy of Sciences – Technical Sciences, 53(1):57–67, March 2005.
- Zielinski C., Systematic approach to the design of robot programming frameworks. Proceedings of the 11th IEEE International Conference on Methods and Models in Automation and Robotics (on CD), 639–646. Technical University of Szczecin, 29 August – 1 September 2005.
- Zieliński C., Transition-function based approach to structuring robot control software, K. Kozłowski (red.) Robot Motion and Control, wolumen 335 serii Lecture Notes in Control and Information Sciences, 265–286. Springer-Verlag, 2006.
- Zieliński C., Inteligencja wokół nas. Współdziałanie agentów softwareowych, robotów, inteligentnych urządzeń, wolumen 15, rozdział Formalne podejście do programowania robotów – struktura układu sterującego, 267–300. EXIT, 2010.
- Zieliński C., Kasprzak W., Kornuta T., Szynkiewicz W., Trojanek P., Walecki M., Winiarski T., Zielinska T., Control and programming of a multi-robot-based reconfigurable fixture. Industrial Robot: An International Journal, 40(4):329–336, 2013.
- Zieliński C., Kornuta T., Boryn M., Specification of robotic systems on an example of visual servoing. 10th International IFAC Symposium on Robot Control (SYROCO 2012), wolumen 10, 45–50, 2012.
- Zieliński C., Kornuta T., Stefanczyk M., Szynkiewicz W., Trojanek P., Walęcki M., Języki programowania robotów przemysłowych. Pomiary Automatyka Robotyka, 16(11):10–19, 2012.
- Zieliński C., Mianowski K., Nazarczuk K., Szynkiewicz W., A Prototype Robot for Polishing and Milling Large Objects. Industrial Robot, 30(1):67–76, January 2003.
- Zieliński C., Szynkiewicz W., Mianowski K., Nazarczuk K., Mechatronic design of open structure multi-robot controllers. Mechatronics, 11(8):987–1000, November 2001.
- Zieliński C., Szynkiewicz W., Winiarski T., Staniak M., Czajewski W., Kornuta T., Rubik’s cube as a benchmark validating MRROC++ as an implementation tool for service robot control systems. Industrial Robot: An International Journal, 34(5):368–375, 2007.
- Zieliński C., Winiarski T., General specification of multi-robot control system structures. Bulletin of the Polish Academy of Sciences – Technical Sciences, 58(1):15–28, 2010.
- Zieliński C., Winiarski T., Motion generation in the MRROC++ robot programming framework. International Journal of Robotics Research, 29(4):386–413, 2010.
- Zieliński C., Winiarski T., Szynkiewicz W., Kornuta T., Trojanek P. , Inteligencja wokół nas. Współdziałanie agentów softwareowych, robotów, inteligentnych urządzeń, wolumen 15, rozdział/l MRROC++ – programowa struktura ramowa do tworzenia sterowników systemów wielorobotowych, 317–384. EXIT, 2010.