I have this toy Moon Walking Robot which keeps walking around in my home. When it hits an object, it turns and moves on a different direction. If you want to buy this Moon Walking Robot, you can buy it here.
I know why my Moon Walking Robot changes directions when it hits something. It might be because it has an instruction or a command like 'If on edge, bounce'. I got this insight because I suddenly remembered a motion block in Scratch Computer Programming that is called as 'If on edge, bounce'. In the Scratch Programming, I think that all the blocks belong to one sensing category. The reason why the Moon Walking Robot changes direction when it hits something could be because the robot is made to rotate and turn, meaning bounce because it is on the edge or it has hit an object. So, I am very sure there must be a programming motion command written in the chip inside the Moon Walking Robot that makes the robot turn the direction when it hits the edge. And, the start button of the Robot is similar to the command 'When green flag clicked' on the Scratch programming control category.
The reason why the robot keeps on moving when it is switched on is because the chip inside the robot probably has a control command called as 'Forever'. And the reason why the robot is walking is because it could have a motion command called as 'Move 10 steps'. May be, the robot also has a motion command that makes it keep turning its head from left to right and right to left and may be another motion command that makes it wave its hands back and forth. And another motion command for moving its legs back and forth. Programming is amazing, isn't it.