Yes, we have some strange rules for the grammatical animacy.
"Покойник" (the deceased) and "мертвец" (dead man) are animate: Он увидел покойника. Он увидел мертвеца. But "труп" (corpse) is inanimate: Он увидел труп.
"Микроб" (microbe) is usually animate: Мыло убивает микробов. "Бактерия" (bacterium) and "вирус" (virus) are usually inanimate: Мыло убивает бактерии. Мыло убивает вирусы.
And yes, "робот" is animate. I think that is because robots first appeared in science fiction, and they were described as human-like creations.