Project Tutorial Artificial Intelligence Dr. Martine Ceberio Project Title: AI and Engineering Team Members: David Flores David Hinojosa Kendra Kramer Tomas Meza Introduction A robot is a “system that contains sensors, control systems, manipulators, power supplies and software all working together to perform a task” [1]. Robots are being used all over the world for a wide variety of tasks. For example, they are used for assembling automobiles, for cleaning houses with automatic vacuum cleaners, and for building robotplayed games such as table tennis. They have even been used to explore other planets, such as the Mars Rover. Currently, a large part of research is focuses on robots and their applications in industry, such as their participation in the manufacturing process. Robots can be self controlled by means of a logic-based inference engine, directed by a human, or previously programmed with a specific set of functions Robotics is a “branch of engineering that involves the conception, design, manufacture, and operation of robots.” [2] Robotics involves several fields, such as mechanical engineering, computer science, mathematics, and depending on the robot system, sometimes medicine and biology, among others. Robotics has improved greatly during the past few years due to the fast technological advances in the fields of mechanics and electronics. The mechanics used to build the robots are becoming faster and more precise. Furthermore, electronic sensors can detect changes faster and are more reliable. These sensors help robots to acquire information to be used by artificial intelligence techniques to detect changes and react to these changes. For example, through the use of video cameras or pressure sensors, the robot gets information in order to react to the changes in the environment. Making robots adapt to changes in the environment and/or react to these changes is the biggest challenge of robotics. Although there exists the technology to create robots, we need to use artificial intelligence techniques in order to implement ways to address robots’ adaptation and reaction. Artificial intelligence gives robots the tools necessary to perform these tasks via logic-based systems. A robot can perform three main actions: 1. Perceive: A robot need to get information form the environment before doing any kind of information processing. Common ways to obtain this information is via sensors and cameras. 2. Process: After the information about the environment has been obtained, the robot needs to process it in order to determine what reaction to make. This is usually done via an inference engine. 3. Interact: The reaction of the robot to a given event is known as the interaction between the robot and its environment. 1 Definition of the Project Simulate two robots, where one robot will act randomly and inform the other robot trough a software interface, then the second robot will react according to the given information from the software interface and will take appropriate responsive actions. The main objective is to have Robot 1 grab an object with its gripper and to inform Robot 2 so it can pick it up with its gripper from Robot 1. We will be mainly using Unigraphics, a software tool that will allow us to model the robots in a 3D environment, and then program those models to generate a specific goal. Once we model the robots and apply the algorithms and necessary mathematical approaches for the movements of the robots Unigraphics can be used to test these programmed robots and evaluate their functionality and performance. A more detailed description of this software tool is given in the “Introduction to Unigraphics” section. The main goals of the project are the following: Coordination of motion: coordinating movements between robots will be done by software communication; this means that the robots will communicate each other’s movements at software level. For example, if robot1 moves into one direction this robot will inform robot2 about its position, and robot2 will need to act according to that movement. This software communication can be later implemented if the design changes, this means that if a sensor is added to the robots the software interface will need to be slightly changed to add the functionality to read from sensors and the system would need now to reason under uncertainty. Collision avoidance: this means that the robots will not collide between them in the interaction or reaction at any time. For this purpose we are currently planning to use a software inference engine that will decide the best next action to be taken based on the information perceived form the environment at a particular moment in time. Path Optimization: determine which will be the optimum movements for each robot for completion of the goal. Following is a picture of the actual robots involved in this project, as photographed in the Engineering Department: 2 Purpose of Project The purpose of this project is to simulate the robots and its possible movements through the use of a software called Unigraphics. This will help us to test the added artificial intelligence that will be programmed into the robots. The purpose is to test them in advance prior to a physical test to the actual robots, without the need of having to modify or change the real machines, until an efficient algorithm is obtained and applied to perform a specific goal. Therefore, the reason why artificial intelligence techniques need to be applied to this project is to add the robots the functionality of a reacting system. After doing so, we need to observe the behavior of the robots, determine if the applied algorithms are efficient, and determine whether the specified goal has been achieved or not. Collision avoidance is a critical issue that will need to be taken in consideration before the physical robots are programmed, since we want to ensure that no damage to the robots is being done by any collision. After applying these techniques, we will program these machines physically and will test the added artificial intelligence to the robots and prove that it works in real life. The following pictures specify the parts of one of the robots, as specified in the user’s manual [3]: 3 The use of artificial intelligence into this project is vital to make these robots intelligent devices. These robots will need to be modeled in the Unigraphics software provided from the electrical department, and a pre-designed Unigraphics model that we will be using to program the robots. It is important to note that the robots will be part of a reactive system since one robot will be reacting to the other robot’s movements. This means that Robot 1 will react in an IF-THEN way. For example: IF Robot 2 moved left THEN Robot 1 move right A reactive system is a reflex agent, “possibly with internal state, that can be implemented with any of a variety of representations for condition-action rules.” [4] Such representations include, for example, finite state machines, which we will use in our project to represent the current state of the system at any given point in time. Applications of This Project in Real Life: In real life situations we are faced with decision making on a daily basis. We base our decision making by using logic. For instance, is it convenient to go for lunch at 12:30, even though I have not studied at all for my quiz which is at 1:30. This represents real life applications of logic and decision making. However, for our project, logic will be used to represent our system’s knowledge base. Since decision making will be involved due to the establishment of rules for our system, a logic system will allow us to define the necessary rules of inference in order to make robot 1 react to robot 2’s movements. However, the main application of this project is in industry. As specified in the user’s manual, “the SCORBOT-ER4pc was designed and developed to emulate an industrial robot.” [3] Thus, the robots can be used to implement and evaluate different algorithms in the manufacturing area before such algorithms are implemented in the actual assembly lines. Doing so can save a lot of money to a company by experimenting with different algorithms without having to actually implement them on the assembly lines, for example. In the next section, we will give a brief introduction to Unigraphics, the software tool that will allow us to simulate the robots’ system for our project. 4 Introduction to Unigraphics Unigraphics NX is a software tool that supports the management of a product’s lifecycle [5] [6]. By product lifecycle we mean the design, manufacture, and maintenance of a product [7]. The three technologies that this software tool provides to support these stages are Computer-Aided Design (CAD), Computer-Aided Manufacturing (CAM), and Computer-Aided Engineering analysis (CAE), respectively. Unigraphics is developed by Unigraphics Solutions Inc. (UGS), a company that specializes in the development of 3D software that supports the product lifecycle management (PLM) [7]. In particular, we will be using Unigraphics NX 3.0 as a modeling tool to simulate the robots. Furthermore, we will only be using the CAD and CAE parts of this software, since we will be both simulating and evaluating the robots, but we will not be maintaining them since this objective is not within the scope of our project. However, it is important to at least know how all the PLM stages are supported within Unigraphics, and so a brief overview on CAD, CAM, and CAE follows. Computer-Aided Design [8] CAD allows the user to make a design of a product. It is commonly used by engineers to design automotive components and by architects to sketch roads and house complexes. In this project, we will model the robots that are in the engineering department. We are currently waiting for the robots to be moved to the CS department in order to start their modeling in Unigraphics. Computer-Aided Manufacturing [9] CAM allows the design of a product to be translated into code that a machine can execute in order to manufacture the real piece. However, we are not using CAM in our project since the robots have already been built. Computer-Aided Engineering analysis [10] CAE supports the analysis and evaluation of a designed system. A common practice is to evaluate a system’s performance. In the picture to the left, friction between the ground and the wheels can be analyzed, for example. In our project, we will be evaluating the performance and robustness of the robot system. We will be testing, for example, that the robots do not collide or have no physical contact, and that the shooting robot hits as much as possible on the target area. 5 Finally, we give a preview of how the robots should be simulated. The following is a screenshot taken from the Unigraphics software tool. This is only a draft including only one robot, so we will need to extend it to include the two of them. Furthermore, the picture shows only the design part, but we will need to program the two arms in order to implement our inference engine. Conclusion In summary, our semester project consists of implementing a two-robot system that does the following: Robot 1 should grab an object with its gripper and inform Robot 2 so that Robot 2 can pick it up with its gripper from Robot 1. The system will be reactive, and implemented in Unigraphics. The applications of this project are mainly in the computer-aided manufacturing process in industry. 6 References [1] Introduction to Robots http://www.galileo.org/robotics/intro.html [2] Define robotics – a Whatis.com definition http://whatis.techtarget.com/definition/0,,sid9_gci520361,00.html [3] User’s Manual http://dockweb.utep.edu/~daflores/courses/courses_html/robots_manual.html [4] Peter Norvig, Stuart Rusell. “Artificial Intelligence: A Modern Approach”, Prentice Hall, 2002. [5] Lesson 1 Tutorial of the Unigraphics BE 1205 class [6] NX (Unigraphics) http://en.wikipedia.org/wiki/Unigraphics [7] UGS: Product Lifecycle Management (PLM) Solutions http://www.ugs.com [8] Computer-aided Design http://en.wikipedia.org/wiki/Computer-aided_design [9] Computer-aided manufacturing http://en.wikipedia.org/wiki/Computer-aided_manufacturing [10] Computer-aided Engineering http://en.wikipedia.org/wiki/Computer-aided_engineering 7