User:Habeebstiven

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.