Pregunta

Incluso antes de que me enteré de programación he estado fascinado con la forma en robots podría trabajar.Ahora sé cómo subyacente instrucciones de programación sería escrito, pero lo que no entiendo es cómo esas instrucciones son seguidas por el robot.

Por ejemplo, si escribí este código:

object=Robot.ScanSurroundings(300,400);
if (Objects.isEatable(object))
{
   Robot.moveLeftArm(300,400);
   Robot.pickObject(object);
}

¿Cómo sería este programa ser seguido por la CPU en un modo que hará que el robot haga la acción física de mirar a la izquierda, moviendo su brazo, y tal?Se realiza principalmente en lenguaje binario/ASM?

Por último, a dónde podría ir si quería aprender cómo crear un robot?

¿Fue útil?

Solución

En la mayoría de los robots modernos que tendría un modelo cinemático inverso del mecanismo, en este caso el brazo, que convierte las coordenadas espaciales en las posiciones de las articulaciones del brazo. Estas juntas son generalmente movidos por servomotores. Para mover suavemente el brazo, se necesita una serie de posiciones conjuntas intermedios que definen la ruta que desea el brazo a seguir. También tiene que preocuparse de las velocidades de las articulaciones, que en conjunto controlan la velocidad de la "mano" en el extremo del brazo.

Mientras que el brazo se mueve el sistema de servo va a obtener retroalimentación acerca de su posición real. servo sistemas simples pueden utilizar un bucle de realimentación PID básico para ajustar los motores. sistemas más complejos incluirán parámetros alimentación de avance que compensan la inercia, la gravedad, la fricción, y así sucesivamente. Estos pueden llegar a ser muy sofisticado.

La verdadera diversión comienza cuando se tiene que tener en obstáculos en el espacio alrededor del robot. Tienes que sentir el obstáculo y averiguar cómo evitarlo y todavía llegar al destino.

Otros consejos

Al final, algo tiene que romper los comandos de alto nivel en los comandos de muy baja actividad. Algo tiene que traducir "Recoge la copa" a la manera de mover el brazo (lo que los ángulos de las articulaciones deben estar en) a los comandos de hardware que en realidad se convierten los motores.

Hay marcos que intentan proporcionar una cierta cantidad de esta traducción, incluyendo (pero no limitados a):

Sin embargo, puesto que la investigación robótica está interesado en cada capa del sistema, no hay muchos sistemas que proporcionan toda la pila de traducción. Si usted está buscando en entrar en la robótica, hay varios sistemas que tratan de hacer esto (de nuevo, una muestra aleatoria) más fácil:

De no ser así, los sitios tales como Hacer incluso proporcionan guías para la construcción de proyectos de robots para empezar. El reto es encontrar un proyecto que usted está entusiasmado, e ir a la ciudad!

Debe retirar Microsoft Robotics Studio (MRS). Tienen muchos videos / screencasts , y tutoriales escritos . Adicionalmente, tiene Channel9 muchos videos , entrevistas, etc., en los robitics sujetos. Incluyendo demostraciones y entrevistas con los desarrolladores de MRS.

Sólo tengo que agregar algo acerca de Proyectos Arduino a esto porque yo no veo mencionado anteriormente.

Existe una muy baja la barra de entrada al Arduino de robótica basado en proyectos.El "sketch" de los programas que escribir para el hardware son muy fáciles de recoger y similar a la de C sintaxis.Si usted no sabe su transistores de resistencias de estas tablas permite hacer un montón de plug-in y hardware adicional "escudos" que amplían la base de la tarjeta de la computadora.

Muy divertido, muy flexible y algo para obtener su código de interactuar con el mundo real.Además de su "Hardware Abierto" muy a lo largo de las líneas de software de código abierto.

Los robots trabajarán al interactuar con el hardware. El puente de su código se hace a menudo a través de diferentes tipos de puertos de E / S. Podría ser simplemente un cable RS232, por ejemplo, (ya saben los viejos puertos COM1). partes de hardware estarán compuestos por motores (tales como servomotores ) y sensores (tales como ecografía a sentir los obstáculos, el láser para obtener la distancia o interruptores).

No es necesario utilizar ensamblador para hacer eso, hay un montón de idiomas (si no más) que pueden hacerlo pero requiere conocimiento sobre cómo interactuar con el hardware. Como escribir un controlador. Se requiere al menos la electrónica básica también si usted quiere construir el robot mismo.

Si está interesado, le sugiero que eche un vistazo a este libro que es un buen manual.

Además, puede probar a cabo la programación de un básico sello , es bastante fácil siguiendo los tutoriales y será le dará un buen comienzo sobre cómo construir robots. No es demasiado caro y se le interactuando con el hardware en ningún momento.

Buena suerte y divertirse!

Si usted consigue lo suficientemente bueno en la programación, usted puede descubrir que usted ni siquiera necesita realmente un robot para probar gran parte del código más difícil que tendrá que escribir ... (es decir, hacer un robot ver y reconocer una escena siempre me fascinó ... Pero en algún momento, me di cuenta de que el robot físico requerido para este problema es la parte fácil ... el software es la parte difícil!) ...

es probablemente más fácil conseguir un lenguaje más alto nivel para describir comportamientos y la inteligencia del robot y dejar que el lenguaje de bajo nivel a las acciones (brazo moverse, caminar, parar). Hay una gran cantidad de investigación en lo que se llama arquitectura BDI para agentes inteligentes, Google para ello.

Puede encontrar más información sobre este , es un DSL para describir el comportamiento del agente hecha en Java. Se llama Jason intérprete y el lenguaje es AgentSpeak (L).

Encuentra una rel="nofollow PRIMERA robótica equipo y voluntario para ser un mentor. FIRST es una competencia de robótica para niños de secundaria y preparatoria. El objetivo es que los niños hacen todo el trabajo para construir, programar, probar y ejecutar el robot, pero todavía tendrá un montón de oportunidades para excavar y realmente aprender el software. Están utilizando LabView por National Instruments, y, a partir del 8 de febrero acaban de comenzar la competencia regional para este año. LabVIEW es un entorno de programación gráfica que interactúa con el hardware de NI para que pueda programar motores, actuadores y sensores. El material de NI es bastante resbaladiza y es bastante fácil de usar, además de que ha proporcionado la libertad de cada equipo, por lo que no tiene que comprar el hardware y el software usted mismo (al menos para empezar.) Además, obtiene la ventaja añadida de ayudar a una nueva generación de ingenieros consiguen su comienzo.

Usted tendría que tener un conductor que interconecta con el hardware (muy probablemente un sello o FPGA con motores etc ...). A continuación, llamar a la función me.moveLeftArm (x, y); y el conductor sabría que moveLeftArm () significa mover un accionador para X segundos / milisegundos / grados.

Estoy seguro de que se puede encontrar un kit que hace la programación de robots.

Si quieres una alternativa de Java, puedo recomendar el libro Linux Robótica . Tiene un montón de buena información acerca de dónde obtener los kits, partes y sensores, así como los listados de código fuente completo en Java.

Se comparten los mismos picor .. Estoy a punto de comprar mi primera beagleboard y algunos sensores / servos que pueden utilizar el I2C autobús. Voy a estar usando un diseño orientado a eventos y una aplicación crudo de fibras (fibrillas, si se quiere), que son hilos de espacio de usuario.

Básicamente mis llamadas de diseño para un proceso, que pone en marcha un hilo por grupo de servos. Cada gestor de hilo grupo lanzará x # de fibrillas, 2 por servo (probable). Uno de fibrillas se utiliza para controlar el servo, la otra fibrilla gestiona los eventos de ese servo (es decir, un objeto es demasiado pesado para recoger, un objeto se ha caído, etc).

El proceso principal tiene la tarea de escuchar para eventos de todo lo demás y asegurarse de que la 'mano derecha sabe lo que la mano izquierda está haciendo' mientras se mueve hacia adelante y obstáculos de negociación.

Su va a llevar la mayor parte de dos años para conseguir algo de trabajo hasta el punto de que estoy orgulloso de ella .. pero yo anticipar muchas noches agradables para conseguir que se de ese punto.

Me es muy probable que esté utilizando un microkernel, no Linux.

Estoy haciendo esto tanto para afilar a mí mismo con los métodos por eventos, así como mi deseo de hacer mi propia R2:)

Comience con Phidets si está familiarizado con .Net. Puedes retirar TrossenRobotics.com de piezas.

El kit de interfaz Phidgets es un buen lugar para comenzar. Desde allí se puede conseguir un servo controlador y empezar a construir cosas que se mueven.

Los foros Trossen son también un buen lugar para revisar los proyectos de otras personas. Tienen un nuevo centro de datos con muestras de código / proyecto también. Yo no trabajo para ellos ... sólo un cliente feliz.

montón de buenas respuestas aquí. su pieza de código de fantasía no está lejos de cómo se haría en un lenguaje de alto nivel como C # que la MS Robotics Studio. Hemos de tener en cuenta que las cosas más simples (como el "brazo mover hacia la izquierda") están muy cargados de "sesgo de información".

hasta el metal, un brazo robótico es un conjunto de enlaces y [posiblemente] articulaciones motorizadas. Por lo tanto "brazo mover hacia la izquierda" (o cualquier punto de coordenadas) ya es una tarea muy compleja para calcular (busque D & H Mesa, hacia adelante y cinemática inversa para manipuladores).

También está el concepto de que mueva el brazo izquierdo asume que no hay nada en ese espacio y no se producirá una colisión. Si el entorno no está restringido, a continuación, es necesario implementar un sistema de detección de colisiones, a menudo basada en algún tipo de sensor (cámara) y algoritmos de visión artificial.

En resumen, el lenguaje y la interfaz de hardware a menudo son triviales en comparación con el modelado del sistema para lograr el comportamiento deseado.

En cuanto a la última pregunta "cómo crear un robot", encuentro a partir de la búsqueda de un proyecto relacionado en comunidades en línea como [Adafruit] [1], [Hackster.io] [2], o incluso [fallo] [ 3], o en busca de entradas de blog de alguien que ha construido un robot desde cero, por ejemplo, https://burningservos.com , o un producto que proporciona documentación y tutoriales para hardware y software, por ejemplo, http://emanual.robotis.com/docs/en/platform/openmanipulator_x/overview/ .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top