User:Gdefilippo1059

Robotics

Jeremy Abuan & Gerard De Filippo

'''Table Of Contents '''


 * The Future of Robots


 * Programming Concepts


 * Robot Control


 * Robot Hardware


 * Mathematics of Robot Control


 * Robot Programming Languages


 * Obstacle Avoidance


 * Task Planning and Navigation


 * Robot Vision


 * Knowledge Based Vision Systems


 * Robots and Artificial Intelligence

The Future of Robots

Robot technology continues to make advancements every day. Robots can do things, that years ago, would never have been dreamed of. These advancements are extremely ahead of their time. The advancements in robots are happening so fast that there is no telling what the future has in store. If robots continue at the pace they are at then we may soon live in a world in which humans in the work field are not a necessity. The future is bright and it is going to be extremely interesting to see how advanced robots will become.

There are numerous robots that already exist. The can do things such as solve a rubik's cube, do a dance, hit a baseball, and serve to help the military. One for instance is the Roomba, it is small and can be used to clean floors just as a vacuum would. The Roomba is built by iRobot. It is capable of doing everything a vacuum is capable of without a human pushing it along. This makes it even mre beneficial. Another robot is the Japanese super-robot, which is 13 feet tall and can be controlled by merely an iPhone.

With these advancements happening so fast, it is likely to believe that full size humanoid robots will one day exist. Scientists are also working on building robots with using neural networks, which are modeled after a human’s nervous system. This brain type structure will make the robot even smarter, as it will then have the capability to recognize its surroundings and learn from its experiences. Although this is an excellent idea, it has proven to be quite difficult. A main concern is figuring out how to get robots to function of two legs as opposed to a wheel type structure. This incredibly fast advancement in robots will change the way robots are implemented in the future's daily tasks.

Programming Concepts

A computer program, in simple terms, is a collection of instructions that tell the computer what to do when interacting with a user, the computer hardware, and input data. The main steps to writing a program consist of developing the idea for your program, choosing what computer language your program would do best with, and writing out your program, testing it, and troubleshooting it.

When developing the idea for the program, it is best to write out an algorithm, which is basically the idea of what you want the program to do. To be able to code your program, you must have an idea of what you want to do with it. Once you have your idea planned out, you must choose which computer language to write your program out. Computer languages, such as C++, C, Java, Python, Fortran, and Pascal, all have different levels of usage, and one language may better fit your program than others. After choosing a programming language, you must write your program, test it, and troubleshoot it.

In robotics, programming concepts are about the same. The developer uses a programming language to write a program for the bot. The program is then uploaded to the hardware and tested. Popular robot programming languages include RobotC and variations of the C programming language. Robots can be programmed to do a myriad of things. Programmed robots include pill sorters, car assembly machines, bomb diffusors, and space drones. Robot Control Robot Control is how one operates the robot. There are numerous ways in which a user can operate a robot, with various types of sensors and actions. Four common ways are deliberative control, reactive control, hybrid control, and behavior-based control. For deliberative control, the robot thinks hard before it acts. With reactive control, a robot reacts without thinking. In hybrid control, the robot thins and acts independently. For behavior-based control, a robot thinks the way it acts.

Every robot has its own set of strengths and weaknesses. For instance, one robot may think longer than another robot. The benefit of this is that the robot will make a better decision, but there is also a down side. If the robot thinks to long, it may crash or have a negative impact due to its extensive period of thinking. This is just one example of the differences in each and every robot. This is what makes each and every robot a unique creation.It is because of these tradeoffs that robots act differently from each other. Some robots are made to react without thinking and others are made to think before they react. This all depends on what the robots main purpose is. Robots that are settled in an enviornment that have minimal variables are able to be thinking robots. This is because thy have the time to make a decision. As opposed to robots that must react immediately. Robot Harware

Due to the fact that robots are made to be as human-like as possible, they all must contain their own necessary hardware. For instance, a robot tht must lift thinnks must be produced with stronger gears so that it can withstand heavy object. On the other hand, a robot that is meant to work on an assemply line may be built with numerous motors so that it can perform multiple tasks at one time. This would increase its efficiency, in turn creating a more productive assemply line. A programmer's decision of adding multiple motors can make the robot move in a more persice manner than a robot tht is contructed with simply one motor.

Robots also have driving mechanisms such as gears, chains, pulleys, belts, and gearboxes. The purpose of the gears and chains is to pass on the rotary movement from one place to another; during this process, there is also a possibility to change the speed or the direction of the movement. These mechanisms help the robot is maintain its balance, as the pressure can shift from one end of the robot to another. Pulleys and belts also have the same function as gears and chains.

In order to build a more intelligent robot, the programmer can include sensors. For example, a robot can have a touch sensor, which tells the robot to back away when it bumps into an object. Sound sensors to play sounds as well as to hear sounds and respond to them appropriately. Light sensors allow robots to perform an action when they recognize a certain amount of light. An example of this would be a robot that can follow a persice line as it recognizes a certain amount of light beneath it.

Robots also need a source of power tha gives them the energy to perform their tasks. The brick is the main component of the NXT Mindstorms robot. An example of this would be the brick. It runs off of batteries which give the robot its directons as the program is stored onto it. Mathematics of Robot Control The mathematics of robot control is what goes on in the brick of a robot that allows it to move and function. Kinematics is the mechanics that allow the robot to move. Kinematics is a system of bodies that are linked together by mechanical joints. An example of this is the hammer. The kinematics allow the hammer to move up and down, in order to crush what is detects. In kinematics, the position of a point directly relates to its movement. In order to identify what the position of a point is, one has to identify three other things first, the origin and the difference.

There is also forward and inverse kinematics. In forward kinematics, the only things that are given are the angle of each joint and the length of each link. What one has to calculate is the position of any point in the robot’s work capacity. For inverse kinematics, the programmer does the exact opposite Robot Programming Languages In order to program a robot, many languages are available to use. It mainly depends on the programmer's knowledge of certain programs such as C, C++, Java, etc. Also, depending on the robot, certain robots work better when programmed in specific forms. ROBOTC is a program based on the C language, and it is very compatible, especially with NXT robots. ROBOTC can be used for easy programs as well as more complex programs. The programming language contains a debugger that allows programmers to see where their programming mistakes are. ROBOTC allows a programmer to specify motors, timers, sensors, and variables.

Similar to ROBOTC, NXC, is also a C-type program. NXC programs use the Bricx development environment, which now has been enhaced to operate with the NXT product. NXC uses the same firmware as NXT-G, the basic graphical user interface used with LEGO Mindstorms robot kits. This allows programmers to use a graphical environment and a text environment without having to change the firmware that is loaded on the brick of a robot. A programmer can store both NXT-G and NXC programs simultaneously in the same brick.

Another programming language that is compatible with NXT is ROBOLAB, which is more of a graphical rather than lined text. It was modified to function with both the RCX and the second-generation NXT. This program is useful usually only if the programmer is comfortable with the ROBOLAB platform. If the progrmammer is not sure on how to operate this type of programmer, there are much easier variations he or she could use.

Lejos is a Java- based program for those that are more familiar with Java. Lejos programs are written and compiled on a PC. The compiled programs are then transported to the NXT to be executed. This is consistant wih all of the different types of programs

Pblua is another programming language used for robots. Lua is a text-based language. It allows a person to virtually do anything that he or she can do with ROBOTC or NXC. Obstacle Avoidance Obstacle avoidance is a type of robotic training that allows robots to move through their senses. In these types of situations, the surroundings of the robot can be unpredictable, as the robot is capable of using its senses to react to different variables it may encounter.Two significant problems have been identified with this. The technology being used had limited ability for being suited to the matter at hand. The other reason for the major problems was the robot understanding the role of the characteristic of the vehicle within the obstacle avoidance pattern. The characteristics were dynamics, shape, and kinematics. The people building the robot often do not realize the kinematic and shape contraints that the robot may have. They realize this problem when the robot can not perofrm the actions that they originally set out for it to accomplish. Task Planning and Navigation Robots today are programmed to do many different things. Some of the challenges of creating a successful mobile robot include task planning and navigation. What exactly is your robot supposed to do and how will it get from point A to B? These two questions are answered in the programming of the robot.

When programming your robot, you must make sure that it can do what you expect it to do. For example, perhaps you build a robot to get you a can of soda from the fridge. While this may seem simple enough, this robot program will be fairly complex. The program must be broken down into simple parts that the robot can follow as it does not have common sense. These steps are called tasks. So what are the tasks for this robot example? It would probably involve something such as locate the fridge, go to the fridge, open the fridge, locate the soda, pick up and store the soda, and return back to the user. When task planning, you must cover all the steps to insure that your robot finishes the final objective.

Navigation is another aspect of robot programming that needs attention. How a robot gets from one point to another can be achieved in a few different ways. Perhaps the robot is connected to a controller where the user directs it on where to go. Other ways include being connected to a GPS that is programmed to get to a certain destination. In the example above, GPS would probably be too complicated, so it would be better to program the directions directly into the robot or control it from a distance. Robot Vision Robot technology has progressed at an amazing rate in the last decade. Today, robots have similar senses to that of humans such as site. This is made possible by new technology in combination with other tech.

One way that robots can “see” is through sensors. Some of the simplest sensors include infrared, supersonic, and color sensors. Infrared sensors are used in everyday things such as automatic sinks and paper towel dispensers to perceive motion. Supersonic sensors work like little radars and are used in many things such as medical probes. Color sensors are used in different kinds of sorting machines.

Other ways that robots can see is through digital video software. From this aspect, a user is able to see what the robot is seeing from a screen. This could be through an internet connection or wired connection. Most times, these robots are also controlled by the user.

The problems with robot vision are still too numerous for it to be used as a standalone aspect of programming. For instance, robots can relay images back to the user but it will not know what it is doing. The robot oftentimes does not have enough processing power to do so. Also, robots do not have a high level of spatial awareness and are unable to comprehend certain things. Knowledge Based Vision Systems The power based strategy for systems believed that increasing the computational power of machines would be beneficial in getting robots to achieve intelligence. This method was not very successful. Instead, a new idea, knowledge based systems, was made. This system believed that if you gave the robot different ways of interpreting diverse forms of knowledge, it would be able to better understand and comprehend problems by applying that knowledge.

This knowledge based system was applied to robotics vision as well. Prior to the system, robot vision systems had not been growing much. The application of knowledge based systems allowed for robots to better perceive things such as shape in low visibility situations. The idea of a knowledge based vision system has pushed the robotic vision systems to new levels. The only issues remain in further enhancing robotic knowledge and applying it to the program.

The main goal of robot vision systems is to replicate human vision and perception. Technology has been progressing in positive ways to come close to this. For example, Google, one of the top companies in the world right now, has technology that can scan an image that you take and search for things related to what is in the picture. While this technology is fairly new, it is something different in the technology world. Such tech can be used in robots to gain more information. As new tech comes out, the possibility of better robot vision systems increases. Robots and Artificial Intelligence The idea of artificial intelligence has been a popular topic among robot enthusiasts. The idea of artificial intelligence has been the main topic to many movies, displaying the interest surrounding it. Many people wonder what things would be like if a robot was able to think and interact on its own. What many people do not realize is that we interact with artificial intelligence every day.

The goal of robotic artificial intelligence is to have a robot that thinks for itself while being able to respond and connect with human beings in an intelligent manner. The robot should be able to plan out ideas and if possible carry out its plans. All at the same time, it should be able to learn and continue to evolve. If these things were made possible, the possibilities for its uses would be endless. A perfect robot with artificial intelligence would be able to think and carry out plans like a human, thus replacing the need for many jobs.

Some of the technology we work with today uses artificial intelligence. More popular items include the Iphone’s Siri which uses knowledgeable thinking to find what you are trying to do and Xbox360’s Kinnect which uses knowledge on body movements to predict what you are doing. Other robots with artificial intelligence include chess playing robots and automated car drivers that can stay on roads and avoid obstacles. The field for artificial intelligence continues to grow, getting closer to the goal of a human – like robot.