PDF de programación - 3 - Construyendo cerebros de Robot

Imágen de pdf 3 - Construyendo cerebros de Robot

3 - Construyendo cerebros de Robotgráfica de visualizaciones

Publicado el 29 de Octubre del 2019
651 visualizaciones desde el 29 de Octubre del 2019
245,8 KB
18 paginas
Creado hace 14a (04/02/2010)
3 Construyendo Cerebros

de Robot

Qué espléndida cabeza, aunque sin cerebro.
Esopo (620 AC-560 AC)

Página opuesta: Cerebro de Homero Simpson
La foto es cortesía de The Simpson’s Trivia (www.simpsonstrivia.com)

30

Si creen que su robot es una criatura que actúa en el mundo, entonces, al
programarla, están esencialmente construyéndole un cerebro a esta criatura. El poder
de las computadoras reside en el hecho de que la misma computadora o el robot
pueden ser provistos de un programa o cerebro diferente para hacer que se
comporten como una criatura diferente. Por ejemplo, un programa como Firefox o
Explorer harán que la computadora se comporte como un navegador Web. Pero si
cambian al “Media Player” (reproductor de medios), la computadora de comportará
como un DVD o reproductor de CD. De la misma manera, el robot se comportará de
manera diferente de acuerdo a las instrucciones en el programa sobre el cual le han
pedido que funcione. En este capítulo aprenderemos acerca de la estructura de los
programas Python y sobre cómo pueden organizar diferentes comportamientos de
robots a través de programas.

El mundo de los robots y el de las computadoras, como han podido ver hasta ahora,
están intrínsecamente conectados. Han estado usando una computadora para
conectarse al robot y luego lo han controlado a través de comandos. La mayoría de los
comandos que han usado hasta ahora provienen de la librería Myro que está escrita
especialmente para controlar fácilmente a los robots. El lenguaje de programación que
estamos usando para programar al robot es Python. Python es un lenguaje de
programación de uso general. Con esto queremos decir que uno puede usar Python
para crear software que controle la computadora u otro dispositivo como un robot a
través de esa computadora. De esta manera, al aprender a escribir programas para
robots, también están aprendiendo cómo programar computadoras. Nuestro viaje en
el mundo de los robots está por lo tanto intrínsecamente ligado con el mundo de las
computadoras y con la computación. Continuaremos entretejiendo conceptos
relacionados con los robots y con las computadoras a través de este viaje. En este
capítulo, aprenderemos más acerca de los programas de robots y de computadoras y
sobre su estructura.

La estructura básica del cerebro de un robot

La estructura básica de un programa Python (o del cerebro de un robot) se muestra
abajo:

def main():
<do something>
<do something>
...

Esto es esencialmente lo mismo que definir una función nueva. De hecho, acá
estamos adoptando la convención de que todos nuestros programas que representen
cerebros de robots se llamarán main. En general, la estructura de los programas de su
robot se mostrará como se detalla abajo (hemos provisto números de líneas –line-
para que puedan hacer referencia a las mismas):
Line 1: from myro import *
Line 2: init()

Line 3: <any other imports>
Line 4: <function definitions>
Line 5: def main():
Line 6: <do something>
Line 7: <do something>

31

Line 8: ...

Line 9: main()
Todo programa de cerebro de robot comenzará con las primeras dos líneas (Line 1 y
Line 2). Estas, como habrán visto, importan la librería Myro y establecen la conexión
con el robot. En el caso de estar usando otras librerías, las importarán (esto se
muestra en Line 3). A esto le siguen las definiciones de las funciones (Line 4), y luego
la definición de la función main. Finalmente, la última línea (Line 9) es una invocación
de la función main. Esta se ubica de tal manera que al cargar el programa en el
Python Shell, el programa comenzará a ejecutarse. Para ilustrar esto, escribamos un
programa de robot que le hace hacer una pequeña danza usando los movimientos de
yoyo y wiggle definidos en el capítulo anterior.

# File: dance.py
# Purpose: A simple dance routine

# First import myro and connect to the robot

from myro import *
initialize("com5")

# Define the new functions...

def yoyo(speed, waitTime):
forward(speed, waitTime)
backward(speed, waitTime)

def wiggle(speed, waitTime):
motors(-speed, speed)
wait(waitTime)
motors(speed, -speed)
wait(waitTime)
stop()

# The main dance program
def main():
print "Running the dance routine..."
yoyo(0.5, 0.5)
wiggle(0.5, 0.5)
yoyo(1, 1)
wiggle(1, 1)
print "...Done"

main()

Hemos usado un nuevo comando Python en la definición de la función main: el
comando print. Este comando imprimirá el texto encerrado entre las comillas dobles
(“) cuando se corra el programa. Este programa no es muy diferente de la función
dance definida en el capítulo anterior, excepto que acá estamos usando un
movimiento de giro para hacerlo menear (wiggle). Sin embargo, en lugar de llamar a
esta función dance, la llamamos main. Como dijimos antes, esta es sólo una
convención que adoptamos para nombrar que nos permite identificar el principal
programa en el archivo de programa.
Realizar la siguiente actividad: Para hacer correr este programa en el robot,
pueden iniciar IDLE, crear una ventana nueva, entrar allí el programa, guardarlo como
un archivo (dance.py) y luego seleccionar la opción Run Module en el menú de Run de

32

Window. Como alternativa, para hacer correr este programa, pueden ingresar el
siguiente comando en el Python Shell:

>>> from dance import *

Básicamente, esto es equivalente a la opción de Run Module descripta arriba. Al correr
el programa, notarán que el robot realiza la rutina de danza especificada en el
programa main. También observen los dos mensajes que se imprimen en la ventana
IDLE. Estos son los resultados del comando print. print es un comando muy útil en
Python porque puede ser usado para mostrar básicamente cualquier cosa que se le
pida. Mientras están en esta sesión, cambien el comando print y hagan lo siguiente:

speak("Running the dance routine")

speak es un comando Myro que permite la salida de habla desde la computadora.
Cambien el otro comando print por un comando speak y prueben el programa. Una
vez realizado esto, entren otros comandos de speak en el mensaje IDLE. Por ejemplo:

speak("Dude! Pardon me, would you have any Grey Poupon?")
[Traducción en español: “¡Chabón! Perdoname, ¿no tendrías un poco de pimienta?”]
La facilidad del habla está incorporada en la mayor parte de las computadoras hoy en
día. Más adelante veremos cómo pueden averiguar qué otras voces están disponibles
y también cómo cambiarlas.

Hablando en Pythonés
Los hemos lanzado al mundo de las computadoras y de los robots sin darles realmente
una introducción formal al lenguaje Python. En esta sección, les brindaremos más
detalles acerca del lenguaje. Lo que saben hasta ahora de Python es lo necesario para
controlar al robot. Los comandos del robot que tipean están integrados a Python a
través de la librería Myro. Python viene con varias otras librerías o módulos útiles que
probaremos y aprenderemos en este curso. Si necesitan acceder a los comandos
provistos por la librería, todo lo que tienen que hacer es importarlos.
Las librerías en sí mismas están hechas en gran medida por grupos de funciones
(pueden contener otras entidades pero lo desarrollaremos después). Las funciones
proveen los bloques básicos de construcción para cualquier programa. En general, un
lenguaje de programación (y Python no es una excepción) incluye un grupo de
funciones predefinidas y un mecanismo para definir funciones adicionales. En el caso
de Python, es la construcción def. Ya han visto varios ejemplos de definiciones de
funciones, y ya han escrito algunas por su cuenta a esta altura. En la construcción def,
cuando se define una nueva función, hay que darle un nombre a la misma.. Los
nombres son un componente importante de la programación y Python tiene ciertas
reglas sobre cómo se forma un nombre.

¿Qué contiene un nombre?
Un nombre en Python debe comenzar con una letra del alfabeto (a-z o A-Z) o con un
underscore (por ej._) y se puede seguir con cualquier secuencia de letras, dígitos o
guiones bajos. Por ejemplo,

33

iRobot
myRobot
jitterBug
jitterBug2
my2cents
my_2_cents
Son todos ejemplos de nombres Python válidos. Además, otra parte importante de la
sintaxis de los nombres es que Python son “case sentitive” (sensibles a mayúsculas y
minúsculas). Esto significa que los nombres myRobot y MyRobot son nombres distintos
para Python. Una vez que han nombrado algo de determinada manera, deben usar
consistentemente la misma forma de deletrearlo y el uso de mayúsculas o minúsculas.
Bueno, eso en cuanto a la sintaxis de los nombres. La pregunta que se pueden estar
haciendo es ¿qué cosas pueden (o deben ser) nombradas?
Hasta acá, han visto que los nombres pueden ser usados para representar funciones.
Esto significa que lo que un robot hace cada vez que se usa un nombre de una función
(como yoyo) está especificado en la definición de esa función. Entonces, al darle un
nombre a una función, tienen un modo de definir funciones nuevas. Los nombres
también pueden ser usados para representar otras cosas en el programa. Por ejemplo,
quizás quieran representar cantidad, por ejemplo en velocidad o el tiempo, por un
nombre. De hecho, lo hicieron en la definición de yoyo que también se muestra abajo:

def yoyo(speed, waitTime):
forward(speed, waitTime)
backward(speed, waitTime)

Las funciones pueden tomar parámetros que ayudan a personalizar lo que pueden
hacer. En el ejemplo de arriba, pueden formular los dos comandos siguientes:

>>> yoyo(0.8, 2.5)
>>> yoyo(0.3, 1.5)

El primer comando le está pidiendo que lleve a cabo el comportamiento yoyo a la
velocidad de 0.8 por 2.5 segundos, mientras que el segundo está especificando 0.3 y
1.5 para velocidad y tiempo, respectivamente. De esta manera, al parametrizar la
función con estos dos valores, pueden producir resultados similares pero con
variaciones. Es una idea similar a la de las funcione
  • Links de descarga
http://lwp-l.com/pdf16796

Comentarios de: 3 - Construyendo cerebros de Robot (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad