Los 10 lenguajes de programación más populares en robótica

Puede que la robótica no sea un campo nuevo, pero está experimentando un crecimiento masivo. De hecho, muchos expertos teorizan que los avances en la robótica, la IO y la inteligencia artificial cambiarán los futuros mercados laborales tanto (si no más) que la revolución industrial. Créase o no, en 2016 la industria de la robótica, en lo que respecta a las ventas industriales y no industriales, representó aproximadamente 31.000 millones de dólares. Para 2022, se espera que esa cifra alcance los 237.300 millones de dólares.

Aunque la industria de la robótica es un milagro de la ciencia moderna bien adaptada para aumentar la automatización, los robots todavía necesitan creadores, mantenimiento y programadores. Así que echemos un vistazo más de cerca a los mejores lenguajes de programación para aprender para un futuro en el excitante y explosivo campo de la robótica.

Desafortunadamente, nunca obtendrás una respuesta sencilla si preguntas “¿Cuál es el mejor lenguaje de programación para la robótica?” a toda una sala llena de profesionales de la robótica (o en foros como Stack Overflow, Quora, Trossen, Reddit o Research Gate).

Los ingenieros electrónicos darán una respuesta diferente a la de los técnicos en robótica industrial. Los programadores de visión por computador darán una respuesta diferente a los robóticos cognitivos. Y todos estarían en desacuerdo en cuanto a cuál es “el mejor lenguaje de programación”. Al final, la respuesta con la que la mayoría de la gente estaría de acuerdo es “depende”. Esta es una respuesta bastante inútil para el principiante que está tratando de decidir qué lenguaje aprender primero. Incluso si esta es la respuesta más realista, porque depende de qué tipo de aplicación quieres desarrollar y qué sistema estás usando.

¿Qué lenguaje de programación debería aprender primero?

Probablemente es mejor preguntar, ¿qué lenguaje de programación es el que deberías empezar a aprender primero? Seguirás teniendo opiniones diferentes, pero muchos expertos en robótica pueden estar de acuerdo en los lenguajes clave.

Lo más importante para los robots es desarrollar “La mentalidad de programación” en lugar de dominar un lenguaje específico. En muchos sentidos, no importa realmente qué lenguaje de programación se aprende primero. Cada lenguaje que aprendes desarrolla tu competencia con la mentalidad de programación y hace más fácil el aprendizaje de cualquier nuevo lenguaje siempre que sea necesario.

Hay más de 1500 lenguajes de programación en el mundo, que son demasiados para aprender. Aquí están los diez lenguajes de programación más populares en la robótica en este momento. Cada lenguaje tiene diferentes ventajas para la robótica. La forma en que los hemos ordenado es sólo en parte en orden de importancia de menor a mayor valor.

BÁSIC / Pascal

BASIC y Pascal fueron dos de los primeros lenguajes de programación que muchos expertos en robótica aprendieron. Son la base de varios de los lenguajes de robots industriales, descritos a continuación. El BASIC fue diseñado para principiantes (significa Beginners All-Purpose Symbolic Instruction Code), lo que lo convierte en un lenguaje bastante simple para empezar. Pascal fue diseñado para fomentar las buenas prácticas de programación y también introduce construcciones como punteros, lo que lo convierte en un buen “trampolín” para pasar de BASIC a un lenguaje más avanzado. Hoy en día, ambos lenguajes están un poco anticuados para ser buenos para el “uso diario”. Sin embargo, puede ser útil aprenderlos si vas a hacer mucha programación de bajo nivel o si quieres familiarizarte con otros lenguajes de robots industriales.

Lenguajes de los robots industriales

Casi todos los fabricantes de robots han desarrollado su propio lenguaje de programación de robots, que ha sido uno de los problemas de la robótica industrial. Puedes familiarizarte con varios de ellos aprendiendo Pascal. Sin embargo, todavía tendrás que aprender un nuevo lenguaje cada vez que empieces a usar un nuevo robot.

ABB tiene su lenguaje de programación RAPID.
Kuka tiene el KRL (Kuka Robot Language).
Comau usa PDL2, Yaskawa usa INFORM y Kawasaki usa AS.
Luego, los robots Fanuc usan Karel, los robots Stäubli usan VAL3 y los Robots Universales usan URScript.

En los últimos años, las opciones de programación como ROS Industrial han empezado a proporcionar opciones más estandarizadas para los programadores. Sin embargo, si eres un técnico, es más probable que tengas que usar el lenguaje del fabricante.

C (Objetive) y C++

C y C++ son sin duda los lenguajes de programación más importantes que puedes aprender para ampliar tu formación y establecer una trayectoria para el campo de la robótica. ¿Por qué? Bueno, hay un montón de razones. En primer lugar, estos dos lenguajes son el código más utilizado en la industria de la robótica, pero hay muchos beneficios secundarios para aprender cualquiera de los dos lenguajes.

C y C++ son lenguajes orientados a objetos que se utilizan en una amplia variedad de campos. Todo, desde el diseño de juegos hasta el CAD, utiliza C y C++, entre otros lenguajes orientados a objetos. Y una vez que aprendas un lenguaje orientado a objetos, tendrás habilidades que se transfieren fácilmente a otras facetas de la programación. Incluso entre diferentes lenguajes de programación, una vez que has aprendido un lenguaje orientado a objetos, esencialmente los has aprendido todos (con pocas excepciones).

En realidad, lo principal que cambiará entre los diferentes lenguajes de programación es la sintaxis. Encontrarás que -más o menos- los lenguajes orientados a objetos tienen los mismos tipos de datos y las mismas estructuras de datos. Por ejemplo, los arrays, las estructuras de bucle, la recursividad y otros mecanismos similares son inherentes a los lenguajes orientados a objetos. Sin embargo, los caracteres exactos que se escriben para crear esas estructuras cambiarán de un lenguaje a otro.

Pero la parte más difícil es aprender cómo funcionan todos los mecanismos en primer lugar. Aprender un lenguaje orientado a objetos es un poco como montar en bicicleta. Una vez que hayas aprendido a hacerlo una vez, no lo olvidarás. Sin embargo, quería hacer una distinción importante. Técnicamente, el lenguaje de programación C, que es muy antiguo, es en realidad procesal. Pero hay una versión más reciente llamada Objetive C que, como habrán adivinado, añade al lenguaje una sintaxis orientada a los objetos.

C# y el .NET Framework

Si ya tienes algunas habilidades de programación en C++, aprender C# no va a ser tan difícil. De hecho, mucha de la sintaxis es idéntica, pero lo que cambia son las librerías de funciones y objetos que puedes emplear en tu código. C# es sólo uno de los muchos lenguajes de programación dentro del marco de trabajo .NET que lo abarca todo. Como ya sabrás, C# y la biblioteca .NET son productos de Microsoft, lo que los convierte en la plataforma de referencia para el desarrollo de aplicaciones de Windows.

A estas alturas, probablemente te preguntes por qué querrías aprender C# si se adapta bien a los programas de Windows, ¿verdad? Bueno, Microsoft, como una compañía que siempre está pensando en el futuro, ya ha hecho inversiones en el futuro de la robótica. Más específicamente, tiene una herramienta llamada Microsoft Robotics Developer Studio, y esta herramienta usa el C# como su lenguaje principal.

La última versión, la cuarta, viene con una variedad de componentes que incluyen Lenguaje de Programación Visual, Ambiente de Simulación Visual, Servicios de Software Descentralizado, y Tiempo de Ejecución de Concurrencia y Coordinación. Naturalmente, va a llevar mucho tiempo aprender este entorno, pero tener un conocimiento fundamental de C# es un activo indiscutible.

MATLAB

MATLAB ha existido aparentemente desde siempre y ahora tiene 34 años. Se utiliza a menudo en las disciplinas de ingeniería para controlar y analizar datos, así como para crear sistemas de control. También es genial porque se “conecta” (o se interconecta) con otros lenguajes frecuentemente usados en robótica, como C#, C, C++, Java y otros. Una de sus características clave es la capacidad de manipular y graficar datos y viene con un entorno GUI.

Pero también viene con una interfaz centrada en la robótica, conocida como Robotics Toolbox, que soporta funciones de robótica móvil así como robótica de tipo brazo. No lo recomendariamos como el mejor punto de partida para los principiantes, no porque sea difícil de aprender, sino porque hay habilidades más versátiles para aprender (como C++) que tienen una aplicación mucho más amplia.

Python

Ha habido un enorme resurgimiento de Python en los últimos años, especialmente en la robótica. Una de las razones de esto es probablemente que Python (y C++) son los dos principales lenguajes de programación que se encuentran en ROS. Como Java, es un lenguaje interpretativo. A diferencia de Java, el enfoque principal del lenguaje es la facilidad de uso. Mucha gente está de acuerdo en que lo consigue muy bien.

Python prescinde de muchas de las cosas habituales que ocupan tiempo en la programación, como definir y fundir tipos de variables. Además, hay un gran número de librerías gratuitas para él, lo que significa que no tienes que “reinventar la rueda” cuando necesitas implementar alguna funcionalidad básica. Y como permite enlaces sencillos con código C/C++, esto significa que las partes de mayor rendimiento del código pueden implementarse en estos lenguajes para evitar la pérdida de rendimiento. A medida que más electrónica comience a soportar Python “out-of-the-box” (como con Raspberry Pi), es probable que veamos mucho más Python en la robótica.

Lenguaje ensamblador

El lenguaje ensamblador es la forma más baja de programación. Esto no quiere decir que sea el más deshonroso, sino que es la instrucción más básica que se le puede asignar a cualquier controlador o procesador. Lenguajes como Java y C++ son lenguajes de alto nivel y tienen una capa de abstracción entre ellos y la arquitectura del procesador subyacente que no requiere que el programador entienda todos los tediosos comandos subyacentes a nivel del procesador.

Sin embargo, entender el lenguaje ensamblador es una gran habilidad que un programador de robótica puede obtener, especialmente si está trabajando en microcontroladores. Sin embargo, hay que saber que no hay una sola plataforma o arquitectura de microcontrolador y que el lenguaje ensamblador no es una habilidad general fundamental como el C++. Como tal, sólo podemos recomendar esto como una habilidad auxiliar. Claro, es útil conocer el lenguaje ensamblador, pero no es necesario y ciertamente no es el mejor lugar para empezar.

El verdadero inconveniente del lenguaje ensamblador es que no está estandarizado como Java, BASIC, C++, u otros lenguajes similares. El lenguaje ensamblador cambia de un procesador a otro, y mientras que algunos comandos y conceptos son similares, muchos no lo son. Así que si inviertes mucho tiempo en aprender el lenguaje ensamblador para el procesador X, y luego se requiere que trabajes en un controlador usando el procesador Y, puedes sentir que has perdido algo de tiempo.

Java

Algunos ingenieros electrónico, siempre se sorprenden que algunos licenciados en informática enseñen Java a los estudiantes como su primer lenguaje de programación. Java “esconde” la funcionalidad de la memoria subyacente del programador, lo que hace que sea más fácil de programar que, digamos, C, pero también significa que tienes menos comprensión de lo que realmente hace con tu código. Si llegas a la robótica desde una formación en ciencias de la informática (y mucha gente lo hace, especialmente en la investigación) probablemente ya hayas aprendido Java.

Al igual que C# y MATLAB, Java es un lenguaje interpretativo, lo que significa que no está compilado en código de máquina. Más bien, la máquina virtual de Java interpreta las instrucciones en tiempo de ejecución. La teoría para usar Java es que se puede usar el mismo código en muchas máquinas diferentes, gracias a la máquina virtual de Java. En la práctica, esto no siempre funciona y a veces puede hacer que el código se ejecute lentamente. Sin embargo, Java es bastante popular en algunas partes de la robótica, así que puede que lo necesites.

Lisp

Lisp es el mejor para la creación de prototipos y puede procesar datos simbólicos. Tiene una creación dinámica simple de nuevos objetos y es capaz de “recolectar basura” automáticamente con sus rutinas. El ciclo de vida de este lenguaje de programación permite la evaluación interactiva y recompilar la función y el documento mientras el programa está funcionando.

Lisp es un grupo de lenguajes de programación como Clojure y Common Lisp usado para el propósito general y dinámico que se desarrolla en la IA simbólica tradicional.

Lenguajes de descripción de hardware (HDL)

Los lenguajes de descripción de hardware son básicamente una forma de programación para describir la electrónica. Estos lenguajes son bastante familiares para algunos robots, porque se utilizan para programar Field Programmable Gate Arrays (FPGAs). Los FPGA permiten desarrollar hardware electrónico sin tener que producir un chip de silicio, lo que los convierte en una opción más rápida y fácil para algunos desarrollos. Si no haces un prototipo de electrónica, puede que nunca utilices HDL. Aún así, es importante saber que existen, ya que son bastante diferentes de otros lenguajes de programación. Por un lado, todas las operaciones se realizan en paralelo, en lugar de secuencialmente como en los lenguajes basados en procesadores.

¿En qué orden deberías aprenderlos?

El hecho de que hayamos enumerado estos diez no significa que tengas que aprenderlos todos, o incluso ninguno. Lo más importante es encontrar un lenguaje que se sienta natural para ti y que encaje con tu hardware robótico. Quieres un lenguaje que te permita desarrollar programas de forma rápida y fácil, para que puedas centrarte más en el desarrollo de la funcionalidad. Por esta razón, te recomendamos aprender Python primero. Esta es sólo nuestra opinión personal. Si otro lenguaje tiene más sentido para ti, entonces aprende eso en su lugar. Sin embargo, Python es un lenguaje increíblemente sencillo de aprender y enormemente poderoso gracias a las muchas bibliotecas de fácil acceso.

Podrás escuchar muchos relatos de programadores (ya experimentados) que aprendieron Python en un par de días y se convirtieron inmediatamente a él para casi todas sus necesidades de programación. Como dijo alguien, “Puedo producir código utilizable en Python tan rápido como puedo escribir”. Después de haber adquirido un razonable dominio del uso de Python, recomendariamos aprender C, seguido de C++. Lo necesitarás para interactuar con la gran mayoría de los controladores de hardware robótico.

 

 

Fuente: descubrearduino.com

La arquitectura de redes viene definida por tres características que define la tecnología a emplear en la red: Topología, método de acceso, protocolo de comunicación.

ELECTRON INTERIORTierra 1Para hablar del cálculo de las tomas de tierra, antes es preciso recordar  las distintas partes de las que está formada una instalación de tierra. En la siguiente imagen vemos los CP, los CEP, BT, CT y TT, así como las masas que deben de ir conectadas a los bornes secundarios. Cada uno de estos tramos está definido en el REBT ITC-18 con unos valores mínimos de sección.

Redes y la comunicación de datos: conceptos de mensaje, emisor y receptor; codificación, descodificación, transductor y canal.

En las primeras redes de ordenadores, cada compañía utilizaba sus propias normas para el diseño y funcionamiento de la red en sus productos.  Cuando fue necesario conectar redes de diferentes proveedores surgieron problemas: Los sistemas de transmisión no eran compatibles y era necesario deshacerse de todo lo instalado y montar nuevas redes, todas del mismo tipo. 

ELECTRON INTERIOREl cálculo de los niveles de iluminación de una instalación de alumbrado de interiores es bastante sencillo. A menudo nos bastará con obtener el valor medio del alumbrado general usando el método de los lúmenes. Para los casos en que requiramos una mayor precisión o necesitemos...

Redes y la comunicación de datos: conceptos de mensaje, emisor y receptor; codificación, descodificación, transductor y canal.

Veamos algunas situaciones en la substitución de tubos en luminarias fluorescentes. Dependiendo del fabricante las instrucciones de montaje y substitución pueden variar. Algunos de los casos más habituales son los siguientes.

ELECTRON INTERIORTierra 1En el reglamento de baja tensión y en sus guías de interpretación de las instrucciones técnicas complementarias vienen definidos los elementos de una instalación de toma de tierra: CP, los CEP, BT, CT y TT, así como las masas que deben de ir conectadas a los bornes secundarios. Cada uno de estos tramos está definido en el REBT ITC-18 con unos valores mínimos de sección. ...

Breve resumen de las familias de protocolos más usuales, desde SNA hasta TCP/IP.

Repasemos el artículo de Ansell en Voltimum sobre los proyectores LED y PIR. Los proyectores LED son una forma eficaz de iluminar espacios abiertos tanto en interiores como en exteriores de forma económica y eficiente desde el punto de vista económico. Si los comparamos con los focos halógenos tradicionales, las luces LED son un 90% más eficaces energéticamente.

ELECTRON INTERIORDebido a la gran cantidad de factores que intervienen en la iluminación de vías públicas (deslumbramiento, características de los pavimentos, condiciones meteorológicas, etc.) y en la percepción de estas, el cálculo del alumbrado público ha sido siempre una tarea muy compleja.

Con el fin de simplificar la complejidad de cualquier red, los diseñadores de red estructuran en diferentes módulos las reglas de interconexión entre equipos informáticos. El objetivo es dividir la problemática inicial en subproblemas más sencillos. Para cada uno de estos subproblemas se crea un subconjunto de programas y reglas que le den solución, de tal forma, que cada subproblema puede ser tratado y desarrollado de forma independiente del resto de subproblemas.  A cada uno de los módulos de la interconexión de equipos se le llama nivel o capa.

Nuevas penalizaciones por energia reactiva capacitiva. A partir del 1 de Noviembre no solo penalizará la energía reactiva inductiva, sinó que también lo hará la capacitiva, pero sólo para industrias o consumidores conectados a tensión superior a 1 kV.

ELECTRON INTERIORLa determinación de los niveles de iluminación adecuados para una instalación no es un trabajo sencillo. Hay que tener en cuenta que los valores recomendados para cada tarea y entorno son fruto de estudios sobre valoraciones subjetivas de los usuarios (comodidad visual, agradabilidad, rendimiento visual...). ....

FV02.jpg

Anuncio (art):

 

Articulos aleatorios:

ELECTRON INTERIOR    SIMBOLOGÍA 03: Instrumentación eléctrica
  Recopilación de simbología sobre elementos de instrumentación eléctrica

En Enerxia.net realizamos proyectos realizados con la ingeniería industrial electrica, así como cualquier proyecto de instalación electrica, domótica, telecomunicación, etc, relacionado con el mundo de la energía. Pueden ver a continuación distintos tipos de ámbitos abarcados.

ELECTRON AUTOMATISMOS

  Segunda práctica con arduino e introducción al software de simulación de Arduino: Fritzing. En esta práctica se usarán dos LED encendidos alternativamente.

ELECTRON INTERIOR

 

 

Anteriormente ya habíamos comentado el fin de la comercialización de las lámparas halógenas. Ahora, en Abril de 2017 llega el fin de algunas de ellas. En este artículo vamos a recordar el programa de afectación, así como los tipos que dejarán de circular en Europa el próximo mes y las que esperarán al próximo año 2018. Además veremos las opciones disponibles de substitución que ofrece el mercado.

A partir de Abril, la mayoría de lámparas halógenas dejarán de comercializarse. Te contamos qué productos se verán afectados, cuáles seguirán en el mercado y las mejores alternativas LED en concordancia con la normativa ERP.

...

Anuncio (art)...:

 

Anuncio (art).:

 

 

Buscar artículo

Map

Producción energia

Producción

 

Anuncio_ver..:

MeteoGalicia

Anuncio_ver.: