robotica_objetos

107
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA UNIVERSIDAD POLITÉCNICA DE VALENCIA TRANSPORTE Y DESPLAZAMIENTO DE OBJETOS MEDIANTE COORDINACIÓN DE ROBOTS MÓVILES PROYECTO FIN DE CARRERA Realizado por: Bernat Escolá Ferrer Dirigido por: Dr. D. Ángel Valera Fernández Dto. Ingeniería de Sistemas y Automática VALENCIA, NOVIEMBRE DE 2011

description

TRANSPORTE Y DESPLAZAMIENTO DEOBJETOS MEDIANTE COORDINACIÓN DEROBOTS MÓVILES

Transcript of robotica_objetos

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA UNIVERSIDAD POLITCNICA DE VALENCIA TRANSPORTE Y DESPLAZAMIENTO DE OBJETOS MEDIANTE COORDINACIN DE ROBOTS MVILES PROYECTO FIN DE CARRERA Realizado por: Bernat Escol Ferrer Dirigido por: Dr. D. ngel Valera Fernndez Dto. Ingeniera de Sistemas y Automtica VALENCIA, NOVIEMBRE DE 2011 " # ndice 1.- Introduccin.!!!!!!!!!!!!!!!!!!!!!!!!...6 1.1 Introduccin y justificacin!!!!!!!!!!!!!!!!6 1.2 Objetivos!!!!!!!!!!!!!!!!!!!!!!!..7 2.- Desarrollo terico!!!!!!!!!!!!!!!!!!!!!!...7 2.1 Introduccin a la robtica!!!!!!!!!!!!!!!!..7 2.2 Historia de la robtica!!!!!!.!!!!!!!!!!!10 2.3 Clasificacin de los robots!!!!!!!!!!!!!!!..21 2.4 Robtica mvil!!!!!!!!!!!!!!!!!!!..!26 2.4.1 Clasificacin..!!!!!!!!!!!!!!!!!.26 2.4.2 Componentes de un robot mvil!!!!..!!!!...30 2.4.2.1 Sensorizacin!!!!!!!.!!!!!!.30 2.4.2.2 Actuadores!!!!!!!!.!!!!!!..34 2.4.2.3 Alimentacin!!!!!!!!!!!!!!.34 2.4.2.4 Sistemas de control!!!!!!!!!!!.39 2.5 Lego NXT!!!!!!!!!!!!!!!!!!!!!!..40 2.5.1 Ladrillo NXT!!!!!!!!!!!!!!!!!!44 2.5.2 Actuadores!!!!!!!!!!!!!!!!!!..46 2.5.3 Sensores!!!!!!!!!!!!!!!!!!!.49 2.5.4 Piezas de montaje!!!!!!!!!!!!!!!.51 2.6 Conexiones!!!!!!!!!!!!!!!!!!!!!...51 2.6.1 USB!!!!!!!!!!!!!!!!!!!!!..51 2.6.2 Bluetooth!!!!!!!!!!!!!!!!!!!.53 2.7 RobotC!!!!!!!!!!!!!!!!!!!!!!!..55 2.8 MATLAB!!!!!!!!!!!!!!!!!!!!!!!58 2.8.1 Lenguaje de programacin!!!!!!!!!!!..59 $ 2.8.2 Lenguaje interpretado!!!!!!!!!!!!!...60 2.8.3 Lenguaje dinmico!!!!!!!!!!!!!!!62 2.8.4 Interfaz grfica!!!!!!!!!!!!!!!!!63 3.- Desarrollo prctico!!!!!!!!!!!!!!!!!!!!!..66 3.1 Prembulos y configuracin!!!!!!!!!!!!!.!..66 3.1.1 Montaje del robot NXT!!!!!!!!!!!!!..66 3.1.2 Instalacin del driver USB de LEGO!!!!!!!..67 3.1.3 Instalacin de RobotC y firmware del robot!!!!..67 3.1.4 Instalacin y configuracin de MATLAB!!!!!!69 3.1.4.1 Java Developement Kit!!!!!!!!!..69 3.2 Curvas de Bzier!!!!!!!!!!!!!!!!!!!.69 3.2.1 Introduccin!!!!!!!!!!!!!!!!!!69 3.2.2 Definicin y tipos de curva!!!!!!!!!!!...70 3.2.3 Aplicaciones!!!!!!!!!!!!!!!!!!73 3.3 Estudio del movimiento!!!!!!!!!!!!!!!!...74 3.3.1 Coordinacin de trayectorias!!!!!!.!!!!..75 3.3.2 Control de los motores!!!!!!!!.!!!!!.76 3.4 Estrategia del control cinemtico!!!!!!!!!!!!..78 3.4.1 Punto Descentralizado!!!!!!!!!!!!!..78 3.5 Estudio de comunicacin mediante Bluetooth!!!!!!!80 3.5.1 Sincronizacin del inicio de carrera!!!!!!!!81 3.6 Aplicacin de control desarrollada!!!!!!!!!!!!83 3.6.1 Resultados obtenidos!!!!!!!!!!!!!!91 3.6.1.1 Curvas de Bzier de 4 puntos!!!!!!...93 3.6.1.2 Curvas de Bzier de 5 puntos!!!!!!...95 3.6.1.3 Resultado mediante cmara cenital!!!.....97 % 4.- Conclusiones y futuros trabajos!!!!!!!!!!!!!!!.100 5.- Bibliografa!!!!!!!!!!!!!!!!!!!!!!!!.102 Anexo 1: Propiedades de las curvas de Bzier!!!!!!!!!!.103 & 1.- INTRODUCCIN 1.1 Introduccin y justificacin Desde los tiempos en que aparecieron los primeros mecanismos, el ser humanonohacesadodebuscaryevolucionarinstrumentosomquinaspara poder mejorar los niveles de vida de la sociedad en la que viven. De hecho, en lapocaactualenlaquevivimos,escomplicadoencontraralgunaactividad tantoprofesionalcomopersonalenlaquenoencontremosalgunamquinaa fin de hacernos la vida ms sencilla. De todos los mecanismos que podramos encontrar en nuestras vidas, la Robtica y la Automatizacin es una ciencia que justamente est realizando un papelverdaderamenteimportanteenloqueeselmbitotecnolgico.La tecnologamecnicayelectrnicahaevolucionado,ydejandoaunladolos estereotiposderobotscomomquinasqueacabandescontrolndosey tomandoiniciativapropia,pocoapocosehanidoimplantandoenlasociedad como herramientas que facilitan tareas o resuelven problemas. Pese a los grandes avances y las grandes investigaciones, todava faltan muchsimas cosas por descubrir, ya que la complejidad que existe para que los robotsinteractenconelentornoalqueestnsometidosesdeungrado altsimo, pero que sirve de autentica motivacin para los cientficos e ingenieros queestninvestigandoendichocampodelatecnologa,laintegracinde visin artificial, reconocimiento de formas o laplanificacin de trayectorias, son algunos de los retos en la lnea de investigacin de la robtica. Hoyenda,existeninfinidaddetareasenlasquelaejecucindelas mismaspuederesultarpeligrosaparaelserhumano,oquelaprecisiny velocidadquepuedadarunamquina,jamspodraconseguirlaelser humano.Esaqudondelarobticanostiendesumano,ynosotroscomo investigadores,deberemostrabajarduramenteparapoderalcanzarretos,yal mismo tiempo descubrir nuevas motivaciones y afrontar nuevas dificultades. ' 1.2 Objetivos El principal objetivo es la generacin de trayectorias para la coordinacin yelcontrolderobotsmviles,enconcreto,seutilizarnrobotsLego Mindstorms NXT. Los objetivos especficos del presente Proyecto son: Generar e implementar trayectorias de robots mediante aproximacin de puntos basados en curvas de Bezier de 4 y/o 5 puntos. Implementacindelascurvasparauno,dosotresrobotsmvilessimultneamente. Abordar el concepto de comunicacin Bluetooth entre robots mviles para la realizacin de trayectorias coordinadas. Programaralgoritmosdecontrolcinemticopararobotsmviles. Dichosalgoritmosestnbasadosenelcontroldetrayectorias mediantealgoritmosdeControldePosicinporPunto Descentralizado. 2.- DESARROLLO TERICO 2.1 Introduccin a la robtica El trmino "robot" se debe a Karel Capek, quien lo utiliz en 1917 por primera vez, para denominar a unas mquinas construidas por el hombre y dotadas de inteligencia. Deriva de robota que en checo significa trabajo o prestacin personal o de "robotnik" que define al esclavo de trabajo. JosephEngelberger,unpioneroenlaindustriarobtica,expres claramente esta idea con su frase: "No puedo definir un robot, pero reconozco uno cuando lo veo". LadefinicinadoptadaporlaRoboticsIndustriesAssociation(RIA), anteriormenteelRoboticsInstituteofAmrica,aceptadainternacionalmente para Robot es: ( Manipuladormultifuncionalyreprogramable,diseadoparamover materiales,piezas,herramientasodispositivosespeciales,mediante movimientosprogramadosyvariablesquepermitenllevaracabo diversas tareas.

Otra definicin con la que nos podemos encontrar es: Unrobotesundispositivogeneralmentemecnico,quedesempea tareasautomticamente,yaseadeacuerdoasupervisinhumana directa, a travs de un programa predefinido o siguiendo un conjunto de reglasgenerales,utilizandotcnicasdeinteligenciaartificial. Generalmente estas tareas reemplazan, asemejan o extienden el trabajo humano,comoensambleenlneasdemanufactura,manipulacinde objetos pesados o peligrosos, trabajo en el espacio, etc. Tambinhaydefinicionesdeloqueesunrobotbasndoseenlas propiedades o caractersticas que deben poseer: Unrobot,esunagenteartificialmecnicoovirtual.Esunamquina usada para realizar un trabajo automticamente y que es controlada por una computadora. En resumen se puede decir que: -Sucaractersticafundamentalespodermanejar/manipularobjetos.Un robotsediseaconestefin,teniendoencuentaquehadesermuy verstil a la hora de utilizar herramientas y manejarlas. -Lasegundapeculiaridadquelodiferenciadeotrasmquinas automticasessucapacidadpararealizartrabajoscompletamente diferentes adaptndose al medio e incluso pudiendo tomar decisiones, o sea, que es multifuncional y reprogramable. ) Engeneral,unrobot,paraserconsideradocomotal,deberapresentar algunas de estas propiedades: No es natural, sino que ha sido creado artificialmente. Puede sentir su entorno. Puede manipular cosas de su entorno. Tieneciertainteligenciaohabilidadparatomardecisionesbasadas en el ambiente o en una secuencia pre programada automtica. Es reprogramable. Puede moverse en uno o ms ejes de rotacin o traslacin. Puede realizar movimientos coordinados. Unavezcomprendidoelconceptoderobotpodemosavanzarhaciala definicindelacienciaqueestudiaestetipodedispositivos,laRobtica,que ha evolucionado rpidamente en estos ltimos aos. Segn lo visto una posible definicin de Robtica podra ser: Eldiseo,fabricacinyutilizacindemquinasautomticas programablesconelfinderealizartareasrepetitivascomoelensamblede automviles, aparatos, etc. y otras actividades.Bsicamente, la robtica se ocupa de todo lo concerniente a los robots, locualincluyeelcontroldemotores,mecanismosautomticosoneumticos, sensores, sistemas de cmputos, etc. DeestadefinicinpodemosconcluirquelaRobticaesunatecnologa multidisciplinarporquehaceusodelosrecursosqueleproporcionanotras ciencias, ya que en el proceso de diseo y construccin de un robot intervienen muchos campos pertenecientes a otras ramas de la ciencia, como por ejemplo la Mecnica, la Electrnica, la Automtica, la Informtica, la Matemtica, etc. *+ 2.2 Historia de la robtica Elhombredurantetodasuhistoriahaconvividoconeldeseode construir mquinas capaces de realizar tareas que facilitasen su trabajo. Desde hacecientosdeaosantesdeCristo,yaseintentabancreardispositivos, denominados artefactos o mquinas, que tuvieran un movimiento sin fin y que no estuvieran controlados ni supervisados por personas.Losprimerosautmatasqueaparecenenlahistoriasoningenios mecnicos,msomenoscomplicados,quedesarrollabanunatareadeforma continua.Sinembargo,lasprimerasmquinasconstruidasnotenanuna utilidadprctica,sinoquesuprincipalobjetivoeraentretenerasusdueos. Generalmentefuncionabanpormediodemovimientosascendentesdeaireo aguacaliente.Elvertidoprogresivodeunlquidoolacadadeunpeso provocabarupturasdeequilibrioendiversosrecipientesprovistosdevlvulas; otros mecanismos se basaban en palancas o contrapesos. Mediante sistemas deestetiposeconstruanpjarosartificialesquepodancantar"o"volar",o puertas que se abran solas.ElorigendelosautmatasseremontaalAntiguoEgipto,dondelas estatuasdealgunosdesusdiosesdespedanfuegoporlosojos,posean brazos mecnicos manejados por los sacerdotes del templo o emitan sonidos cuando los rayos del sol los iluminaba. Estos ingenios pretendan causar temor y respeto entre la gente del pueblo.Haciaelao1300a.C.,Amenhotep,hijodeHapu,haceconstruiruna estatuadeMemon,reydeEtiopa,queemitesonidoscuandolailuminanlos rayosdelsolalamanecer.Losegipciosdesarrollaronmodelosmatemticos muyavanzadosyconstruyeronautomatismosmuysofisticados,comoelreloj de agua. Se tiene constancia de la existencia del baco ya entre el ao 1000 y 500adC,aunqueexistendudassobresifueenBabiloniaoenChinadnde fueinventado.Esteingeniomatemticopermitieldesarrollodela computacinylainteligenciaartificialquefuerondesarrollndose paralelamentealintersporlosautomatismosyeldiseodemquinas imitadoras del ser humano.Enlamitologaromana,Vulcanoconstruyeingeniosmecnicosque utiliza como sirvientes; mientras que en la hebrea el Glem cobra vida con una combinacin de palabras en el contexto de la magia cabalstica. ** Sinembargo,losprimerosdatosdescriptivosacercadelaconstruccin deunautmataaparecenenelsigloI.Elmatemtico,fsicoeinventorgriego HerndeAlejandradescribemltiplesingeniosmecnicosensulibroLos Autmatas, por ejemplo aves que vuelan, gorjean y beben. Figura 1: Hern con uno de sus inventos, dispensador de agua sagrada operado por monedas Las construcciones de la escuela de Alejandra se extendieron por todo elImperioRomanoyposteriormenteporelmundorabe,siendoestos genuinos aparatos los antecesores de los autmatas actuales.La cultura rabe hered y difundi los conocimientos griegos. Al-jazari, uno de los ms grandes ingenieros de la historia, fue el creador de muchos inventos de controlautomticocomoelcigealounodelosprimerosrelojesmecnicos movidosporpesosyagua.Estuvotambinmuyinteresadoenlafiguradel autmata y escribi El libro del conocimiento de los ingeniosos mecanismos, obraconsideradadelasmsimportantessobrelahistoriadelatecnologa. Cabedestacarsucomplejorelojelefante,animadoporsereshumanosy animalesmecnicosquesemovanymarcabanlashorasounautmatacon forma humana que serva distintos tipos de bebidas. *" Figura 2: Libro del conocimiento de ingeniosos mecanismos de Al-jazari Del siglo XIII son otros autmatas de los que no han llegado referencias suficientementebiendocumentadas,comoelHombredeHierrodeAlberto MagnoolaCabezaParlantedeRogerBacon.Otroejemplorelevantedela pocayqueanseconservaenlaactualidadeselGallodeEstrasburgo, situado en la catedral de esta misma ciudad, que mueve el pico y las alas al dar las horas. En Espaa el Papamoscas de la catedral de Burgos, construido en el sigloXVI,consisteenunhombremecnicoquesemueveconloscambios horarios y funciona an hoy da. Figura 3: el papamoscas de la catedral de Burgos DurantelossiglosXVyXVIalgunasdelasfigurasmsrelevantesdel Renacimientotambinrealizaronsuspropiasaportacionesalahistoriadelos *# autmatas.LeonardodaVinci(14521519),algunospiensanqueinfluenciado por Al-Jazari, dise los planos para un robot humanoide en torno a 1495. Los cuadernos del artista, recuperados en los aos 50, contienen detallados dibujos deuncaballeromecnicoahoraconocidocomoelrobotdeLeonardo,que poda sentarse, alzar los brazos y mover la cabeza y la mandbula. El diseo se basaba probablemente en la investigacin anatmica registrada en su Hombre de Vitruvio. Se desconoce si intent construir el mecanismo. El que si lleg a construir fue el famoso Len Mecnico para el rey Luis XII de Francia, que abra su pecho con la garra y mostraba el escudo de armas del rey. Ms tarde, durante la primera mitad del siglo XVI, el ingeniero Giovanni Torriani(JuaneloTurriano),quienfueraMatemticoMayordelaCortede Felipe II, construy un autmata llamado El Hombre de Palo o Patapalo. Tal era la complejidad del mecanismo creado por este ingeniero, que su autmata eracapazdecruzarunadelascallesdeToledo(alaqueposteriormentedio nombre) y pedir limosna para la construccin de un hospital. EnelsigloXVIII,yenplenafiebreporlosautmatas,WolfgangVon Kempelen llev a cabo uno de los fraudes ms conocidos en la historia de los autmatasinventandoElTurco,unamquinacapazdejugaralajedrez.Ms tardesecomprobqueunmaestrodelajedrez,escondidoenelinteriordela caja, era el encargado de manejar el maniqu que mova las fichas. La mquina viajportodaEuropayEstadosUnidos,derrotandoapersonajestanilustres como Napolen y Benjamn Franklin. *$ Figura 4: El turco En1738,JacquesdeVaucansonconstruyunodelosautmatasms famososdelahistoria,elPatoconaparatodigestivo,consideradosuobra maestra. El pato tena ms de 400 partes mviles, y poda batir sus alas, beber agua, digerir grano e incluso defecar. Los alimentos los digera por disolucin y eranconducidosporunostuboshaciaelano,dondehabaunesfnterque permitaevacuarlos.Vaucansontambinconstruyotrosautmatas,entrelos que destaca El Flautista, un pastor que tocaba la flauta capaz de tocar hasta 12 melodasdiferentes.Elingenioconsistaenuncomplejomecanismodeaire que causaba el movimiento de todos las diferentes partes del engranaje interno delmueco.Elresultadoeraunamsicamelodiosa,quetenaelmismo encanto y precisin en las notas que un flautista de carne y hueso. Figura 5: Pato con aparato digestivo *% AfinalesdelsigloXVIIIyprincipiosdelXIX,enplenaRevolucin Industrial,sedesarrollarondiversosingeniosmecnicosutilizados fundamentalmenteenlaindustriatextil.Entreellossepuedecitarlahiladora giratoriadeHargreaves(1770),lahiladoramecnicadeCrompton(1779),el telar mecnico de Cartwright (1785), el telar de Jacquard (1801), que constituy consustarjetasperforadaslosprimerosprecedenteshistricosdelas mquinas de control numrico. Ms tarde se incorporaron los automatismos en las industrias mineras y metalrgicas. Perosinduda,elautomatismoquecausmayorimpactoportenerun papelfundamentalenlaRevolucinIndustriallorealizaPotteraprincipiosdel siglo XVIII, automatizando el funcionamiento de las vlvulas en la mquina de vapor atmosfrica, creada por el inventor ingls Thomas Newcomen. Figura 6: Mquina de vapor atmosfrica. Sinembargo,nofuehasta1921cuandoseescuchporprimeravezla palabra robot, utilizada por el escritor checo Karel Capek en su obra de teatro R.U.R (Rossums Universal Robots). La palabra robot viene del vocablo checo Robota que significa trabajo, entendido como servidumbre, trabajo forzado o esclavitud. *& Mstardemuchaspelculasynovelasmostraranalosrobotscomo mquinasdainasyamenazadorasyesenelmundodelacienciaficcin donde aparece por primera vez el trmino Robtica y este viene acuado de la mano del escritor Isaac Asimov. Laimagenderobotqueapareceensuobraeseldeunamquinabien diseadayconunaseguridadgarantizadaqueactadeacuerdocontres principios tambin denominados como las Tres Leyes de la Robtica a las que ms tarde aadi la Ley Cero: LeyCero:unrobotnodaaralahumanidad,nipermitirporinaccin que la humanidad sea daada. Ley Uno: un robot no daar a un ser humano, ni permitir por inaccin queunserhumanoseadaado,amenosqueestocontradigaunaley de mayor orden. LeyDos:unrobotdebeobedecerunaordendadaporunserhumano, excepto cuando estas rdenes contradigan una ley de mayor orden. Ley Tres: un robot debe proteger su propia existencia siempre que esta proteccin no contradiga una ley de mayor orden. Consecuentemente todos los robots de Asimov son fieles sirvientes del ser humano, de sta forma su actitud contraviene a la de Capek. Enladcadade1890elcientficoNikolaTesla,inventor,entremuchos otrosdispositivos,delosmotoresdeinduccin,yaconstruavehculos controladosadistanciaporradio.Teslafueunvisionarioqueescribisobre mecanismos inteligentes tan capaces como los humanos. Lasmquinasmsprximasaloquehoyendaseentiendecomorobots fueronlos"teleoperadores",utilizadosenlaindustrianucleardespusdela SegundaGuerraMundialparalamanipulacindesustanciasradioactivas. Bsicamentesetratabadeservomecanismosque,mediantesistemas *' mecnicos,repetanlasoperacionesquesimultneamenteestabarealizando un operador. Eldesarrolloenlatecnologa,dondeseincluyenlaspoderosas computadoraselectrnicas,losactuadoresdecontrolretroalimentados, transmisin de potencia a travs de engranes, y la tecnologa en sensores han contribuidoaflexibilizarlosmecanismosautmatasparadesempeartareas dentrodelaindustria.Sonvarioslosfactoresqueintervienenparaquese desarrollaran los primeros robots en la dcada de los 50's. La investigacin en inteligenciaartificialdesarrollmanerasdeemularelprocesamientode informacin humana con computadoras electrnicas e invent una variedad de mecanismos para probar sus teoras. Lasprimeraspatentesaparecieronen1946conlosmuyprimitivosrobots paratrasladodemaquinariadeDevol.Tambineneseaoaparecenlas primerascomputadoras:J.PresperEckertyJohnMaulchyconstruyeronel ENACenlaUniversidaddePensilvaniaylaprimeramquinadigitalde propsito general se desarrolla en el MIT. El primer robot mvil de la historia, pese a sus muy limitadas capacidades, fueELSIE(Electro-Light-SensitiveInternal-External),construidoenInglaterra en1953.ELSIEselimitabaaseguirunafuentedeluzutilizandounsistema mecnico realimentado sin incorporar inteligencia adicional. En1954,Devoldiseaelprimerrobotprogramableyacuaeltrmino "autmatauniversal",queposteriormenterecortaaUnimate.Utilizabalos principios de control numrico para el control de manipulador y era un robot de transmisinhidrulica.As,EnglebergeryDevolllamaranalaprimera compaaderobticaUnimation(UniversalAutomation).Lacomercializacin de robots comenzara en 1959, con el primer modelo de la Planet Corporation que estaba controlado por interruptores de fin de carrera. Los primeros robots industriales empezaron a producirse a principios de los aos60yestabandiseadosprincipalmentepararealizartrabajosmecnicos difcilesypeligrosos.Lasreasdondeestosrobotstuvieronsuaplicacin fueron trabajos laboriosos y repetitivos, como la carga y descarga de hornos de *( fundicin.En1961elinventornorteamericanoGeorgeDevolpatentabael primer robot programable de la historia, conocido como Unimate, estableciendo las bases de la robtica industrial moderna. Figura 7: Unimate, robot industrial de Ford Motors Company Este robot industrial era un manipulador que formaba parte de una clula de trabajo en la empresa de automviles Ford Motors Company, diseado para levantaryapilargrandespiezasdemetalcaliente,dehasta225kg,deuna troqueladora de fundicin por inyeccin. Debido a los continuos avances en la informtica y la electrnica, a partir de1970fuerondesarrolladosdiversosrobotsprogramables,siendodegran importanciaenlaindustriamecnica,tantoenlaslneasdeensamblajecomo en aplicaciones como la soldadura o pintura.Duranteladcadadelos70,lainvestigacinenrobticasecentraen granparteenelusodesensoresexternosparasuutilizacinentareasde manipulacin. Es tambin en estos aos cuando se consolida definitivamente la presenciaderobotsenlascadenasdemontajeyplantasindustrialesenel mbito mundial.En1972sedesarrollenlauniversidaddeNottingham,Inglaterra,el SIRCH,unrobotcapazdereconoceryorientarobjetosendosdimensiones. Este mismo ao, la empresa japonesa Kawasaki instala su primera cadena de *) montajeautomatizadaenNissan,Japn,usandorobotssuministradospor Unimation, Inc.En 1973, Bolles y Paul utilizan realimentacin visual en el brazo Stanford para el montaje de bombas de agua de automvil. Tambin este mismo ao, la compaa sueca ASEA (futura ABB), lanza al mercado su familia de robots IRB 6 e IRB 60, para funciones de perforacin de piezas. Enestapoca,laNASAiniciunprogramadecooperacinconel anteriorgrupodetrabajoparadesarrollarplataformascapacesdeexplorar terrenoshostiles.ElprimerfrutodeestaalianzaseriaelMARS-ROVER,que estabaequipadoconunbrazomecnicotipoSTANFORD,undispositivo telemtrico lser, cmaras estreo y sensores de proximidad. En1975,WillyGrossman,enIBM,desarrollaronunmanipulador controladoporcomputadorconsensoresdecontactoyfuerzaparamontajes mecnicos.Estemismoao,elingenieromecnicoestadounidenseVictor Scheinman,cuandoestudiabalacarreraenlaUniversidaddeStanford, California,desarrollunmanipuladorpolivalenterealmenteflexibleconocido comoBrazoManipuladorUniversalProgramable(PUMA,siglaseningls).El PUMA era capaz de mover un objeto y colocarlo en cualquier orientacin en un lugardeseadoqueestuvieraasualcance.Elconceptobsicomultiarticulado del PUMA es la base de la mayora de los robots actuales. Figura 8: Robot PUMA Unimate "+ En1979JapnintroduceelrobotSCARA(SelectiveCompliance Assembly Robot Arm), y la compaa italiana DEA (Digital Electric Automation), desarrolla el robot PRAGMA para la General Motors. En1982,elrobotPedesco,seusaparalimpiarunderramede combustibleenunacentralnuclear.Tambinseponeungrannfasisenlos camposdevisinartificial,sensorizacintctilylenguajesdeprogramacin. GraciasalosprimerospasosdadosporcompaascomoIBMoIntelledex Corporation, que introdujo en 1984 el modelo ligero de ensamblaje 695, basado en el microprocesador Intel 8087 y con software Robot Basic, una modificacin del Microsoft Basic, actualmente se tiende al uso de una interfaz (el ordenador) ydiversoslenguajesdeprogramacinespecialmentediseados,queevitanel "cuellodebotella"queseproducaconlaprogramacin"clsica".Estapuede ser ahora on-line u off-line, con interfaces grficas (user-friendly interfaces) que facilitan la programacin, y un soporte SW+HW que tiende a ser cada vez ms verstil. Actualmente, el concepto de robtica ha evolucionado hacia los sistemas mvilesautnomos,quesonaquellosquesoncapacesdedesenvolversepor s mismos en entornos desconocidos y parcialmente cambiantes sin necesidad de supervisin. Engenerallahistoriadelarobticalapodemosclasificarencinco generaciones(divisinhechaporMichaelCancel,directordelCentrode AplicacionesRobticasdeScienceApplicationInc.En1984).Lasdos primeras,yaalcanzadasenlosochenta,incluanlagestindetareas repetitivasconautonomamuylimitada.Latercerageneracinincluiravisin artificial,enlocualsehaavanzadomuchoenlosochentaynoventas.La cuarta incluye movilidad avanzada en exteriores e interiores y la quinta entrara eneldominiodelainteligenciaartificialenlocualseesttrabajando actualmente. En los ltimos aos, los robots han tomado posicin en todas las reas productivasindustriales.Laincorporacindelrobotalprocesoproductivoha representado uno de los avances ms espectaculares de la edad moderna. En pocomsdecuarentaaos,sehapasadodeaquellosprimerosmodelos, rudosylimitados,asofisticadasmquinascapacesdesustituiralhombreen todotipodetareasrepetitivasopeligrosas,yadems,hacerlodeformams "* rpida, precisa y econmica que el ser humano. Hoy en da, se calcula que el nmeroderobotsindustrialesinstaladosenelmundoesdeunmillnde unidades, unos 20.000 en Espaa, siendo Japn el pas ms tecnolgicamente avanzado, con una media de 322 robots por cada 10.000 trabajadores. 2.3 Clasificacin de los robots No resulta sencillo hacer una clasificacin de tipos de robots, puesto que ningn autor se pone de acuerdo en cuntos y cules son los tipos de robots y sus caractersticas esenciales. UnaclasificacinpodrasersegnGeneraciones,basadaenloshitos conseguidos a travs de la historia de la Robtica: 1 Generacin. Play-Back: Son sistemas mecnicos multifuncionales con unsencillosistemadecontrol,bienmanual,desecuenciafijaode secuencia variable. 2Generacin.Robotsconcontrolsensorizado:Estostienenuncontrol enlazocerradodemovimientosmanipulados,yhacendecisiones basados en datos obtenidos por sensores. 3Generacin.Robotsconcontrolporvisin:Elcontroladoresuna computadora que obtiene informacin a travs de un sistema de visin y envalasrdenesalmanipuladorparaquerealicelosmovimientos necesarios. 4Generacin.Robotsinteligentes:Sonsimilaresalosanteriores,pero ademspuedenautomticamentereprogramarsusaccionessobrela base de los datos obtenidos por los sensores. 5Generacin.Inteligenciaartificial:Actualmenteendesarrollo,laIA permitiraalosrobotsacercarseunpasomsalaconductahumana proporcionndolesmsautogobernacinascomosensacionesque actualmente solo puede percibir una persona. "" Otra clasificacin podra ser segn su arquitectura: Androides:sonRobotsqueintentanreproducirtotaloparcialmentela forma y el comportamiento cinemtico del ser humano. Actualmente los androides son todava dispositivos muy poco evolucionados y sin utilidad prctica, destinados fundamentalmente al estudio y experimentacin.Uno de los aspectos ms complejos de estos Robots y sobre el que se centralamayoradelostrabajos,eseldelequilibriodurantela locomocin bpeda. Mviles: se desplazan mediante una plataforma basada en ruedas; estos robots aseguran el transporte de piezas osu propia movilizacin de un puntoaotro.Siguensucaminoportelemandooguindoseporla informacin recibida de su entorno a travs de sensores.Entreotrasfunciones,anivelindustrial,estosRobotsaseguranel transportedepiezasdeunpuntoaotrodeunacadenadefabricacin. Guiadosmediantepistasmaterializadasatravsdelaradiacin electromagnticadecircuitosempotradosenelsuelooatravsde bandasdetectadasfotoelctricamente,puedeninclusollegarasortear obstculosyestndotadosdeunnivelrelativamenteelevadode inteligencia. Zoomrficos:consideradosensentidonorestrictivopodranincluir tambinalosandroides.Constituyenunaclasecaracterizada principalmente por sus sistemas de locomocin que imitan a los diversos seres vivos.Apesardeladisparidadmorfolgicadesusposiblessistemasde locomocinesconvenienteagruparalosRobotszoomrficosendos categorasprincipales:caminadoresynocaminadores.Elgrupodelos Robots zoomrficos no caminadores est muy poco evolucionado. Cabe destacar, entre otros, los experimentados efectuados en Japn basados ensegmentoscilndricosbiseladosacopladosaxialmenteentresy dotadosdeunmovimientorelativoderotacin.Encambio,losRobots zoomrficoscaminadoresmultpedossonmuynumerososyestn siendoexperimentadosendiversoslaboratoriosconvistasaldesarrollo "# posteriordeverdaderosvehculosterrestres,pilotadosoautnomos, capacesdeavanzarensuperficiesmuyaccidentadas.Lasaplicaciones deestosRobotsserninteresantesenelcampodelaexploracin espacial y en el estudio de los volcanes. Poliarticulados: mueven sus extremidades con pocos grados de libertad. Suutilidadesprincipalmenteindustrial,paradesplazarelementosque requierencuidados. Suelensersedentarios(aunqueexcepcionalmente puedenserguiadosparaefectuardesplazamientoslimitados)yestar estructuradosparamoversuselementosterminalesenundeterminado espacio de trabajo segn uno o ms sistemas de coordenadas. En este gruposeencuentranlosmanipuladores,losRobotsindustrialesylos Robots cartesianos. Se emplean cuando es preciso abarcar una zona de trabajorelativamenteampliaoalargada,actuarsobreobjetosconun plano de simetra vertical o reducir el espacio ocupado en el suelo. Hbridos:EstosRobotscorrespondenaaquellosdedifcilclasificacin cuya estructura se sita en combinacin con alguna de las anteriores ya expuestas, bien sea por conjuncin o por yuxtaposicin. Por ejemplo, un dispositivo segmentado articulado y con ruedas, es al mismo tiempo uno de los atributos de los Robots mviles y de los Robots zoomrficos. De igual forma pueden considerarse hbridos algunos Robots formados por la yuxtaposicin de un cuerpo formado por un carro mvil y de un brazo semejantealdelosRobotsindustriales.Enparecidasituacinse encuentran algunos Robots antropomorfos y que no pueden clasificarse nicomomvilesnicomoandroides,taleselcasodelosRobots personales. Comoclasificacinfinaltenemoslaquesebasaenlafuncinquesuplen losrobots,quevieneaserlaraznporlaquelosfabricamoseinvertimosen investigacin en esta rama: "$ Industriales:sonaquellosempleadosenprocesosindustriales.Suele tratarsederobotsfijoscontresomsejes,multipropsito,controlados automticamenteyreprogramables.Cabedestacarquedentrodela gama de robots industriales podramos crear una clasificacin segn su funcinenlaindustria,comolosrobotsmanipuladores,entremuchos otros. Figura 9: robot FANUC Personales/Educativos:enestacategoraentrarantodoslosrobots empleados con fines pedaggicos y tambin aquellos destinados al ocio o a realizar tareas personales. "% Figura 10: robot LEGO Militares:comosunombreindicasonrobotsfabricadosconfines militares. Suelen ser los robots ms avanzados tecnolgicamente ya que normalmente son los que disfrutan de mayores inversiones. Figura 11: Mars-Rover (NASA) "& 2.4 Robtica mvil Losrobotsmvilessurgendelanecesidaddeextenderelcampodela Robtica.Disponendemecanismosparalatransmisindemovimiento,que permitensudesplazamiento.Enelapartadoanteriorseharealizadoun desglosedelosdiferentestiposderobotsexistentesatendiendoasu aplicacin, pero ms all de este aspecto prctico, podemos nombrar los robots mviles como los robots modernos con mayores grados de libertad, y por tanto, mayorutilidad.Elmovimientoesunacaractersticaenelespaciofsico,es decir,losrobotstienenlaposibilidaddedesplazarseporelentorno observndoloointeractuandoconl.Portantoelevamuchsimoelgradode complejidad que tiene la programacin de estos autmatas. Elprimerrobotmvildelahistoria,peseasusmuylimitadas capacidades,fueELSIE(Electro-Light-SensitiveInternal-External),construido enInglaterraen1953.ELSIEselimitabaaseguirunafuentedeluzutilizando un sistema mecnico realimentado sin incorporar inteligencia adicional. En la industria, se encuentra su aplicacin por ejemplo para el transporte de materiales, en terrenos abruptos o peligrosos para el ser humano, as como misionesderescateoexploracindeterrenosdesconocidos,inclusola imitacin del comportamiento humano. 2.4.1 Clasificacin Dentrodelafamiliadelosrobotsmviles,podemoshaceruna clasificacin segn su taxonoma: Robotsandantes:sonlosrobotsconstruidosaimagenysemejanza humana,yaquelamayoraestndotadosdedospiernas.Estetipode robots mviles tienen diferentes tcnicas de control, aunque todas ellas secaracterizanporalgoritmosaltamentecomplejos,parapoder mantenerelequilibrioyandarcorrectamentetalycomoloharaun humano.Hoyendaestosrobotssoncapacesdecaminarporsuelos regulares,bailar,subirescaleras,einclusopracticardeporteperono estnpreparadosparadesplazarseporsuelosirregulares.Muchas "' veces la programacin no est a la altura del hardware del robot y de su capacidad de procesamiento. Figura 12: Robot humanoide Robonova Robotsrodantes:sonrobotsconstruidosconruedasparapoder desplazarse.Alserlosmssencillosyfcilesdeconstruir,soncon diferencialosmspopulares,yaqueademslacargaquepueden transportar es mayor, y por ello, tienen mayor utilidad.Inclusodentrodelaclasificacindelosrobotsrodantes,podemos considerar diferentes tipos de robots: oConfiguracin de ruedas 2+2. oConfiguracin triciclo. oDotados de orugas, para terrenos con mayor irregularidad. "( Figura 13: Robot dotado de oruga Robotstrepadores:Sonrobotsinspiradosenanimalescomolas serpientes o gusanos, ya que su forma de desplazarse es una imitacin delautilizadaporestos.Estnformadosporunnmeroelevadode seccionesquepuedencambiardetamaooposicindeforma independiente de las dems pero coordinadas, de forma que en conjunto provoquen el desplazamiento del robot. Figura 14: Robot trepador ") Robotsnadadores:Sonrobotsenfocadosatareasdeexploracin submarinaporzonasdondeesdifcilopeligrosollegarporsu complicadoacceso,osusgrandesprofundidades.Estosrobotssehan creado basndose en el estudio del movimiento de los peces en el agua, llegando a demostrar que la estructura corporal, as como el movimiento querealizan,esunodelosmovimientosmsptimosdemovimiento submarino,dadoqueaprovechalaenergadeformamuyeficientey permite mayor control en la navegacin produciendo mucho menos ruido y turbulencias. Figura 15: Atn robtico Robots voladores: Suelen ser helicpteros RC dotados de visin artificial y capacitados para la toma de decisiones automticas. Mayormente son utilizados con fines militares, por ejemplo para tareas de espionaje. Figura 16: Drone, robot volador militar no tripulado #+ 2.4.2 Componentes de un robot mvil Llegados a este punto, donde ya tenemos vistos los principales tipos de robotsqueseconstruyenenlaactualidad,acontinuacinsedetallaranlas principales partes y componentes de los robots mviles, tanto mecnicas como electrnicas. 2.4.2.1 Sensorizacin Loshumanosnodamos,amenudo,importanciaalfuncionamientode nuestrossistemassensoriales.Vemosunatazasobreunamesa,lacogemos automticamenteynopensamosenello,almenosnosomosconscientesde pensar mucho en ello. De hecho, el conseguir beber de una taza requiere una complejainteraccindesentidos,interpretacin,conocimientoycoordinacin, que, en la actualidad, entendemos mnimamente. Portanto,infundiraunrobotprestacionesdetipohumanoresultaser tremendamente difcil. Los juegos de ordenador que derrotan a los campeones deajedrezsoncomunesennuestrosdas,mientrasqueunprogramaque reconozcaunasilla,porejemplo,enunaescenaarbitrariaannoexiste.El "ordenadorparalelo"quetodostenemosennuestracabezadedicagrandes cantidades de materia gris a los problemas de la percepcin y la manipulacin. Los sensores son los elementos encargados de recoger informacin del entornodelrobotytransmitirlaalaunidaddecontrolparasuprocesamiento. Los sensores constituyen el sistema de percepcin del robot, es decir, facilitan la informacin del mundo real para que el autmata la interprete. Estos son los tipos de sensores ms utilizados hoy en da: -Sensordeproximidad:Detectanlapresenciadeunobjetoyaseapor rayos infrarrojos, por sonar, magnticamente o de otro modo. #* Figura 17: Sensores de proximidad -Sensor de Temperatura: Capta la temperatura del ambiente, de un objeto o de un punto determinado. Figura 18: Sensores de temperatura -Sensormagnticos:Captanvariacionesproducidasencampos magnticosexternos.Seutilizanamododebrjulasparaorientacin geogrfica de los robots. Figura 19: Sensores magnticos #" - Sensorestctiles:Sirvenparadetectarlaformayeltamaodelos objetos que el robot manipula. La piel robtica se trata de un conjunto de sensoresdepresinmontadossobreunasuperficieflexible.Estos sensoresseutilizanenrobticapara,porejemplo,obtenerinformacin asociadaconelcontactoentreunamanomanipuladorayobjetosenel espacio de trabajo o simplemente evitar colisiones con paredes. Lainformacinobtenidapuedeutilizarseparalalocalizacinyel reconocimientodeunobstculo,ascomoparacontrolarlafuerza ejercidaporunmanipuladorsobreunobjetodado.Lossensoresde contacto pueden subdividirse en dos categoras principales:Binarios Analgicos Lossensoresbinariossonesencialmenteconmutadoresque respondenalapresenciaoausenciadeunobjeto.Porelcontrariolos sensoresanalgicosproporcionanalasalidaunasealproporcionala una fuerza local. Figura 20: Sensor tctil flexible -Sensoresdeiluminacin:Captalaintensidadluminosa,elcolordelos objetos, etc. Es muy til para la identificacin de objetos. Es parte de la visin artificial y en numerosas ocasiones son cmaras. ## Figura 21: Sensores de luz -Sensoresdevelocidad:Seempleanparadeterminarlavelocidadde actuacindelasdistintaspartesmvilesdelpropiorobotocuandose produceunavibracin.Tambinsedetectalainclinacinalaquese encuentra el robot o una parte de l. Figura 22: Sensores de velocidad de reluctancia variable -Sensores de fuerza: Permiten controlar la presin que ejerce la mano del robot al coger un objeto. Figura 23: Sensor de presin #$ -Sensoresdesonido:Micrfonosquepermitencaptarsonidosdel entorno. Figura 24: Micrfono -Micro interruptores: Muy utilizados para detectar finales de carrera. Figura 25: Micro interruptores 2.4.2.2 Actuadores Losactuadoressonlossistemasdeaccionamientoquepermitenel movimientodelasarticulacionesdelrobot.Seclasificanentresgrupos dependiendo del tipo de energa que utilicen: -Hidrulicos:seutilizanparamanejarcargaspesadasaunagran velocidad. Sus movimientos pueden ser suaves y rpidos. -Neumticos:sonrpidosensusrespuestas,peronosoportancargas tan pesadas como los hidrulicos. -Elctricos: son los ms comunes en los robots mviles. Un ejemplo son losmotoreselctricosquepermitenconseguirvelocidadesyprecisin necesarias. 2.4.2.3 Alimentacin Partefundamentalparagarantizarlaautonomadelrobot,dadoqueal sermvilgeneralmentenovaatenerenergaexterna,solamentecontarcon #% lasreservasinternasquepuedatransportar,salvoenelcasoqueseutilicen placas solares. Son muchas y muy diversas las formas en que un autmata mvil pueda transportaryalmacenarenerga,porloquevamosaverlaprincipalesyms utilizadas: Bateras:sindudalaformamscomnmenteutilizadacomofuente dealimentacinentodotipoderobots.Soneconmicamente asequibles,fiablessepuedenencontrarenunagranvariedadde formatos,voltajesydimensiones.Desdelapiladebotnms pequeayligeraparaalimentarunmicrorobothastalaspesadasy potentesbateradeplomoutilizadasenlosvehculospesados necesitados de un aporte importante de energa.Otroaspectoimportanteatenerencuentaeselformatoyel conexionado de las bateras. Habitualmente encontramos las batera recargablestantosueltascomoenpackspreparadosparasoldaro paraconectardirectamenteaunPCB.Laeleccindeunformatou otro es ms relevante de lo que parece. Pensemos en el ejemplo de un robot mvil todoterreno, si llevase pilar individuales colocadas en un porta-pilas, podra fcilmente que alguna de ellas dejase de hacer contactooinclusosesalieradesusitio.Perotambintendramos problemasconlaspilassoldadas,porejemploalahorade reemplazarlasodecargarlas,yaquetendramosquehacerlocon todas al mismo tiempo. Parece por tanto, quelo ms adecuado sera utilizarpilasenpacksconconectores,yaquesonlasquemayor flexibilidad nos aportaran para este tipo de robots. Si el presupuesto no es un problema se pueden usar tecnologas msavanzadascomolasbaterasdeiondelitioqueltimamente estn sufriendo una gran expansin gracias a tecnologas mviles de otras ndoles como ordenadores porttiles y telfonos mviles. Ladiferenciaderendimientodeunostiposdepilasrespectoa otrosesnotable,ascomosutamaoyprecio,porlotantoes importante tener claros los requerimientos del robot respecto a estos #& aspectosantesdedecidirqutipodebaterasevaautilizarpara alimentarlo. Figura 26: Diferentes tipos de bateras de Ion Litio (izquierda), y grfico comparativo con diferentes tipos de bateras (derecha) Bombonasdeaire:usadastantoparaelmovimientodeactuadores neumticos como para la propulsin de motores de aire. Este tipo de motores tiene una larga historia, pese a que su difusin es reducida. Suprincipioesequivalentealdelosmotoresdeexplosin,conla salvedadqueenlugardeproducirlacombustindegasolinay oxgenoparagenerarlosgasesqueimpulsanlospistones,seusa directamente aire almacenado en un depsito a alta presin. Figura 27: Bombonas de aire Baterasinerciales:estecuriosomecanismotampocotieneuna difusinampliaenelterrenodelosrobotsmviles,perositiene aplicacin e entornos donde la alimentacin es crtica, como centros de proceso de datos. Fue probada en vehculos durante sus albores, #' concretamente en autobuses urbanos de Zrich durante los aos 50 yalgunaslocomotorasdetrendurantelos70,peronoseha extendido su uso de forma masiva.Elprincipiodefuncionamientoessencillo:seaceleraunrotor (habitualmentemedianteelectricidad)confirindoleasunaelevada energarotacional,tpicamentedevariasdecenasdemilesderpm. Posteriormente se decelera poco a poco, recuperando as la energa elctrica de nuevo.La clave del aprovechamiento energtico, que oscila entre el 90% yel98%,consisteenreduciralmximoelrozamiento.Estose consigue mediante usando un rotor de carbono (que presenta menos resistencia que el acero) estabilizado magnticamente en un entorno controlado,generalmenteuncontenedorselladotrasrealizarleel vaco. Figura 28: Seccin de batera inercial Clulasdehidrogeno:Otratecnologaemergentequepocoapoco estdemostrandosuvalidezsonlasbaterasformadasabasede clulasqueusanelhidrgenocomocombustibleparaproducir electricidad.Sufuncionamientosebasaenunareaccinqumicaaligualque enlasbaterastradicionalesperoadiferenciadeellas,aqunose producencambiosdeestadoenloselectrodosoenlosreactantes. Simplementeseconsumenlosreactantesylareaccinseproduce prcticamentedeformaindefinidamientrashayasuficiente combustible para sustentar el proceso. #( Las principales ventajas son su elevado rendimiento as como su larga vida, que va asociada a la prctica ausencia de mantenimiento que necesitan. En contraposicin el combustible a da de hoy todava esrelativamentecaroydifcildeconseguiraunqueestasituacin mejorar cuando haya una mayor demanda de estas clulas. Figura 29: Clula de hidrgeno Motordecombustin:Elmsconocidoentrelossistemasde propulsin.Seusanmotoresmuysimilaresalosdelosvehculos, sobretodolosquellevanlasmotocicletas.Comocombustibleuna mezcladeaceiteygasolinauotroselementosvoltilescomoel etanol. Se pueden utilizar tanto para obtener energa mecnica como energa elctrica si aadimos un generador. Figura 30: Motor de combustin Biomasa:Unafuentedeenergamuyinteresanteyqueaunse encuentraporexplotar.Pequeascantidadesdebasuraorgnica #) permitiranalimentardurantehorasundispositivodotadodeesta tecnologa. A parte del ahorro econmico que supone, tiene especial intersenzonassinaccesodirectoafuentesdeenergaoen momentosdeconflictomilitardondefrecuentementeescaseanlos suministros energticos. Figura 31: Caldera de biomasa 2.4.2.4 Sistemas de control Elcontroldeunrobotpuederealizarsedemuchasmaneras,pero generalmenteserealizapormediodeunordenadorindustrialaltamente potente, tambin conocido como unidad de control o controlador. El controlador seencargadealmacenaryprocesarlainformacindelosdiferentes componentes del robot industrial.Ladefinicindeunsistemadecontroleslacombinacinde componentesqueactanjuntospararealizarelcontroldeunproceso.Este controlsepuedehacerdeformacontinua,esdecirentodomomentoode forma discreta, es decir cada cierto tiempo. Si el sistema es continuo, el control se realiza con elementos continuos. En cambio, cuando el sistema es discreto el control se realiza con elementos digitales, como el ordenador, por lo que hay que digitalizar los valores antes de su procesamiento y volver a convertirlos tras el procesamiento.Existendostiposdesistemas,sistemasenlazoabiertoysistemasen lazo cerrado:Sistemas en bucle abierto: son aquellos en los que la salida no tiene influencia sobre la seal de entrada. $+ Figura 32: Esquema de un controlador de bucle abierto Sistemas en bucle cerrado: son aquellos en los que la salida influye sobre la seal de entrada. Figura 33: Esquema de un controlador de bucle cerrado Sistemasdiscretos:sonaquellosquerealizanelcontrolcadacierto tiempo. En la actualidad se utilizan sistemas digitales para el control, siendoelordenadorelmsutilizado,porsufcilprogramaciny versatilidad.Generalmente,elcontrolenlosrobotsserealiza mediantesistemasdiscretosenlazocerrado,realizadospor computador.Elordenadorprocesalainformacincaptadaporlos sensores y activa los actuadores en intervalos lo ms cortos posibles, del orden de milisegundos. 2.5 Lego NXT LEGOhasidodesdesiempreunjuguetedeconstruccinsencillay verstil que casi permita atravesar los lmites de la creatividad. Esta andadura empezenelao1934enDinamarcayconeltiempofuecobrando popularidadentrepadres,hijosysobretodoeducadoresqueveanenestos juguetesunaformamuyinteresantededivertiryalavezpotenciarla creatividad de sus hijos y alumnos. $* Laofertadejuguetesvadesdelospocosmesesdeedadhastala adolescenciaeinclusounpocomsall,contandocontemticasurbanas, submarinaseinclusoespaciales.Entretodasestaslneascabedestacaruna que desde el principio ha contado ha despertado la curiosidad de determinado sector de pblico, en el que podan englobarse ingenieros y apasionados de la tcnica.HablamosdeladenominadalneaTechnic.Laprincipalcaracterstica deestagamadejuguetesylaquesindudalahahechotanfamosa,esel peculiar enfoque de construccin que ha concebido Lego con ella.Esteenfoqueseapartadeljuguetetradicionalyexperimentacon elementospropiosdelatecnologaactual,tantoenmecnicacomoen electrnica. As, entre las piezas de estos kits se encuentran engranajes, ejes, motoreselctricos,cablesyhastaelementostanconcretoscomolevasy pistones, juntas cardan y amortiguadores. Figura 34: Motor de Lego En1998LEGOanuncielprimerconjuntodelagamaMindstorms,el RoboticsInventionSystem(RIS1.0),aadiendounanuevadimensinal universodeLEGO.Enl,ademsdelaspiezasdeLEGOTechnic,elkit proporcionaba motores de corriente continua, sensores y, lo ms importante, el RCX. ElRCXeraelbrick(ladrillo)programabledeLEGOquepermitano slocontrolarlosactuadoresparadotaralrobotdemovimiento,sinoque tambinmanejabalasensorizacinylaconsecuenterespuestaalentorno. EstababasadoenelmicroprocesadorH8deHitachiyproporcionaba convertidores analgico/digital, comunicacin serie y temporizadores. $" ElRCXsedesarrollencolaboracinentreLEGOyelMIT.Enla primeraversinelRCXtena6puertosdeentraday6desalida,aunque posteriormenteselimitaronambasentradaysalidaalos3actualespor razones de consumo. Debido a su relativamente barato coste y a las grandes posibilidades que ofrecacuandosecombinabandeformaingeniosasuscomponentesnotard enhacerseunsitioenelmercado.Almismotiemposegantambinla simpatadenumerososaficionadosdelarobticaqueintercambiabanpor Internet sus montajes y aplicaciones contribuyendo con diferentes empresas a ampliartantoelhardwarecomoelsoftwaredesarrollando(entreotrascosas) entornos de programacin para el sistema o fabricando nuevos sensores para poder sacarle un mayor partido a su robot. En Enero del 2006 se present en el International Consumer Electronics Show la siguiente generacin de esta exitosa gama: el LEGO Mindstorms NXT. Lanuevaversinmejoranotablementelosmotoresytraeotrospequeos cambiosenlossensoreselectrnicosyenlaspiezasdeconstruccinpero,lo msimportanteotravez,esqueincorporaunaunidaddecontrolnueva:el NXT. Al igual que pasaba con la versin anterior, combinando los bloques de construccin, la fcil programacin del NXT y su interfaz de entrada y salida se puede obtener un sistema de prototipado rpido para el desarrollo de una gran variedaddeactividades,loquehapermitidoqueestesistemahayasido ampliamenteaceptadocomounaherramientaparalainvestigacinyla educacin universitaria. $# Figura 35: Componentes bsicos del NXT LosmodelosdeLEGOpuedenserahoraalgomsqueunsimple conjunto de piezas de montaje. Gracias a la funcionalidad que proporcionan los LEGO Mindstorms, los resultados del montaje de estas piezas aisladas pueden sentir y responder a su entorno, as como ser programados para llevar a cabo casi cualquier funcin. Figura 36: Distintos tipos de montajes con NXT Como hemos estado comentando, los componentes ms importantes del LEGO Mindstorms NXT, los cuales vamos a ver a continuacin, son la unidad $$ decontrolbasadaenunmicrocontrolador(brick),lossensoreselectrnicosy los actuadores. Porotroladotenemoslaspiezasdemontajequeaunquenotan sofisticadas, dotan al robot de una estructura y de su buen montaje dependern muchas caractersticas del mismo. 2.5.1 Ladrillo NXT Posiblementesetratedelapiezamsimportantedelrobot. Prcticamente todas las universidades a nivel mundial poseen ya kits de LEGO conestosbricksinteligentesyseusanenlasramasdelaenseanzayla investigacin como las relacionadas con la robtica o la mecatrnica. ElbrickvendraaserelcerebrodelNXT,proveedeunaunidadde controlpararobotsosistemaselectrnicosavanzadosquepermite implementar escenarios hasta el momento impensables. Su elemento principal estformadoporunmicrocontroladoroprocesador,queensusltimas versioneshaalcanzadogradosdepotenciasorprendentessipensamosenel Lego como un juguete. Figura 37: Versin NXT del ladrillo de control Sealimentacon6pilas1,5VAAoconunabaterarecargabledeLitio cuya autonoma depender del nmero de actuadores y de sensores que estn trabajando en ese momento. $% Tanto para la lectura de los 4 puertos de entrada como para el acceso a los3puertosdesalidaseutilizancablesRJ12,muysimilarespero incompatibles a los RJ11 utilizado en la telefona. EnNXTdisponetambindeunapantallaLCDdeescaladegrisesde 100x64 pixeles y 26x40.6 mm. Cuenta adems con 4 botones que permite a los usuarios navegar por una interfaz jerrquica de mens. Adems, cuenta con un altavoz y un canal de salida de sonido que puede reproducir ficheros de sonido conperiodosdemuestreodemsde16kHzy8bitsderesolucin.Paralas comunicaciones, el NXT tiene un puerto USB 2.0 full speed de 12 Mbits/s y un puertoinalmbricoBluetoothCSR(BlueCoreTM4v2.0claseIIserialport profile 47Kbyte RAM, 8Mbit FLASH, 26MHz). ElbrickdelNXTpuedeconectarseinalmbricamenteaotrostres dispositivosalavez,perocadaintervalodetiemposlolopuedehacercon uno exclusivamente. Comosehacitadoanteriormente,elNXTestequipadoconun microprocesadorAT91SAM7S256.Ademsdisponedeuncoprocesador matemtico basado en el micro controlador ATmega48. ElAT91SAM7S256esunmicroprocesadorde32bits,256KBde memoriaflashy64KBdememoriaRAM.ImplementaunaarquitecturaARM v4T,quelepermitesuperarlos130MIPS,pudindoseencontraren dispositivos como el IPod de Apple, la Nintendo DS, la mayora de los mviles de Nokia, etc. A continuacin una lista resumida de las caractersticas electrnicas del brick NXT, extradas del manual de LEGO: * Procesador principal: Atmel 32-bit ARM processor, AT91SAM7S256:- 256 KB FLASH- 64 KB RAM- 48 MHz * Co-procesador: Atmel 8-bit AVR processor, ATmega48:- 4 KB FLASH- 512 Byte RAM $& - 8 MHz*UnidaddecomunicacionesBluetoothCSRBlueCoreTM4v2.0+EDR System:- Soporte de Serial Port Profile (SPP)- 47 KByte RAM Internos- 8 MBit FLASH Externos- 26 MHz* Comunicacin va USB 2.0 (12 Mbit/s)*4puertosdeentradaconinterfazde6hilosysoporteparaconexiones AD y DA- 1 puerto de alta velocidad, IEC 61158 Tipo 4/EN 50170 compatible- todos los puertos de entrada cuentan con soporte del bus I!C* 3 puertos de salida con interfaz de 6 hilos y soporte para lectura desde encoders * Conectores de 6 hilos estndar industrial, RJ12 con ajuste a derechas* Display grafico LCD de 100 x 64 pxel (blanco y negro)- rea de visin de 26 x 40.6 mm*Altavoz de salida con resolucin de 8-bit- Soporta tasas de muestreo de 2 a 16 KHz* 4 botones de goma para interaccin con el usuario*Alimentacin: 6 pilas de tipo AA- Se recomienda usar pilas alcalinas-TambinseencuentradisponibleunabateradeIondeLitiode1400 mAH- Cargador opcional disponible para la batera anterior 2.5.2 Actuadores La gama de motores de que consta la lnea LEGO Technic es bastante elevada, contando entre sus filas con aproximadamente 13 modelos diferentes. Estosmotoresvandesdelospequeosmicromotoreshastalajoyadela corona de esta familia que no es otro que el motor incluido en el set del NXT. El motor incluido en el set NXT posee unas caractersticas muy buenas encuantoarespuestayrendimiento.Cuentaconunjuegodeengranajes $' reductoresyunencoderrotacionalensuinterior.Lavelocidadmximadelos motores es de 200RPM. Figura 38: Actuador del LEGO Mindstorms: motor de corriente continua Eljuegodeengranajesreductoresgarantizaunpardefuerzaelevado para el motor, lo que se traduce en la capacidad de realizar un esfuerzo mayor sinlanecesidaddeelementosexternoscomoeranecesarioenmodelos anteriores,ymsimportantean,impidiendoelsobreesfuerzodelmotoryla consecuente reduccin de su vida til. Porejemplo,alimentadoa9Vyfuncionandoa117rpmproporcionaun par de 16.7N/cm con un consumo de corriente de 0.55A. Elencoderotacmetro,porsuparte,permiteconocerelnmerode vueltas que ha dado el eje del motor con una precisin de 1 grado. Es decir, si elmotorrealizaungirocompletoelencoderverincrementadasucuentaen 360 unidades. Esto es cierto sea cual sea el sentido de movimiento del motor, incrementndoseenunsentidoydecrementandosealgirarensentido contrario. ElNXTesprincipalmenteundispositivodigital,ycomotalnicamente puede proporcionar dos valores: nivel alto 1 lgico (9 voltios) o nivel bajo 0 lgico(0voltios).PorelloelNXTnecesitaalgunaformadecrearestos100 nivelesdepotenciaintermediosparalosmotoresdesdelasealdigital.La formadeobtenerunapotenciavariableserealizamedianteelmecanismode Modulacin de Anchura de Pulso (PWM). $( Estemtodoconsisteenarrancarporunperiododetiempoyluego pararlo. El tiempo durante el cual est en funcionamiento el motor se denomina pulso,repitiendoestoperidicamenteconseguiremosqueelmotorfuncione conunapotenciamenoralamxima.Sivariamosladuracindelospulsos podemos obtener diferentes velocidades. Figura 39: Seal PWM para el control del motor de corriente continua UnodelosproblemasquetieneelPWMesqueenlugardeestar suministrandocontinuamentepotenciaparcial,estasuministrndoladeforma completaenpartedeltiempo.Enmuchoscasos,estasutildiferenciatiene grandesefectosenlosdispositivos,sinembargolosmotoresdeLEGOsonla excepcin ya que estn diseados para ser muy eficientes en potencia y tienen unvolantedeinerciainterno,elcualactacomounpequeotanquede almacenajedeenerga.Elvolantedeinerciaesmsefectivocuandoelmotor tieneunaresistenciamuypequea,esdecircuandonoestasometidoauna cargagrande.Cuandoarrancaelmotorconsumemuchaenergahasta alcanzar la velocidad necesaria. Una vez en marcha, sin embargo, un motor sin unacargaexcesiva(porejemplounmotorquenicamentetieneconectadoa susalidaunengranajeynadams)puedemantenersuvelocidadconmuy pocaenergaexterna.Enestecaso,PWMnoafectaalmotordemasiadoya quelospulsoscortosmantienenalvolantegirando,yelvolantemismo mantienealmotorgirandocuandocesanlospulsos.Bajounacargafuerte (como por ejemplo un robot atravesando una superficie con fuerte rozamiento, como una alfombra), el volante es menos efectivo y el cambio de los niveles de potencia puede tener unos efectos ms notables sobre la velocidad del motor. $) Paraprotegerelmotordeintensidadesmuyaltas,estnequipadospor unaresistenciaPTCmontadaenserieconelmotor,demaneraquesuvalor incrementarpidamentecuandolatemperaturaaumenta,limitandodeesta forma la intensidad suministrada al motor. Porltimotambinesnecesariotenerencuentaquelavelocidadde rgimenpermanentevaradeunmotoraotro,conunadiferenciaquepuede incluso alcanzar el 11%. Adems se ha comprobado que la velocidad vara en unmismomotoralrededordeun2%entreelsentidodeavanceyretroceso. Estefenmenosedebetenerencuentaalahoradelaprogramacindelos algoritmosdecontrolpuestoquepuedeafectardeunaformaconsiderableen la respuesta del sistema (robot mvil). 2.5.3 Sensores Acontinuacinvamosarealizarunrepasoporelconjuntodesensores disponibles para el LEGO Mindstorms NXT, tanto los de marca propia de LEGO comoaquellosensambladosydistribuidosportercerosperoqueson plenamente compatibles con la plataforma NXT. Son cuatro los sensores incluidos en el kit original de LEGO Mindstorms: de contacto, de luz, de sonido y de distancia.Bumper: detecta la presin realizada sobre la punta del sensor. til para detectarcolisiones,presenciadeobjetosocomomecanismofinalde carrera. Luz/Color:estesensorcumpleunadoblefuncin,escapazdedetectar la presencia de luz en un entorno y a su vez es capaz de identificar un pequeo rango de colores de los objetos que ve. Sonido:constadeunpequeomicrfonocapazdecaptarsonidos.Los nuevossensoresdesonidopermitenmedirnivelesdesonidotantoen decibelios(dB)comoendecibeliosajustados(dBA),demaneraqueel sensor se adapta ala sensibilidad del odo humano (frecuencias entre 3 y 6 kHz). %+ Ultrasonidos:permitedetectalapresenciadesonidosaunacierta distancia. til en las mismas situaciones que el bumper pero sin llegar al contacto.Setratadesensoresbasadosenultrasonidos,quepermiten medir distancias entre 0 y 255 cm, con una precisin de +/- 3 cm. Figura 40: Sensores del LEGO Mindstorms NXT FabricantescomoHi-Techniccomercializansensorescompatiblesconel NXT, de entre los cuales destacamos los siguientes: Brjula:permiteconocerlaorientacindelrobotrespectoalnorte magntico.Acelermetro: detecta aceleracin en tres ejes y giro en uno.Seguidor de infrarrojos: es capaz de detectar el haz de un emisor en un ngulo de 135, indicando as mismo la direccin desde la que proviene el haz de luz. Figura 41: Seguidor de infrarrojos (izquierda), brjula (derecha) Es posible crear sensores propios o accesorios personalizados para el NXT compatiblesconelbusI2CcomoMindSensorsquedisponeinclusodemicro cmarasdevisinqueseconectandirectamentealospuertosdeentradadel ladrillo. %* 2.5.4 Piezas de montaje Para montar y realizar diseos propios se incluyen en el set un conjunto de 672 piezas entre las que se incluyen ruedas, engranajes, soportes, etc. que soncompatiblesconotraspiezasdeLegoquepodamostenerdeotros productos.Tambinpodemosusarofabricarnuestraspropiasestructurassin necesidaddequesetratedepiezasdeLegoparamontarelrobotque deseemos,aunquelossensores,losactuadoresyelbrickestndiseados para ser montados con piezas de Lego. 2.6 Conexiones Dado que durante el desarrollo de este proyecto se hemos utilizado dos tipos de conexiones, en este apartado se presenta una breve descripcin de los dos campos que se hemos utilizado:-USB para conectar el robot con el PC. -Bluetooth para sincronizar las tareas de los robots. 2.6.1 USB El Universal Serial Bus (bus universal en serie) o Conductor Universal en Serie(CUS),abreviadocomnmenteUSB,esunpuertodecomunicacinde perifricos a un computador. Fue creado en 1996 con la finalidad de eliminar la necesidad de adquirir tarjetas separadas para poner en los puertos de bus ISA o PCI y mejorar las capacidades plug-and-play permitiendo a esos dispositivos serconectadosodesconectadossinnecesidaddereiniciarelsistema.Sin embargo,enaplicacionesdondesenecesitaanchodebandaparagrandes transferencias de datos los buses PCI o PCIe salen ganando e igual sucede si la aplicacin requiere robustez industrial. Se pueden clasificar en cuatro tipos segn su velocidad de transferencia de datos: -Bajavelocidad(1.0):Tasadetransferenciadehasta1,5Mbps (192KB/s).Utilizadoensumayorpartepordispositivosdeinterfazhumana como los teclados, ratones e incluso artculos del hogar. %" -Velocidadcompleta(1.1):Tasadetransferenciadehasta12Mbps (1,5MB/s),segnelestndar,perosediceenfuentesindependientesque habra que realizar nuevamente las mediciones.-Altavelocidad(2.0):Tasadetransferenciadehasta480Mbps (60MB/s)peroporlogeneraldehasta125Mbps(16MB/s).Estpresentecasi enel99%delosordenadoresactuales.ElcableUSB2.0disponedecuatro lneas, una para datos, una para corriente y otra de toma de tierra.-Speraltavelocidad(3.0):Actualmenteseencuentraenfase experimentalytieneunatasadetransferenciadehasta4.8Gbps(600MB/s). Estaespecificacinserdiezvecesmsvelozquelaanterior2.0yprevsu lanzamiento a corto plazo. Se han incluido cinco conectores extra, desechando elconectordefibrapticapropuestoinicialmenteysercompatibleconlos estndares anteriores.LassealesdelUSBsetransmitenenuncabledepartrenzadocon impedancia caracterstica de 90 " 15%, cuyos hilos se denominan D+ y D-.4 Estos, colectivamente, utilizan sealizacin diferencial en half dplex excepto el USB 3.0 que utiliza un segundo par de hilos para realizar una comunicacin en full dplex. La razn por la cual se realiza la comunicacin en modo diferencial es simple, reduce el efecto del ruido electromagntico en enlaces largos. D+ y D-suelenoperarenconjuntoynosonconexionessimples.Losnivelesde transmisin de la seal varan de 0 a 0'3 V para bajos (ceros) y de 2'8 a 3'6 V paraaltos(unos)enlasversiones1.0y1.1,yen400mVenaltavelocidad (2.0).Enlasprimerasversiones,losalambresdeloscablesnoestn conectados a masa, pero en el modo de alta velocidad se tiene una terminacin de 45 " a masa o un diferencial de 90 " para acoplar la impedancia del cable. Este puerto slo admite la conexin de dispositivos de bajo consumo, es decir, que tengan un consumo mximo de 100 mA por cada puerto; sin embargo, en caso de que estuviese conectado un dispositivo que permite 4 puertos por cada salidaUSB(extensionesdemximo4puertos),entonceslaenergadelUSB se asignar en unidades de 100 mA hasta un mximo de 500 mA por puerto. %# Figura 42: Salidas USB 2.6.2 Bluetooth BluetoothprovienedelapalabraescandinavaBltandquesignifica hombre de tez oscura pero en los tiempos que corren el significado original se haperdidoyahoraseasociaalascomunicacionesinalmbricas,unestndar globalqueposibilitalatransmisindevoz,imgenesyengeneraldatosentre diferentesdispositivosenunradiodecortoalcanceyloquelehacems atractivo, muy bajo coste.Los principales objetivos que este estndar quiere lograr son:- Facilitar las comunicaciones entre equipos.-Eliminar cables y conectores entre aqullos.-Facilitar el intercambio de datos entre los equipos. Bluetoothfuncionabajoradiofrecuenciaspudiendoatravesardiferentes obstculos para llegar a los dispositivos que tenga a su alcance.Operabajolafranjadefrecuencias2.42.48GHzocomotambines conocidacomoBandaISMquesignificaIndustrial,ScientificandMedical %$ queesunabandalibreparausadaparainvestigarporlostresorganismos anteriores.Peroestotienesusconsecuencias,yaquealserlibrepuedeser utilizadaporcualquierayparaello,paraevitarlasmltiplesinterferenciasque se pudieran introducir (microondas, WLANs, mandos, etc.) Bluetooth utiliza una tcnica denominada salto de frecuencias.El funcionamiento es ir cambiando de frecuencia y mantenerse en cada unaunslotdetiempoparadespusvolverasaltaraotradiferente.Es conocidoqueentresaltoysaltoeltiempoquetranscurreesmuypequeo, concretamente unos 625 microsegundos con lo que al cabo de un segundo se puede haber cambiado 1600 veces de frecuencia.Cuandocoincidenmsdeundispositivobluetoothenunmismocanalde transmisin se forma lo que se llaman piconets que son redes donde hay un maestro que es el que gestiona la comunicacin de la red y establece su reloj y unosesclavosqueescuchanalmaestroysincronizansurelojconeldel maestro.Dichoalcancepuedevariarsegnlapotenciaalaquesetransmite(a mayorpotenciamayorconsumoymenorautonomaparaeldispositivo)yel nmero de repetidores que haya por el medio. As el alcance puede estar entre los10y100metrosdedistancia(losrepetidoresprovocanlaintroduccinde distorsin que puede perjudicar los datos transmitidos).Bluetooth puede conectar muchos tipos de aparatos sin necesidad de un solo cable, aportando una mayor libertad de movimiento. Por esta razn ya se ha convertido en una norma comn mundial para la conexin inalmbrica. En el futuro,esprobablequeseaunanormautilizadaenmillonesdetelfonos mviles,PC,ordenadoresporttilesyvariostiposdeaparatoselectrnicos, como por ejemplo:-Domtica (activacin de alarmas, subida de persianas, etc.).-Sector automovilstico (comunicacin con otros vehculos).-Medios de pago. En una comunicacin Bluetooth se pueden alcanzar tasas de transmisin de datosde720kbps(1Mbpsdecapacidadbruta)conunrangoptimode10 metros (como se ha comentado antes 100 metros con repetidores). %% 2.7 RobotC ComosehacomentadoanteriormentelossistemasMindstormshan tenidounagranaceptacinydebidoaestosepuedenencontrarunagran variedad de entornos de desarrollo y programacin que permiten trabajar tanto enLinuxcomoenMacyWindows,yaqueelfirmwareescdigolibrede distribucin. ElsetdeMindstormsvieneacompaadodelentornodeprogramacin NXT-G, que est basado en Labview. Es un lenguaje en el cual los programas secreanporbloques,muyintuitivo,rpidoysencillodeprogramarproducido en colaboracin con Nacional Instruments. Existentambinmuchasalternativasdesoftwarelibretalescomo BricxCC,NBC,NXC,leJOS(NXJ),pbLuaoNXT#perolaherramientaquese ha utilizado en el presente proyecto es RobotC. En la siguiente tabla podemos verqueadolececadaunoyquelenguajesnosofrecenmsfacilidadesy rapidez que otros: Figura 43: tabla comparacin diferentes entornos %& Siseobservalatabla,RobotCesunlenguajedeprogramacinque supera al resto de lenguajes en la mayora de aspectos. Peroadems,RobotCsehaelegidopararealizaresteproyectoporla cantidaddeposibilidadesquetieneparaprogramarconsensores,tantolos propios de LEGO como los de otras marcas. EstoesporquetienecompatibilidadconelprotocoloI2Cquenosvaa permitirtrabajarconsensoresdigitales(quesonlamayoradelosfabricados por Third Parties como Hitechnic).Aunqueprcticamentetodosloslenguajesdedesarrollopresentan tambinestacompatibilidad,RobotCpresentaunainterfazbastantecmoda para el estudio de los sensores que funcionen con dicho protocolo. An as, si nos resultara complicado programar utilizando este protocolo, RobotCincluyelibrerasparalossensoresmsimportantestantodeLego comodeotrascompaasparapodertrabajarconellossintenerque preocuparnos de no saber manejar correctamente I2C. RobotC es un lenguaje muy parecido a C, de hecho parece un micro C quehaceusodeunfirmware(msrpidoqueeloriginaldeLEGO)como sistema operativo. Incluyeunainterfazdeprogramacintpicadetexto,conayudasde rellenado, sintaxis en color, una barra lateral donde se describen las funciones quetieneimplementadasRobotCparaayudaracontrolarlossensores,etc.y adems un depurador en tiempo real para facilitar la labor a los programadores. Dentrodelaaplicacinsepuedenencontrarnumerososejemplosescritosen dicholenguajeparaprobarlosdirectamenteconelrobotparacomprobarsu funcionamiento Paramostrarcmoresultaelentornodeprogramacinseadjuntan diferentescapturasdondeseobservandiferentespartes,comopuedeserla partedelasfuncionesyvariablesquetieneintrnsecasRobotC,lapartede edicin de texto con su resaltado de texto y la ventana de depuracin donde se muestran los errores y los warnings del compilador. %' Figura 44: Interfaz de RobotC Elentornodeprogramacindisponedeunaseriedeutilidadesmuy interesantespuestoque,porejemplo,permiteconfigurardeunaformamuy simplelosactuadoresysensoresautilizar,disponedeunadministradorde archivosquepermitecargarydescargarficherosenelNXT,nosfacilitala monitorizacinentiemporealdelestadodelosmotores,sensoresylas variables ms importantes del sistema, etc. ROBOTCfacilitatambinunaseriedefuncionesdebajonivelque permiten, entre otras cosas: Verificar y controlar el estado de las bateras del robot Establecer el control de las tareas que se ejecutan concurrentemente Programarrelojesquepermitenespecificarlosperiodosdemuestreo requeridos en las aplicaciones Control de los motores de corriente continua del sistema Obtener los valores de los sensores analgicos y/o digitales Establecer las comunicaciones Bluetooth %( Facilitar una librera con las funciones matemticas ms importantes Permitirlainteraccinconelusuarioapartirdelosbotonesyla pantalla del NXT, leer y escribir ficheros de texto, etc.

Unavezdesarrolladoyvalidadoelprogramafuente,elcompiladorde ROBOTCgeneraelcdigomquinaquepuededescargarmedianteuncable USB en el ladrillo NXT.Unavezcargadoenelrobotmvilsepuedelanzarlaejecucindel programa.EstosepuedehacerdesdeelpropioentornodeROBOTC(siel cable USB est todava conectado al robot) o desde los botones del NXT.Debidoaqueconelentornodeprogramacinqueseacabadecomentar se trabaja con un lenguaje de programacin parecido a C, la complejidad de las tareas a realizar por el robot y de los algoritmos de control pueden ser mucho mayores. 2.8 MATLAB MATLAB es la abreviatura de MATrix LABoratory, es una herramienta osoftware matemtico que ofrece un entorno de desarrollo integrado incluyendo supropiolenguajedeprogramacinellenguajeM.Hoyenda,podemos instalarestapotenteherramientaenplataformasUnix,WindowsyAppleMac OS X. Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la representacindedatosyfunciones,laimplementacindealgoritmos,la creacindeinterfacesdeusuario(GUI)ylacomunicacinconprogramasen otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone dedosherramientasadicionalesqueexpandensusprestaciones,asaber, Simulink (plataforma de simulacin multidominio) y GUIDE (editor de interfaces deusuario-GUI).Adems,sepuedenampliarlascapacidadesdeMATLAB conlascajasdeherramientas(toolboxes);ylasdeSimulinkconlospaquetes de bloques (blocksets). %) Es un software que dadas todas sus prestaciones es muy utilizado tanto en universidades como en centros de investigacin y desarrollo. En los ltimos aoshaaumentadoelnmerodeprestaciones,comoladeprogramar directamente procesadores digitales de seal o crear cdigo VHDL. MATLABfuecreadoporCleveMoleren1984,surgiendolaprimera versinconlaideadeemplearpaquetesdesubrutinasescritasenFortranen loscursosdelgebralinealyanlisisnumrico,sinnecesidaddeescribir programasendicholenguaje.EllenguajedeprogramacinMfuecreadoen 1970 para proporcionar un sencillo acceso al software de matrices LINPACK y EISPACK sin tener que usar Fortran. En 2004, se estimaba que MATLAB era empleado por ms de un milln de personas en mbitos acadmicos y empresariales. Enlossiguientesapartadosveremosmsafondoquenosproporcionala programacin de scripts en lenguaje m. 2.8.1 Lenguaje de programacin MATLABademsdelapotentsimaherramientamatemticaque presenta, es un lenguaje de programacin, un conjunto de reglas para escribir programasdeordenador.MATLABesunlenguajedeprogramacinorientado al Clculo Numrico y es difcil encontrarle cualquier otra aplicacin. Desde un puntodevistaestticoyprcticoMATLABesunbuenlenguajede programacin para realizar programas breves y simples. Pero por el contrario, no sera el ms idneo adecuado para: -Implementacindealgoritmoscomplejosquerequierandemodelosde datos complejos organizados de forma jerrquica. Aunque con MATLAB podemosprogramarutilizandolaorientacinaobjetosnopuede considerarse un buen lenguaje para ello. -Computacin de alto rendimiento. El HPC es un caso de uso extremo de losrecursosdeclculo.MATLABtieneunrendimientorazonableenla mayora de los casos pero un buen programador puede multiplicar entre &+ diez y cien veces la velocidad de ejecucin de un programa utilizando C o Fortran. -Grandes proyectos de software. MATLAB no es una buena eleccin para unprogramaquecrecemsalldeunoscuantosmilesdelneas.No hayunaraznnicaparaelloperosepodradecirquelacomplejidad del cdigo escala mal. PerolorealmentevaliosodeMATLABnosonsuscapacidadescomo lenguaje sino las siguientes: -ExisteunusogeneralizadodeMATLABenIngeniera,esuna herramientadegranpopularidadyestilparaunacarreraprofesional. Estolohaconvertidoenunestndarde-factoparalaescriturade pequeos programas de simulacin. -MATLABcuentaconunaextensabibliotecadefuncionesquecubren casitodaslasdisciplinasdelaCienciaylaIngenieraextensamente documentada y de fcil uso. 2.8.2 Lenguaje interpretado Loslenguajesdeprogramacin,comoloslenguajesnaturalesescritos, nosonmsqueunaseriedenormasparatransmitirconceptos.Mientrasel lenguajeescritosirveparaquelossereshumanossecomuniquenentreellos loslenguajesdeprogramacinsecrearonparacomunicarseconlos ordenadores mediante una serie finita de claves. Loslenguajesdeprogramacintambintienengramticaylxicopero sonmuchomssimplesque,porejemplo,losdelalenguacastellana.Los seres humanos estamos educados para convertir palabras y frases en sonidos. Hayquedotaralosordenadoresdeunmtodoparaconvertirelcdigo implementadoenunlenguajedeprogramacinenrdenesqueseacapazde cumplir. Hay casi una infinidad de maneras de lograr este objetivo. A diferencia de la mayora de los cursos sobre lenguajes de programacin los describiremos por orden cronolgico, aunque no rigurosamente. &* Cuandoaparecielordenadorprogramablelanicamanerade comunicarseconleradescribirsinambigedadqusucedaconcada posicindememoria.Estecdigodebajonivel,llamadocomnmente ensamblador, es traducido a lenguaje mquina que ya un ordenador es capaz deentender.Aunquehoyestemtododeprogramacinpuedaparecer inverosmil es la mejor manera de mover mquinas lentas y con poca memoria como las de entonces. Elpasosiguientellegconlaaparicindeloscompiladores.Amedida quelosordenadoressehacanmspotentesescribirlosprogramasen ensambladorempezahacerseunatareamuylaboriosa.Elnmerode direccionesdememoriacrecaexponencialmenteylasarquitecturas,aunque seguanelmodelodeVonNeumann,sehacanmscomplejas.Elsiguiente pasofueutilizarelmismoordenadorparatraducirdesdeunlenguajems humano, de alto nivel, a ensamblador. El ensamblador pas de ser un lenguaje deusoaunlxicointermedio.Elprogramaqueconvierteestecdigodealto nivel se llama compilador. Esteplanteamientotieneunaventajaadicional.Elcdigoensamblador no es el mismo para todas las arquitecturas. Un programa compilado para arquitecturas x86 no puede ejecutarse en SPARC o POWER pero el cdigo es el mismo. El programa de Kernighan y Ritchie: #include "stdio.h" int main() { printf("Hello, world!\n"); } Produceexactamenteelmismoresultadoencualquierordenador siemprequedispongadeuncompiladordelenguajeC.Estoasegurala portabilidad a nivel de cdigo, no a nivel de ejecutable. Elpasosiguienteespoderutilizarunensambladorindependientede cadaarquitecturamedianteuntraductordecdigopropioacdigomquina. Esta aplicacin se llama mquina virtual. Una mquina virtual es tan lista como sedesee(muchomslistaqueunprocesador)yrealizartareascomola declaracindevariables,laliberacindememoriaolagestindelflujode ejecucin.Elconjuntocompiladorymquinavirtualsedenominaintrpretey loslenguajesquesoportanestefuncionamientosellamanlenguajes &" interpretados. Que el cdigo sea ejecutado por un programa y no por el propio ordenadoresmuchomslento,porestemotivolasmquinasvirtualesnose popularizaron hasta finales de los noventa. Elpasosiguienteeshacerdesaparecerinclusoesteensamblador intermedioyconlelcompilador.Yanoexisteuncompiladoryunamquina virtualsinoqueslounprograma,elintrprete,realizatodoeltrabajo.Este ltimoplanteamientonoesnecesariamentesuperioreneficaciaorendimiento aunamquinavirtual,simplementeesmsfcildediseareimplementar. MATLAB pertenece a este ltimo grupo. 2.8.3 Lenguaje dinmico EnmuchoslenguajesdeprogramacincomoCoFortranes imprescindibledeclararcadaunadelasvariablesquesevanautilizarenla programacin.Ladefinicinestrictadedeclaracinesladeidentificarun determinado espacio en la memoria del ordenador con un nombre. Volviendo otra vez a un C que cualquiera pueda entender la declaracin inta;significaqueunespacioenlamemoriafsicalosuficientementegrande comoparaalmacenarunenterovaarecibirelnombredea.Estoslenguajes, los que asocian variables a memoria, se llaman estticos Lallegadadeloslenguajesinterpretadospermitimanejarlamemoria deunamaneramuchomsverstil.Java,queaunqueesinterpretadoes tambin esttico, incluye un recolector de basura que descarga al programador delatareadelimpiarlamemoria.Perolamayoradeloslenguajes interpretadosmodernoscomoPythonoRubysonademsdinmicos.Enun lenguaje dinmico no existen declaraciones porque el concepto de variable es distinto,yanoeselnombrequeseasociaaunespacioenlamemoria,esel nombredeunvalor.Deestamaneralavariabletieneunsentidomuchoms natural, ms matemtico. MATLAB es un lenguaje dinmico aunque no puede considerarse moderno. Desde el punto de vista del intrprete cualquier variable o estructuras de variables son mutables en tiempo de ejecucin complicando significativamente el manejo de memoria. Programarconunlenguajedinmicoescompletamentedistintohacerlo conunoesttico.Lamayorversatilidadsueleveniracompaadademayor costecomputacionalodenuevoserroresdeprogramacin.Nodebemos perdernucadevistaquelaprogramacineslamanipulacindedatos almacenadosenlamemoriadeunordenadoryconunlenguajedinmico estamos ms lejos de los mismos. 2.8.4 Interfaz grfica LainterfazgrficadeMATLABesprcticamenteidnticaencualquiera de sus versiones independientemente del sistema operativo. Figura 45: Captura de la interfaz grfica de MATLAB R2008b Vemosquelaventanaprincipalestdivididaenapartadosconuna funcinespecfica.Cadaunodeestosapartados,aexcepcindelmen,es unaventanaquepuedemoversedentrodelapropiaaplicacin.Estopermite que ordenemos MATLAB para ajustarlo mejor a nuestras necesidades. Las tres nicaszonasquedemomentonosinteresanestnmarcadasconunnmero en la imagen. &$ Eliconosealadoconelnmero1significanuevoarchivoysirvepara abrir el editor de MATLAB.Elrecuadrosealadoconelnmero2eseldilogoparaseleccionarel directoriodetrabajo.Amedidaquevayamosescribiendocdigolo guardaremos en algn lugar del ordenador. Para poder utilizarlos en un futuro esimportantequeMATLABsepadndelohemosdejado.MATLAByasabe, porqueasvieneconfiguradodefbrica,dndetieneguardadaslasfunciones propias de la aplicacin y de los distintos toolkits pero no sabe dnde estn las que hemos escrito. Porltimo,peronomenosimportante,elnmero3eslaconsolade MATLAB.Comoquedclaroenlaintroduccin,enrealidadMATLABnoes ms que un intrprete para un lenguaje de programacin y nuestra va directa decomunicacinconelmismoeslaconsola.Dehecho,noexisteninguna accindelainterfazgrficaquenopuedaejecutarsetambinmediantela consola.Dehecho,cuandoejecutamosunprogramanoesnisiquiera imprescindible que la interfaz grfica est abierta. La siguiente pieza es el editor: Figura 46: Captura del editor de MATLAB R2008b Ladefinicindeprogramaresescribircdigoyparaserrealmente productivos es importante utilizar una buena herramienta y conocerla. No es ni &% muchomenosnecesarioutilizareleditordeMATLABparaescribirnuestros scripts pero se trata de una buena opcin. El editor cuenta con casi todas las capacidades que se esperan de una herramienta de programacin moderna: -Coloreado de cdigo -Anlisis sintctico capaz de detectar errores antes de ejecutar el cdigo -Depurador integrado Unadelascaractersticasquehaintegradoenlasltimasversionesesel modoceldaquenosayudaradividirgrandesarchivosenpartesejecutables independientemente slo comentando el cdigo de una manera particular. Lainterfazgrficanossirvetambinparaconsultarladocumentacindel programa. Es completa, extensa y de calidad. && 3.- DESARROLLO PRCTICO 3.1 Prembulos y configuracin Llegadosaestepuntoyunavezfinalizadolaexposicindelasbases tericas necesarias para el desarrollo de nuestros objetivos, se contina con la descripcin de la parte prctica del proyecto. 3.1.1 Montaje del robot NXT Siguiendoelguindelasfinalidadesdeesteproyecto,elmontajedel robotNXTnopuedeserdecualquiermanera.Senecesitaquecumplaunas necesidadesdemovilidad,detraccinydedireccin.Delasopciones planteadasenlaparteterica,seoptaporlaformadetriciclo:dosruedas motrices que controlan traccin y direccin al mismo tiempo con un mecanismo diferencial y una rueda trasera ms pequea y libre. Figura 47: Robots LEGOS de frente &' Figura 48: Robots LEGOS de perfil 3.1.2 Instalacin del driver USB de Lego Paraqueelordenadorreconozcaelrobot,sedebedescargardesde http://mindstorms.lego.com/en-us/support/files/default.aspxeldriverdeLego MindstormsNXTeinstalarlo.Ahoracuandoseconecteelrobotalordenador por USB y se encienda, aparecer entre los dispositivos del sistema. 3.1.3 Instalacin de RobotC y firmware del robot Enelpresenteproyecto,sehatrabajadoconelentornodedesarrollo RobotC,talycomohemosmencionadoenapartadosanteriores.Laprimera tareaquedeberemosrealizaresdescargarelproductodesdesupropiaweb: http://www.robotc.net/download/nxt/ y posteriormente instalarlo en el ordenador. UnavezinstaladoRobotC,esbuenohaceralgunoscambiosenla configuracininicial,porejemplo,quelainterfazdelprogramaseaparasper usuario, ya que de esta manera, tendremos muchas ms opciones y funciones &( para poder utilizar en caso de necesitarlas. Esto lo haremos desde: Window -> Menu Level -> Super User. AcontinuacinconectaremoselrobotalordenadorporUSBy deberemos instalarle el firmware correspondiente a la versin de RobotC dado queMindstorms NXT cuenta con su propio firmware, es necesario reemplazar eloriginalquetienenlosrobots.Paraelloentramosalmen:Robot-> Download Firmware y se nos abrir la siguiente ventana, Figura 49: Ventana para instalar firmware en el NXT Primeroactualizamoslalistadebricksconectadosalordenador, pulsandoenelbotnRefreshLists.Acontinuacindebersalirenelpanel NXTBricksCurrentlyConnectedviaUSBelnombreyladireccinMACdel robotalquequeremosinstalarelfirmware,seseleccionaypulsamosF/W Download,seabrirunanuevaventanaenlaqueaparecerunarchivocon formato.rfwyloseleccionamos.Seguidamentecomenzarainstalarseel nuevo firmware en el ladrillo del robot. Advertencia:Aunqueesunprocesoaparentementesencilloelquese acabadedescribir,corremoselpeligroderealizaralgoalgnerrorydejarel Brick bloqueado e inutilizable. En ningn caso deberemos desconectar el robot del USB durante el proceso de descarga del firmware. &) 3.1.4 Instalacin y configuracin de MATLAB Comosehacomentadoanteriormenteenelapartadoterico,para facilitarelestudiodelageneracindecurvasdeBzier,sehautilizadola herramientaMATLAB,deberemosinstalarlaenelordenadoryconfigurarla interfaz a gusto del usuario para poder trabajar cmodamente con ella. 3.1.4.1 Java Developement Kit Por supuesto para trabajar con MATLAB se necesita instalar la Mquina VirtualJavaenelordenador.Desdesupginaweb http://www.java.com/en/download/manual.jspsepuededescargarlaltima versin e instalarla. Hay que asegurarse de que se instala al menos la versin 5yaqueeslamnimanecesariaparaquefuncionelaherramientadetrabajo seleccionada. 3.2 Curvas de Bzier 3.2.1 Introduccin Se denomina curvas de Bzier a un sistema que se desarroll hacia los aos1960,paraeltrazadodedibujostcnicos,eneldiseoaeronuticoyde automviles.SudenominacinesenhonoraPierreBzier,quienideun mtodo de descripcin matemtica de las curvas que se comenz a utilizar con xito en los programas de CAD. Las curvas de Bzier fueron publicadas, por primera vez en 1962 por el ingenierodeorigenfrancsPierreBzier,quelasusposteriormente,con profusin, en el diseo de las diferentes partes de los cuerpos de un automvil, en sus aos de trabajo en la Renault. Las curvas fueron desarrolladas por Paul deCasteljauusandoelalgoritmoquellevasunombre.Setratadeunmtodo numricamente estable para evaluar las curvas de Bzier. '+ Posteriormente,losinventoresdelPostScript,lenguajequepermitiel desarrollodesistemasdeimpresindealtacalidaddesdeelordenador, introdujeronenesecdigoelmtododeBzierparalageneracindelcdigo delascurvasylostrazados.EllenguajePostScriptsigueemplendose ampliamenteysehaconvertidoenunestndardecalidaduniversal;porello, losprogramasdediseovectorialcomoAdobeIllustrator,elextinto Macromedia FreeHand, Corel Draw, tres de los ms importantes programas de dibujo vectorial y otros como Inkscape, denominan como "bzier" a algunas de susherramientasdedibujo,ysehablade"Trazadosbzier","plumabzier", "lpiz bzier", etc. Su facilidad de uso la ha estandarizado en el diseo grfico, extendindose tambin a programas de animacin vectorial como Adobe Flash, y retoque fotogrfico como Photoshop y Gimp, donde se usa para crear formas cerradas o selecciones. Laideadedefinirgeomtricamentelasformasnoesdemasiado compleja: un punto del plano puede definirse por coordenadas. Por ejemplo, un punto A tiene unas coordenadas (x1, y1) y a un punto B le corresponde (x2,y2). Para trazar una recta entre ambos basta con conocer su posicin. Sienlugardeunirdospuntosconunarectaseunenconunacurva, surgen los elementos esenciales de una curva Bzier: los puntos se denominan puntosdeanclajeonodos.Laformadelacurvasedefineporunospuntos invisibleseneldibujo,denominadospuntosdecontrol,manejadoreso manecillas. 3.2.2 Definicin y tipos de curva LospolinomiosdeBernstein,seempleanenteoradelaaproximacin parademostrarelTeoremadeWeierstrassdeaproximacinuniformede funciones continuas por polinomios. Su construccin es muy sencilla a partir de la frmula del binomio de Newton: '* Si tomamos a = t, b = 1 # t en la expresin anterior, obtenemos: donde B (t) es el polinomio i-simo de Bernstein de grado n. Por ejemplo los polinomios de Bernstein de grado dos son: Estos polinomios forman una base alternativa {Bn0 (t),. . ., Bnn(t)} de los polinomios de grado n o inferior en una variable t y, frente a la base cannica, presentan la ventaja de ser todos del mismo grado. Lademostracindequeformanbaseessencilla.Echemosunaojeada alpolinomion-simo,Bnn(t)=tn.Coincideconelltimopolinomiodelabase cannica. El anterior, Bnn#1(t) = n(tn#1 # tn), involucra tan slo dos polinomios delabasecannica.YassucesivamenteelpolinomioBni(t),poreltrmino(1 # t) ^n#i, tiene coeficientes no nulos slo para los monomios ti,. . ., tn, por lo cual la matriz de cambio de base es triangular superior: '" y,porello,sudeterminanteeselproductodelostrminosdeladiagonal principal,quecorrespondenalcoeficientedelmonomiodemenorgradode cada polinomio Bni (t), que es no nulo. Con lo cual, el determinante es no nulo ylospolinomiosdeBernsteinformanbasedelospolinomiosdegradono inferior. Podremosrepresentar,pues,lascurvaspolinmicasdegradoncomo combinacin de estos polinomios: Donde todos los coeficientes ci son puntos del plano o del espacio afn, segn quelacurvaseaplanaoespacial.Aestoscoeficienteslosdenominaremos vrticesdelpolgonodecontrol,{c0,...,cn},delacurvadeBzierc(t).Una curva de grado n tiene, pues, un polgono de control de n + 1 vrtices. LacurvadeBzierdegradonpuedesergeneralizadadelasiguiente manera. Dados los puntos P0, P1,..., Pn, la curva de Bzier es del tipo: Ejemplos de diferentes curvas: Una curva cuadrtica de Bzier es el camino trazado por la funcin B(t), dados los puntos: P0, P1, y P2: LasfuentesdeletrasTrueTypeusancurvasdeBzierdesdobladas compuestas por curvas cuadrticas de Bzier. Una Curva cbica de Bzier est definida por cuatro puntos del plano o del espacio tridimensional, P0, P1, P2 y P3 definen una curva cbica de Bzier. La curva comienza en el punto P0 y se dirige hacia P1 y llega a P3 viniendo de '# ladireccindelpuntoP2.Usualmente,nopasarniporP1niporP2.Estos puntossloestnahparaproporcionarinformacindireccional.Ladistancia entre P0 y P1 determina "qu longitud" tiene la curva cuando se mueve hacia la direccin de P2 antes de dirigirse hacia P3. La forma paramtrica de la curva es: El ejemplo de una curva de orden cinco (n = 5) como las que se han utilizado para la generacin de las curvas de los robots quedara como: 3.2.3 Aplicaciones LascurvasdeBzierhansidoampliamenteusadasenlosgrficos generadosporordenadorparamodeladodecurvassuaves.Comolacurva estcompletamentecontenidaenlaenvolventeconvexadelospuntosde control,dichospuntospuedenservisualizadosgrficamentesobreelreade trabajoyusadosparamanipularlacurvadeunaformamuyintuitiva.Las transformacionesafinestalescomotraslacionesyrotacionespuedenser aplicadas,congranfacilidad,alascurvas,aplicandolastransformaciones respectivas sobre los puntos de control. Lascurvascuadrticasycbicassonmuycorrientes.Lascurvasde grados superiores son ms difciles de evaluar. Cuanto ms complejas son las superficies que se necesitan, las curvas de bajo orden son menos apropiadas. Paragarantizarlasuavidaddelascurvaselpuntodecontrolenelquese juntan dos curvas y el punto de control sobre cualquiera de los lados debe ser colineal.Estaopcinestfrecuentementedesactivadaenprogramascomo AdobeIllustratoroInkscape.Estascurvaspoli-Bzierpuedenserobservadas en el formato de archivo SVG. '$ El mtodo ms simple para rastrerizar una curva de Bzier es evaluarla enmuchospuntosespaciados,muyprximosentres,yescanearla aproximando la secuencia de segmentos lineales. Estamaneradeprocedernogarantizaunresultadoconlasuficiente suavidad porque los puntos pueden estar espaciados demasiado separados. A lainversa,sepuedengenerarbastantespuntosdecontrolenreasdondela curva esta cercana a la forma lineal. Un mtodo adoptado, muy comn, es la subdivisin recursiva, en el que los puntos de control de la curva son ajustados para ver si la curva se aproxima a segmentos lineales sin pequeas tolerancias. Si esto no se logra, la curva es subdividida paramtricamente en dos segmentos y el mismo procedimiento se aplica por recursividad a cada mitad. Tambinhaymtodosqueusanladiferenciacin,perosedebetener cuidadoyanalizarloserroresdepropagacin.Losmtodosanalticosdonde undesdobleesintersecadoconcadalneaescaneadahallandoracesde polinomios de grado tres, por segmentacin cbica, y con mltiples races, pero no son frecuentes en la prctica. EnelpresenteproyectohemosutilizadolascurvasdeBziercomo referenciasparalageneracindetrayectoriasdelosrobots,demaneraque introduciendounaseriedepuntos,biensean4o5,secalculeysegenerela curvaparaqueuno,dosotresrobotslasrealicendemaneracoordinaday sincronizada a fin que puedan transportar algn objeto, como por ejemplo una viga. 3.3 Estudio del movimiento Enelapartadodelestudiodelmovimiento,abordamoslosaspectos tantodelacoordinacindelastrayectoriasdelosrobots,ascomolas funcionesquenosofreceRobotCparautilizarlosmotoresdelosLegospara aplicarles movimiento. '% 3.3.1 Coordinacin de trayectorias El problema de la coordinacin de curvas es de aspecto ms matemtico quemecatrnico.EsporelloquerecurrimosaMATLABparapodergenerar trayectorias y poder comprobar qu es lo que trazara cada uno de los robots. Los clculos realizados eran los siguientes: -Paracadaunadelasiteracionescalculaladiferenciaentreelpunto anterior y el nuevo punto calculado: deltax(i)=x(i)-x(i-1); deltay(i)=y(i)-y(i-1); -Mediantelafuncinatan2secalculaelarcotangentedeloscuatro cuadrantes de la parte real de los elementos deltax y deltay. alfa=atan2(deltay(i),deltax(i)); -Sabiendo ya la orientacin y la situacin de los puntos, calculamos los mismos puntos pero a una distancia determinada de la curva central, el valor de la distancia se puede modificar segn la aplicacin que se desee realizar: posx1(i)=x(i)+d*sin(alfa+oinicial); posy1(i)=y(i)-d*cos(alfa+oinicial); posx2(i)=x(i)-d*sin(alfa+oinicial); posy2(i)=y(i)+d*cos(alfa+oinicial); Dondeposx1yposy1sonlasposicionesXeYdelrobot1,esdecir,el queseencuentraaladerecha,yposx2yposy2sonlasposicionesXeYdel robot situado a la izquierda de la curva central. Unavezcalculadoslospuntossoloquedagenerarunagrficapara poderobservarelcomportamientotendrlageneracindelacurvayla coordinacindeambosrobots.Denuevo,conlamismaherramientade MATLAB,esmuysencillograficardichospuntos,yaqueposeefunciones dedicadasadichatarea,enconcretolafuncinplot(x,y);dondexeyson vectores de puntos. Podemos observar algunos de los