¿Cómo se entrenan los robots para proyectos como estos? ¿Puede un robot ayudar con los platos?

Sí.
Robot para lavar platos

Tienes razón sobre el uso del aprendizaje automático para reconocer objetos. Hay tantos algoritmos (SVM, ANN, etc.) y bibliotecas (OpenCV, cajas de herramientas de Matlab) e incluso algunas API como (Camfind, Catchoom, servidor de imágenes, etc.) que puede usar directamente del estante para identificar objetos.

También se puede aprender sobre el escenario o las funciones que se realizarán con esos objetos. Los entrena con datos, es decir, los alimenta con datos de cómo deberían moverse – positivos y con datos de cómo no deberían moverse – negativos. Esto es aprendizaje supervisado.
También puede dejar que el robot deambule y descifrarlo usando puntajes al final de cada sesión. Entonces, cuando el robot va en la dirección correcta, obtiene un refuerzo positivo y en la dirección incorrecta, negativo. Esto no está supervisado o, en particular, el aprendizaje de refuerzo.

Sin embargo, si va a utilizar su robot específicamente para una sola tarea, como lavar los platos una y otra vez, puede programarlo para que lo haga (con reglas concretas). Por lo tanto, haría bien esa tarea pero fallaría si las condiciones cambian. No necesita utilizar el aprendizaje automático para todo solo porque puede hacerlo. También se podría programar un abridor de puerta de garaje utilizando aprendizaje automático, pero eso es como matar un mosquito con una bomba nuclear 🙂

Todos estos son problemas muy abiertos en este momento. Actualmente no hay algoritmos exitosos que le permitan a un robot realizar cualquiera de estas tareas de manera sólida, ¡no aprendiendo, ni mediante reglas codificadas a mano, de todos modos!

Por supuesto, puede encontrar cientos de trabajos de investigación que describen varios enfoques para estos problemas. Algunos grupos líderes que trabajan en estas áreas son los dirigidos por Michael Beetz, Pieter Abeel, Sven Behnke, etc. Puede encontrarlos en scholar.google.com