Looks like your project is very photorealistic, well done.
It is very simple actually.
First off I made it by embeding an interpreter to test AI scripts without having to recompile the whole program.
http://irrlichtirc.g0dsoft.com/kat104/3D/img/irr14.png
It is a LVTP turret because I'm not a good modeler. Anyway
The robot (or human/boat/helicopter/whatever) has simple functions:
goForward();
goTurnLeft();
goTurnRight();
isInPosition(); <- returns true when he has reached a waypoint, there increment index of waypoints when true
You know he is in position with a simple calculation: when abs(pos.X - waypoint.X) < 100.f && same for Z
In the main loop the bot is thinking
while(!isInPosition()) { Do I go left or right? forward();}
All these functions were posted in the forum by Rogerborg or someone cool like him ...
That's all.
We'll discuss about people seing each other or not, later when movement is done. It is a simple question of boxes intersecting eachother or not and raycasting to check if there is a wall inbetween.