Gostaria de saber se é necessário saber binário para se programar em baixo nível (qualquer tipo de máquina, robôs, e coisas do tipo)?
Geralmente saber C e assembly basta. Seres humanos não programam em 0s e 1s. Mas o assembly de um sistema depende do sistema. Assembly é como se fosse a “linguagem binária”, e cada máquina entende a sua. Você deve conhecer o conjunto de instruções daquela máquina para escrever código Assembly para ela. As instruções Assembly são escritas com letras e números. Os nomes das instruções são chamados mnemônicos. (ou seja, um jeito fácil de lembrar o que aquela instrução faz, bem melhor do que uma sequência de 0s e 1s).
por exemplo (do conjunto de instruções de CPUs da arquitetura x86)
mov eax,1h ; move o valor 1 para o registrador EAX
add eax, 4h ; adiciona o valor 4 ao conteúdo do registrador EAX
etc.
Você não precisa escrever seu programa bit a bit, se é isso o que você quis dizer. Para isso existe a linguagem assembly (o nome da linguagem é assembly) e os respectivos assemblers para cada plataforma. Mas você precisa pelo menos saber converter para bases binárias, octal e hexadecimal.