I'm working on a RTS game engine, for what I want to achieve, I could say that it's just like Red Alert or C&C.
There would be a number of units with different types, infantrys, tanks, trucks, aircrafts, ships etc. At the beginning let's deal with land vehicles only. And as a modern engine I integrated Bullet physics deeply inside.
I heard that most RTS engines does not employ any physics engine, while few ones like Company of Heroes (personally I donot recognize it as a "RTS", but I really like it and it's physics is very nice) and World in Conflict (which I only have few experience yet) being some exceptions. But I think just do it and it would be OK. C&C series has no physics and things looks very unnatural: large units overlapping each other, some projectiles also have weird trajector, and so on and so on. I also heard that StarCraft 2 uses Havok, but anyway, I'm very satisfied with SC2 experience.
Back to the topic: I'm stucked on unit movement. I'm done with global path planning(A*) months ago. But I found it's pretty hard to make unit(vehicles, specifically) follow my path with physics measures. I rewrote its code for several times but all failed. That's what I have now:
* Graphics is 2D, isometric.
* So pretty much CPU time for physics simulation, and does not require much detail.
* Every vehicle is just a Box.
* Every obstacle (buildings, stones, trees) is just a Box, too.
* Terrain is btBvhTriangleMeshShape, somewhere is explicitly unreachable (mountains), but may have slopes and pits.
* For parameters, each vehicle just has a maximum speed (aka. stable speed when marching), an acceleration rate, and a turn rate. Doesnot need accurate simulation, just to distinguish between different units (eg. motorcycle is very flexible, while heavy tanks slow and cumbersome). If possible, I wish its turn radius also controllable.
For what I have tried:
Approach 1: I just used a box for units, place it upon the terrain, and apply it a
traction force, and a rotation force.
One of the biggest defects of this approach is that, it works on plane, but fails to deal with terrain bumps. Say we have the following situations:

Both case it would just be stucked, but I want it able to handle small bumps, climbing small slopes.
Approach 2: Then I tried "real" vehicle, specifically the btRaycastVehicle and vehicles with btHinge2Constraint and cylinders as wheels.
I found that car physics behind the vehicle module is pretty complex and not exactly what I want. I donot need suspension, accurate control on wheels, etc., just too many unnecessary mechanics for me, and they finally became a heavy burden. And it's very very hard to control a car smoothly and intelligently with engine force, wheel steering and braking.
Moreover, turing is particularly a serious problem. Sometimes it turns too slow, sometimes the turn radius is too large for the map. Ideally if a unit takes approximately one 'cell' area, then for it to turn 180 degree it should just go through 2-3 cells. But it actually travels half of the entire map. (For btRaycastVehicle, higher wheel friction helps a little, while you got the car completely turned over after turing).

I also searched about character controllers, but I don't know much about what it is exactly for, and most physics engines only provides kinematic character controllers while I want a dynamic one. It is interesting that vehicles and character controllers are all good for manually controling inside FPS as the player, but maybe not very good for automatic control. So now I have no idea about it.
Do you have some ideas? I'm sorry for the post being so long, but any help is appreciated.