Exemple #1
0
def main():
    # a 28 minute walk
  location1 = gps_utils.Location(37.417747, -122.086086)
  location2 = gps_utils.Location(37.421624, -122.096472)
  speed = 7  # meters/sec
  frequency = 10  # Hz
  file_name = "userwalking.csv"

  user_motion = generate_route.TimedRoute(location1, location2, speed, frequency)
  user_motion.write_route(file_name)

  file_path = os.path.abspath("geobeam/user_motion_files/" + file_name)

  simulation_set = (SimulationSetBuilder()
    .add_dynamic_route(file_path, gain=-2)
    .add_dynamic_route(file_path, run_duration=30, gain=-2)
    .add_static_route(27.417747, -112.086086, run_duration=10, gain=-2)
    .build())
  simulation_set.run_simulations()
    def test_location_init_no_altitude(self, mock_geodetic_to_cartesian):
        geodetic_coordinate = (37.4178134, -122.086011)
        ecef_coordinate = (-2694180.667, -4297222.330, 3854325.576)
        mock_geodetic_to_cartesian.return_value = ecef_coordinate
        lat, lon = geodetic_coordinate

        location = gps_utils.Location(lat, lon)

        self.assertEqual(location.x, ecef_coordinate[0])
        self.assertEqual(location.y, ecef_coordinate[1])
        self.assertEqual(location.z, ecef_coordinate[2])
        self.assertEqual(location.latitude, lat)
        self.assertEqual(location.longitude, lon)
        self.assertEqual(location.altitude, 0)
Exemple #3
0
def main(config_file_name):
    """Create and run simulation set based on user specified config file.

  Args:
    config_file_name: string, name of file in simulation_configs folder
    to read from
  """
    config = configparser.ConfigParser()
    config['DEFAULT']['Speed'] = DEFAULT_SPEED
    config_file_path = os.path.abspath("simulation_configs/" +
                                       config_file_name)
    config.read(config_file_path)

    sections = config.sections()

    simulation_set_builder = SimulationSetBuilder()

    for simulation in sections:
        try:
            run_duration = config.getint(simulation,
                                         "RunDuration",
                                         fallback=None)
            gain = config.getint(simulation, "Gain", fallback=None)

            # Dynamic Simulation
            if config.getboolean(simulation, "Dynamic"):

                file_name = config.get(simulation, "FileName")
                file_path = os.path.abspath("geobeam/user_motion_files/" +
                                            file_name)

                # Creating New Route File
                if config.getboolean(simulation, "CreateFile"):
                    speed = config.getfloat(simulation, "Speed")
                    frequency = DEFAULT_FREQUENCY
                    if config.has_option(simulation, "GpxSourcePath"):
                        gpx_source_path = config.get(simulation,
                                                     "GpxSourcePath")
                        user_motion = TimedRoute.from_gpx(
                            gpx_source_path, speed, frequency)
                    else:
                        start_latitude = config.getfloat(
                            simulation, "StartLatitude")
                        start_longitude = config.getfloat(
                            simulation, "StartLongitude")
                        end_latitude = config.getfloat(simulation,
                                                       "EndLatitude")
                        end_longitude = config.getfloat(
                            simulation, "EndLongitude")
                        location1 = gps_utils.Location(start_latitude,
                                                       start_longitude)
                        location2 = gps_utils.Location(end_latitude,
                                                       end_longitude)

                        user_motion = TimedRoute.from_start_and_end(
                            location1, location2, speed, frequency)
                    user_motion.write_route(file_name)

                simulation_set_builder.add_dynamic_route(
                    file_path, run_duration=run_duration, gain=gain)
            # Static Simulation
            else:
                latitude = config.getfloat(simulation, "Latitude")
                longitude = config.getfloat(simulation, "Longitude")
                simulation_set_builder.add_static_route(
                    latitude, longitude, run_duration=run_duration, gain=gain)
        except configparser.NoOptionError as err:
            print("Error in reading value from configuration file: %s" % err)
            return

    simulation_set = simulation_set_builder.build()
    simulation_set.run_simulations()