User:Habeebstiven

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Advanced Robotics By: Stiven Bohorquez, and Habeeb Syed


Table of Contents


1. The Future of Robots

2. Programming Concepts

3. Robot Control

4. Robot Hardware

5. Mathematics of Robot Control

6. Robot Programming Languages

7. Obstacle Avoidance

8. Task Planning and Navigation

9. Robot Vision

10. Knowledge Based Vision Systems

11. Robots and Artificial Intelligence


1. Future of Robotics

The future of robots is making a huge progress according to most articles out there. Humans were able to travel away from the ground, away from the earth and eventually we will be able to make a human-like robot that not only it will posses our intelligence, but maybe surpass it as well. In order to comprehend robots, the most important task we have is to fully understand human functions first. Most importantly how brains work. The human brain is a very complex organ. It has 100 billion neurons, which each have thousands of connection. One of the challenges the future of Robots encounters is the brain. In order to re0create it, we need to figure out how we will connect those neurons and make the robot think like a human being. Some articles, also predict that by the late 2020s, say about 2029, Humans will be able to construct robots with the same characteristics that we posses. As we can see, the future of robots is not very far away. Some articles also have timelines, claiming that by 2015-2020, every south Korean household will have a functional robot. Robotics is taking a huge progress as we can see by the dates. Some agencies have already funds to begin to make robots more capable of things human usually do. For example, the Military, such as the U. S Military often uses robots when they are in combat. Whether it is to disarm a bomb, or simply using radars, robots are slowly beginning to become a big part of our lives. The future of robots also holds many more comfortable situations for humans. For example, as of now, cars that drive themselves are being tested. Of course the true challenge is to make them human-like.


2. Programming Concepts


All computer programs that we use every day are made up of codes programmed by programmers. All coding is done in languages that computer understands like C, C++, Java, Pascal, Cobol, Fortran, and ADA. They are written in compilers or software's in the format of the specific language and built to run as a program for users. Same thing applies for Robots; they need to be programmed in order to move forward, backward, and sideways. Programming is not very easy, it takes a lot of coding and must go through a whole bunch of procedures. The fundamental part of a programming process in most computer programming languages are: Algorithm: A set of steps for carrying out a specific task. It is used to arrive at a solution for a problem. Source code: The text used to write the commands for a computer program. Compiler: A software that translates source code into data that the computer can understand and produces an executable program. Data type: The classification of pieces of information in a program. Variable: Signify a value in a program. It can store special types of data including numeric values, single characters, and text strings. It can change all throughout a program. Constant: Same as Variable but the value of a constant does not change. Conditional: A set of code that will execute only if a certain condition is true. Array: A special type of variable used in many programming and web languages including PHP, Java script, and Java that contains a list of related values. loop: Codes that executes repeatedly in a program. Function: A set of code used to carry out particular tasks. A function can take parameters which will affect its output as well as return values. Class: A model for a real world object to be used in a program. Classes are used in object-oriented programming.

3. Robot Control


Robot control is a very important aspect to know when it comes to learning about robotics. Some of its aspects are the following: Wall following, Line following, and Infrared tracking, Bluetooth devices in order to control our robot units, and programs written as instructions that the robot will follow when operated. Most of this information is basic, but essential in the robotics field. The following paragraphs will explain some of these simple but yet important aspects in robotics, and how a robot can be manipulated in different ways but the result will be the same in the end. Some units are often programmed to follow simple instructions, for example line following. It is used as a track for the robot to complete. For this to be perform, the unit most be equipped with a sensor that will recognize the line and continue to follow it until it reaches the end of the line. As you can see, controlling a robot can be very simple, specially if you use the languages mentioned in the last chapter. Others decide to use Bluetooth devices in order to control the robot. Such as cell phones which can be very unique. Others combine the Bluetooth device into a custom made control for the robot, made out of the same parts that the original robot unit was made of. Clearly, controlling a robot is basic, but adding imagination can convert it into something very unique. The main aspect to manipulate a robot unit is the program written behind it, without it, the robot will not function and not follow instructions. It is like the brain of the robot itself, the main core of the software.

4.Robot Hardware


As important as the Artificial Intelligence, software, or commands in a robot, there is hardware as well. Hardware can be said to be another top essential part in a robot unit. For example, without Hardware, there is no robot. Hardware consists in the following items: Body, sensors, such as Light, touch, ultrasonic, and sound sensors that can be found in the NXT 1.0 and 2.0 kit. The touch sensor reacts when in contact with an object, the ultrasonic reacts when it detects something in its path. While the sound sensor reacts when it detects sound around it. Hardware also includes motors, which is the main reason of why the robot is able to move from place to place. Another item that is classified as a hardware item is the power supply. Which is pretty much the main core of the hardware aspect of a robot unit, considering that without the power supply, the robot would not function at all. There are three main types of hardware under the category of driving mechanism. They are gears and chains, pulleys and belts and also gearboxes. The main function of the gears and chains is to transmit the rotary movement from one place to another, which as you can see is one of the main aspects in order for the robot to transport itself from one place to another. Clearly, the hardware part of a robot unit is very important. Without it, a robot could not take the form of a human or any shape that is design to be like. It gives more appealing to humans towards robots. Without Hardware, it would be just a computer chip thinking, not with aspects to be helpful around the world. Take a look at Military robots, their shape help when in combat or dangerous tasks.

5. Mathematics of Robot Control


The mathematics of Robot generally involves kinematics. It is the study of the motion of robots where the position, velocity and acceleration of all the links are calculated without considering the forces that cause this motion. Robot kinematics deals with aspect of redundancy, collision avoidance and singularity avoidance. There are mainly two types of Robot kinematics forward kinematics and inverse kinematics. Forward kinematics is also known as direct kinematics. In forward kinematics, the length of each link and the angle of each joint is given and we have to calculate the position of any point in the work volume of the robot. In inverse kinematics, the length of each link and position of the point in work volume is given and we have to calculate the angle of each joint. Robot kinematics can be divided in sequential manipulator kinematics, parallel manipulator kinematics, mobile robot kinematics and humanoid kinematics.

6. Robot Programming Languages


As most of us are very aware of, there are many different robot programming languages out there that are very useful for first time, or even long time users. For example, we all by know should be familiar with NXT LEGO MINDSTORM programming center, which allows us to program our robot unit in a very comfortable way. As others, such as RobotC, is a program which is based on C++, which allows users to program their robot, but I believe it is a little more advanced and complicated. But at the same time, it is much helpful. However, RobotC is more unique. It is the based C++ background that attracts the attention of most users. It has a debugger, which immediately illustrates any problems or errors in your program written. It also supports the Lego Mindstorms unit which is used in our class and overall in most educational organizations. On the other side, we have the pretty basic Nxt lego mindstorm program which was developed by the same organization who created both kits 1.0 and 2.0 It is used to program your unit with basic steps and easy to use structures. There are other robot programming languages out there. But the two main ones that were used in class, plus that we are one hundred percent sure that we know, are the ones I listed above.

7. Obstacle Avoidance

Obstacle Avoidance is one of the most significant feature in the world of Robotics. If there was no obstacle avoidance, then the movements and features of robots would be limited and delicate. Robots that needs to be programmed would encounter the most problems because they wouldn't if there is any obstacle in their way. The robot will follow what the program directs it to eventually end up being stopped by an obstacle. Thanks to the technology, we now have sensors like Ultrasonic, Light, Sound, and touch sensors to avoid any obstacle the robot senses. Ultrasonic Sensor works like an eye of a robot. It sees the obstacle ahead then backs off and proceed around to the destination as programmed. Light Sensor has a light that senses the line of a color such as black, and depending on the program it can avoid or follow the line. Sound Sensor makes the sound at the point where its programmed to. The Touch Sensor is used mostly because it detects the obstacle when its touched and respond to it depending on the program.

8. Task Planning and Navigation

Task planning and navigation is the programming of the robot and how it executes its assigned responsibilities. It is about being able to steer itself around its surroundings and avoid obstacles and collisions, and maintain to function properly. A basic issue in robotics is to determine particular tasks, commands and plan the resulting motions and sub-tasks. The task planning system needs to convert a task-oriented problem into a plan, which describes how the given problem can be resolved by the robot. The robot's navigation system is very essential because if a robot is not able to move around in its environment with ease and avoid obstacles, then it will be a problem and the robot will not be able to conclude the given task. Robot navigation is important because it needs to navigate its own position or location around the environment and plan the move accordingly. For example Robots are being sent to space for years and we learn the outer space environment by navigating the robot position and directing it to move accordingly. Another example is the Global Positioning System (GPS), it is also a kind of robot and it navigates us to our destinations

9. Robot Vision

The robot vision guidance field is expanding rapidly. The benefits of complicated vision technology consist of savings, reliability, safety, improved quality, and productivity. Robot vision is utilized for part recognition and navigation. Usually the vision applications deal with finding a part and adjusting it for robotic managing or assessment before an application is performed. At times vision guided robots can substitute several motorized tools with a particular robot location. To provide the robot with the ability of sight; a combination of vision algorithms, calibration, temperature software, and cameras are needed. Calibration of robot vision system is depended on applications. They can vary from a simple guidance to a more intricate application that uses information from various sensors. Robotic vision put together procedure simpler, and more straightforward. Robot vision reduces any need for rigid tooling and tasks complete more easily and quick and save money on labor.

10. Knowledge Based Vision Systems

These are often expressed as automatic programs which process the image and supports the recognition of an object or objects. The program is divided into two stages. In the first stage, based on the primitives ( curved edges, corners, etc.)and the explicit specification of the content of the image given by the user a sequence of operators will be generated and all their free parameters will be computed adaptively. In this stage the program uses a regulation base composed of knowledge of visual processing operators, their parameters, and their interdependence. In the second stage, a hierarchical object model is prepared and edited by the user based on the primitives selected in the first stage. The program editor is specially provided for this task. Using the hierarchical object model facilitates a rapid understanding of the result obtained from the previous image processing for the following object recognition.

11. Robots and Artificial Intelligence

There is no doubt that the Artificial Intelligence (AI), is the most important aspect in the field of robotics according to many people out there. Everyone is in agreement that a robot can work in lines, but some say a robot can never be intelligent. For example, AI is basically the recreation of the human though process. Some people think that a robot unit can never accomplish to have the human though process in their software. Although some computers today have achieved the ability to solve problems, some still think as of now, it is nearly impossible for a robot to be intelligent or be similar as a human. But on the other hand, today, Some modern robots also have the ability to learn in a limited capacity. While Some robots can learn by copying human actions. In Japan, roboticists have taught a robot to dance by demonstrating the moves themselves. As you can see, it is possible for a robot to acquire human characteristics, but as of now it is still a very hard work in progress. Another example is the following: Some robots can interact socially. Kismet, a robot, recognizes human body language and voice inflection and responds appropriately. Clearly we have an amazing advantage when it comes to how much process humans have made in order to convert robot units into more human-like. As you can see, AI plays an important part in the field of robotics. Without it, there would be no hope for a robot to obtain human skills, such as thinking and responding. In conclusion, In any case, robots will certainly play a larger role in our daily lives in the future. In the coming decades, robots will gradually move out of the industrial and scientific worlds and into daily life, in the same way that computers spread to the home in the 1980s.