コード例 #1
0
        /// <summary>
        /// Gets the world state
        /// </summary>
        /// <returns></returns>
        public WorldState GetWorldState()
        {
            Dictionary <SimVehicleId, SimVehicleState>   vehicleStates  = new Dictionary <SimVehicleId, SimVehicleState>();
            Dictionary <SimObstacleId, SimObstacleState> obstacleStates = new Dictionary <SimObstacleId, SimObstacleState>();

            foreach (SimVehicle sv in this.simEngine.Vehicles.Values)
            {
                vehicleStates.Add(sv.SimVehicleState.VehicleID, sv.SimVehicleState);

                /*SimObstacleState sos = new SimObstacleState();
                 * sos.Heading = sv.Heading.Normalize();
                 * sos.IsBlockage = false;
                 * sos.Length = sv.Length;
                 * sos.ObstacleId = new SimObstacleId(sv.VehicleId.Number);
                 * sos.Position = sv.Position + sv.Heading.Normalize(TahoeParams.FL - (sv.Length / 2.0));
                 * sos.Width = sv.Width;
                 * obstacleStates.Add(sos.ObstacleId, sos);*/
            }

            foreach (SimObstacle so in this.Obstacles.Values)
            {
                SimObstacleState sos = new SimObstacleState();
                sos.Heading    = so.Heading.Normalize();
                sos.IsBlockage = so.Blockage;
                sos.Length     = so.Length;
                sos.ObstacleId = so.ObstacleId;
                sos.Position   = so.Position;
                sos.Width      = so.Width;
                obstacleStates.Add(sos.ObstacleId, sos);
            }

            return(new WorldState(vehicleStates, obstacleStates));
        }
コード例 #2
0
        static void Main(string[] args)
        {
            SimSensor        sensor   = new SimSensor(Math.PI / 4, -Math.PI / 4, 1 * Math.PI / 180, SensorType.Scan, 30);
            SimObstacleState obsState = new SimObstacleState();

            obsState.Position = new Coordinates(5, 5);
            obsState.Length   = 4;
            obsState.Width    = 2;
            obsState.Heading  = new Coordinates(1, 0);
            Polygon[] poly = new Polygon[] { obsState.ToPolygon() };
            SceneEstimatorUntrackedClusterCollection clusters = new SceneEstimatorUntrackedClusterCollection();

            sensor.GetHits(poly, Coordinates.Zero, 0, clusters);

            SimulatorClient client = new SimulatorClient();

            client.BeginClient();
        }