private static void BuildCommon() { // create the dataset Services.Dataset = new Dataset.Source.DatasetSource("operational", "net.xml"); // initialize the communciations builder (gets object directory, channel factory) CommBuilder.InitComm(); // create the tunable parameter table using (FileStream fs = new FileStream("params.xml", FileMode.OpenOrCreate, FileAccess.Read)) { Services.Params = new UrbanChallenge.OperationalUIService.Parameters.TunableParamTable(fs); } // build a default planar project Services.Projection = new UrbanChallenge.Common.EarthModel.PlanarProjection(Settings.DefaultOrigin.X * Math.PI / 180.0, Settings.DefaultOrigin.Y * Math.PI / 180.0); // create the relative pose builder // 1000 entries should create 10 seconds of queue space Services.RelativePose = new UrbanChallenge.Common.Pose.RelativeTransformBuilder(10000, true); // build the tracked distance provider Services.TrackedDistance = new OperationalLayer.Pose.TrackedDistance(10000); // build the stopline provider Services.Stopline = new OperationalLayer.Pose.StopLineService(); // build the absolute pose service Services.AbsolutePose = new OperationalLayer.Pose.AbsolutePoseQueue(10000); // build the absolute posterior pose service Services.AbsolutePosteriorPose = new OperationalLayer.Pose.AbsolutePoseQueue(1000); // build the lane model provider Services.LaneModels = new OperationalLayer.RoadModel.LaneModelProvider(); // build the road model provider Services.RoadModelProvider = new OperationalLayer.RoadModel.CombinedRoadModelProvider(); // Create the vehicle state provider Services.StateProvider = new OperationalLayer.Pose.VehicleStateProvider(); // create the obstacle manager Services.ObstacleManager = new ObstacleManager(); // build the UI service Services.UIService = new UIService(); TimeoutMonitor.Initialize(); }