Best way to move an object?

I’ve been working on a cannon and it has a pretty rudimentary movement system.
I just weld the cannon to the player and it follows him, for the wheels I use hinges.

https://gyazo.com/7128e6eb851ce0f196a933fecadda9a3

What methods could I use to replace this system?

Real cannons were moved by people pushing at the base of them. Thats the little stem part at the front of it. If you wanted this to be physics based then I would weld the player to the cannon and move the cannon with linear velocity and change orientation with a body gyro(yes they are “superseded” but these allow you to limit specific axis so your cannon can go up hills).

How would I use body gyro to making it go up hills properly?

Body Gyro would make it so that when aligning it wouldn’t keep the cannon flat. You would do this by making maxforce on y axis 0. It won’t do anything other than that and you don’t really need it unless your game has hills.