Olá rw!
Sobre a questão de utilização de Java para dispositivos embarcados, dê uma olhada: http://java.sun.com/javase/embedded/
Pelo que ouço falar, a Sun oferece vários recursos nesse aspecto. Aliás, essa era a missão primitiva do Java, embora tenha dado mais certo p/ área de Mobile.
Sobre o fato de você querer se “comunicar” com um dispositivo externo utilizando Java, é preciso, primeiro, esclarecer como você vai estabelecer essa conexão. Possível é.
Você quer que java se comunique com uma aplicação C/C++ que roda no desktop? Ou você quer enviar “comandos” de sua aplicação desktop para uma aplicação em execução no robô?
Para utilizar as bibliotecas existentes em C/C++ utilizadas para operar o “robô”, você pode usar JNI. Assim você vai ter acesso a todos os recursos que a biblioteca em C/C++ nativamente oferece. Eu não sei as implicações de platform-dependence que a utilização de JNI traz, então vale a pena você considerar isso se esse for o caso.
Já pro outro caso, imaginando que o robô estivesse ligado ao computador utilizando TCP/IP, bastaria, neste caso, você ter a especificação do protocolo utilizado pela aplicação do robô para envio de comandos. Sacou? O meio de conexão não faria muita diferença, mas o idioma que as aplicações falariam.
Abraços!