Professional Documents
Culture Documents
s
t
i
c
a
s
Se llama una (nica
)e&* +a inicio al loop
de simulacin* "ste
continuar, -asta .ue
se llame a la /C
Stop*
"l cdigo de0inido
dentro de esta
0uncin se e#ecutar,
al inicio de cada
step*
"sta 0uncin es
llamada a partir del
e)ento de presionar
una tecla 1 e#ecuta
un cdigo de0inido
por el usuario*
"sta 0uncin es
llamada para .ue se
e#ecuten las (ltimas
0unciones antes de
pro)ocar el 0in de la
simulacin
se aelanta ;ueC 1ara ali"entar la si"ulaci#n con la in<or"aci#n e los sensoresC se ecii# utili5ar
una co"unicaci#n serie asincr#nica FPuerto U:BG* 0a in<or"aci#n ;ue reci4e la si"ulaci#n es el
Se! Po"$! F:PG e caa una e las articulaciones F1osici#n an$ularG* Este :P es utili5ao en el c#i$o
1ara calcular las velociaes an$ulares FPG a i"1oner en los esla4ones sieno2
one PI es la 1osici#n an$ular al inicio el s!e' e la corres1oniente articulaci#n ! K una
constante e 1ro1orcionalia(
... Re)esen#'ci0n gBfic'
Para 1oer visuali5ar la si"ulaci#n se utili5aron las si$uientes <unciones e la li4rer%a
DraBstu<<2
)* !sSe#TeE#ue;=, 1er"ite seleccionar istintas teDturas 1ara el reneri5ao F1or e7e"1lo2
L"aeraMC LcieloMG
/. !sSe#Colo;=, 1er"ite seleccionar los colores ;ue se utili5aran 1ara las istintas $eo"etr%as
2. !'D5eo$;=, esta <unci#n to"a la $eo"etr%a a reneri5ar ! Laveri$uaM a ;ue clase
1ertenece Fca7aC cilinroC etcGC cuAles son sus 1arA"etros Fraio ! alturaC 1or e7e"1loGC
1osici#n ! orientaci#n 1ara <inal"ente reali5ar la re1resentaci#n $rA<ica*
En la :igu' ..+ se "uestran i"A$enes e al$unas re1resentaciones $rA<icas e
si"ulaciones reali5aas 1ara entener el <unciona"ientos e las li4rer%as*
:I5URA ..+ :e "uestran las re1resentaciones $rA<icas e os si"ulaciones es un ao instante*
-)
,=SPP- K
..6 Esque$' !el c0!igo u#iliz'!o
Dentro el c#i$o utili5ao se 1ueen i<erenciar os co"1onentes 1rinci1ales* Por un laoC
la configu'ci0n inici'l ! 1or otro el loo) !e si$ul'ci0n. En esta secci#n se "uestran en <or"a
"u! si"1le ! es;ue"Atica a"4os* Ca4e aclarar ;ue se ecii# si"ular un ro4ot e con<i$uraci#n !
i"ensiones i.nticas a la el 1rototi1o construio* Esto <acilita4a al$unas cuestiones e
1rocesa"iento e atos* El c#i$o co"1leto 1uee encontrarse en el A)8n!ice B.+*
Configuracin inicial
+e0inicin de rutinas para las /C +e0inicin de rutina para /C Step
+e0inicin de rutina para /C Command
Creacin de un 2undo Virtual $2V% Con0iguracin de par,metro de
simulacin $"#*3 coe0icientes de
ro&amiento4 aceleracin gra)itatoria%
Creacin del plano del suelo
Incorporacin de cuerpos al 2V Creacin de cuerpos
Con0iguracin masas
Creacin de geometr5as
Asociacin
cuerpos6geometr5as
Posicionamiento 1 orientacin de
geometr5as
Creacin 1 con0iguracin de )5nculos
Asociacin )5nculos6cuerpos
Con0iguracin 1 establecimiento de
comunicacin serie $puerto 7S8%
7tili&acin de 0unciones de la librer5a
termios*-
Creao el M> one e4e evolucionar la si"ulaci#n ! con<i$uraos toos los 1arA"etros se
inicia el loo' e si"ulaci#n a 1artir el lla"ao a la ?C :tartFG* Mientras la ?C :to1FG no sea
lla"aaC el 1ro$ra"a continuarA e7ecutano el la5o ;ue se "uestra a continuaci#n*
-'
--
9lamado a /C Start$%
Inicio de nue)o Step
:;ubo
colisin<
C,lculo de los estados de
ob#etos en el siguiente step
Actuali&acin de los estados
de los ob#etos
9ectura de Set Points de
9as articulaciones
Actuali&acin de las
)elocidades angulares
"liminacin de las V+C
'enderi&ado de ob#etos
$/unciones de +ra=stu00%
Creacin de V5nculos debido
a colisiones $V+C%
:Se presion
la tecla '.'<
9lamado a /C Stop$%
"liminacin del 2undo Virtual
/inali&acin de la
comunicacin
'utina
/C Command$%
'utina
/C Step$%
No
No
Si
Si
C')*#ulo 6, Des'ollo e i$)le$en#'ci0n !e l' elec#0nic'
En este ca1%tulo se 4rinarAn etalles e la electr#nica i"1le"entaa co"o aco1le entre el
4ra5o articulao <a4ricao ! el "uno virtual $enerao*
El o47etivo era enviar la in<or"aci#n entre$aa 1or caa unos e los tres encoers a la
co"1utaora FPCG one se estuviera e7ecutano la si"ulaci#nC 1ara 1oer actuar so4re la "is"a*
C#"o se "encion# en el C')*#ulo %C se ecii# utili5ar una 1laca Aruino UNO 1ara este
<in* :e 1reten%a ;ue esta 1laca constitu!era el enlace entre los sensores ! la PC*
6.+ Co$unic'ci0n PCA A!uino
En el ca1%tulo anterior se aelant# ;ueC 1ara ali"entar la si"ulaci#n con in<or"aci#n
eDterna a la PCC se i4a a recurrir a una co"unicaci#n serie asincr#nicaC a reali5arse a trav.s e un
1uerto U:B* :e to"# esta ecisi#n lue$o e co"1ro4arse ;ue Aruino incor1ora4a una li4rer%a
"u! 4ien lo$raa 1ara este <in I9J* Para con<i$urar ! controlar la co"unicaci#n el lao e la PC se
recurri# a la li4rer%a !erm"os(.* :e utili5# la con<i$uraci#n 1or e<ecto e Aruino 1ara
co"unicaci#n serie* F3,(( 4auiosC 8N)G* El c#i$o utili5ao 1ara este esarrollo se encuentra en el
A)8n!ice B./
0le$ao el 1unto e la si"ulaci#n en el ;ue se re;uiera conocer la 1osici#n e al$En
encoerC la PC reali5a una consulta a la 1laca inicAnole el sensor el cuAl 1recisa in<or"aci#n* :e
eli$i#C 1ara no a<ectar e"asiao la velocia e la re1resentaci#n $rA<icaC ;ue se realice solo una
consulta 1or s!e' e si"ulaci#n* Es ecirC lue$o e tres s!e's se actuali5a la in<or"aci#n e toos
los encoers*
Antes e etallar cuAl es la tra"a e atos tras"itiaC se aclaran ciertas cuestiones so4re las
interacciones entre los is1ositivos2
0a 1laca Aruino se 1ro$ra"# 1ara estar sie"1re a la es1era e una 1etici#n 1or 1arte e la
PC* :#lo es1u.s e reci4ir en el 1uerto e co"unicaci#n U:BC al$uno e los caracteres V(VC
V)V o V'V F"eiante los cuAles la PC istin$ue los tres encoersG reali5a un nuevo con7unto e
acciones2 o4tener los atos necesariosC ar"ar la tra"a ! tras"itirla*
0a tra"a reci4ia 1or la PC es 1asaa co"o 1arA"etro 1or la <unci#n atoiFG Fli4rer%a
s!dl"b(.G* Esta <unci#n to"a una caena e caracteres nu".ricos ! los trans<or"aC en una
varia4le ti1o enteroC al valor corres1oniente* :i la caena reci4ia tiene caracteres no
nu".ricosC es truncaa a 1artir el 1ri"ero e estos caracteres*
-6
0a tra"a ar"aa en la 1lacaC lue$o e reci4ir la 1etici#nC se <or"a e la si$uiente "anera2
'L' 'x' 'x' 'W' ? ? 'n'
El 1ri"er caracter FV0VG inica el inicio e la tra"a* A continuaci#n se env%an los caracteres
corres1onientes al nE"ero e cuentas 1rovenientes el sensor F/G* Estos 1ueen ser entre uno !
cuatro caracteres Fe ( a )('6 cuentasG* 0ue$o se inclu!e un caracter no nu".rico FVPVG 1ara
ase$urar el truncao e la caena en ese 1unto Fa trav.s e la <unci#n atoiFGG evitano la 1osi4le
a1arici#n e atos nu".ricos 1arAsitos* El caracter VZnV inica el <inal e la tra"a*
0a a1arici#n e los atos 1arAsitos se a 1or;ue se utili5an e LrellenoM cuAno se <or"a una
caena en la ;ue la cantia e caracteres / es "enor a cuatro*
6./ A!uino, '!quisici0n !e !'#os !e los enco!es
Para 1oer ar"ar la tra"aC el "icrocontrolaor e la 1laca e4eC e al$una "aneraC o4tener
el nE"ero e cuentas a la salia el encoer corres1oniente* Dao ;ue caa encoer 1osee oce
conectores F)( 4its X Ali"entaci#nG ! ;ue el "icrocontrolaor utili5ao tiene is1oni4les '- 1inesC
se e4%a 4uscar una alternativa inirecta e aco1lar los sensores a la 1laca*
:e o1t# 1or esarrollar 1e;ue=os rivers -uno 1or encoer- ;ue reci4an ! 1rocesen la se=al
e los )( conectoresC 1ara lue$o enviar el nE"ero e cuenta corres1oniente "eiante una
co"unicaci#n serie a la 1laca Aruino2
Po#ocolo u#iliz'!o
I8J
:e eli$i# i"1le"entar ic+a co"unicaci#n utili5ano el 1rotocolo I'C FI cuarao CG* Este
1rotocolo 1er"ite interconectar +asta )'8 is1ositivos i<erentes utili5ano solo un bus e os
l%neas F4iireccionalesGC una 1ara se=al e clock F:C0G ! otra 1ara da!os F:DAG F>er :igu' 6.+G*
En este caso 1articular se utili5an cuatro is1ositivos2 ) "aestro FAruinoG ! - esclavos Frivers e
encoersG* Caa esclavo tiene una irecci#n Enica ! i<erente a las el resto Fun nE"ero entre ( !
)'/G*
Para esta4lecer la co"unicaci#nC el "aestro env%a un 1ri"er "ensa7e con la irecci#n el
esclavo con el ;ue se ;uiere co"unicar* Caa esclavo veri<ica si coincie con su 1ro1ia irecci#n !C
el ;ue corres1onaC env%a una se=al e res1uesta 1ara con<ir"ar el esta4leci"iento e la
co"unicaci#n* Una ve5 tras"itios toos los atosC el "aestro env%a una se=al 1ara ter"inar la
co"unicaci#n ! el 1roceso vuelve a iniciarse*
-9
:I5URA 6.+ Es;ue"a e un 4us e co"unicaci#n "eiante 1rotocolo I'C*
Di"es ;F'!D'e=
El +arBare e los rivers esarrollaos consiste en un 1laca e circuito i"1reso FPCBG ;ue
incor1ora un "icrocontrolaor el <a4ricante Microc+i1 FPIC ),?88,GC ivisores resistivos ;ue
aa1tan la tensi#n e salia el sensor F)'>G al nivel e tensi#n l#$ico F9>GC un re$ulaor e
tensi#n F/8(9G 1ara ali"entar el "icrocontrolaor Fla <uente utili5aa es e )'>G ! los conectores
necesarios 1ara aco1larC e "anera "oularC un river con otro FeDtenieno las l%neas el 4us X las
l%neas e ali"entaci#nG* F>er :igu' 6./G
:I5URA 6./ En la i"a$en e la i5;uiera se ve el "oelo -D e la 1laca ise=aa con toos sus co"1onentes* En la
i"a$en e la erec+a se o4serva co"o se unen al Bus e co"unicaci#n os e los rivers !a <a4ricaos* En a"arillo se
es;ue"ati5an las l%neas :DA ! :C0 Fver :igu' 6.+G
-,
Arduino
+ri)er
+ri)er 2
+ri)er !
S+A
SC9
Di"es ;sof#D'e=
0os "icrocontrolaores e los rivers tienen 1ro$ra"aos caa uno una irecci#n e
esclavo* Caa ve5 ;ue la 1laca Aruino les +ace una consultaC estos leen las ie5 entraas asociaas
a los conectores e salia el encoer corres1oniente* 0os estaos e ic+as entraas re1resentan
un valor entero coi<icao en Gra! Fcon l#$ica ne$ativaG* Este valor es ecoi<icao 1or so<tBare !
enviao Fen ' 4!tesG 1or la l%nea :DA* El "aestro reci4irA los atos ! ar"arA con ellos la tra"a
1ara tras"itirla a la PC*
A continuaci#n se "uestra un es;ue"a el 1roceso e co"unicaci#n co"1leto
FPCXAruinoXDriversG urante tres s!e's e si"ulaci#n2
-/
-8
'ecepcin de consulta
"n)5o de consulta a "
"spera de respuesta
"spera por consulta
Inicio simulacin
Inicio Step 2
Simulacin en curso
Consulta de datos de "2
"spera de respuesta
'ecepcin de respuesta
Simulacin en curso
/in Step
'ecepcin de datos de "
"n)5o de datos de "
"spera por consulta
'ecepcin de consulta
"n)5o de datos
Inicio Step !
Simulacin en curso
Consulta de datos de "!
"spera de respuesta
'ecepcin de respuesta
Simulacin en curso
/in Step 2
Inicio Step
Simulacin en curso
Consulta de datos de "
"spera de respuesta
'ecepcin de respuesta
Simulacin en curso
/in Step 2
'ecepcin de consulta
"n)5o de consulta a "2
"spera de respuesta
'ecepcin de datos de "2
"n)5o de datos de "2
"spera por consulta
'ecepcin de consulta
"n)5o de consulta a "!
"spera de respuesta
'ecepcin de datos de "!
"n)5o de datos de "!
"spera por consulta
"spera por consulta
'ecepcin de consulta
"n)5o de datos
"spera por consulta
'ecepcin de consulta
"n)5o de datos
"spera por consulta
PC(ODE)
ARDUINO
ESCLAVO 1
ESCLAVO 2
ESCLAVO
C')*#ulo 7, Resul#'!os - )o)ues#'s
Este 1ro!ecto inte$raor ten%a co"o 1rinci1al o47etivo Fco"o se "encion# en el C')*#ulo %G
ar los 1ri"eros 1asos 1ara el ise=o e un 4ra5o-sensor articulao ca1a5 e "ani1ular un 4ra5o
ro4#tico inustrial* :e 1ro1uso reali5ar un la5o co"1leto e "ani1ulaci#n a 1artir e un 1rototi1o
sencillo ;ue e4%a ise=arse ! <a4ricarse* Ae"AsC se e4%a crear el "oelo virtual el ro4ot ;ue se
1reten%a "ani1ularC ! esarrollar la electr#nica necesaria 1ara aco1larlo con el 1rototi1o* El
1roceso 1uo reali5arse satis<actoria"ente ! se cu"1lieron los o47etivos esta4lecios* En la :igu'
7.+ ! en la :igu' 7./ se "uestra <oto$ra<%as ;ue retratan los resultaos o4tenios*
:I5URA 7.+ :e "uestran <oto$ra<%as el "ani1ulaor sieno o1erao* Estas i"A$enes an una iea al lector e las
1ro1orciones el 1rototi1o*
-3
:I5URA 7./ :e "uestran <oto$ra<%as to"aas urante las 1rue4as e <unciona"iento el 1rototi1o* :e o4serva la
incor1oraci#n e una 1e;ue=a ca7aC tanto virtual co"o realC 1ara la reali5aci#n e las 1rue4as*
Ae"As e la "ateriali5aci#n el 1ri"er 1rototi1o <uncional el "ani1ulaorC el esarrollo
el 1ro!ecto i"1lic#C 1ara el $ru1o e Ro4#tica el Pro!ecto CAREMC su"ar eD1eriencia en el uso
e al$unas +erra"ientas Etiles* Por un laoC se a1reni# a utili5ar li4rer%as 1ara la creaci#n !
si"ulaci#n e "oelos virtualesC en 1articular e s#lios articulaos FODEXDraBstu<<G* Durante el
1roceso se 1uieron etectar ! se a1reni# a corre$ir al$unos errores ;ue t%1ica"ente se co"eten al
ela4orar el c#i$o* Ae"AsC 1ara lo$rar i"1le"entar co"1leta"ente las co"unicaciones entre los
is1ositivos ;ue con<or"an el la5oC se incor1oraron nuevos conoci"ientos relacionaos con el
1rotocolo I'C ! se esarrollaron dr"vers 1ara los e$coders* :e a1reni# a utili5ar las <unciones e la
li4rer%a !erm"os(., eicaa a la i"1le"entaci#n e co"unicaci#n a trav.s e 1uertos :erieC ! se
lo$r# ;ue la coi<icaci#n e la tra"a FAruinoG ! su inter1retaci#n FPCG <ueran aecuaas* :e
esti"# ;ue el tie"1o e retaro eDistente ese ;ue la PC reali5a la 1etici#n e atos +asta ;ue los
reci4e estA entre )("s ! )9"s*
:i 4ienC 1or cuestiones e tie"1oC no se lo$r# reali5ar una 1ro<una caracteri5aci#n el
6(
ise=o "ecAnico el is1ositivoC se 1uieron sacar al$unas conclusiones so4re .l* Por un laoC la
con<i$uraci#n ele$ia Fantro1o"#r<icaG <ue satis<actoria en cuanto a accesi4ilia* Ae"AsC el
ise=o e las articulaciones ! el 4alanceo reali5ao Fsu"ao ta"4i.n a la con<i$uraci#nG in<lu!eron
e "anera 1ositiva en la "anio4ra4ilia el 1rototi1o* 0os "ateriales seleccionaos se
co"1ortaron se$En lo es1eraoC otor$ano ri$ie5 su<iciente al "ani1ulaor sin elevar e"asiaos
el 1eso total el e;ui1o*
Al$unos as1ectos ;ue ser%a conveniente "e7orar en el <uturo son2
0a er$ono"%a el ise=o2 eDisten ciertas 1osiciones el "ani1ulaor ;ue a<ectan la
co"oia en la o1eraci#n* :e su$iere una ree<inici#n e las lon$itues e los esla4ones
el 1rototi1o*
0a "ini"i5aci#n e 7ue$os entre e7es ! roa"ientos* El "As i"1ortante se a entre el e7e
vertical ! el roa"iento e la articulaci#n )* :e su$iere la utili5aci#n e e7es con o4le
roa"ientoC u4icaos en sus eDtre"os*
7.+ Po)ues#'s )'' enc'' en el fu#uo
Caracteri5aci#n
:i 4ien se +icieron 1e;ue=as 1rue4as e su <unciona"ientoC co"o se "encion#C no se lo$r#
+acer una caracteri5aci#n co"1leta el 1rototi1o* :e 1ro1one reali5ar una 1ro<una evaluaci#n e
su co"1orta"iento ! e las 1recisiones ;ue se 1ueen lo$rar en las tra!ectorias $eneraas en las
si"ulaciones* Una alternativa 1ara reali5ar ic+o estuio es <i7arC en la "esa e tra4a7o en la ;ue se
encuentre "ontao el "ani1ulaorC o47etos re$ulares Fcu4os o 1ris"asC 1or e7e"1loG* :i se
a1roDi"ara a ellos el eDtre"o el "ani1ulaor ! se o4tuviera el estao el "oelo virtual en el
instante en ;ue se 1rouce el contacto Fincor1orano un m"crosw"!c., 1or e7e"1loGC se 1or%a
esta4lecer la iscre1ancia entre las coorenaas e un 1unto el es1acio real ! el corres1oniente en
el es1acio virtual*
M'ni)ul'ci0n !e o#'s configu'ciones
:e 1ro1one ta"4i.n incor1orar a este 1rototi1o la 1osi4ilia e "ani1ular otras
con<i$uraciones e ro4ots Fsean virtuales o realesG* Con ese <inC serA necesario a1licar el ".too e
Cine"Atica Directa 1ara eter"inarC en too "o"entoC las coorenaas el 1unto el es1acio
ocu1ao 1or el eDtre"o el "ani1ulaor* 0ue$o +a4r%a ;ue a1licar el ".too e Cine"Atica Inversa
1ara eter"inar los An$ulos ;ue e4en ao1tar las articulaciones el ro4otC e "anera ;ue su
eDtre"o alcance el corres1oniente 1unto en su es1acio e tra4a7o*
6)
A $Bs l'go )l'zo> c0$o con#inu'ci0n !e l' l*ne' !e #'&'3o )l'n#e'!'> se sugiee #ene en
cuen#' !os 's)ec#os,
)* reali5ar "e7oras al ise=o 1ro1uesto2 4uscar la "anera e reucir los 7ue$osC "e7orar la
er$ono"%a el ise=o ! estuiar alternativas 1ara sincroni5ar la co"unicaci#n PC-Aruino
4uscano "e7orar FreucirG los tie"1os e res1uestaC etc*
'* avan5ar en el $rao e esarrollo el 1rototi1o2 e"1e5ar a consierar la incor1oraci#n e
servo"otoresC tanto 1ara i"1le"entar los "ecanis"os e retroali"entaci#n 1or <uer5as
co"o 1ara reali5ar una co"1ensaci#n inA"ica e los esla4ones se$En su 1osici#n* :e 4usca
con ello contrarrestar la <uer5a $ravitatoriaC e <or"a ;ue el "ani1ulaor 1uea 1er"anecer
estAtico si el o1eraor no e7erce <uer5as so4re .l* :e 1ro1one ta"4i.n estuiar la 1osi4ilia
e incluir controles aicionales F1ulsaoresC 1erillasCG ! elevar el nE"ero e GD0 el nuevo
1rototi1o 1ara a1roDi"ar su <leDi4ilia al el 4ra5o ro4#tico inustrial a utili5ar en el
Pro!ecto CAREM*
6'
A)8n!ice A, Pl'nos cons#uc#i"os !el )o#o#i)o !ise4'!o -
f'&ic'!o.
A continuaci#n se 1resenta el con7unto e 1lanos $eneraos con CATIA* :i 4ien son
1resentaas toas las 1ie5asC ca4e aclarar ;ue el "ecani5ao e las 1lacas 1rinci1ales el &slab#$ 2
! &slab#$ 3 se reali5# en un CNC* Para elloC se 1resentaron al o1eraor los "oelos -D e las
1ie5as en <or"ato i$ital*
6-
A)8n!ice B, C0!igos !e )og'$'ci0n !es'oll'!os.
B.+ C0!igo !es'oll'!o )'' i$)le$en#' l' si$ul'ci0n u#iliz'n!o l's li&e*'s
ODE - D'Ds#uff
Hinclu!e Uunist*+[
Hinclu!e U"at+*+[
Hinclu!e UoeWoe*+[
Hinclu!e \raBstu<<*+\
Hinclu!e \1ara"eters*+\
Hinclu!e \A;*+\
s#'#ic PorlID "unoN
s#'#ic :1aceID es1acioN
s#'#ic &ointGrou1ID Gru1oContactosN
s#'#ic Ro4ot ro4otN
GISE DE:INEN RUTINAS PARA USAR DENTRO DE LA :C STEPIG
GIIIIIP'' !e#ecci0n !e colisiones...IIIIIG
s#'#ic "oi! CercaCall4ac@Fvoi ]ataCGeo"ID o47eto)CGeo"ID o47eto'G^
in# iN
0011 2b!e$er -3 del cuer'o
Bo!ID 4) T Geo"GetBo!Fo47eto)GN
Bo!ID 4' T Geo"GetBo!Fo47eto'GN
0011 &s!4$ v"$culados5((e$!oces $o .ay col"s"#$( 6erm"$ar
i< F4) __ 4' __ AreConnecteEDcluin$ F4)C4'C&ointT!1eContactGG ^
returnN
`
0011 Co$7"gura 'ro'"edades 'ara 'u$!os de co$!ac!o
Contact contactIMAabCONTACT:JN
<or FiT(N iUMAabCONTACT:N iXXG ^
contactIiJ*sur<ace*"oe T ContactBounce c Contact:o<tC?MN
contactIiJ*sur<ace*"u T MUN
contactIiJ*sur<ace*"u' T MU'N
contactIiJ*sur<ace*4ounce T BOUNCEN
contactIiJ*sur<ace*4ouncebvel T BOUNCEb>E0N
contactIiJ*sur<ace*so<tbc<" T :O?TbC?MN
`
0011 2b!e$er 'u$!os de co$!ac!o
in# nu"c T Collie Fo47eto)Co47eto'CMAabCONTACT:C_contactI(J*$eo"C si5eo<FContactGGN
0011 S" .ay al me$os u$ 'u$!o de co$!ac!o(((
i< Fnu"cdT(G ^
0011 Para cada 'u$!o de co$!ac!o se debe crear u$ v8$culo
<or FiT(N iUnu"cN iXXG ^
0011 Se crea y se agrega a 9:ru'oCo$!ac!os9
&ointID c T &ointCreateContact F"unoCGru1oContactosC_contactIiJGN
0011 Se!ea la ar!"culac"#$ e$!re los 2 cuer'os
&ointAttac+ FcC4)C4'GN
`
`
GIIIIIP'' '!quisici0n !e !'#os !e enco!es -
'c#u'liz'ci0n !e "eloci!'! 'ngul' !e colisiones...IIIIIG
9,
"oi! servosbsi"FG
^
in# iN
00 ;ee &$coder y mod"7"ca Se! Po"$!
a;uisF_ro4otGN F>er Secci0n B./G
<orFiT(N iU-N iXXG
^
002b!"e$e Pos"c"o$ 9ac!ual9
Real 1os T &ointGetKin$eAn$leFro4ot*7ointIiJGN
00Calcula la d"s!a$c"a <ue .ay al Se! Po"$!
Real error T 1os - DEG'RADFro4ot*PosicRe<IiJGN
003e7"$e u$a veloc"dad 'ro'orc"o$al a esa d"s!a$c"a
Real velocit! T -error]SPN
i< Fvelocit! [ PMAaG velocit! T PMAaN
i< Fvelocit! U -PMAaG velocit! T -PMAaN
0011 Se!a veloc"dad a$gular de 9servo9
&oint:etKin$ePara"Fro4ot*7ointIiJC Para">elC velocit!GN
`
`
GIIIIIP'' lle"' ' c'&o el )oceso !e in#eg'ci0n...IIIIIG
s#'#ic "oi! si"0oo1 Fint 1auseG^
i< Fd1auseG
^
0011 3e!ecc"#$ de col"s"o$es, s" dos geoms es!4$ 'or c.ocar llama a
0011 9CercaCallback9
:1aceCollie Fes1acioC(C_CercaCall4ac@GN
0011 Real"+a u$ S6&P
Porl:te1F"unoC:TEPGN
00;;ama a 9servos=s"m9 de7"$"da arr"ba> ad<u"s"c( y
00 ac!ual"+ac"#$ de veloc"dad a$gular
servosbsi"FGN
0011 Remueve v8$culos deb"do a col"s"o$es
&ointGrou1E"1t! FGru1oContactosGN
uslee1FPAU:EGN
`
00Re$der"+a !odas las geome!r8as
Bo!brenerF_ro4otGN
`
GISE DE:INE LA RUTINA PARA USAR DENTRO DE LA :C STARTIG
s#'#ic "oi! startFG
^
00 Pos"c"#$ Camara(
s#'#ic flo'# D!5I-J T ^-3*-/3'C)-*-(-(C)(*//((`N
0011 2r"e$!ac"#$ Camara( ;os !res valores so$ 9Pa$, 6"l! a$d Roll9(
0011 ?alor *0,0,0@ s"g$"7"ca camara 'aralela al suelo y e$ d"recc"o$ de sem"eAe 'os"!"vo 9/9
s#'#ic flo'# +1rI-J T ^-9'*/9((C-)/*((((C(*((((`N
0011 Se!eo de 'os"c"#$ y or"e$!ac"#$ de camara
s:et>ieB1ointFD!5C +1rGN
00Co$7"gurac"o$ y a'er!ura del 'uer!o BSC
Con<i$A;FGN F>er Secci0n B./G
1rint< F\;2 euitZn\GN`
GISE DE:INEN LA RUTINA PARA USAR DENTRO DE LA :C COMMANDIG
9/
s#'#ic "oi! co""an Fint c"G
^
i< Fc"TTV;VG ^
s:to1FGN
`
GISE DE:INEN LA RUTINA PARA USAR DENTRO DE LA :C STOPIG
s#'#ic "oi! sto1F"oi!G
^
CloseA;FGN F>er Secci0n B./G
`
GGPRO5RAMA PRINCIPAL
in# $'in Fint ar$cC c+ar ]]ar$vG
^
GI SE ASOCIAN LAS RUTINAS DE:INIDAS A LAS :C DENTRO
GI DE UNA JS#uc# :unc#ionJ
?unctions <nN
0011 ;a s!ar!(((
<n*start T _startN
0011 ;a S!e'
<n*ste1 T _si"0oo1N
0011 ;a Comma$d
<n*co""an T _co""anN
0011 ;a S!o' * y o!ras@
<n*version T D:b>ER:IONN
<n*sto1 T _sto1N
<n*1at+btobteDtures T Fc+ar ]G\*WteDtures\N
InitODEFGN
GGAA CREACIN DEL MUNDO <IRTUAL
"uno T PorlCreateFGN
0011 Se!eo de gravedad
Porl:etGravit! F"unoC(C(CGRA>ITYbCTEGN
0011 Se!eo de 'arame!ros(
Porl:etC?M F"unoCC?MGN
Porl:etContactMaDCorrectin$>el F"unoCMAabCORRECTINGb>E0GN
Porl:etContact:ur<ace0a!er F"unoC:UR?ACEb0AYERGN
0011 Se Crea u$ es'ac"o de col"s"o$es
es1acio T Kas+:1aceCreate F(GN
0011 Se crea u$a es!ruc!ura 'ara guardar ?3Cs
Gru1oContactos T &ointGrou1Create F(GN
0011Se crea 'la$o del '"so +D0
CreatePlane Fes1acioC(C(C)C(*GN
GGAASE LLAMA A LA :UNCIN KUE CREA CUERPOS L 5EOMS.
NuevoRo4otF_ro4otC"unoCes1acioGN F>er Secci0n B.2G
GGAA INICIO DEL LOOP..SE MANDAN COMO PARMMETRO LAS :C
GGAA L LAS DIMENSIONES DE PANTALLA. SE LLAMA A :C START
GGAA KUE EN SU RUTINA ESTABLECE LA COMUNIC. USB
98
s:i"ulation0oo1Far$cC ar$vC '6((C )8((C _<nGN
GGAA CUANDO SE LLAME A :C STOP ;'l )esion' NqN=
GGAA SALE DEL LOOP> EOECUTA LA RUTINA ASOCIADA
GGAA A :C STOP> L ELIMINA EL MUNDO <IRTUAL.
&ointGrou1Destro! FGru1oContactosGN
:1aceDestro! Fes1acioGN
PorlDestro! F"unoGN
return (N
`
93
B./ C0!igo !es'oll'!o )'' e'liz' l' co$unic'ci0n ' #'"8s !e un )ue#o
USB en#e l' PC que e3ecu#'' l' si$ul'ci0n - l' )l'c' A!uino.
Del l'!o !e l' PC ;u#iliz'n!o funcines !e l' li&e*' termios=,
W]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]W
in# Con<i$A;F"oi!G
^ int <N
00br"r 'uer!o E7dF(S" 7allo a'er!ura(((
i<FF<Tserial1ortbinitF\G!e"G##-ACM@\C Fin#G3,((GG TT -)G
^
00&scr"be me$saAe "$d"c4$dolo
1rint<F\Eo 'l '&i )ue#o seie...Pn\GN
return (N
`
return )N `
W]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]W
in# a;uisF]ro4otG
^
c9' 4u<I)(JC nu"I'JN
in# rcC cuentasN
s#'#ic in# encoerT(N
flo'# $raosN
W0Se guarda como Ecarac!erF el e$!ero corres'o$d"e$!es
00a u$os de los e$coder
s1rint<Fnu"C \Q\C encoerGN
00se escr"be e$ el 'uer!o ser"e E7dF d"c.o carac!er
rc T serial1ortbBriteF<C nu"GN
i<FrcTT-)G return -)N
00Se es'era$ %5mS 'ara <ue rdu"$o real"ce la co$sul!a
00al esclavo corres'o$d"e$!e y res'o$da
uslee1F)(((])9GN
00Se lee el 'uer!o .as!a <ue a'are+ca u$a GlG *"$"c"o
00de !rama@ y se desec.a la lec!rua(((
serial1ortbreabuntilF<C 4u<C VlVGN
00"$med"a!ame$!e se real"+a u$a $ueva lec!ura .as!a <ue
00a'are+ca u$ G\nG *7"$ de !rama@ y se guarda e$ Ebu7F
serial1ortbreabuntilF<C 4u<C VPnVGN
00Se co$v"er!e e$ e$!ero *0 a %024@
cuentas T atoiF4u<GN
00Se $ormal"+a
$raos T FF-,(*(W)('6*(G]cuentas -)8(GN
00Se mod"7"ca el Se!Po"$!
ro4ot-[PosicRe<IencoerJT-$raosN
00Se "$creme$!a la vble e$coder 'ara co$sul!ar
00o!ro e$coder e$ el s"gu"e$!e s!e'
encoerXXN
00Cua$do llegue al Hl!"mo e$coder re"$"c"al"+a la vble(
i<FencoerTTCANTbPOTEG encoerT(N
returnFatoiF4u<GGN `
W]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]W
"oi! CloseA;F"oi!G
^
closeF<GN 00C"era el 'uer!o E7dF
Q
Del l'!o !e A!uino,
,(
finclue UPire*+[
uint8bt PBa7aCPAltaN 00?bles do$de se guarda$ los dos by!es rec"b"dos del &sclavo(
int sensor>alue T (N 00?ble do$de se Au$!a$ los dos by!es 'ara 7ormar el e$!ero(
c+ar cN 00?ble do$de se guarda lo rec"b"do 'or el BSC*PC@
int valioN 00Ca$dera se!eada al rec"b"r G0G,G%G o G2G 'or el BSC *PC@(
0I11111111111C2JK-:BRC-LJ -J-C-;11111111111I0
voi setu1FG ^
Pire*4e$inFGN 00&s!ablece comu$"cac"#$ 'or -2C *co$ esclavos@
:erial*4e$inF3,((GN 00&s!ablece comu$"cac"#$ 'or BSC *co$ PC@ *M600 baud"os@
`
0I11111111111111111111111111111111111111111111111111111111I0
0I111111111111111111111CBC;&*;22P@1111111111111111I0
voi loo1FG
^
c T :erial*reaFGN 00:uarda e$ 9c9 lo <ue se lee e$ 'uer!o BSC
valioT(N 00Rese!a ba$dera
sBitc+FcG 00S" lo guardado e$ 9c9 es G0G,G%G o G2G(((
^
case V(V2
Pire*re;uest?ro"F(4()()((((C'GN 00Real"+a 'e!"c"#$ a esclavo , 2 by!es
B+ileFPire*availa4leFGG
^
PBa7a T Pire*reaFGN 00:uarda el %N Cy!e
PAlta T Pire*reaFGN 00:uarda el 2N Cy!e
sensor>alue T FPAltaUU8GcPBa7aN 00Co$s!ruye el $Hmero &$!ero
`
valioT)N 00Se!ea Ca$dera
4rea@N
case V)V2
Pire*re;uest?ro"F(4()())(((C'GN 00Real"+a 'e!"c"#$ a esclavo C, 2 by!es
B+ileFPire*availa4leFGG
^
PBa7a T Pire*reaFGN 00:uarda el %N Cy!e
PAlta T Pire*reaFGN 00:uarda el 2N Cy!e
sensor>alue T FPAltaUU8GcPBa7aN 00Co$s!ruye el $Hmero &$!ero
`
valioT)N 00Se!ea Ca$dera
4rea@N
case V'V2
Pire*re;uest?ro"F(4())(((((C'GN 00Real"+a 'e!"c"#$ a esclavo C, 2 by!es
B+ileFPire*availa4leFGG
^
PBa7a T Pire*reaFGN 00:uarda el %N Cy!e
PAlta T Pire*reaFGN 00:uarda el 2N Cy!e
sensor>alue T FPAltaUU8GcPBa7aN 00Co$s!ruye el $Hmero &$!ero
`
valioT)N 00Se!ea Ca$dera
4rea@N
`
i<FvalioG 00S" 9Ca$dera9 7ue se!eada(((
^
valioT(N 00Rese!a Ca$dera
:erial*1rintFVlVGN 00rmado y
:erial*1rintFsensor>alueGN 00e$v8o de
:erial*1rintlnFVBVGN 00!rama 'or BSC *PC@
`
`
,)
B.2 C0!igo !e l' funci0n i$)le$en#'!' )'' l' ce'ci0n - configu'ci0n !e
cue)os> geo$e#*'s - "*nculos !en#o !e l' si$ul'ci0n e'liz'!' con l's
li&e*'s ODE - D'Ds#uff.
:e "uestra a "oo e e7e"1lo el c#i$o 1ara la creaci#n e solo un cuer1o* :e $eneran los e"As
e "anera anAlo$a*
Hinclu!e \@4o!*+\
00Ku$c"#$ <ue crea los cuer'os( Rec"be como 'ar4me!ro u$a Es!ruc! Robo!F
00 <ue co$!"e$e los cuer'os, geome!r8as y v8$culos a usar
"oi! NuevoRo4otFRo4ot ]ro4otC PorlID "unoC :1aceID es1acioG
^
MatriD- RN
Mass "N
GGSe ce' el cue)o
ro4ot-[Bra5o) T Bo!CreateF"unoGN
GGSe configu' )osic. !e CM
Bo!:etPositionFro4ot-[Bra5o)C (*C (*C Br)cW' X Br)aW'*( X MesaAlto X BaseEs1GN
00Se guarda el valor de EmasaF e$ la vble( EmF
00med"a$!e u$a 7u$c( Oue rec"be> 3e$s"dad y d"me$s"o$es
Mass:etBoDF_"CDEN:ITYCBr)aXBr)aXBr)cCBr)cXBr)cXBr)CBr)4XBr)4XBr)4GN
00Se asoc"a la EmasaF co$ el cuer'o
Bo!:etMassFro4ot-[Bra5o)C_"GN
GGSe ce'n l's geo$e#*'s )'' !' fo$' 'l cue)o
00:eome!( %
ro4ot-[B)$eo") T CreateBoD Fes1acioCBr)cCBr)4CBr)aGN
00:eome!(2
ro4ot-[B)$eo"' T CreateBoD Fes1acioCBr)cCBr)4CBr)aGN
00:eome!(3
ro4ot-[B)$eo"- T CreateBoD Fes1acioCBr)CBr)4CBr)cGN
GGSe 'soci'n l's 5eo$e#*'s con el cue)o coes)on!ien#e.
Geo":etBo!Fro4ot-[B)$eo")Cro4ot-[Bra5o)GN
Geo":etBo!Fro4ot-[B)$eo"'Cro4ot-[Bra5o)GN
Geo":etBo!Fro4ot-[B)$eo"-Cro4ot-[Bra5o)GN
GGSe )osicion'n l's geo$e#*'s es)ec#o ' l' )osici0n !el cue)o
Geo":etO<<setPositionFro4ot-[B)$eo")CBr)W'-Br)cW'C(*(CBr)cW'*(GN
Geo":etO<<setPositionFro4ot-[B)$eo"'C-Br)W'XBr)cW'C(*(CBr)cW'*(GN
Geo":etO<<setPositionFro4ot-[B)$eo"-C(*(C(*(C-Br)aW'*(GN
00&ve$!ualme!e se calcula y seguarda e$ u$a var"able u$a ma!r"+ de ro!ac"#$(((
R?ro"ADisAnAn$leFRC(C)C(C-FMbPIW'GGN
00'ara or"e$!ar algu$a geome!r8a
Geo":etO<<setRotationFro4ot-[B)$eo")CRGN
GI<INCULOSIG
00 Se guarda e$ u$ vble( u$ v8$culo !"'o C"sagra*P"$ge@
ro4ot-[7ointI)JT&ointCreateKin$e F"unoC(GN
GGSe 'sign'n los cue)os ' "incul'
&ointAttac+ Fro4ot-[7ointI)JCro4ot-[Bra5o)Cro4ot-[Bra5o'GN
00Se de7"$e u$ 'u$!o de a$claAe *'os"c"#$@ de la ar!"culac"#$
&oint:etKin$eAnc+or Fro4ot-[7ointI)JC (C (CDistE7es)XMesaAltoXBaseEs1GN
00Se de7"$"e la d"recc"#$ e$ la <ue ac!Ha el v8$culo
&oint:etKin$eADis Fro4ot-[7ointI)JC )C(C(GN
00Se de7"$e$ algu$os 'ar4me!ro del v8$culo
&oint:etKin$ePara"Fro4ot-[7ointI)JC Para"?MaDC TOReUEGN
Q
,'
Refeenci's
I)J Co"isi#n Nacional e Ener$%a At#"ica FCNEAG Fs*<*G* :itio Be4 o<icial2
.!!'>00www(c$ea(gov(ar0'royec!os0carem
I'J euis1e Ma"an%C A* F'()(G* u!oma!"+ac"#$ de las !areas de ma$!e$"m"e$!o de los !ubos de los
ge$eradores de va'or del reac!or CR&Q* Ar$entina2 Instituto Balseiro*
I-J Dassault :!ste"s F'((/G* CATIA >9 ?una"entals*Tutorial
I6J O1en D!na"ics En$ine Fs*<*G* Qa$ual del usuar"o de 23&( Dis1oni4le en2 .!!'>00ode1
w"k"(org0w"k"
I9J Aruino Fs*<*G* Qa$ual del usuar"o de 'laca rdu"$o* :itio Be4 o<icial2 .!!'>00www(ardu"$o(cc
I,J :S?Fs*<G* Ca!4logos de rodam"e$!os SKK* Dis1oni4les en2 .!!'>00www(sk7(com
I/J N:S Fs*<*G* Ca!4logos de rodam"e$!os JSK* Dis1oni4les en2 .!!'>00www($sk(com
I8J At"el Fs*<*G* PoAa de da!os de m"croco$!rolador !mega328P* Dis1oni4le en2
.!!'>00www(a!mel(com
,-
Ag'!eci$ien#os
Pri"ero ;uiero a$raecer a "i <a"ilia 1or too el a1o!oC inter.s ! 1reocu1aci#n* A "is
1aresC a "is t%osC a "is a4uelos "uc+as $raciasd* Mu! es1ecial"ente a "is +er"anos ;ue sie"1re
<ueron F! se$ura"ente se$uirAn sienoloG un e7e"1lo 1ara "iC ! so4re too un $ran a1o!o urante
toa "i via* Gracias 1or tantos "o"entos*
euiero a$raecer a "is a"i$os en Tucu"An* El %a ;ue eci% venir a Bariloc+e 1ensa4a
;ueC urante tres a=osC "e i4a a 1erer "iles e "o"entos allAC ! <ue uro* Gracias 1or +ecer"e
recu1erar al$unosC caa ve5 ;ue i4a e visitaC ! 1or +acer"e sentir ;ue se$u%a en "i casa ! a4rir"e
las 1uertas e las su!as*
Gracias a "is co"1a=eros el IB ! a toas las 1ersonas con las ;ue co"1art% este tie"1o en
Bariloc+e* A "is co"1a=eros e cursaa 1or el enor"e co"1a=eris"o ! a1o!o en "o"entos
i<%ciles* Por too el tie"1o ! toos los "o"entos ;ue 1asa"os 7untos* :alud
Kace "uc+o ;ue no se e ellosC 1ero no ;uiero e7ar e a$raecer a os $ranes "aestros
;ue tuve2 Gracias Ric@! ! &P F7ota1.G*
>aloro "uc+isi"o las o1ortuniaes e acceso a la eucaci#n ;ue tuve* Dese ;ue lle$Ee al
IB "e sent% un 1rivile$iao ! so! consciente ;ue too lo ;ue reci4% se lo e4o a la sociea
ar$entinaC ! es1ero e al$una "anera 1oer 1a$arle esa eua*
euiero a$raecer a toas las 1ersonas ;ue "e a!uaron con el esarrollo el 1ro!ecto
inte$raor* Muc+as $racias a "is irectores F0uisC eui;ue ! AleG ! tutor FEn5oG 1or toa la
1reis1osici#n ! el tie"1o eicao 1ara sacar las cosas aelanteC ! a toos en la o<icina 1or la
4uena ona* Muc+isi"as $racias :e4a 1or las in<initas veces ;ue "e a!uaste ! 1or toa la
1acienciaC a1ren% "uc+o 1or tu cul1a* Gracias Panc+oC BernarC Ric@!C KernAnC CarlitosC ?rit5C
Rolo 1or el tra4a7o ;ue +icieronC 1or co"1artir el "ate ! 1or ense=ar"e tanto* Gracias Al<reo !
Ren. 1or su cola4oraci#n* Gracias ?a4iAnC En5oC 0eoC Euaro ! Koracio 1or su a!uaC ! a too el
$ru1o e Electr#nica 1or la 4uena ona* Gracias Gon5a ! Tra1o 1or ar"e una "ano con las
nor"as* Gracias RoriC >ie7a ! Pil#n 1or a!uar"e tanto con la Tesis* Gracias MarceC Ne$ro ! Gi$i
1or sa4er in$l.s* Muc+as $racias a la MarceC a "is co"1a=erosC a "is +er"anosC <a"iliaC ! a"i$os
1or el aliento en los "o"entos co"1licaos* Gracias :alte=o 1or "antener"e ali"entao "ientras
escri4%a*
euiero a$raecer ta"4i.n a a;uellos ;ue cola4oraron con "i <or"aci#n aca."ica !
,6
+u"ana urante estos a=os* Muc+as $racias a toos los ocentes ! no ocentes el IB 1or su
enor"e 1reis1osici#n* Es1ecial"ente a ClauioC Sa!C :e4aC Marcelo ! Pa4lo* En5oC ?eeC KoracioC
?a4iAnC 0eo ! Euaro* Ale7anroC Graciela ! Ku$o* &uan CarlosC A$ustg C*C Matias G ! I$nacio R*
Por Elti"o te ;uiero a$raecer enor"e"ente a vos MarceC sos una 1ersona "u! i"1ortante
1ara "%* Durante siete a=osC ! es1eciale"ente urante los Elti"os tresC +as sio el so1orte "As
$rane ;ue +e tenio* Muc+as $racias 1or estar con"i$o en toas* En los "o"entos "As linosC en
los "As i<%ciles ! en los i"1osi4les* Gracias 1or too lo ;ue te +as 4ancao este tie"1o* Gracias
1or sacri<icar tanto 1ara +acer esta carrera con"i$o* Gracias 1or co"1artir tanto con"i$o !
ense=ar"e tantas cosas* Es i"1a$a4led Muc+as Graciasd Xe4D7l- N-G*
,9