Знания из областей... математика, схемотехника, программирование. Из математики: линейная алгебра, матан, дифуры, динамические системы, кибернетика. Из языков стоит знать С и С++, Assembler, а дальше уже по ситуации. На верхнем уровне (когда используешь чье-то высокоуровневое API) ассемблер будет не нужен, а пригодится что-то еще, что не предскажешь заранее: разработчики программируемых роботов и что-то свое пишут. Типа языков сценариев. С блэкджеком и прочим. Тут все зависит от того, на каком уровне ты хочешь быть: с железом работать или с софтом. Если и то, и то, то лучше пробежаться по всему-всему хотя бы мельком, чтобы представление иметь.
Начало - это ардуина. Просто, как три копейки. Там, считай, язык С. На С и Асме пишутся проги для контроллеров. Но у ардуины все это проще, чем у многих других, да и программатор не нужен.
Азимов, кстати, тоже ничего, но можно и "Сказки роботов" Станислава Лема почитать. Мозг закручивают.