ICI701 Apunte Semana3 2023

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

Programación e Implementación de Robots

Unidad 2
NOMBRE DE LA ESCUELA

Director: Marcelo Lucero Yañez

ELABORACIÓN

Experto disciplinar: Fabián Palma Muñoz

Diseñador instruccional: Antonio Colmenares Prieto

Editora instruccional: María José Fonseca Palacios

VALIDACIÓN

Experto disciplinar: Alejandro Varas Brash

Jefa de Diseño Instruccional: Alejandra San Juan Reyes

EQUIPO DE DESARROLLO

AIEP

AÑO

2023
Tabla de contenidos
Aprendizaje esperado de la semana .................................................. 4

Introducción ............................................................................................. 5

1. Lenguajes de programación de alto nivel ...................................... 6

1.1 C++ ................................................................................................ 7

1.2 Python .............................................................................................. 9

1.3 Lua .................................................................................................. 11

2. Software de programación y simulación robótica CoppeliaSim


(V-REP) .................................................................................................... 13

Cierre....................................................................................................... 28

Referencias ............................................................................................ 29
Aprendizaje esperado de la semana

Realizan programación básica de robot, considerando


características y requerimientos solicitados por el cliente.
Introducción
¿Qué es un lenguaje de programación?

Es un lenguaje que se usa para describir una serie de instrucciones


secuenciales (un algoritmo) con el objeto de controlar o definir el
comportamiento de un sistema computacional, ya sea que este
actúe de forma física o digital. Para esto requiere reglas estrictas y
bien definidas. Esta semana veremos qué significa un lenguaje de
programación de alto nivel y cómo puede usarse para programar
robots.

Figura 1. Algoritmo

5
Fuente: getwallpapers (2023)

1. Lenguajes de programación de alto


nivel
En 1947 se desarrolló el primer leguaje de programación, el
Ensamblador (Assembly Language), que aún se usa para
programar microcontroladores y otros procesadores embebidos.
Sus sentencias nemotécnicas son una traducción directa del
lenguaje de ceros y unos que entiende el procesador involucrado,
se dice entonces que es muy “cercano a la máquina” y su nivel es
el más bajo posible.

Un lenguaje de programación de alto nivel es aquel en cual los


algoritmos están expresados de una forma más cercana a la
compresión humana que al funcionamiento de un procesador.
Para que un programa escrito en un lenguaje de alto nivel sea
ejecutado por un procesador, este debe ser compilado
(traducción de un programa completo a lenguaje máquina) o
interpretado (traducción consecutiva de partes de un programa a
lenguaje máquina). Esto permite que el mismo programa (conjunto
de instrucciones o algoritmos) pueda ser ejecutado en diferentes

6
procesadores, ya que cada tipo de procesador tiene su programa
compilador o interprete dedicado según su set de instrucciones.

Esta flexibilidad ha llevado al desarrollo de múltiples lenguajes de


alto nivel, con diferentes características y prestaciones específicas,
enfocadas en diversas aplicaciones informáticas y
computacionales.

Algunos ejemplos de lenguajes de programación de alto nivel son:


C++, C#, Java, Python, PHP, Lua, etc.

1.1 C++

Figura 2. C++
Fuente: isocpp (2023)

7
Diseñado en 1979 por Bjarne Stroustrup, como una actualización del
lenguaje C (1972), su principal mejora respecto a éste es la
implementación de capacidad de programación orientada a
objetos (POO), un paradigma en el cual un conjunto de variables
puede agruparse dentro de un marco definido con métodos y
características definidas por una clase, para determinar un
“objeto” digital. Algunas de éstas características son: abstracción,
acoplamiento y herencia de métodos para una clase determinada
de objeto.

Estas capacidades unidas al clásico paradigma de programación


estructurada, ya presente en C, hacen de C++ un lenguaje
“multiparadigma”.

Actualmente C++ posee entornos de desarrollo en Windows, Mac y


GNU/Linux.

8
1.2 Python

Figura 3. Python
Fuente: Python (2023)

Publicado por primera vez en 1991 por Guido Van Rossum, Python
es un lenguaje de alto nivel interpretado, lo que significa que puede
ser usado como lenguaje de Script, donde pequeñas porciones de
programas (líneas) son ejecutadas por el procesador a medida que
le son alimentadas. Este funcionamiento es similar a los antiguos
terminales informáticos de la década de 1960 y 1970, donde la falta
de memoria hacía necesario que la comunicación con los
procesadores fuera mediante una “interfaz de línea de comandos”
(CLI).

Esta forma de programación se mantiene hasta hoy en día porque


permite alojar pequeños programas (Scripts) en sistemas que

9
funcionan con otras plataformas. Es común utilizar “la consola” en
Windows (cmd, Powershell) y más aún en Linux (Bash, Bourne o Korn
Shell).

Python supone un nuevo paradigma en programación informática


de alto nivel, haciendo énfasis en la legibilidad de su código,
priorizando la simpleza y estética de su sintaxis. Se dice que algo
bien programado, claro y conciso en Python es “pitónico”(del
inglés pythonic).

Python es generalmente listado entre los lenguajes de


programación más populares para desarrollo de software, en gran
parte por su versatilidad y simpleza.

Actualmente es administrado por la Python Software Foundation, la


que provee licencias de código abierto a usuarios y
desarrolladores.

10
1.3 Lua

Figura 4. Lua
Fuente: lua (2023)

Con una estructura similar a Perl y C; Lua (Luna en portugués) fue


desarrollado en 1993 por Roberto Ierusalimschy, Luis Enrique de
Figueiredo y Waldemar Celes, desarrolladores de Tecgraf
(Tecnología de Computación Gráfica) de la PUC-Rio (Pontificia
Universidad Católica de Río de Janeiro).

Lua es de tipo multiparadigma, soportando programación


imperativa, estructurada y orientada a objetos, además es

11
interpretado (aunque en realidad sus programas son compilados
internamente a bytecode y ejecutados en una máquina virtual) y
está optimizado para ser utilizado de forma incorporada en
aplicaciones, lo que lo hace especialmente idóneo para
programación robótica.

Es compacto, ligero y multiplataforma; su semántica es extensible,


modificable y puede ser utilizada con múltiples arquitecturas de
procesadores, por lo cual ha sido usado en diversas aplicaciones
comerciales, por ejemplo, las consolas de videojuegos PSP, Wii y
SEGA Saturn, en esta última incluso con librerías propias de SEGA.

En el ámbito de la robótica es utilizado en la plataforma de


programación y simulación CoppeliaSim.

12
2. Software de programación y
simulación robótica CoppeliaSim (V-
REP)

Figura 5 Coppelia
Fuente: coppeliarobotics (2023)

CoppeliaSim, anteriormente denominado V-REP, es una plataforma


de simulación y programación robótica que utiliza el lenguaje de
programación de alto nivel Lua para desarrollar y probar soluciones
robóticas incluyendo robots industriales y comerciales, además de
la posibilidad de diseñar prototipos para aplicaciones específicas.

13
Para acceder a la plataforma de desarrollo CoppeliaSim, debes
ingresar a la página web coppeliarobotics.com, en la pestaña
Downloads (descargas) encontrarás las versiones player, edu y pro
del software. Debes descargar la versión edu e instalarla en tu PC.

Figura 3. Descargar software CoppeliaSim versión edu


Fuente: Palma, F. (2023)

Debes aceptar los términos de uso no comercial de la versión


educacional y continuar la descarga.

14
Figura 4. Aceptar los términos de uso no comercial de la versión edu
Fuente: Palma, F. (2023)

15
Una vez instalada, la versión educacional presenta la siguiente
vista:

Figura 5. Vista de la versión edu instalada


Fuente: Palma, F. (2023)

16
Puedes agregar elementos básicos al área de trabajo, como un
cuboide.

Figura 6. Agregar un cuboide al área de trabajo


Fuente: Fuente: Palma, F. (2023)

Figura 7. Aceptar los parámetros predeterminados del cuboide


Fuente: Fuente: Palma, F. (2023)

17
Figura 8. Cuboide en el área de trabajo
Fuente: Fuente: Palma, F. (2023)

Para trabajar con sistemas robóticos, es necesario agregar robots


al área de trabajo. Para este ejemplo usaremos un robot KUKA LBR
iiwa 14 R820, desde el banco de modelos predeterminados de la
plataforma. Para utilizarlo, se debe arrastrar el ícono del robot al
área de trabajo.

18
Figura 9. Arrastrar robot KUKA al área de trabajo
Fuente: Fuente: Palma, F. (2023)

Figura 10. Robot KUKA en el área de trabajo


Fuente: Fuente: Palma, F. (2023)

19
Para acceder a la programación en Lua cargada en el robot debes
hacer click en el ícono que representa al Script del robot.

Figura 11. Abrir el Script del Robot KUKA


Fuente: Fuente: Palma, F. (2023)

20
Figura 12. Script en Lua del Robot KUKA
Fuente: Palma, F. (2023)

21
Bajando hasta la línea 34 es posible ver la rutina de trabajo del robot
y en la línea 40 la variable vel, que por defecto tiene un valor de
110.

Figura 13. Rutina de trabajo del Robot KUKA


Fuente: Palma, F. (2023)

22
Figura 14. Variable vel = 110
Fuente: Palma, F. (2023)

A continuación, cierra el Script y comienza la simulación para


apreciar la velocidad por defecto del robot.

23
Figura 15. Cerrar el Script
Fuente: Palma, F. (2023)

24
Figura 16. Comenzar simulación
Fuente: Palma, F. (2023)

Puedes detener la simulación y repetirla las veces que quieras para


ver nuevamente el movimiento del robot.

25
Figura 17. Detener simulación
Fuente: Palma, F. (2023)

Abre nuevamente el Script y cambia el valor asignado a la variable


vel a 10.

26
Figura 18. Variable vel = 10
Fuente: Palma, F. (2023)

Cierra el Script y comienza la simulación nuevamente.

¿Qué cambios puedes apreciar en el movimiento del robot?

27
Toma apuntes y modifica la variable vel a otros valores, busca qué
otros parámetros dinámicos pueden ser modificados desde el
Script, esta información te servirá para la evaluación formativa de
la semana.

Cierre
Por medio del siguiente organizador gráfico se destacan las ideas
clave de esta semana:
Utilizado en
C++ CoppeliaSim

Para

Ejemplos Python
: Programación
robótica
Lenguajes de
programació Lua
n de alto Y

nivel
Simulación
robótica

Figura 19. Conceptos claves semana 3


Fuente: Palma, F. (2023)

28
Algunos ejemplos de lenguajes de programación de alto nivel son:
C++, Python y Lua. Lua es utilizado en CoppeliaSim para
programación y simulación robótica.

Referencias
Craig, John J. (2006). Robótica. Pearson.

Barrientos, A. (2007). Fundamentos de robótica. Universidad del


Azuay.

Vivas Albán, O. (2010) Diseño y Control de Robots Industriales: Teoría


y Práctica. El Aleph.

Martín, C.; Urquía, A.; Rubio, M. A. (2021). Lenguajes de


programación. Editorial UNED.

Gizmodo (s. f.). 18 Gorgeous Images Of Job-Stealing Factory Robots


[Imagen]. https://bit.ly/3laGS5y

Get Wallpapers (s. f.). Coding Wallpapers [Imagen].


https://bit.ly/3YdM9Io

Iso C++ (s. f.). News, Status & Discussion about Standard C++
[Imagen]. https://isocpp.org/

29
Python (s. f.). Python [Imagen]. https://www.python.org/

Lua (s. f.). Lua the programming language [Imagen].


https://www.lua.org/

Coppelia Robotics (s. f.). V-REP was discontinued. Discover


CoppeliaSim [Imagen]. https://www.coppeliarobotics.com/

30

También podría gustarte