The system so far is doing exactly what it should. One comment: rigidbody.AddForce(transform.forward*speed) is shorter than what you have written.
In the first case, pushing it up makes it jump up. FYI: up is +Y, which is the green arrow. In the second case, it helps to understand what the system sees. The robot probably has a capsule collider (or maybe a tall box collider.) So it counts as being like a floor-lamp on a curved base, like a rich guy might own. If you put your hand midway and push forward, of course it moves forwards and tips over. That’s terrific – just like shoving a real floor-lamp or turned-off robot.
In general, the physics system assumes the objects are dead, super-stiff shapes, unless you check a box or code something different. If you give it a wider flat base, it will tip less and wobble more. Or a flat base and a physics material to lower friction will slide more and wobble less.
Now, if you want the robot to never tip over or wobble, you can “cancel” part of the physics simulation. In this case, look at the rigid body (which is what makes it move) and there are some checks to disable rotation. Trying each one should give a feel for them.