sophia quien funciona creo como ciudadania caracteristicas artificial-intelligence robotics

artificial intelligence - quien - Cómo crear robots de la vida real?



sophia robot ciudadania (13)

Al final, algo tiene que descomponer los comandos de alto nivel en comandos de muy bajo nivel. Algo tiene que traducir "Levantar la copa" a cómo mover el brazo (en qué ángulos deben estar las articulaciones) a los comandos de hardware que realmente hacen girar los motores.

Existen marcos que intentan proporcionar cierta cantidad de esta traducción, que incluyen (entre otros):

Sin embargo, dado que la investigación en robótica está interesada en cada capa del sistema, no hay muchos sistemas que proporcionen la totalidad de la pila de traducción. Si estás buscando entrar en la robótica, hay varios sistemas que intentan hacer esto más fácil (de nuevo, una muestra aleatoria):

En su defecto, sitios como Make incluso proporcionan guías para construir proyectos de robots desde los que comenzar. ¡El desafío es encontrar un proyecto que te entusiasme e ir a la ciudad!

Incluso antes de aprender a programar me he quedado fascinado con la forma en que los robots podrían funcionar. Ahora sé cómo se escribirían las instrucciones de programación subyacentes, 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 seguiría este programa la CPU de una manera que haría que el robot hiciera la acción física de mirar hacia la izquierda, moviendo su brazo, y tal? ¿Se hace principalmente en lenguaje binario / ASM?

Por último, ¿a dónde iría si quisiera aprender a crear un robot?



Los robots funcionarán al interactuar con el hardware. El puente de su código a menudo se realiza a través de diferentes tipos de puertos de E / S. Simplemente podría ser un cable RS232 por ejemplo (usted conoce esos viejos puertos COM1). Las piezas de hardware estarán compuestas por motores (como servo motores ) y sensores (como ultrasonidos para detectar obstáculos, láseres para obtener distancia o interruptores).

No necesita usar ensamblador para hacer eso, hay muchos idiomas (si no la mayoría) que pueden hacerlo, pero se requiere conocimiento sobre cómo interactuar con el hardware. Como escribir un controlador. Requiere al menos una electrónica básica también si quiere construir el robot usted mismo.

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

Además, puedes probar la programación de un sello básico , es bastante fácil seguir los tutoriales y te dará un buen comienzo sobre cómo construir robots. No es demasiado caro y estarás interactuando con el hardware de inmediato.

¡Buena suerte y diviertete!


Probablemente sea más fácil obtener un lenguaje de más alto nivel para describir los comportamientos e inteligencia del robot y dejar que el lenguaje de bajo nivel se adapte a las acciones (mover el brazo, caminar, detenerse). Hay mucha investigación en lo que se llama arquitectura BDI para agentes inteligentes, google for it.

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


Si te vuelves lo suficientemente bueno en la programación, puedes descubrir que ni siquiera necesitas un robot para probar gran parte del código más difícil que tendrás que escribir ... (por ejemplo, hacer que un robot vea y reconozca una escena siempre fascinada) Yo ... 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 más difícil!) ...


Tendría que tener un controlador que se conectara con el hardware (muy probablemente un STAMP o FPGA con motores, etc.). Luego llamaría a la función me.moveLeftArm (x, y); y el conductor sabría que moveLeftArm () significa mover un actuador por X segundos / milisegundos / grados.

Estoy seguro de que podrías encontrar un kit que haga programación de robots.


Comparto el mismo picor. Estoy a punto de comprar mi primer Beagle Board y algunos sensores / servos que pueden usar el bus I2C . Voy a utilizar un diseño basado en eventos y una implementación cruda de fibras (fibrillas, si se quiere) que son hilos del espacio de usuario.

Básicamente, mi diseño requiere un proceso, que lanza un hilo por grupo de servos. Cada subproceso del administrador de grupo lanzará x # de fibrillas, 2 por servo (probable). Una fibrilla se usa para controlar el servo, la otra fibrilla maneja eventos de ese servo (es decir, un objeto es demasiado pesado para recogerlo, un objeto se cayó, etc.).

El proceso principal tiene la tarea de escuchar eventos de todo lo demás y asegurarse de que la ''mano derecha sabe lo que está haciendo la mano izquierda'' mientras avanza y negocia obstáculos.

Me va a llevar la mayor parte de dos años lograr algo que funcione hasta el punto de que estoy orgulloso de ello ... pero anticipo muchas noches agradables llevándolo a ese punto.

Probablemente usaré un Microkernel, no Linux.

Estoy haciendo esto tanto para agudizarme con métodos orientados a eventos como también mi deseo de hacer mi propio R2 :)


Encuentre un equipo de robótica FIRST local y voluntario para ser un mentor. FIRST es una competencia de robótica para niños de escuela media y secundaria. El objetivo es que los niños hagan todo el trabajo para construir, programar, probar y ejecutar el robot, pero aún tendrá muchas oportunidades para profundizar y aprender realmente 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 se conecta con el hardware de NI para permitirle programar motores, actuadores y sensores. El material de NI es bastante elegante y es bastante fácil de usar, además se proporciona gratis a cada equipo, por lo que no tiene que comprar el hardware y el software usted mismo (al menos para comenzar). Además, obtiene la ventaja adicional de ayudando a una nueva generación de ingenieros a comenzar.


Si desea una alternativa de Java, puedo recomendar el libro Linux Robotics . Tiene mucha información buena acerca de dónde obtener kits, piezas y sensores, así como listados completos de código fuente en Java.


Comience con Phidets si está familiarizado con .Net. Puede solicitar TrossenRobotics.com para obtener piezas.

El kit de interfaz de Phidgets es un buen lugar para comenzar. Desde allí, puedes obtener un servocontrolador y comenzar a construir cosas que se muevan.

Los foros de Trossen también son un buen lugar para revisar los proyectos de otras personas. También tienen un nuevo centro de datos con muestras de código / proyecto. No trabajo para ellos ... solo un cliente feliz.


Solo tengo que agregar algo sobre los proyectos de Arduino a esto porque no lo veo mencionado anteriormente.

Hay una barra muy baja para entrar en los proyectos de robótica basados ​​en Arduino. Los programas de "boceto" que escribe para el hardware son muy fáciles de recoger y similares a la sintaxis C. Si no conoce sus transistores de las resistencias, estas placas todavía le permiten hacer mucho con el hardware de conexión y "escudos" adicionales que extienden la placa base de la computadora.

Es muy divertido, muy flexible y algo para que tu código interactúe con el mundo real. Además de su "Hardware abierto" muy similar al software de código abierto.


muchas buenas respuestas aquí. su pieza de código de fantasía no está muy lejos de cómo lo haría en un lenguaje de nivel superior, como C # sobre MS Robotics Studio. Solo tenga en cuenta que incluso las cosas simples (como "mover el brazo hacia la izquierda") están muy cargadas con "sesgo de información".

Hasta el metal, un brazo robótico es un conjunto de eslabones y [posiblemente] articulaciones motorizadas. Por lo tanto, "mover el brazo hacia la izquierda" (o cualquier punto en la coordenada) ya es una tarea muy compleja de calcular (busque la tabla D y H, la cinemática directa e inversa para los manipuladores).

También está el concepto de que mover el brazo hacia la izquierda supone que no hay nada en ese espacio y que no se producirá una colisión. Si el entorno no está restringido, entonces necesita implementar un sistema de detección de colisión, a menudo basado 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 la mayoría de los robots modernos tendrías un modelo cinemático inverso del mecanismo, en este caso el brazo, que convierte las coordenadas espaciales en posiciones para las articulaciones del brazo. Estas articulaciones generalmente se mueven con servomotores. Para mover suavemente el brazo, necesita una serie de posiciones de unión intermedias que definan la ruta que desea que siga el brazo. También debe preocuparse por las velocidades de las articulaciones, que en conjunto controlan la velocidad de la "mano" al final del brazo.

Mientras el brazo se mueve, su sistema servo recibirá retroalimentación acerca de su posición real. Los servosistemas simples pueden usar un circuito de retroalimentación PID básico para ajustar los motores. Los sistemas más complejos incluirán parámetros de avance que compensan la inercia, la gravedad, la fricción, etc. Estos pueden volverse muy sofisticados.

La verdadera diversión comienza cuando tienes que permitir los obstáculos en el espacio alrededor del robot. Tienes que sentir el obstáculo y descubrir cómo evitarlo y aún llegar al destino.