The Roadmap and Challenges of Robot Programming Languages

15 downloads 199 Views 304KB Size Report
roadmap of the robot programming language and discussing its trends and potential challenges. Keywords —robot software; robot programming language;.
2015 IEEE International Conference on Systems, Man, and Cybernetics

The Roadmap and Challenges of Robot Programming Languages Shuo Yang, Xinjun Mao, Binbin Ge, Sen Yang School of Computer, National University of Defense Technology Changsha, Hunan, China {[email protected], [email protected], [email protected], [email protected]} with various physical equipment and devices. Secondly, nonfunctional requirements like real-time [43], security, safety are extremely important for robot software [2], especially when they are developed for serving human beings. Thirdly, due to openness of the situated environment, robot software is expected to be autonomous and self-adaptive in behaviors [4]. Lastly, as complexity and unexpectedness of robot systems increase, robots are expected with the capabilities of self-management like self-configuration, self-optimization [12], etc. Therefore, when the breakdown occurs in robot, its software should have the capability to recover by itself. Undoubtedly, to develop such robot software needs programming technologies and corresponding programming languages. There are several reviews about the robot programming systems and languages. The early attempt is the work of Susan Bonner, William A. Gruver, Lzzet Pembeci and Tomas Lozano-Perez [8][10][68][69]. [8] made a comparative study of fourteen robot languages and classified above languages into five levels. In [10], eight commercially available high-level robot programming languages were evaluated based on elements such as data types, control structures, etc. [69] gave a comparative review of robot programming languages and architecture designed in 1980s like Colbert, Firby, and etc. [68] surveyed various programming technologies for robots in 1980s. Another survey was made in 2003 by Geoffrey Biggs who divides the field of robot programming into automatic programming, manual programming and software architectures. This paper aims at investigating the researches and practices, and further providing a roadmap of robot programming languages. We intend to analyze the different application phases of robots and the corresponding programming technologies and languages supporting to construct robot software. Especially, various challenges to robot programming are identified as the emerging application domains and demands on robots. New concepts and technologies for robot programming should be provided to support the engineering development of such special software. The rest of this paper is organized as follows. Section 2 provides a roadmap of researches and practices of robot programming languages, and details the concerned issues and technologies of robot programming. Section 3 discusses its potential trends and challenges when robots are used in wide domain and complex environment. Lastly, conclusions are made.

Abstract—Great attentions have been put on the programming technologies to construct robot software in both academic research and industry due to the increasingly wide applications of robots in various areas, and potential challenges resulting from the complexity of robot software. In the past years, diverse programming technologies and languages have been designed to support the development of robot software. However, with robot applications and requirements change, to develop robot software remains a great challenge, especially when robots are widely used in open environment and expected to provide better and friendly services for human beings. This paper aims at analyzing the technical requirements for designing robot programming language, presenting the roadmap of the robot programming language and discussing its trends and potential challenges. Keywords —robot software; robot programming language; autonomous; self-adaptive

I.

INTRODUCTION

Recently with the increasing demands and practical applications of robots in various domains from industry manufactures, space exploration to family services [52], robots gain great attentions in both industry and academic research. Significant changes occur for both functionalities of robots and their situated environments in the past years. Robots are expected to provide multiple, intelligent and friendly services for human beings in various fields like family and hospital services, etc. Robots are becoming more powerful, with more sensors, intelligence, friendly services, complex tasks, and cheaper components. As a result robots are moving out of controlled environments (e.g., factory) and into uncontrolled service and open environments such as homes, hospitals, and workplaces. Therefore, robots need constant and frequent interactions with environments, and the changes in environment will have a great impact on the robots’ behaviors. Structures and behaviors of robots are expected to be self-adaptive to improve the performance, flexibility, dependability, safety, etc. In many cases, multiple robots and their collaborations need to satisfy the application requirements in which tasks should be composed and performed by swarm of robots [20]. Robot software is critical to implementing the functional and non-functional requirements described above. In contrast with traditional software that are typically running on computation environment, robot software is kind of cyberphysical system that has a number of new characteristics. Firstly, robots software should manage, control and interact 978-1-4799-8697-2/15 $31.00 © 2015 IEEE DOI 10.1109/SMC.2015.69

328

II.

AN OVERVIEW OF ROBOT PROGRAMMING LANGUAGES

applications will act as the important forces to drive the researches and practices of robot programming languages.

In the past more than 40 years, dozens of programming languages have been designed and used for programming robot software. Some of them are general-purpose, which means they are not specially designed for constructing robot software, e.g., Java [44], C++, Python, etc. However, these programming languages provide fundamental facilities and supports that can be used to construct robot software [50]. Robot-specific programming languages are kinds of specific programming languages that are devoted to solving the specified robot programming issues, e.g., managing the robot hardware, planning and re-planning path, perceiving the situated environment, etc. There is a number of programming languages designed or used for constructing robot software (see Fig. 1).

III.

A ROADMAP OF RESEARCH AND PRACTICE FOR ROBOT PROGRAMMING LANGUAGES

According to the observations on the robot’s generations [3][51]and their applications, the roadmap of robot programming languages can be roughly divided into three phases. We can find in each phase the concerned issues and the resulting approaches of robot programming are actually different. As shown below, Table 1, Table 2 and Table 3 respectively list the proposed or used robot programming languages in both academic and industry in these phases. The lists describe language properties, corresponding robot platforms and their applications. The lists are by no means complete. The ones chosen to list depend on the publications we can find and their representatives. Moreover, some robot programming languages like C++, Java, and Python are general-purpose. Therefore, they are not listed in the table. A. Phase 1: 1970s—1980s The robots in this phase are generally equipped with sensors or external devices, enabling obtaining exterior information. They are in a stage in which identify mainly one or two-dimensional binary patterns under controlled illumination conditions [53]. For example, the robot Famulus [52][54] was the first robot which own 6 electromechanically driven axes, with dynamic vision sensors for recognizing objects. With enhanced sensor abilities and environment awareness, expected application of robots includes inspection, assembly, heat treatment, grinding and buffing, and electroplating [55]. Typically, environment for robot is closed and pre-definable and the robots are designed for specific purposes like manufacture, working in dangerous areas, etc. Such applications generally require robots of sensitive perception, stable performance, precise operation, and adaptive ability in less unstructured conditions. To support above features, robot software is assumed to support data collections, transfers and processing from external sensors, choose and perform robot behaviors based on the sensory feedback and assigned tasks. Besides, robot software need dynamically detect minor deviations during task execution and eliminate errors as soon as possible. Due to above requirements, robot programming languages in phase 1 generally provide specific facilities and mechanism to construct such featured robot software: 1) Establish specific mechanisms for accuracy control and error recovery: As assembly tasks require high accuracy of robot operations, only minor deviations and errors are tolerable during execution. Robot programming languages are assumed to establish complete deviation control and error recovery scheme. In Wave system, deviations in execution are closely monitored to detect errors and modify subsequent sections of the plan to eliminate further differences. For the sake of security, simple error recovery is conducted by program tests and

Figure 1. The overview of robot programming languages

In fact, the programming technologies and languages for robot software are greatly influenced by characteristics of robot software that typically evolve with the robots and their applications. Moreover, the programming technologies and languages for robot are also influenced by the progresses and contributions of programming technologies in the field of software engineering and artificial intelligence. Due to properties such as abstraction, encapsulation, objectoriented programming languages (like C++, Haskell, Golog [22]) may promote the usage of these languages into the specific area (like robotics), which are developed to construct domain-independent applications. Programming languages for constructing intelligent systems seems suitable for robot software due to the provision of language mechanisms and facilities to implementing intelligence like planning, reasoning, etc. Therefore, robot and its

329

jumps instructions. In Autopass programming system, error detection is conducted by Autopass compiler which interacts with user at two levels. Similar strategy for error detection and recovery can also be found in Lama. 2) Support sensory feedback in assembly operations: External sensors begin to equip with robot platform since second generation of robot, which enables robot obtain adequate information about environment and itself. Sensory feedback, such as force and vision, greatly helps to check operating results and effects, so that following plans can be adjusted to achieve a better result. Languages such as Wave, Autopass, AML all support sensory feedback scheme to different degrees.

independence and autonomy. The workspace and operating context for robot becomes open and dynamic. Tasks for robot grow to be complex and requires of flexible mobility and autonomous ability, such as space exploration, navigating routes, obstacle avoiding, nursing and assisting the disabled. To cope with such new requirements, robot software is assumed to enable dynamic reconfiguration [63] or selfgrowing [64]. As issues and problems that are not anticipated at design time will necessitate change during an application’s lifetime, dynamic reconfiguration is an enabling technology for robot software to manage run-time changes and make adaptation. Besides, as autonomous operations always involve multi-tasking execution, efficient concurrency is generally a requirement for robot software.

TABLE 1. ROBOT PROGRAMMING LANGUAGES IN PHASE 1 Language Name

Robot

Applications

symbolic, manipulator, external vision systems Algol-like control, block structure, specific data type, coordinate system

Standford Arm

Water pump

Standford Arm

Assembly research

Maple[8]

PL/1-like base langugae

IBM Arm

Emily[48]

workhorse RL, simple processor, ML extension high-level, objects, assembly operation

Wave[5] [6][7]

AL

Autopass[9] RPL[8] [10]

[10]

JARS

SIGLA[11] VAL[10]

Language Properties

IBM Arm IBM Arm

Lisp cast, Fortran-like, subroutine calls

Unimation Puma 550

Pascal base, robot specific types, variables, subroutines Parallel task control, variable instruction sets Basic structure, new command words

Puma 560, Standford arm

RSS[65]

Instruction patterns, vision systems,

HELP[10]

Pascal tasking

base,

multi-

Sigla Puma robots Standford Electric Arm Allegro Arms

TABLE 2. ROBOT PROGRAMMING LANGUAGES IN PHASE 2 Language Name

Mechanical assembly Mechanical assembly Mechanical assembly Materialhanding, assembly tasks Manipulatio n control research Mechanical assembly

MCL

RAIL[66][15]

Pascal base, constructs,

AML[16]

Simple subsets, primitive operations,consistent rules

smalltalk[17]

Pascal and Ada like, data structure manipulation

Robol/0[18]

Sensor based, action mode representation Multi-tasking, objecorientes,timing constructs

IAda[19] TDL[21]

Manufacture

Language Properties

APT extension, off-line programming

[14]

specific

Task-level control, C++ extension, task tree

Robot

T-3 Cartesian arm,Hitachi process robot 7565 assembly robot -Yamabico

Applications

workcells control Inspection, arc-welding

Manufacture Flexible manufacturi ng Autonomou s navigation

--

--

Autonomou s mobile robot

--

In phase 2, general technical features of this period are as follows: 1) Provide high-level programming approach for advanced robot tasks: To provide high-level description for robot programming, TDL is designed to enable task-level control over autonomous robots. TDL directly support task decomposition, fine-grained synchronization of subtasks, execution monitoring, and exception handling, whose basic representation are task trees. Similarly, PRS also achieves high level control architectures for autonomous robots. Elements such as library plan and task graph enable representation of multiple tasks management. 2) Propose specific behavior pattern for adaptation: To enable dynamically manage run-time changes; good awareness and instant reaction towards unexpected events remain to be significant element of autonomous abilities [49]. ROBOL/0 language provides a powerful method to represent sensor based behavior, which greatly increase robot awareness. In ROBOL/0, an action mode is defined as a unit of behavior, which is proposed to represent sensor based behavior.

Assembly operations Assembly tasks

B. Phase 2: 1990s In 1990s, robots encompass two major avenues of evolving smart robot technology: bionics and autonomy. In view of robot shape, robots began to resemble live creatures such as fish, dog, and even human. RoboTuna [56] is designed to swim and resemble a blue fin tuna. A starfishshaped gel robot is made to explore kinematic model that describes robot transformation [57]. There are also humanoid robots such as P2 [60], P3 [58], ASIMO [59]. On the other hand, robots have much artificial intelligence. Typical example is Deep Blue [61] that beats the then current World Chess Champion. Other example like Sojurner [62] is capable of planning and navigating routes to study preface of Mars. Humanoid robots such as ASIMO enable speech recognition and natural language understanding. Such new generation of robots is widely applied in nonmanufacturing industry which requires flexible mobility, 330

C. Phase 3: 2000—nowadays After 2000, artificial intelligence for robot has been enhanced a lot. The ability of logic-based reasoning and learning knowledge [13] has been developed over new types of intelligent robots. For example, self-driving cars are underdeveloped to navigate automatically based on knowledge base and reasoning process. Sony Aibo robot requires no human intervention while planning fastest route after 3 hours of learning. Meanwhile, robot swarms are characterized of artificial swarm intelligence. Collective behavior is a new feature of nowadays autonomous robots, such as ant robots and Symbrion. Currently, robots are capable of realizing more complex goals and tasks, which make them be applied in more open and dynamic environments. Meanwhile, in heavy-workload jobs, such as searching survivors, sampling in a large district, swarm robots cooperation is needed to complete the work. Robot application in this phase typically requires enhanced intelligence to cope with more complex jobs, and collective cooperation from swarm robots to afford heavy-load work. As a consequence, robot software not only needs to be autonomous, adaptive but also supports distributed control among swarm robots. To control collective behaviors requires new software architecture which is distinctly different from single robot behavior. Therefore, robot programming languages are required to provide new approach or methodology to construct such software.

Protoswarm [39]

KRL[40] SitLog[41] INI[42]

MRL[28] RobotScript [29]

ConGolog [30]

Frob[31][32] CES[33]

Charon[34] Timber[35] Robys[36] ABGolog[37 ]

ReadyLog [38]

Language Properties

Robot

Applications

Guarded Horn Clauses, concurrent logic specifications

Multiple robots

--

Teachpoint file,universal

Mechanical arm

Universal

Mobile robot

Maildelivery task, navigation

--

--

Mobile robot

Maildelivering

Agents

--

Timbot

Autonomou s control

Mobile microrobot

Multi-agent system

High-level, goaloriented, situation calculus, condition reaction Rapid prototyping, modularity, abstraction C++ extension, probability disturibution, learning mechanisms Architectural hierarchy, behavior hierarchy, discrete updates, continuous updates High-level, program construction and resue High-level, objectoriented, single and multiple mode High-level primitives, Golog based, situation calculus Situation calculus, imperative control structures, decisiontheoretic planning

Autonomou s agents

Soccer robots

Robot swarm

Multi-robot system

Kuka robot

Manufacturi ng

Golem-II+

Service robot tasks

Nao

Object tracking

In this phase 3, several robot programming technologies and languages have been designed to meet new challenges brought by nowadays requirement of robotics: 1) Adopt logic-based reasoning methodology for advanced intelligence: Key aspect of cognitive decisionmaking and reasoning abilities lies in logical reasoning process. Languages such as ConGolog, ABGolog and ReadyLog all inherit basic characteristics of Golog, a highlevel logic programming language based on situation calculus. Situation calculus is regarded as a formalism to describe action and deduction as an inference rule to synthesize plans and make decisions. Related evolution such as event calculus [23][24] in ABGolog is designed to model and reason about scenarios based on a set of events. ReadyLog is characterized as imperative control constructs, which allows for decision-theoretic planning and accounts for a continuously changing world. 2) Integrate with agent-oriented techniques for multirobots programming: As robot resemble agent in terms of intelligence, agent-oriented programming language [1] is natural to express robot behaviors and perceptions. Multiagents system also applies for robot swarms in terms of collective behaviors and distributed control [46][47]. BDIbased agent programming languages such as 2APL empower autonomous robots with deliberative behaviors [25][26]. Basic agent techniques [27] such as sense-thinkact-cycle, deliberation methods, and coordination protocols are natural to be integrated into robotic techniques.

TABLE 3. ROBOT PROGRAMMING LANGUAGES IN PHASE 3 Language Name

Continuous space and time semantics, runtime library Pascal like,robot-specific statements, Situation-oriented, action selection, behavior specification, interpretation formalism Built-in and user-defined events, event handler

IV.

TRENDS AND CHALLENGES

Undoubtedly, robotics will be a promising direction in IT area with the rapid development of robot hardware systems (e.g., sensor, motion, mechanical devices, etc.) and its decreasing costs and unified technical standardization [67]. There are two important forces that will dramatically drive the development of robot programming technologies and languages, and challenge the existing approaches. One is the increasing enhanced capabilities of robot hardware; the other is the increasing complex applications of robots. As for the former, the robots will be equipped with powerful computation devices that can perceive environment information and thereby generate big data that should be effectively managed in an autonomic way. As for the latter, robots will be applied in complex areas in which the situated environment is open and dynamic, multiple tasks are asked to be performed in an autonomous way, the adaptation and self-management capability should be provided. In many applications, multiple robots are necessary and the complex cooperation among them should

Planning and reasoning Dynamic real-time domains, robotic soccer

331

[6]

be performed. Integration with robot and Internet or mobile Internet is necessary so that robot can utilize huge amount of varying data and information with which robot can achieve their tasks in a better and effective way. The above trends of robots will inevitably raise new requirements for the robot software and therefore challenge the existing programming technologies and languages of robot software. It will also pose new problems such as follows: x Distributed control over robot swarms requires efficient and flexible communication mechanisms between individuals. x Interoperability and portability of programs are limited due to diverse robot hardware platforms [70]. x Autonomous or self-adaptive robot software requires new approach and methodology to improve software dynamism and changeability [64]. x Conventional programming frameworks lack efficient support for reusability and well-structured robot software. V.

[7] [8] [9]

[10]

[11]

[12] [13]

[14] [15]

CONCLUSIONS

On the basis of our survey, we can now formulate some general conclusions about the research and practice of robot programming languages. The researches and practices of robot programing languages are greatly impacted by the characteristics and applications of robots. Since 1970, such research and practice grows to be active for many reasons, e.g., the increasing demands and decreasing costs. Roughly, the roadmap of robot programming languages can be divided into three phases based on robot generations and robot practical applications, The future of robot programming languages is driven by two important forces, which are increasing enhanced capabilities of robot hardware and complex applications of robots, respectively. Above trends pose several new problems for current technology and theory of robot programming languages.

[16]

[17]

[18]

[19]

[20]

ACKNOWLEDGEMENT This work was supported in part by National Nature and Science Foundation of China under Granted Nos. 61379051, Program for New Century Excellent Talents in University under Granted No. NCET-10-0898.

[21]

[22]

REFERENCES [1]

[2] [3]

[4]

[5]

[23]

Mao XJ, Hu CY, Sun YK, Wang HM. Research on agent-oriented programming Journal of Software, 2012, 23(11):2885−2904 (in Chinese). http://www.jos.org.cn/1000-9825/4297.htm Miller D J, Lennox R C. An object-oriented environment for robot system architectures[J]. Control Systems, IEEE, 1991, 11(2): 14-23. Dobra A. General classification of robots. Size criteria[C]//Robotics in Alpe-Adria-Danube Region (RAAD), 2014 23rd International Conference on. IEEE, 2014: 1-6. Gouaillier D, Hugel V, Blazevic P, et al. The nao humanoid: a combination of performance and affordability[J]. CoRR abs/0807.3223, 2008. Paul R. WAVE, A model based language for manipulator control[J]. Industrial Robot: An International Journal, 1977, 4(1): 10-17.

[24] [25]

[26]

[27]

332

S. M. Mujtaba, "Current Status of the AL Manipulator Prograimming System," Proc. 10th Int'l Symp. Industrial Robots, Milan, 1980, pp. 118-127. S. M. Mujtaba and R. Goldman, The AL User's Manual, STAN-CS79-718, Stanford University, Jan. 1979. Shin K G, Bonner S. A comparative study of robot languages[J]. Computer, 1982, 15(12): 82-96. Lieberman L I, Wesley M A. AUTOPASS: an automatic programming system for computer controlled mechanical assembly[J]. IBM Journal of Research and Development, 1977, 21(4): 321-333. Gruver W A, Soroka B I, Craig J J, et al. Industrial robot programming languages: a comparative evaluation[J]. Systems, Man and Cybernetics, IEEE Transactions on, 1984 (4): 565-570. M. Salmon, "SIGLA-The Olivetti Sigma Robot Programming Language," Proc. Eighth Int'l Symp. Industrial Robots, Stuttgart, May 1978, p. 358-363. Simmons R G. Structured control for autonomous robots[J]. Robotics and Automation, IEEE Transactions on, 1994, 10(1): 34-43. Ingrand F F, Chatila R, Alami R, et al. PRS: A high level supervision and control language for autonomous mobile robots[C]//Robotics and Automation, 1996. Proceedings., 1996 IEEE International Conference on. IEEE, 1996, 1: 43-49. E. E. Baumann, "Model Based Vision and the MCL Language," Proc. Int'l Conf. Cybernetics and Society, Atlanta, Oct. 1981, pp. 433-438. Agapakis J E, Katz J M, Pieper D L. Programming and control of multiple robotic devices in coordinated motion[C]//Robotics and Automation, 1990. Proceedings., 1990 IEEE International Conference on. IEEE, 1990: 362-367. Taylor R H, Summers P D, Meyer J M. AML: a manufacturing language[J]. The International Journal of Robotics Research, 1982, 1(3): 19-41. LaLonde W, Thomas D, Johnson K. Smalltalk as a programming language for robotics?[C]//Robotics and Automation. Proceedings. 1987 IEEE International Conference on. IEEE, 1987, 4: 1456-1462. Suzuki S, Yuta S. Analysis and description of sensor based behavior program of autonomous robot using action mode representation and ROBOL/0 language[C]//Intelligent Robots and Systems' 91.'Intelligence for Mechanical Systems, Proceedings IROS'91. IEEE/RSJ International Workshop on. IEEE, 1991: 1497-1502. Idasiak V, Duhaut D. Distributing the IAda language for robot programming[C]//Systems, Man and Cybernetics, 1993.'Systems Engineering in the Service of Humans', Conference Proceedings., International Conference on. IEEE, 1993: 288-293. Duhaut D, Monacelli E. Including control in the definition of a programming language for multi-robots[C]//Intelligent Robots and Systems' 91.'Intelligence for Mechanical Systems, Proceedings IROS'91. IEEE/RSJ International Workshop on. IEEE, 1991: 13821387. Simmons R, Apfelbaum D. A task description language for robot control[C]//Intelligent Robots and Systems, 1998. Proceedings., 1998 IEEE/RSJ International Conference on. IEEE, 1998, 3: 1931-1937. Levesque H J, Reiter R, Lesperance Y, et al. GOLOG: A logic programming language for dynamic domains[J]. The Journal of Logic Programming, 1997, 31(1): 59-83. Eshghi K. Abductive Planning with Event Calculus[C]//ICLP/SLP. 1988: 562-579. Shanahan M. An abductive event calculus planner[J]. The Journal of Logic Programming, 2000, 44(1): 207-240. Ziafati P, Dastani M, Meyer J J, et al. Agent programming languages requirements for programming autonomous robots[M]//Programming Multi-Agent Systems. Springer Berlin Heidelberg, 2013: 35-53. M. Dastani. 2APL: a practical agent programming language. Autonomous Agents and Multi-Agent Systems, Volume 16 , Pages 214-248, 2008. Burkhard H D. Agent oriented techniques for programming autonomous robots[J]. Fundamenta Informaticae, 2010, 102(1): 49-62.

[50] Chen Y, Dios R, Mili A, et al. An empirical study of programming language trends[J]. Software, IEEE, 2005, 22(3): 72-79. [51] Kim J H, Kim Y D, Lee K H. The third generation of robotics: Ubiquitous robot[C]//Proc of the 2nd Int Conf on Autonomous Robots and Agents. 2004. [52] Singh B, Sellappan N, Kumaradhas P. Evolution of industrial robots and their applications[J]. International Journal of emerging technology and advanced engineering, 2013, 3(5): 763-768. [53] Tachi S, Komoriya K. The 3rd generation robot[J]. J. Soc. Instrument Control Eng, 1982, 21: 1140-1146. [54] Müller S. Almost a decade of industrial robots-Experience from practical applications[J]. Industrial Robot: An International Journal, 1978, 5(2): 80-93. [55] KAZUYA O, TOSHIHIRO H, MASAKAZU F, et al. Development for industrial robotics applications[J]. IHI Engineering review, 2009, 42(2): 103-107. [56] Yu J, Wang L, Tan M. A framework for biomimetic robot fish's design and its realization[C]//American Control Conference, 2005. Proceedings of the 2005. IEEE, 2005: 1593-1598. [57] Otake M, Kagami Y, Inaba M, et al. Motion design of a starfishshaped gel robot made of electro-active polymer gel[J]. Robotics and Autonomous Systems, 2002, 40(2): 185-191. [58] Kaneko K, Harada K, Kanehiro F, et al. Humanoid robot HRP3[C]//Intelligent Robots and Systems, 2008. IROS 2008. IEEE/RSJ International Conference on. IEEE, 2008: 2471-2478. [59] Chestnutt J, Lau M, Cheung G, et al. Footstep planning for the honda asimo humanoid[C]//Robotics and Automation, 2005. ICRA 2005. Proceedings of the 2005 IEEE International Conference on. IEEE, 2005: 629-634. [60] K. Hirai, “Current and Future Perspective of Honda Humanoid Robot,” Proc. IEEE/RSJ Int. Conference on Intelligent Robots and Systems, pp. 500-508, 1997. [61] Campbell M, Hoane A J, Hsu F. Deep blue[J]. Artificial intelligence, 2002, 134(1): 57-83. [62] Team R. Characterization of the Martian surface deposits by the Mars Pathfinder rover, Sojourner[J]. Science, 1997, 278(5344): 1765-1768. [63] Yu Z, Warren I, MacDonald B. Dynamic reconfiguration for robot software[C]//Automation Science and Engineering, 2006. CASE'06. IEEE International Conference on. IEEE, 2006: 292-297. [64] Koo H M, Ko I Y. A repository framework for self-growing robot software[C]//Software Engineering Conference, 2005. APSEC'05. 12th Asia-Pacific. IEEE, 2005: 8 pp. [65] Geschke C C. A system for programming and controlling sensorbased robot manipulators[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 1983 (1): 1-7. [66] RAIL Software Reference Manual (ROBOVISION and CYBERVISION), Automatix Inc., Billerica, MA, Rev. 3.0, MN-RB07, Jan. 1982. [67] Gates B. A robot in every home[J]. Scientific American, 2007, 296(1): 58-65. [68] [Lozano-P_erez, 1982] Tom_as Lozano-P_erez. Robot programming. Technical Report Memo 698, MIT AI, December 1982, revised April 1983 1982. Also published in Proceedings of the IEEE, Vol 71, July 1983, pp.821{ 841 (Invited), and IEEE Tutorial on Robotics, IEEE Computer Society, 1986, pp.455{475. [69] Pembeci I, Hager G. A comparative review of robot programming languages[R]. CIRL Lab Technical Report, Tech. Rep., 2002.[Online]. Available:/CIRL/publications/pdf/pembeci-review. pdf, 2001. [70] Quigley M, Conley K, Gerkey B, et al. ROS: an open-source Robot Operating System[C]//ICRA workshop on open source software. 2009, 3(3.2): 5.

[28] Nishiyama H, Ohwada H, Mizoguchi F. Logic specifications for multiple robots based on a current programming language[C]//Intelligent Robots and Systems, 1998. Proceedings., 1998 IEEE/RSJ International Conference on. IEEE, 1998, 1: 286-291. [29] Lapham J. RobotScript™: the introduction of a universal robot programming language[J]. Industrial Robot: An International Journal, 1999, 26(1): 17-25. [30] De Giacomo G, Lespérance Y, Levesque H J. ConGolog, a concurrent programming language based on the situation calculus[J]. Artificial Intelligence, 2000, 121(1): 109-169. [31] Peterson J, Hager G D, Hudak P. A language for declarative robotic programming[C]//Robotics and Automation, 1999. Proceedings. 1999 IEEE International Conference on. IEEE, 1999, 2: 1144-1151. [32] Hager G D, Peterson J. Frob: A transformational approach to the design of robot software[C]//ROBOTICS RESEARCHINTERNATIONAL SYMPOSIUM-. 2000, 9: 257-264. [33] Thrun S. Towards programming tools for robots that integrate probabilistic computation and learning[C]//Robotics and Automation, 2000. Proceedings. ICRA'00. IEEE International Conference on. IEEE, 2000, 1: 306-312. [34] Alur R, Grosu R, Hur Y, et al. Modular specification of hybrid systems in CHARON[M]//Hybrid Systems: Computation and Control. Springer Berlin Heidelberg, 2000: 6-19. [35] Jones M P, Carlsson M, Nordlander J. Composed, and in control: Programming the Timber robot[J]. 2002. [36] Vajda F, Urbancsek T. High-Level Object-Oriented Program Language for Mobile Microrobot Control[C]//IEEE Proceedings of the conf. INES. 2003. [37] do Lago Pereira S, de Barros L N. High-level robot programming: An abductive approach using event calculus[M]//Advances in Artificial Intelligence–SBIA 2004. Springer Berlin Heidelberg, 2004: 73-82. [38] Ferrein A, Lakemeyer G. Logic-based robot control in highly dynamic domains[J]. Robotics and Autonomous Systems, 2008, 56(11): 980-991. [39] Bachrach J, McLurkin J, Grue A. Protoswarm: a language for programming multi-robot systems using the amorphous medium abstraction[C]//Proceedings of the 7th international joint conference on Autonomous agents and multiagent systems-Volume 3. International Foundation for Autonomous Agents and Multiagent Systems, 2008: 1175-1178. [40] Mühe H, Angerer A, Hoffmann A, et al. On reverse-engineering the KUKA Robot Language[J]. arXiv preprint arXiv:1009.5004, 2010. [41] Pineda L A, Salinas L, Meza I, et al. SitLog: A Programming Language for Service Robot Tasks[J]. International Journal of Advanced Robotic Systems, 2013, 10: 538. [42] Le T G, Fedosov D, Hermant O, et al. Programming Robots With Events[M]//Embedded Systems: Design, Analysis and Verification. Springer Berlin Heidelberg, 2013: 14-25. [43] Schultz U P, Bordignon M, Christensen D J, et al. A functional language for programming self-reconfigurable robots[J]. Trends in Functional Programming 2008, 2008: 1-13. [44] Schierl A, Angerer A, Hoffmann A, et al. Using Java for real-time critical industrial robot programming[J]. 2012. [45] Shoham Y. Agent-oriented programming[J]. Artificial intelligence, 1993, 60(1): 51-92. [46] Wei C, Hindriks K V. An agent-based cognitive robot architecture[M]//Programming Multi-Agent Systems. Springer Berlin Heidelberg, 2013: 54-71. [47] Bordini R H, Braubach L, Dastani M, et al. A survey of programming languages and platforms for multi-agent systems[J]. Informatica (Slovenia), 2006, 30(1): 33-44. [48] R. C. Evans et al., "Software System for a Computer Controlled Manipulator," IBM Research Report RC 6210, IBM T. J. Watson Research Center, Yorktown Heights, N.Y., Sept. 1976. [49] Lyons D M, Arbib M A. A formal model of computation for sensorybased robotics[J]. Robotics and Automation, IEEE Transactions on, 1989, 5(3): 280-293.

333