C/Visual C - Ayuda!

 
Vista:

Ayuda!

Publicado por Maguie (1 intervención) el 13/06/2006 06:34:59
Hola! Alguien tiene el código de un brazo robotico ? Se los agradeceré eternamente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda!

Publicado por fernando.gomez (1603 intervenciones) el 13/06/2006 07:35:51
Hola, ¿es acaso una de esas bromas de ingenieros que nomás no entiendo? ¿O realmente esperas encontrarte con el código de un brazo robótico?

Acaso no es una broma, expongo algunos puntos que quizás sean de tu interés. El software -cualquiera- que escribas, se traducirá en sentencias para manipular una máquina. En la programación moderna, ésta máquina sería tu ordenador, el cuál es un conjunto de máquinas (RAM, HDD, Monitor, Impresora, Teclado, etc).

Cuando uno escribe un programa normalmente tiene uno que manipular todos los sistemas que componen la máquina. Un sistema operativo es aquél que nos facilita la tarea enormemente, manipulando de una forma estándar dichos sistemas. De tal suerte, que basta con hacer:

int i = 5;

para que el SO se ponga a trabajar: se comunica con la RAM para decirle que guarde espacio en memoria, y a su vez le dice que altere su estado para que se guarden los valores 1, 0 y 1 en espacios contiguos. Y un largo etcétera. Detrás de

int main() {
return EXIT_SUCCESS;
}

Hay miles de sentencias que ubican memoria para el proceso, lo crean, crean un hilo nuevo, etcétera etcétera etcétera, antes de que se llame a esta función.

A pesar de que un SO nos facilita tareas estándares, hay muchos casos en los que nos tenemos que comunicar con hardware "no estándar". Por ejemplo, un brazo robótico. Para cuando estas situaciones suceden, los SOs nos proveen de mecanismos estándares para comunicarnos con otros dispositivos, i.e. a través de puerto COM, LTP, USB, redes, etc. Así las cosas, la forma estándar de comunicarnos con dispositivos externos es a través del intercambio de bytes por uno de estos mecanismos.

Así, yo envío un byte, digamos 0x13, al puerto COM, y el OS se encarga de hacerle llegar al dispositivo externo esta información. El dispositivo interpretará el o los bytes que le envíe y realizará una acción predeterminada -o bien enviara un error diciendo que no reconoce la secuencia de bytes estándares.

Ese es el meollo del asunto. Si yo hacer un programa que controle un brazo robótico, tengo que saber qué bytes reconoce el robot, y el dialecto que emplea. Así, una vez que los de mecatrónica / robótica han definido dicho dialecto, yo puedo pensar en construir un programa que se comunique a éste y le de órdenes.

Cuando hago una librería, y ésta contiene un API -digamos en C- para manejar las órdenes comunes, es cuando digo que tengo un "driver" o manejador de dicho dispositivo. En el caso de sistemas comunes -como un mouse- el OS define una interfaz que todos los drivers deberán seguir, en aras de que el OS pueda manejarlo de forma genérica. En el caso de que no sea estándar, el programador tendrá que hacer uso de dicha API directamente.

Dicho lo anterior, es prácticamente imposible que en la red te encuentres el código para controlar un brazo robótico, por la sencilla razón de que cada robot tiene su propio dialecto y forma de comunicarse. Si planeas mover un brazo robótico, tienes que echarte una larga plática con el ingeniero que lo desarrolló para que te diga cómo te tienes que comunicar con él. Con suerte, ya habrán desarrollado un driver, pero lo más probable es que tengas que desarrollarla tu misma -y eso incluye tener que enviar secuencias de bytes al dispositivo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda!

Publicado por Nelek (816 intervenciones) el 13/06/2006 08:30:57
Fernando ya te ha dicho muchas cosas (desde el punto de vista informatico), añadiendo un poco desde el punto de vista de la ingenieria y automatizacion...

Un brazo robotico... Como si no hubiera cosas de las que depende el programa.
Que tipo de brazo es?
Uno de los brazos roboticos mas sencillos, un taladro automatizado, tiene que tener en cuenta, velocidad de descenso, punto en el que se encuentra, activacion del motor del taladro, reduccion de la velocidad de descenso para evitar golpes a la broca, perforacion controlada por tiempo o profundidad, reduccion de la velocidad del taladro, retirada del brazo antes de desactivar el taladro para evitar que se enganche, parar el taladro, volver a la posicion original... y todo eso sin contar alarmas, casos de procedimientos distintos segun el material a perforar y un largo etc...

Ya ni te digo la de cosas que tendrias que considerar para un programa que vaya a controlar un (por decir una marca conocida) KUKA, un brazo articulado de 6 sistemas de coordenadas relativas, mas los controles de pinzas articuladas, servos de movimiento y demas.

Recomendacion:
Habla con quien tengas que hablar y que te den todas las especificaciones, buscate manuales o libros (ya sea en tiendas, bibliotecas universitarias o donde se te ocurra) y ponle unas cuantas velas al santo que mas devocion le tengas porque la faena que te espera por delante....

Recomendacion 2:
En este foro se ayuda mucho, pero cuando son cosas concretas donde poder mirar, corregir, mejorar...y de donde se sabe que diantres se pide. Si te das cuenta las cosas genericas, donde no se concretan los problemas se quedan sin respuesta en el 90% de los casos, al igual que los mensajes de: "necesito un programa que..." (salvo que sean cosas cortas que no cueste mucho de contestar y/o ya se sepan de carrerilla).

Suerte en tu proyecto y perdon si te parecen una respuesta "agresiva" pero es que...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar