Caso eu queira programar em baixo nível, é necessário saber linguagem binária?

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.