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.