Definition: A robot is a reprogrammable, multifunctional manipulator designed to
move material, parts, tools or specialized devices through variable programmed motions for the performance of a variety of tasks: Robot Institute of America, 1979 Laws of Robotics: Law 1: A robot may not injure a human being or through inaction a!!ow a human being to come to harm Law ": A robot must obey or#ers gi$en to it by human beings e%ce&t where such or#ers wou!# conf!ict with a higher or#er !aw Law ': A robot must &rotect its own e%istence as !ong as such &rotection #oes not conf!ict with a higher or#er !aw (now!e#gebase for Robotics Ty&ica! )now!e#gebase for the #esign an# o&eration of robotics systems ! Dynamic system mo#e!ing an# ana!ysis ! *ee#bac) contro! ! Sensors an# signa! con#itioning ! Actuators an# &ower e!ectronics ! +ar#ware,com&uter interfacing ! Com&uter &rogramming (ey Com&onents Sensors: Robot sensors: measure robot configuration,con#ition an# its en$ironment an# sen# such information to robot contro!!er as e!ectronic signa!s -e.g. arm &osition &resence of to%ic gas/ 0ision Sensor: e.g. to &ic) bins &erform ins&ection etc. *orce Sensor: e.g. &arts fitting an# insertion force fee#bac) in robotic surgery Ti!t sensors: e.g. to ba!ance a robot Actuators: Common robotic actuators uti!i1e combinations of #ifferent e!ectro2mechanica! #e$ices Synchronous motor Ste&&er motor AC ser$o motor Brush!ess DC ser$o motor Brushe# DC ser$o motor Contro!!er: 3ro$i#e necessary inte!!igence to contro! the mani&u!ator,mobi!e robot "ase #anipulator linkage $ontroller %ensors Actuators &ser interface 'o(er conversion unit 3rocess the sensory information an# com&ute the contro! comman#s for the actuators to carry out s&ecifie# tas)s. Contro!!er +ar#ware: Storage #e$ices: e.g. memory to store the contro! &rogram an# the state of the robot system obtaine# from the sensors Com&utationa! engine that com&utes the contro! comman#s Interface units: +ar#ware to interface #igita! contro!!er with the e%terna! wor!# -sensors an# actuators/ Robot &rogramming !anguages are use# for two &ur&oses: to #efine the tas) the robot is to &erform an# to s&ecify an# contro! the tas) e%ecution. There can be three ty&es of robot &rogrammers: -1/ users -or robot o&erators/ -"/ a&&!ication &rogrammers -i.e. e%&erts in certain a&&!ications/ an# -'/ system &rogrammers -robot e%&erts who can #ea! with !ow2!e$e! rea!2time &rogramming/. To #ea! with these issues a hierarchica! a&&roach has been a#o&te# to #esign robot2 &rogramming !anguages. Three !e$e!s of &rogramming !anguages -a/Teach by showing: the earliest (ay to command a robot for simple operations) *ittle e+plicit programming is re,uired, and it is relatively easy to master by a user (ith little kno(ledge of robotics) A teach pendant is usually used as the input device for the user) -eaching is also used for initializing the location variables of a robot.level program or used for ac,uiring the tool transform (hen the dimensions /i)e) size0 of a tool is unkno(n) 1o(ever, teaching does not provide run.time fle+ibility and is rather tedious even for very simple operations) -b/Robot2!e$e! &rogramming !anguages: for specifying and programming robot motions directly) -he statements in such a language are robot.oriented, i)e), in terms of the robot2s actions rather than the ob3ects it manipulates) -he programmer should have kno(ledge of robotics) -here are three approaches to(ards designing a robot.level programming languages: 4esign from scratch: such as *#, 5A67, 6A*) -hese languages (ere evolved during the development of specific robots and usually only support the facilities re,uired by the respective robots) #odify a conventional programming language: this approach results in a general. purpose language that is able to handle robot motion commands in addition to general computing commands) 7+amples: A*, A#*) Add a robot library to an e+isting programming language: a library of robot. specific subroutines are added to a conventional programming language to facilitate programming robot motions) 8or e+ample, the 9ebra 97R: force control robot is e,uipped (ith such a library for $, so that one can (rite a $ program to control the robot by calling those robot.specific subroutines) -c/Tas)2!e$e! &rogramming !anguages: facilitates application programmers to (rite task.oriented instructions in terms of the task or ob3ects to be handled rather than the robot motion) 8or e+ample, ;grasp the bolt< or ;insert the peg<) $learly, such a language re,uires the support of various planners to convert the task.level commands into robot. level actions) -here are some early attempts of task.level features in languages such as *A#A, A&-:'A%%, and RA'-, but a truly task.oriented, high.level language is yet to become reality and is still the goal of much research effort /in robot.level planning0) S&ecia! re4uirements of robot &rogramming on com&uter systems Robot programming poses special challenges=re,uirements on computer systems and programming: Contro! motion -o initiate motion is certain re,uired) -he more tricky part is about terminating a motion command) A ;#:67< command cannot terminate until the motion has ceased but the robot.level program may pause during the e+ecution of a motion command so that other programs can e+ecute) -his may include obtaining a sensor input to modify the tra3ectory) -here must be a (ay to modify the motion command to effect the change in tra3ectory) Concurrency -(o distinct levels of parallelism e+ist (ithin a robot) At the 3oint level, the programs must concurrently control the 3oint motions to achieve the desired $artesian motion of the end effector) At a higher level, a robot may (ork in parallel (ith other robots and the e+ternal sensors) As in conventional programming systems, concurrency can be achieved in three (ays: parallel processing, multitasking operating systems, and concurrent language constructs) Inter&rocess communication $oncurrent processes cannot run in isolation: they must communicate (ith other processes) -here are three models to achieve that: shared memory, remote.procedure call, and message passing) Synchroni1ation with e%terna! e$ents %ince robots manipulate physical ob3ects, programs controlling the robot must be synchronized (ith events e+ternal to the computer) -here are usually three kinds of e+ternal events: . Initiation events /e)g), a part arrives on a conveyor, (hich triggers certain actions of the robot0 . -ermination events /e)g), a motion is completed0 . 7rror events /(hich causes abnormal termination0 /7)g), failure to grasp, collision (ith obstacles etc)0 &nlike in conventional programming, a robot programmer must deal (ith termination events) After a motion command, the programmer must (rite codes to check (hether the motion is done successfully before proceeding to the ne+t action) 5$ent #etection an# res&onse in rea! time As commonly used in computing: polling or interrupts are used to detect events) O&erating on sensor $ariab!es 5hen a sensor variable is referenced in a program, it must be updated to match the sensed value before it is used) &pdating can be done in t(o (ays: by re,uest or by regular sampling: . "y re,uest: each time a sensor variable is referenced, a function is called to read the sensor and get the input) In effect, the compiler replaces the sensor variable (ith a call to a user.defined function) Advantage: the data obtained is al(ays up.to.date) Disadvantage: it slo(s do(n the program) . "y regular sampling: sensor input is updated regularly) 7ach time the sensor variable is referenced, the program simply uses the current value of the variable) Advantage: it does not affect the speed of the program) Disadvantage: depending on the sampling rate, the sensor value may not be up.to.date) Initia!i1ation an# termination of robot &nlike conventional programming, initialization of a robot program involves physically initialize the configuration of the robot) >ormally, (e place the robot in a kno(n and safe ;home< location) 5hen a robot program terminates, it should move the robot back to its home location, apply the brakes, and zero all controller outputs) In summary, a robot programming system is a real-time computing system /(hich is a lot more than fast computing0 re,uiring intimate interaction and synchronization (ith physical events) -he timing constraints of real.time systems introduce a range of debugging problems that are not found in conventional programming systems) A&&!ications of Robotics: S&ace e%&!oration +ea!thcare Domestic 6i!itary Defense 6anufacturing Socia! 7se Agricu!tura!