Advanced Robotics Final Exam
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 more 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 on 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
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 thinks 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 too 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 environment 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 Hardware
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 things 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 assembly 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 precise manner than a robot tht is constructed 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 precise line as it recognizes a certain amount of light beneath it.
Robots also need a source of power that 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 with 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 perform the actions that they originally set out for it to accomplish.