Не будет ли эффективным такой подход - создать набор так называемых "драйверов для решения различных задач" - т.е. мы не делаем универсальный "мозг", а делаем универсальное ядро системы, к которому можно подключать различные модели для решения разных задач, возникающих у робота.
Примеры таких драйверов: "Механическая модель", "Эскизная модель взаимодействий по опыту", "Квантовая модель" и т.п.
Т.е. каждая такая модель может пользовать лишь отдельные свойства объектов.
Для решения каких-то задач ядро должно само выбрать нужные модели и с их помощью решить задачи.
Как идейка?