Intro to Robotics and AI

From Advanced Projects Lab
Jump to: navigation, search

An introduction to robotics, and artificial Intelligence

Terms used: A state machine advances to a new state based off an action or decision. A robot is a device that listens for input and then does something based on it. Ontologies: formal description of knowledge. Its a map explaining how objects are related to each other. Machine learning: a program that gets better with experience Arduino: a library, ide, and company that sell small cheap processors on circuit boards. These are very flexible and can be used to prototype many things quickly. Edison: intel’s edison processor is a small powerful micro processor that has unix. Breakout board: a starting board for the edison to begin with.



Background: Computer science and physics are both built on mathematics. Physics uses continuous functions which leads to differential equations and calculus, while computer science is discrete math and graph theory. The field of artificial intelligence deals with how to make the robot itself the rational agent. From wikipedia “The central problems (or goals) of AI research include reasoning, knowledge, planning, learning, natural language processing (communication), perception and the ability to move and manipulate objects”. The routines that the machine run must be programmed in, and it cannot alter itself in anyway. A rational agent must be present to guide what happens. In many cases this is the programmer, creating separate scripts for different jobs.

Examples which illustrate these goal which are important to researchers at U of O are ontologies, and probabilistic models. Ontologies allow computers to interact with large networks in an efficient manner, because the data has a structure that is known. Classification of different text documents and numerical regression are also forms of artificial intelligence. Statistical models such as markov decision process can be used as well. The reasoning used in statistical-mechanics can be used to program a robot.

Implementation:

The intel edison processor and arduino breakout board are a $100 entry into robotics. The boards they come on are small and attachable to many things. Sensors such as light, temperature and sound can be added to the boards. A shield can be placed on the board which allows for components to be plugged in. Arduino is also the name for the library in c++ that was added and interpreter that is used to interact with the boards. All programming is done in C++. The program works by running in a constant loop and accepting commands at the beginning of each step.

Ringo robots are $100 machines with a processor and motors which allow the robot to move. Arduino is also used to program this one as well. They are a good way to start programming a movable robot.

The map that the robot interacts with can be a network. Stored as a matrix or list, there are many algorithms that work on it. A maze can be displayed as a graph by representing each edge as a hallway and each node as an intersection.


One of these ringos can be made to search for an object in a maze. Here is some pseudo code to accomplish this:


dfs(g,v): Travel to node v Label v as discovered For all adjacent edges: If vertex is not discovered: dfs(v)