Arranco yo:
Haría falta definir claramente la plataforma (física) sobre la cual se va a trabajar. De otro modo el código que se genere no funcionará en todas las plataformas.
Realmente, tal como se habló al principio, mientras el tipo de dirección sea el mismo, "skid steering" en este caso, y los sensores (o sensor) estén en una determinada situación, creo que lo demás se puede cambiar sin problemas, excepto quizás algún cambio en algunos valores.
Si se pretende hacer el código en varios lenguajes habría que escribir un pséudo-código claro ya que una descripción orientada a objetos podría no ser facilmente traducible a lenguajes que funcionan de distinta manera (corrígeme si me equivoco).
Bueno, sólo con pseudo-código no te facilitará el cambio de procedural a orientado a objetos, ya que el pseudo-código no deja de ser "un lenguaje" (normalmente sin compiladores), que a su vez será procedural u orientado a objetos. Para que fuera común a ambos enfoques, además del pseudo-código se necesitaría utilizar
tipos abstactos de datos.
Pero, como ya irás/iréis pensando, el esfuerzo empieza a ser considerable. Sale más a cuenta utilizar un lenguaje ampliamente difundido y fácil, como Java, que además permite comprobar que funciona correctamente. Trasladarlo luego al mundo procedural no es tan difícil, por ejemplo a C. A NXC no lo veo tan claro, porque tiene algunas limitaciones en la creación de tipos y arrays. A RobotC no tengo ni idea, lo he probado muy poco, pero sería muy interesante averiguarlo...

Otra forma es mediante
UML, un lenguaje de modelado de software (aunque se se aplica también a procesos y negocios). Los diagramas de comentábamos en el otro mensaje son UML